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

Release coordination #1692

Closed
jywarren opened this issue Jul 10, 2020 · 63 comments
Closed

Release coordination #1692

jywarren opened this issue Jul 10, 2020 · 63 comments

Comments

@jywarren
Copy link
Member

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!

@jywarren
Copy link
Member Author

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?

@jywarren
Copy link
Member Author

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.

@harshkhandeparkar
Copy link
Member

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

@harshkhandeparkar
Copy link
Member

Just pushed to beta btw.

@harshkhandeparkar
Copy link
Member

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?

@harshkhandeparkar
Copy link
Member

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.

@jywarren
Copy link
Member Author

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?

@jywarren
Copy link
Member Author

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?

@harshkhandeparkar
Copy link
Member

harshkhandeparkar commented Jul 11, 2020

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.

@harshkhandeparkar
Copy link
Member

Why do we have a UI? 😂

@harshkhandeparkar
Copy link
Member

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

@jywarren
Copy link
Member Author

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?

@jywarren
Copy link
Member Author

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

@jywarren
Copy link
Member Author

Speaking of which, I've opened a PR for 3.6.0: #1695 🎉

@harshkhandeparkar
Copy link
Member

Should we have included the February bug stomps too?

@jywarren
Copy link
Member Author

Yes, let's do!

@harshithpabbati
Copy link

Hi @jywarren @harshkhandeparkar

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

@jywarren
Copy link
Member Author

jywarren commented Aug 2, 2020

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?

@jywarren
Copy link
Member Author

jywarren commented Aug 2, 2020

@jywarren
Copy link
Member Author

jywarren commented Aug 4, 2020

Great, thank you. What do you think of this? #1703

@harshkhandeparkar
Copy link
Member

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.
  1. We could set up github actions to watch for changes to the stable branch and push to npm as well as gh-pages.

@harshkhandeparkar
Copy link
Member

@publiclab/is-maintainers

@jywarren
Copy link
Member Author

jywarren commented Oct 20, 2020

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:

(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 #1695 for v3.6.0.

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

@harshkhandeparkar
Copy link
Member

#1734 This also needs to be on the checklist.

@jywarren
Copy link
Member Author

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

@jywarren
Copy link
Member Author

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?

@harshkhandeparkar
Copy link
Member

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.

@jywarren
Copy link
Member Author

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

@jywarren
Copy link
Member Author

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

@jywarren
Copy link
Member Author

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

@jywarren
Copy link
Member Author

Published to npm! https://www.npmjs.com/package/image-sequencer

@jywarren
Copy link
Member Author

and tweeted 😄 https://twitter.com/jywarren/status/1319393210205196291

@jywarren
Copy link
Member Author

OK awesome, just the main demo to update now. @harshkhandeparkar you have a script for that? Is it similar to #857 or the same? Thanks!

@harshkhandeparkar
Copy link
Member

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?

@jywarren
Copy link
Member Author

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!

@harshkhandeparkar
Copy link
Member

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.

@jywarren
Copy link
Member Author

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!!!

@harshkhandeparkar
Copy link
Member

Just opened a PR with the script :)

@harshithpabbati
Copy link

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

@harshkhandeparkar
Copy link
Member

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

@harshkhandeparkar
Copy link
Member

@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 😂
image

@jywarren
Copy link
Member Author

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

@jywarren
Copy link
Member Author

Phew! Done!

image

@jywarren
Copy link
Member Author

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?

@harshkhandeparkar
Copy link
Member

Issue template will be awesome!

@jywarren
Copy link
Member Author

OK, made that in 10f2739 -- great!

@jywarren
Copy link
Member Author

Done!

image

Shall we close this? I guess so!!!

@harshkhandeparkar
Copy link
Member

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

@jywarren
Copy link
Member Author

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!

@harshkhandeparkar
Copy link
Member

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

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

No branches or pull requests

3 participants