-
Notifications
You must be signed in to change notification settings - Fork 237
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
Add script create-release-archive to prepare releases #1402
Conversation
357e593
to
0325cc7
Compare
0325cc7
to
52e2438
Compare
52e2438
to
6eddedd
Compare
9f1efe4
to
a9f8022
Compare
a9f8022
to
8f420b6
Compare
74668a5
to
567ecea
Compare
567ecea
to
eef4b97
Compare
683c40e
to
0eb56d7
Compare
0eb56d7
to
d8026ae
Compare
3ed4543
to
2ea97da
Compare
2ea97da
to
e97d060
Compare
e97d060
to
09c46aa
Compare
09c46aa
to
d1be7af
Compare
d1be7af
to
ec09a59
Compare
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.
There are some things we might want to revisit later (naming, whether to run via node FILENAME
or ./FILENAME
, whether to use a zip library)
But I don't see any of those being difficult to iterate on afterwards. As I see it this is a great step forward and any remaining changes would be non-breaking.
Reverts commit '56cf15a0f1a8e70194e9a2c9a28fa1e82aabfbf9'. Reverts commit '04b8a71a2b0af270ba67a605a084982da43376a6'.
We want to edit the package.json file before making a release to remove all the stuff that users don't need. This commit adds a Node script to achieve this.
Make scripts look more script-y.
ec09a59
to
2fa019a
Compare
We want to edit the package.json file before making a release to remove all the stuff that users don't need. This PR adds a Node script to achieve this. Closes #1399.
This also means a small but significant change in our release process; we now rely on more than just the
.gitattributes
export-ignore
directive to prepare a release archive for us. This means that the source code archives produced automatically by GitHub will not match our releases, and we will have to attach binaries to releases separately.There are a couple of things this PR doesn't do that I think we could consider in the future, but not now.
Firstly, generating the release archive is currently left as a manual process. I think this makes sense for now, as some level of checking should take place before uploading the archive, as the script to generate the release is new, but in future we could consider automating this step.
Secondly, we are still relying on the
export-ignore
attribute to describe what should and shouldn't go in the release; we may want to consider changing this in future so all of the logic is in the script, and the source code archives from GitHub are more like source code archives than release archives.Thirdly, this script relies heavily on shelling out to other command line tools, instead of using Node libraries. This is partly because it is based on a spike written in Bash, and partly because choosing the right Node library for the job is tricky. I am particularly worried about whether zip archives produced by a Node library would work in the same way as archives produced by the standard POSIX tools. But to allow the code to be more portable we should explore relying more on Node in future.