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’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cherry-picker 1.2.1 release #282

Merged
merged 2 commits into from
Aug 21, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cherry_picker/cherry_picker/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
"""Backport CPython changes from master to maintenance branches."""
__version__ = '1.2.1.dev1'
__version__ = '1.2.1'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

btw what do you think of having scm-based versioning?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you mean by scm-based versioning?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Git tag being the source of truth for the version. Currently, it's manual update of version in Python module followed by tagging the commit. But there are flows, where it only sits in Git, so it would need you to just push a git tag to trigger the whole flow without extra steps.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah ok. This version info is needed for flit though.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, so when using setup.py I use setuptools_scm to make dist have info about version. It should be possible with flit as well.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, I think I'll keep the current workflow for now.
Interesting idea though, I'll have to think about it. Thanks!

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok I'm interested now in deriving the version info automatically somehow, but I'd like to hear more first of what the workflow would look like.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, I need to check what's available for flit, but in general it would be triggered just by pushing a tag and during build something figures out the version and puts it into metadata. setuptools_scm, for example, has a mode, where it'll create the python module from version if the project itself needs to use it (however it's also retrievable via pkg_resources part of setuptools).
In case of setuptools_scm, during development it uses last tag plus commit marker for versioning, but that's configurable.

As for prerequisites, you'll likely need to put a commit with changelog in git and tag afterwards.
Some ppl use tools like towncrier or reno to enforce changelog fragments be submitted along with each PR and then can fail tagged builds if those are not converted into common changelog.

I think I'll try submitting some demo PR with implementation once I have some time.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok thanks. Before you go ahead with some demo PR, let me try to digest all of the above and decide whether it's worth the trouble. (sounds more complicated that I wanted) 😅

I definitely want to further automate this somehow.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, let's separate stages here:

  1. Removing need to track version in files
  2. Integrating changelog generator

4 changes: 2 additions & 2 deletions cherry_picker/readme.rst
Original file line number Diff line number Diff line change
Expand Up @@ -339,8 +339,8 @@ in the directory where ``pyproject.toml`` exists::
Changelog
=========

1.2.1 (in development)
-----------------------
1.2.1
-----

- Validate the branch name to operate on with ``--continue`` and fail early if the branch could not
have been created by cherry_picker. (`PR #266 <https://github.com/python/core-workflow/pull/266>`_).
Expand Down