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

Automate release process #124

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

adbancroft
Copy link
Collaborator

This PR adds a GitHub action to prepare the code base for a release (updating the version number in various files) and generates a draft release with the appropriate tag.

Usage:

  1. Manually run the 'Create draft release' workflow/action
  2. Follow the output link to the created draft release. E.g.
    image
  3. Edit the release notes & publish

This codifies tribal knowledge & will avoid issues like #108

@kimwalisch
Copy link
Collaborator

@adbancroft Can you please add a RELEASE.md which explains the release procedure using e.g. a short list of bullet points. The goal of this file should be that new maintainers can easily figure out how to do a new release without any help needed from previous maintainers (since they might not be around anymore).

@kimwalisch
Copy link
Collaborator

In my opinion it would also be better to hardcode the version number of LIBDIVIDE_VERSION in libdivide.h and update it using your release script. Your macro string concatenation code is complicated, it might potentially cause problems when libdivide.h is imported into programming languages other than C/C++.

@adbancroft
Copy link
Collaborator Author

Your macro string concatenation code is complicated, it might potentially cause problems when libdivide.h is imported into programming languages other than C/C++.

Is there a specific use case you have in mind?

@kimwalisch
Copy link
Collaborator

Is there a specific use case you have in mind?

We should try to keep the libdivide.h code as simple as possible and only add additional complexity if this improves libdivide.h in a meaningful way (e.g. improves performance). If I understand your pull request correctly then it is possible to move the complicated code related to the LIBDIVIDE_VERSION macro into your release script which would allow to get rid of all your string concatenation macros.

It's a very widely used C pre-processor technique: the GCC manual describes it at least as far back as v2.95 (released in 1999)

You as proficient C/C++ programmer might easily understand this code. But many other programmers will not immediately understand this code. So why add this complexity to libdivide.h when there is a less complex alternative solution?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants