Skip to content
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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.0.1 馃殌 #1555

Closed
simobasso opened this issue May 15, 2021 · 25 comments
Closed

2.0.1 馃殌 #1555

simobasso opened this issue May 15, 2021 · 25 comments
Assignees
Labels
major Marks an important change, when major version update required
Milestone

Comments

@simobasso
Copy link
Member

simobasso commented May 15, 2021

Hey @cookiecutter 馃憢 ,
I think we should start to talks about 2.0.1.

We have more than a year of unreleased contributions with some breaking changes (python 2, pyyaml, etc) so the next release will be a major 馃帀 and will be huge!

Let's start with sweet things...

Changes

Breaking Changes

Minor Changes

CI/CD and QA changes

Documentation updates

Bugfixes

Deprecations

This release is made by wonderful contributors:

@Cadair, @Casyfill, @Cy-dev-tex, @HosamAlmoghraby, @SharpEdgeMarshall, @agateau, @brettcannon, @chrisbrake, @dHannasch, @gliptak, @glumia, @graue70, @grrlic, @insspb, @javiersanp, @jonaswre, @juhuebner, @logworthy, @lyz-code, @milonimrod, @ndclt, @noirbizarre, @noone234, @oncleben31, @rgreinho, @sebix, @smoothml, @ssbarnea, @steltenpower, @wouterdb, @xyb, Christopher Wolfe and Hosam Almoghraby ( RIAG Digital )

Thank you all for the amazing work 馃檹 !

The plan

There are 4 important breaking changes and tons of features, so I think we should take some extra care to tag this version:

  1. reduce the scope of 2.0.0: at the time of writing, we have 43 open issue/pull request, I have just created the milestone Next as a container for all contributions that are already in the plan but are not essential for this release.
  2. check the documentation and consider a migration guide, also can be a good chance to introduces the use of
  3. consider a release candidate of 2.0.0 to help maintainers to install and test a package instead of a master checkout.
  4. priority and all focus are on releasing 2.0.0 and closing bugs. we already released 1.7.3 (Thanks @ssbarnea 馃檹 ) as a backport of a bugfix for dependencies, and no other intermediate tag (other than security patch and critical bugs) will be released.

What do you think about it?

Any contribution will be appreciated,
thanks 馃殌 !

@simobasso simobasso changed the title State of Art 2.0.0 馃殌 May 15, 2021
@ssbarnea
Copy link
Member

Two notes from me:

  • My personal take is that a project like this should not even have a release plan and that it should make a release at least every quarter (some do even even monthly). The release should happen from master and regardless what is working or not, mainly because passing CI/CD should (ideally) give enough confidence that the code is ready to be tried by others. Nobody should be surprised that 2.0 breaks some use-cases but also nobody is forcing the users to install 2.0 instead of pinning down to the older release. In the end is all about semantic versioning and is very common to have several bugfix releases after 2.0.0 in order to achieve a level of stability where we can tell others to stop using 1.7 version.
  • I enabled discussions in order to avoid cluttering the issue tracker with non-bugs. I encourage anyone to use the forum and those with core access to transfer tickets that are not directly actionable to the forum. On few projects I even went to the extreme measure of moving all feature requests to discussions and only keeping the issue tracker for clear bugs. That can help the active maintainers distinguish between things that need fixing and stuff that may never really happen.

I mention these because the reality is the cookiecutter didn't effectively release code from master branch for over two years. If you look at last two releases 1.7.2 and 1.7.3, each of them contained only a dependency fix.

This means that all the code that was merged to master during this period of time was not really used by the users as I doubt any normal user installs from master, only developments/contributors do that.

Shortly release often and adapt quickly. Code is never feature complete.

There are also other advantages of releasing often: it may motivated others to contribute back. A broken workflow with a new release is a big incentive for proposing a PR to fix your own issue ;)

@SharpEdgeMarshall
Copy link
Contributor

@ssbarnea I agree with you that the CI passing should give us enough confidence to do a release BUT as you said we are talking about 2 years of contributions to master (some of those are big) and I don't think ATM we are confident about the fact everything is working (at least me).

IMHO doing a beta/RC doesn't cost so much and give us the opportunity to check everything is good (with the help of the users), while we work to a more "continuous delivery" approach for next releases.

About the "release plan/roadmap" approach I think is a good way to give priority to changes and fixes, it will help the community to focus, probably we should just make smaller milestones so is easier to keep on track.

@ssbarnea
Copy link
Member

A pre-release would clearly ease testing and increase confidence. One issue with making quick (pre)-releases is that the project does not yet use setuptools-scm for versioning and uses a hardcoded version in setup.py.

If desired, I could propose a change to adopt it (mainly is about moving metadata to setup.cfg instead of the discouraged setup.py), which would make a release as easy as pushing a tag (in fact the only thing needed).

@SharpEdgeMarshall
Copy link
Contributor

So next step:

  • we should clean 2.0.0 milestone and move open issues/pr to the next one
  • push 2.0.0b or 2.0.0rc?

@glumia
Copy link
Contributor

glumia commented Jun 13, 2021

Agree on using a release candidate for 2.0.0 since, as you already said, there are almost two years of unreleased changes.
This would give mantainers of other projects that rely on cookiecutter time to migrate to the new version (or pin to the old one) and us the possibility to discover and fix bugs in the meanwhile.

  • push 2.0.0b or 2.0.0rc?

I like more 2.0.0rc!

@sebix
Copy link
Contributor

sebix commented Jun 13, 2021

2.0.0rc1 - then you have the freedom to just create another RC version

@ssbarnea
Copy link
Member

@ssbarnea
Copy link
Member

ssbarnea commented Jun 14, 2021

S***! Creating this tag released a wheel versioned 2.0.0, that is really bad. I suppose that is because the project does use a hardcoded version instead of using setuptools-scm.

I cannot yank this version myself because I am not listed as a maintainer on pypa: https://pypi.org/project/cookiecutter/2.0.0/ -- only @pydanny @audreyfeldroy @hackebrot or @insspb can do it.

I hope one of them is seeing this soon as I bet we would have a chain of "you broke my workflow" reports, even if risk averse people were supposed to ping down major version bumps.

@pydanny
Copy link
Member

pydanny commented Jun 14, 2021

Woke up inexplicably 15 minutes ago. Now I know why. Version 2 removed from GitHub Zzzzzzz

@ssbarnea
Copy link
Member

@pydanny Thanks. Do you have anything against adopting setuptools-scm packaging setup instead of old setup.py? This would have prevented accident above. -- Basically it involves moving packaging info to setup.cfg and keeping a very small setup.py for compatibility.

@pydanny
Copy link
Member

pydanny commented Jun 14, 2021

None whatsoever. Years ago it was unmaintained, that has changed since

@SharpEdgeMarshall
Copy link
Contributor

SharpEdgeMarshall commented Jun 14, 2021

@ssbarnea why didn't you merge this pr before doing release? #1568
Now we lost the changelog.
Obviously having 2.0.0 inside setup.py here released 2.0.0 not rc.
I think this project deserve more care while doing a release like this one.

@ssbarnea
Copy link
Member

I removed the release and the tag but lets keep in mind that when we release, we will need to release as 2.0.1, do not attempt to tag 2.0.0 again because publishing to pypa will fail.

@ssbarnea ssbarnea changed the title 2.0.0 馃殌 2.0.1 馃殌 Jun 14, 2021
@ssbarnea ssbarnea added the major Marks an important change, when major version update required label Jun 14, 2021
@ssbarnea ssbarnea added this to the 2.0.0 milestone Jun 14, 2021
@ssbarnea ssbarnea pinned this issue Jun 14, 2021
@audreyfeldroy
Copy link
Member

Hey everyone, I truly appreciate all your efforts!

@ssbarnea I added you as a maintainer on PyPI so you can remove accidental releases and do whatever you need to do on this release. Hope this helps and ping me if you need anything else!

@simobasso
Copy link
Member Author

@ssbarnea just merged #1577

@ali92hm
Copy link

ali92hm commented Sep 26, 2021

Hi all,

Thank you for all the great work, this project is amazing and I have been creating my own cookiecutter with the help of it. There are a lot of good bug fixes and new features that have been merged but not released yet. I was wondering when these changes are planned to be released under the 2.0.1 version.

@ssbarnea
Copy link
Member

If it would be up to me I would release 2.0.0 now. We delayed it for too long and that prevents users from adopting it or even contributing.

On the other hand, I am not active with cookiecutter maintenance so I will wait for @audreyfeldroy or @pydanny blessing. The reality is that code in 2.x branch (main) is more than two years old. The 1.7.3 release was a hotfix exception. Based on number of issues I seen as part of 2.0.0 milestone, I will retire before they are implemented.

@ali92hm
Copy link

ali92hm commented Sep 27, 2021

I would definitely leave it up to the maintainers to decide, but another option is to release the bug fixes and non breaking features as a part of 1.8.x version since there are already a lot of useful features and bug fixes in the main branch and leave the breaking ones and other in progress work for a later release. I understand why we may want to delay the release of 2.0 if not all backwards breaking changes have landed yet.

Again, I don't want to create more work for folks and would be happy to assist if you need help.

@audreyfeldroy
Copy link
Member

Anyone who wants to lead the next release has my blessing. I don't have bandwidth to help at the moment, but I'm happy to grant whatever permissions anyone needs to make it happen. I support you all 馃

@jaklan
Copy link
Contributor

jaklan commented Oct 28, 2021

Bump - @ssbarnea, there's a blessing from @audreyfeldroy, so can we push the release forward?

@pydanny
Copy link
Member

pydanny commented Oct 29, 2021

@audreyfeldroy and I plan to cut the release 9AM PST / 4PM UTC on Saturday, October 30th. Anyone who wants to join us is welcome. We'll do it from an as-of-yet determined discord.

@pydanny pydanny self-assigned this Oct 29, 2021
@pydanny
Copy link
Member

pydanny commented Oct 30, 2021

Me and @audreyfeldroy are working on this in PR #1608. There's a lot of little details that have to be taken care of.

For anyone coming into this discussion hoping to get a new feature or fix into 2.0.0/1, we're keeping the scope of this release small - specifically what is detailed in this ticket. Removing formal support for Python 2.7 and other legacy Python versions is our primary goal. We can always do more releases with features/fixes later.

@audreyfeldroy
Copy link
Member

Here's the new Cookiecutter Discord. We'll be collaborating on the rest of the release in here.

@smitthakkar96
Copy link

smitthakkar96 commented Mar 24, 2022

Hey, I am new to the community, have question. Why are we doing such a big release and not doing small releases? There are a lot of features and bug fixes that one could benefit from but aren't released yet as they are paired with large number of changes. IMHO It's better to release fast and get community feedback on new features than doing a big bang release.

I understand that this is a community driven project with no full-time maintainers but it's time to onboard more code owners for different parts of codebase, people who can triage the issues and help release fixes. This is the only way forward I believe.

@jensens
Copy link
Contributor

jensens commented May 30, 2022

We have 2.1.0 on PyPI! https://pypi.org/project/cookiecutter/2.1.0/

@jensens jensens closed this as completed May 30, 2022
@jensens jensens unpinned this issue Jun 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
major Marks an important change, when major version update required
Projects
None yet
Development

No branches or pull requests