-
Notifications
You must be signed in to change notification settings - Fork 284
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Userguide section and whitepaper on user change management. #1999
Conversation
@@ -0,0 +1,9 @@ | |||
To reduce code maintenance problems to an absolute minimum, the Iris project defines | |||
carefully defined change management procedures to ensure that : |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
defines carefully defined? A bit repetitive.
It's surely ok to exclude local imports, though it certainly is an annoying glitch and a backwards incompatibility if code fails because we removed an automatic submodule import E.G. what if importing I think @rhattersley already suggested that all internal imports could be given private internal names, to avoid this kind of problem. I've put a note in the 1.10 ticket #1948 for now
|
I'm now 👎 on this. I mentioned the idea yesterday offline, but it doesn't address the whole problem. Instead I think it'd be better to use the existing |
Thanks @rhattersley
All true: "thorough" is strictly wanted, but for here+now all that really matters is what we include in _our_ definition of "public"
|
To be clear, this example really isn't quite the point...
I.E. 'datetime' appears as a public property of iris.cube. |
Note: I'm going to let this stew a bit longer before doing any more, in case there are further comments. |
@QuLogic thanks, not much to say : all your comments were true ! |
@rhattersley suggested I could consider pushing some of this content back into the SemVer document. My conclusions are... SemVer provisions:
Additional provisions from Iris (as I'm attempting to rationalise them):
|
major and minor version number in the version name, "major.minor.xxx", | ||
as explained in the :ref:`releases section <iris_change_releases>` below. | ||
|
||
* Code that currently works should **still work**, and behave exactly the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a fallacy. It is not possible to change anything without breaking something else. https://xkcd.com/1172/
Classik ! 😀 But Seriously..
This example makes clear a point which I had not properly considered in the proposals here : That means we can only completely fossilize behaviour by pinning the version of all dependencies (that is, at least their major versions, where the concept applies). I think we should still accept that if a version upgrade in a dependency actually breaks something, then that is a bug and we need to limit that version until we fix it. |
@marqh what are your thoughts on this ? |
330be5e
to
ca97bcc
Compare
Latest revisions...
|
Other issues mentioned in discussion above, but still not addressed in the text :
|
ping @marqh |
@@ -0,0 +1,9 @@ | |||
To reduce code maintenance problems to an absolute minimum, Iris applies |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i recommend removing these sections from the user guide
this section is already in use in the white paper, so the content is preserved.
@@ -0,0 +1,38 @@ | |||
Code Maintenance |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is covered in the white paper. This section could be removed, to try and keep the user guide more tightly focussed
i think it is worth considering keeping this to the white paper, and not adding a section to the user guide how much benefit do we get from the extra user guide section as well? |
I agree the userguide is rather bloated now. The userguide contents listing was just the only existing place I could think of that performs that function. Obviously, though, it does include a good few chapters that are firmly in the "specialist interest : come back later" category. |
ok, I'm sold; let's accept this now. Any reworking of the docs can include a review of
|
Suggestions for clarifying change management from the user POV
= releases + versions, deprecations, iris.FUTURE
This is mostly for discussion at this point.
It is now pretty much complete + correct to my original conception.
However, @rhattersley already suggested that this information might with advantage be a bit "generalised" and then "pushed back" onto the SemVer project https://github.com/mojombo/semver.
As I was most of the way toward providing this a standalone Iris docs, I've just carried on with that for this first draft.
This issue is mentioned as a possible for 1.10, #1948
which would be nice as we are targetting a lot of deprecations in 1.10.
While may be relevant there, it certainly isn't essential.