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

ml5 release process - need to update and optimize #387

Closed
joeyklee opened this issue May 24, 2019 · 6 comments
Closed

ml5 release process - need to update and optimize #387

joeyklee opened this issue May 24, 2019 · 6 comments
Labels

Comments

@joeyklee
Copy link
Contributor

β†’ Description πŸ“

A clear and concise description of what the issue is about. Let us know if you:

  • want to suggest an update πŸ’‘
  • have an idea for a new feature πŸ†•

This is a note about the current ml5-library release process. Maybe @brondle you might have some ideas about how we can improve the ml5 developer experience in general and release process more specifically.

As I just did the release for ml5 v0.3.0, this is the current release process. You'll notice it is a pretty manual and error-prone human algorithm. (note: there are redundant npm install, pls ignore)


ml5 Release process

Holy moly, I just did the release for ml5 and this is what it looked like.

This assumes:

  1. We are done developing and ready to make a release
  2. We have corresponding examples in the ml5-examples repo

Ready. 3, 2, 1…

Open the terminal and cd to ml5-library. In the development branch:

  1. npm install
  2. yarn test
  3. (run the browser stack test)

Once that is done. Make a new branch v0.3.0:

  1. git checkout -b v0.3.0
  2. npm install
  3. change the version number in package.json
  4. change the readme to the new version, bumping down the previous version to the β€œhistorical releases” section
  5. npm run build
  6. git push origin v0.3.0

Go to Github and Make pull request with the above. Wait for tests to pass.

  1. Squash and Merge

Now make a pull request for development into release. Wait for tests to pass.

  1. Squash and Merge

Go to Releases tab:

  1. tag the ml5 release v0.3.0
  2. Publish the release with documentation

Go back to your terminal in the ml5-library:

  1. git checkout release
  2. git fetch
  3. git pull
  4. npm install
  5. npm run build
  6. npm publish (you will have to add your authenticator code)

NOW go to ml5-examples in your terminal:

  1. git checkout -b v0.3.0
  2. npm run update-ml5 0.3.0 (to update all the ml5 versions)
  3. git add .
  4. git commit -m β€œupdated ml5 version to 0.3.0”
  5. git push origin v0.3.0

Now make a pull request for v0.3.0 into release

  1. squash and merge

Now go to the releases tab and create a new release, adding details about the release and a tag with the version of ml5.js that is relevant. In this case v0.3.0

  1. publish the release.

Now merge release into master

And last - go through everything to make sure all your URLs are pointing to the right place on the website and update the documentation as necessary.

Whew. Let’s definitely figure out a better way to do this! Added to the list for the summer ;) β˜€οΈ

@hobg0blin
Copy link
Contributor

@joeyklee taking a look at this stuff now - found this library that seems like it could be useful for speeding this up.

one other thing jumps out - is there any reason we're still using both npm and yarn? i remember some discussion of migrating entirely over to yarn and that might make this process a bit less confusing

@joeyklee
Copy link
Contributor Author

@brondle - thanks for the suggestion for release-it. Maybe that's something to test out? One thing this still doesn't solve is the bumping up of version numbers in our readme documentation for things like references to <script> tags, etc.

In some ways I wonder if making our own release script that is tuned into the ml5 specific needs makes more sense or rather that we should restructure the ml5-library documentation so that our release process requires less manual effort or points of inconsistency. I guess the latter? Let's chat about the best way forward here.

Re npm and yarn. I guess at this point I'm "old school" so have mostly stuck to using npm but if yarn is the way to go, then I'm not opposed. Seems like https://yarnpkg.com/en/ has done some smart stuff that npm isn't currently?

@shiffman
Copy link
Member

I tend to stick with npm also. For beginners and new contributors this makes things a bit easier b/c it doesn't require a separate install. That said, if we can include good documentation about how to get up and running with yarn then I'm not opposed. I've seen the install process trip people (including me) up.

@joeyklee
Copy link
Contributor Author

Making some additional notes here:

  1. We need to make sure that when we make a new release our ml5-library/docs are update: https://ml5js.github.io/ml5-library/docs/#/ ==> any mention of the ml5 version should be the latest. This includes:
  • README
  • CONTRIBUTING
  • docs/Getting Started
  • docs/The tutorials
  • and the p5 web editor sketches

@bomanimc
Copy link
Member

bomanimc commented Apr 20, 2020

@joeyklee should we close this out in favor of our more specific issues on this such as #809 and #917?

@joeyklee
Copy link
Contributor Author

@bomanimc - Yes! Let's close this up :) - thanks!

(I will try to get to your PRs and posted issues on Tuesday! Sorry for the delay!)

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

No branches or pull requests

4 participants