<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:48:25 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[YANGIDE-3] Yang parser is only run on the current buffer when it changes, which results in inconsistencies in compile errors</title>
                <link>https://jira.opendaylight.org/browse/YANGIDE-3</link>
                <project id="10187" key="YANGIDE">yangide</project>
                    <description>&lt;p&gt;When a change is made to a Yang module in the editor, only that Yang module is compiled by the Yang parser.&lt;/p&gt;

&lt;p&gt;This can create inconsistencies.  The required situations may be contrived, but they can be easily demonstrated.&lt;/p&gt;

&lt;p&gt;Say a project has both a &quot;foo.yang&quot; and a &quot;bar.yang&quot;, and the former imports the latter.&lt;/p&gt;

&lt;p&gt;Assume there are no parser errors at this point.&lt;/p&gt;

&lt;p&gt;Now go into &quot;bar.yang&quot; and change the module name from &quot;bar&quot; to &quot;baz&quot;.  Save it.&lt;/p&gt;

&lt;p&gt;What you would expect to happen at this point is to see a compile error marker in &quot;foo&quot;, because it references a module that isn&apos;t defined.  That is not the case.&lt;/p&gt;

&lt;p&gt;Now go into &quot;foo.yang&quot;.  Put the cursor at the end of any line and add a space.  The error about the missing import file will immediately appear (although not necessarily as a proper compile marker in the editor view).  Save the file.&lt;/p&gt;

&lt;p&gt;Go back into &quot;bar.yang&quot;.  Change the module name back to &quot;bar&quot;.  Save the file.  The error in &quot;foo.yang&quot; should still be there.&lt;/p&gt;

&lt;p&gt;Now go back to &quot;foo.yang&quot;.  Add a space again.  See the error go away.&lt;/p&gt;

&lt;p&gt;The crux of the problem here is that the Yang parser is only run on a single file at once (unless you&apos;re doing a full build).&lt;/p&gt;

&lt;p&gt;I believe the solution to this requires implementing a &quot;Builder&quot; and a &quot;Nature&quot;.  I understand the basic structure of these, but I don&apos;t understand how the Builder is going to invoke the Yang parser on the modules that need to be recompiled.  I don&apos;t know if there&apos;s a way to know which ones need to be recompiled, except to recompile all the modules in the project.&lt;/p&gt;

&lt;p&gt;The Nature is perhaps simpler.  I believe the Nature would be associated with the project in &quot;com.cisco.yangide.ui.wizards.YangProjectWizard.performFinish()&quot;.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="27222">YANGIDE-3</key>
            <summary>Yang parser is only run on the current buffer when it changes, which results in inconsistencies in compile errors</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                                <status id="1" iconUrl="https://jira.opendaylight.org/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="blue-gray"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="dkarr">David M. Karr</reporter>
                        <labels>
                    </labels>
                <created>Thu, 5 May 2016 22:34:28 +0000</created>
                <updated>Thu, 19 Oct 2017 21:25:12 +0000</updated>
                                            <version>unspecified</version>
                                                    <component>General</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>0</watches>
                                                                                                                <comments>
                            <comment id="54951" author="vorburger" created="Mon, 9 May 2016 08:59:03 +0000"  >&lt;p&gt;Personally I would solve this bug by completely re-implementing a part of yangide (the editor related part; the code generation one from yangtools could probably stay as is) using &lt;a href=&quot;https://www.eclipse.org/Xtext/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://www.eclipse.org/Xtext/&lt;/a&gt;), because that has a lot of infrastructure which would take care of and avoid a problem such as the one described here (i.e. it has a full sophisticated &quot;model index&quot; which can track references, and should detect this kind of case) .. &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.opendaylight.org/images/icons/emoticons/wink.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="54952" author="davidmichaelkarr@gmail.com" created="Mon, 9 May 2016 15:58:23 +0000"  >&lt;p&gt;That sounds like overkill to me.  The YangIDE already indexes all of the components in its parsed models.  It&apos;s not reasonable to throw out a major portion of the architecture because we&apos;re having trouble understanding how to extend it to fix a flaw that many people would never notice.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>5847</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10201" key="com.atlassian.jira.plugin.system.customfieldtypes:url">
                        <customfieldname>External issue URL</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[https://bugs.opendaylight.org/show_bug.cgi?id=5847]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i02y5z:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>