You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-issues@hadoop.apache.org by "Sangjin Lee (JIRA)" <ji...@apache.org> on 2016/10/27 22:03:58 UTC

[jira] [Commented] (YARN-5130) Mark ContainerStatus and NodeReport as evolving

    [ https://issues.apache.org/jira/browse/YARN-5130?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15613377#comment-15613377 ] 

Sangjin Lee commented on YARN-5130:
-----------------------------------

If the class is declared Public/Stable, no changes to the class that break the Stable contract should be made between non-major releases *regardless of the method visibility/stability*. For example, the following would break the stability:
- adding a new abstract method, whether that method is stable, evolving, or even private
- renaming a public method
Although it may be possible to have methods with weaker stability/visibility, they still MUST not break the class contract. IMO, relaxing the class contract from Stable to Evolving would be an incompatible change in itself.

We need to address the existing violations to ContainerStatus and NodeReport by adding a default implementation for *minor releases*.
- ContainerStatus: YARN-3866 (2.8)
- NodeReport: YARN-4293 (2.8)

There are subsequent changes to ContainerStatus by YARN-2882 and YARN-5430, but they are marked 2.9.0. Is there going to be 2.9.0? If not, then these might not matter as 3.0.0 permits backward incompatible changes.

We should have a blocker that addresses YARN-3866 and YARN-4293 for the 2.8.0 release. We can perhaps repurpose YARN-5184 to address YARN-2882 and YARN-5430 for the 2.9.0 release. I believe this should not be a blocker for 3.0.0 because 3.0.0 allows backward-incompatible changes.

> Mark ContainerStatus and NodeReport as evolving
> -----------------------------------------------
>
>                 Key: YARN-5130
>                 URL: https://issues.apache.org/jira/browse/YARN-5130
>             Project: Hadoop YARN
>          Issue Type: Improvement
>          Components: yarn
>    Affects Versions: 2.8.0
>            Reporter: Steve Loughran
>            Assignee: Gergely Novák
>            Priority: Minor
>              Labels: oct16-medium
>         Attachments: YARN-5130.001.patch
>
>
> It turns out that slider won't build as the {{ContainerStatus}} and {{NodeReport}} classes have added more abstract methods, so breaking the mock objects.
> While it is everyone's freedom to change things, these classes are both tagged
> {code}
> @Public
> @Stable
> {code}
> Given they aren't stable, can someone mark them as {{@Evolving}}? That way when downstream code breaks, we can be less disappointed



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: yarn-issues-help@hadoop.apache.org