Visitar URL original
Infra: When and how to prepare the 2.10.x line? · Issue #183 · python-semver/python-semver · GitHub
Skip to content

Infra: When and how to prepare the 2.10.x line? #183

Closed

Description

@tomschr

Situation

We've decided to freeze 2.10.x and no new features will be added to this version (except security and severe bugfixes). As we are going towards 3.0.0, master will contain the new version soon.

However, we still haven't thought about how to deal/manage both versions, old and new, so they can live peacefully together.

Proposed Solution

Probably we should open a maintenance branch for the 2.10.x line. The open questions are:

  • When should we open the maintenance branch? Now or in the not so far future?
  • How should we deal with upcoming 2.10.x versions?

Here is my idea that I would like to discuss with you:

  1. Make sure we have a clean, good state (should be already the case; but it doesn't hurt to look a bit deeper).
  2. Branch off from current master and create a maint/2.10.0 branch. We could also use stable/2.10.0. Any better name? 😉
  3. Change version in master to 3.0.0+alpha1 (just an example).
  4. Optionally indicate it in the README as "work in progress".
  5. Now we can start implementing code for 3.0.0 only.

After these steps, we have the new version in master and the old version in a maintenance branch. If and how we want to create a new release for the 2.10.x line, it's a matter of taste. One way to do it could be like this:

  1. Add the changes to the 2.10.0 maintenance branch.
  2. Raise version to 2.10.x.
  3. Tag the release.
  4. Publish the 2.10.x release.

It could be helpful to protect the maintenance branch like we did with master.

Anything else we need to cover? Comments? 😉


Update: Changed 2.9.x -> 2.10.0

Activity

  1. added
    InfraAll about infrastructure (GitHub Action, project build etc.)
    QuestionUnclear or open issue subject for debate
    Release_2.x.yOnly for the major release 2
    on Nov 6, 2019
  2. s-celles commented on Nov 6, 2019

    @s-celles
    Member

    I would let Python 2.7 die before
    https://pythonclock.org/
    2 months is not so long...

  3. ppkt commented on Nov 12, 2019

    @ppkt
    Member

    I think we could create this branch right now and start adding things for Py3.5+ only but it's only my opinion :)

  4. tomschr commented on Nov 13, 2019

    @tomschr
    MemberAuthor

    @ppkt
    Yes, I would have no problem to create a maintenance branch release for the 2.9.x series and adding new feature in the master branch (which would be the upcoming 3.0.0 release). I would love to start for the next major release. 😉

    Of course, there are other ways to do it, like creating a dedicated 3.0.0-pre release branch, adding stuff there and then merge it to master when it's "ready".

    Personally, I would prefer the first method (create a 2.9.x maintenance branch, master will be the upcoming 3.0.0 release). I think, it makes it a little bit easier.

  5. tomschr commented on Nov 13, 2019

    @tomschr
    MemberAuthor

    Currently, we have a problem with Travis. For some reason, it doesn't finish its task and blocks our pull request(s). 😞 I'm not sure how to fix it...

  6. ppkt commented on Nov 13, 2019

    @ppkt
    Member

    @tomschr agree, I think separate branches for 2.9.x and 3.0.x would be great (so we could consider master as "stable" branch).

  7. tomschr commented on Nov 13, 2019

    @tomschr
    MemberAuthor

    @ppkt Whatever works is fine for me. 😉 Let's see what @scls19fr has to say about that.

    What would you prefer? Would you wait til January (as indicated in some other comment)? Or can we start right away? 😉

  8. s-celles commented on Nov 13, 2019

    @s-celles
    Member

    Submitting PR is always opened and discussion can occur on these PR.
    We will see in January for merging them to master.
    Maybe we should have a tag WIP (and/or Release 3.x.y) to just remember not to merge them.
    I don't think we have enough human ressources for managing several branches (even if here several means 2 😄 )
    In January we will create a 2.9.x branch before merging 3.x features to master.
    So our 3.x.y development will be in master and we will have a 2.9.x branch if we need to go back (hoping that we won't need to do it)

  9. tomschr commented on Nov 13, 2019

    @tomschr
    MemberAuthor

    Maybe we should have a tag WIP (and/or Release 3.x.y) to just remember not to merge them.

    That would be one way. Another way would be to open PRs as "Draft" . If you do that, merging is disabled unless you change "Draft" to "Ready for review".

  10. s-celles commented on Nov 13, 2019

    @s-celles
    Member

    I never used previously PR as Draft but it seems to be a good idea as it will be a place to have discussion about changes we expect to be merged for 3.x.y.

  11. tomschr commented on Jan 26, 2020

    @tomschr
    MemberAuthor

    @scls19fr, @ppkt any new ideas how to proceed? Should we create a 2.9.1 release before we switch to 3.0.0?

    For the major 3 release, I've created the release 3 project. Would it make sense to create something similar for the 2.9.1 release?

  12. tomschr commented on Apr 19, 2020

    @tomschr
    MemberAuthor

    As we are preparing a 2.10.0 in #237 soon, this issue is related to it.

    @python-semver/reviewers
    Once 2.10.0 is released, I would suggest to work on the semver3 after. IMHO, that gives us the chance to remove all the old stuff of Python2 and focus on one code base.

    Any concerns or objections about this idea? 😉

  13. changed the title [-]Infra: When and how to prepare the 2.9.x line?[/-] [+]Infra: When and how to prepare the 2.10.x line?[/+] on Apr 19, 2020
  14. tomschr commented on May 5, 2020

    @tomschr
    MemberAuthor

    I guess, this is solved by #246

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    InfraAll about infrastructure (GitHub Action, project build etc.)QuestionUnclear or open issue subject for debateRelease_2.x.yOnly for the major release 2

    Type

    No type

    Fields

    SIze

    None yet

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions