Image-sequencer: Release coordination

Created on 10 Jul 2020  ·  63Comments  ·  Source: publiclab/image-sequencer

Just an issue to coordinate releases!

Hi @HarshKhandeparkar and @harshithpabbati i believe you two are able to prepare releases for publication on the beta site. Would you like to do so and then I can push to the main sequencer.publiclab.org if all goes well? Thank you!

All 63 comments

And if you look at https://github.com/publiclab/image-sequencer/pulse/monthly and https://github.com/publiclab/image-sequencer/blame/main/package.json#L3, it's been 13 months since our last release at v3.5.1 -- i think it's time to put out a new release! v3.6.0 perhaps?

Honestly it's been the entire previous GSoC with a ton of new features there. We may just want to release a v4, esp since SO much has changed. Many new systems including GPU acceleration, wasm, a ton of new modules, etc.

Yeah, I did forget to push in the last few months. Can we set up a GitHub action for this? The script is at https://github.com/HarshKhandeparkar/Update-is

Just pushed to beta btw.

The current beta is hosted at Harshit's fork, I am the only one who has access as of now. Can bots push to branches?

Actually, if publiclab has a spare server, someone could set up a cron job that checks for updates every hour or something and pushes to the beta if something new has been committed.

Well, i wonder if we could just point at the latest GItPod build instead? That's already a working system to build a demo. What do you think?

I guess it's already set up to prebuild environments from all branches: https://github.com/publiclab/image-sequencer/blob/main/.gitpod.yml#L12

Ah, cool - so, you just add any Github URL to: https://gitpod.io/# - so, https://gitpod.io/#https://github.com/publiclab/image-sequencer/ should build the main branch.

I think that worked? That is basically good enough to use as a "live" beta, no? Is that the URL (or at least the branch) that the badge in the README goes to?

IG it's good ¯\_(ツ)_/¯. Will it have an editor along with it? It is not the intended way of doing it though... gh-pages are generally preferred because that is how it will be finally deployed.

Why do we have a UI? :joy:

https://github.com/HarshKhandeparkar/image-sequencer-ui still exists although no one is helping me with it.

Thanks Harsh. Now that we have Jest tests for the UI I think we can more readily test image-sequencer-ui against the expected behaviors. But, we do need to codify what we expect a UI to be able to do! Does image-sequencer-ui have tests or does it match the CSS selectors of our UI tests closely enough that it can pass our Jest tests?

And, let's move this convo to another issue so we can focus on release coordination here, is that OK? Thank you! ❤️

Speaking of which, I've opened a PR for 3.6.0: https://github.com/publiclab/image-sequencer/pull/1695 🎉

Should we have included the February bug stomps too?

Yes, let's do!

Hi @jywarren @HarshKhandeparkar

Regarding beta site I added a github action so that it will update the site for every 6hrs

That's awesome @harshithpabbati !!! Can I see the code for it? I wonder if we can modify it to update the main demo upon merging to a specific branch?

Great, thank you. What do you think of this? https://github.com/publiclab/image-sequencer/pull/1703

I would like to suggest a workflow:
1) Decide some milestones (PRs and issues) for the next version number and decide a date.
2) Keep track of these milestones via a project so that we can easily write the changelog.
3) When it is time to publish, and the maintainers approve one person (I can do this) should do the following:

  • Create a tag and a release along with the changelog
  • Push to the stable branch.

4) We could set up github actions to watch for changes to the stable branch and push to npm as well as gh-pages.

@publiclab/is-maintainers

Ah, ok let's merge our workflow discussions -sorry! Here was my suggestion for a release checklist, to be run from an issue template for each release:

  • [x] open an issue using the "release" template with this checklist
  • [x] compile release notes from release milestone
  • [x] update version number in examples/sw.js (ex #1734) and package.json (ex #1695)
  • [x] finalize and merge to main branch (freeze merges to main branch)
  • [x] merge, build and publish /dist/ files to stable (merges to main branch can resume for next release)
  • [x] create a release on GitHub and use features description from (this) release PR to add release notes
  • [x] tag version number
  • [x] publish tagged branch to npm
  • [x] publish to live github-pages demo (with https://github.com/publiclab/image-sequencer/pull/1703 eventually)
  • [ ] move anything necessary to next release project, i.e. https://github.com/publiclab/image-sequencer/projects/4

(some of these are in the wrong order - like, dist files are done on stable only, right? and let's note which are clean ff merges vs. merge commits)

Noting we're now in this process in https://github.com/publiclab/image-sequencer/pull/1695 for v3.6.0.

I like the idea of using milestones, great thought! Added that, above.

https://github.com/publiclab/image-sequencer/pull/1734 This also needs to be on the checklist.

I added that, plus a link to the 3.6.1 project for any later work.

Do i have the order right at "merge to stable + resume merges to main branch" and "create a release" -- or do we wait until the release is made to resume merging to main?

Actually, we don't have to wait for anything. We can create a tag from any commit. But we can stop for a few minutes, I will at least push to stable :) I will make the tag and the release later.

Pushed to stable, merges to main can resume :)

I'll create the tag soon, it can be published to gh-pages in the meanwhile.

awesome! Where's our gh-pages checklist? Doesn't @harshithpabbati often do this for beta? Thank you!!!

I think he has a GitHub action set up so we(or even he) needn't interfere.

image
Yes, the beta has been updated :-)

@jywarren published v3.6.0! There are a lot of changes, so can someone confirm?
Ty.
I can also publish to gh-pages if needed, although npm publish will have to be done by you. Should we try a Github action for that too? There are plug and play default ones for that I suppose.

cc: @publiclab/is-maintainers

Interestingly, even though the tag was created from the stable branch, the dist was not copied. Is that an issue?

I have added the dist to the GitHub release.

Well, the old tags don't have the dist either ¯\_(ツ)_/¯

Hmm, when we publish to NPM we will def. want the /dist/ files. But otherwise it's not that important, i think?

I don't think so... People can always get them from stable or build them.

I don't think anyone will try to get the dist of an older version so tags may not have them but stable will always have the dist. I have also added the dist to the release entry this time.

yes and NPM is a reliable source of compiled, ready-to-use dist files for any published version. 👍

OK great so i should npm publish from the tag https://github.com/publiclab/image-sequencer/tree/v3.6.0 right?

Re: gh-pages and a github action, that would be great! I'll publish now from the v3.6.0 tag.

OK awesome, just the main demo to update now. @HarshKhandeparkar you have a script for that? Is it similar to https://github.com/publiclab/image-sequencer/issues/857 or the same? Thanks!

I don't have a script for the main demo specifically but my script HarshKhandeparkar/Update-is needs just one change ie changing the name of the repo to publiclab/is instead of harshith/is. Or I can make it take input from the terminal. And no, I didn't update the main demo yet, should I?

If you could update the main demo that'd be great - and yes, why don't we include your script in a folder like /scripts/ and then it'll be a bit more cohesive? Thanks, @HarshKhandeparkar, you're on fire!

One caveat: It is a BASH script so it might only work in Linux that too only the distros which use the bash shell. I am not sure about other shells such as KSH or ZSH. Can anyone who uses Mac confirm whether it works on a Mac? It most probably will.

That's fine, though, let's just add that in the comments at the top of the script and we can track compatibility in a separate issue. Thank you!!!

Just opened a PR with the script :)

One caveat: It is a BASH script so it might only work in Linux that too only the distros which use the bash shell. I am not sure about other shells such as KSH or ZSH. Can anyone who uses Mac confirm whether it works on a Mac? It most probably will.

Yes @HarshKhandeparkar, it works on Mac

Great! Can you also review the PR? And btw, please update your script too since there were a few dependencies which were not added :)

@jywarren Apparently I don't have perms to push to gh-pages. I waited for almost 30min to git clone (Github downloads are unexpectedly slow at 100KiB/s) and then build took 15min and the rest... Just to see this message :joy:
image

Ack! oops, ok, looking now re: gh-pages, thanks!

Phew! Done!

image

OK - i did it from inside GitPod, and i allowed force pushes on gh-pages, which was the missing piece! Only one more checklist item left. Do we like the checklist? Shall we make it into an issue template then?

Issue template will be awesome!

Done!

image

Shall we close this? I guess so!!!

The issue template refers to this discussion, why is that?

to leave a good documentation trail, but also because we actually ran through the process for the first time here and it's good to be able to refer to that esp the next few times we do it!

Ah ok... Let's close this then!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

sashadev-sky picture sashadev-sky  ·  3Comments

jywarren picture jywarren  ·  4Comments

Divy123 picture Divy123  ·  5Comments

vaibhavmatta picture vaibhavmatta  ·  4Comments

harshkhandeparkar picture harshkhandeparkar  ·  4Comments