-
Notifications
You must be signed in to change notification settings - Fork 667
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
Remove releases/ folder #1230
Remove releases/ folder #1230
Conversation
Temporarily removing diff of current vs release upon git push, since we removed the releases/*. We currently rely on npm run test:reference to do the visual diffing, and will reintroduce automated visual diffing in a later PR (e.g., via a script that downloads the previous release from NPM). grunt-bump and grunt-release are a bit too automated / magical. We can revisit npm release automation via an interactive script that uses native npm commands, such as: npm version npm pack npm publish --dry-run This automation script can also use native git commands like: git commit -m "VexFlow 4.0.0" git tag -a 5.0.0 -m "VexFlow 5.0.0-beta"
49a36ab
to
716d728
Compare
OK this one is ready to go. It also fixes the grunt warnings, because it removes the grunt-release package which was last updated 5 years ago. (The bad dependency was shelljs.) We can automate our NPM release in a different way through an interactive node script (that invokes npm commands and package.json scripts). |
Conflict to fix. So what do we lose with this? Is there any information loss at all from not checking in the releases? Are NPM + git tags sufficient? Are |
What information do we lose? That's a great question. To be extra safe, you could create a new repo called 0xfe/vexflow-releases/ which includes all the relevant release files for each version. The top level folders would be
But assuming that NPM doesn't disappear, we can always get the build files for any revision by doing "npm install [email protected]" This means old releases are also browsable via unpkg and jsdeliver. Since I'm the one removing the Git tags are useful, assuming we never delete the tag, which would mean we lose the reference to the commit hash. But from version 4.0.0 onward, we no longer check in the build files, so the git tag will only take us back to the source files. We would still have to run the build again. So, if we want to be extra extra safe, we'd want to have a separate vexflow-releases repo. We can then install that repo as an optional submodule in vexflow, so that we could pull down old releases if necessary. Regarding source maps: A comment by @sschmidTU #1231 (comment) suggested that maybe we don't need source maps on NPM. What do you think? :-) In my ESM branch I've temporarily disabled source map generation and 1) it makes webpack build much faster and 2) our build/ folder and npm package is super nice and clean looking. How often do you think people rely on source maps? If they need them, could they just build VexFlow from source and then turn on the sourcemap flag? Anyways, let me know your opinion on source maps inside the NPM package. I think Simon said he just puts them in the OSMD GitHub release zip file, but does not put them on NPM. |
Tested this, with no visual diffs (via |
Ron, instead of a new repo, how about Github releases? I've used that with other projects, and it's really easy to setup and automate. Re: source maps, we need it somewhere, not necessarily in the NPM packages. We could build and bundle them with the github releases too. The criteria here is that we don't want people to have to build source maps for a version, they should be pre-built and downloadable for reach version. We can definitely remove them from default builds -- they're only needed for versioned releases. |
Okay. GitHub releases sounds good. I haven't used it before, so will have to learn it. |
This seems like a decent replacement for grunt-release. It works with GitHub releases. https://github.com/release-it/release-it 152,543 weekly downloads and last updated 2 days ago. Seems promising. |
Thanks Ron. Merging. |
Coming soon in a separate PR: a script based on
npm ci
that will download any old releases you specify, to support visual diffing between versions.In a future PR: an interactive script automating the publishing of the NPM package, that is a bit less magical than grunt-brump and grunt-release.