8000 add release.yml, release automation ready for prod by pww217 · Pull Request #539 · pyscript/pyscript · GitHub
[go: up one dir, main page]

Skip to content

add release.yml, release automation ready for prod #539

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

Merged
merged 5 commits into from
Jun 23, 2022

Conversation

pww217
Copy link
Contributor
@pww217 pww217 commented Jun 22, 2022

Adds release template, adds testing back, allows for overwriting of "latest" alpha at pyscript.net/alpha/**

Copy link
Contributor
@fpliger fpliger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm (thanks @pww217 !!! 👍 ) but, want to ask it out loud to avoid misunderstanding...

@pww217 this does will not publish a new release to /alpha but, rather, will publish to \latest and to \<the-new-released-version-tag>, so we don't break alpha and it's frozen forever. Right? ( think most of that was also in #512 )

@@ -3,7 +3,7 @@ name: '[CI] Build Release'
on:
push:
tags:
- '[0-9][0-9][0-9][0-9].[0-9][0-9].[0-9]'
- '[0-9][0-9][0-9][0-9].[0-9][0-9].[0-9]+'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just leaving the comment for posterity.. As agreed in previous discussions, this complies with the chosen format YYYY.MM.MICRO, where MICRO is a counter.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, it's basically a glob pattern match that requires a valid 4 digit year, 2 digit month, and the last one should be able to go up to 99.

I made the example releases 2022.06.1 (not sure if micro starts at 1 or 0).

@pww217
Copy link
Contributor Author
pww217 commented Jun 22, 2022

@fpliger This PR changes it to overwrite /alpha along with creating the the versioned folder. I moved the current alpha into a folder called /2022.05.1 manually. If something is broken we can basically copy that folder back to /alpha, if that makes sense.

The testing should prevent it syncing a broken build but of course there's always a small risk it doesn't catch everything.

@pww217
Copy link
Contributor Author
pww217 commented Jun 22, 2022

If we want to test manually we should test out /unstable and if happy with that, tag that commit with a calver and have it built into an alpha. /unstable will track every commit to main that alters a file in pyscriptjs/**

The reason for path filtering is because everything outside of pyscriptjs/** is linting, docs, or examples. Examples sync separately.

@fpliger
Copy link
Contributor
fpliger commented Jun 22, 2022

I thought the decision was to:

  1. freeze the current /alpha, which will be kept as-is "forever"
  2. start to roll out releases using calver, and use the latest release on the homepage/docs/examples, so that if someone wants to start using pyscript now, they will copy&paste e.g. pyscript.net/22.06.1/...
  3. add pyscript.net/latest or /nightly, which does more or less the same job as today's /alpha, but now people would have to explictly use it if they really want

Which plays nicely with the current state of things since somehow we managed to not break peoples code in /alpha .

Co-authored-by: Antonio Cuni <anto.cuni@gmail.com>
@pww217
Copy link
Contributor Author
pww217 commented Jun 23, 2022

@fpliger with this latest commit I removed the overwriting of /alpha/ so now it will just create the versioned folder.

I also changed the name of pyscript.net/unstable/ to /latest/

So in summary:

  1. /latest/ will always track main branch on every merge
  2. /alpha/YYYY.MM.V/ will be created on published releases per the process above
  3. /alpha/ will just remain on the current alpha indefinitely until deprecated

Is that correct? That was my understanding.

I also committed @antocuni's calver comment.

@fpliger
Copy link
Contributor
fpliger commented Jun 23, 2022

That's awesome @pww217 ! I think the only point that is not entirely matching is

  1. /alpha/YYYY.MM.V/ will be created on published releases per the process above

The original proposal was pyscript.net/22.06.1/ but can also be another level deep, like pyscript.net/releases/22.06.1/ or something like that. The reason I'm not super keen on /alpha/YYYY.MM.V/ is that it mixes with alpha and we'll have to rethink/change when we are getting out of alpha..

@pww217
Copy link
Contributor Author
pww217 commented Jun 23, 2022

Alright made the alpha -> releases change and moved the files there. So here's the final summary:

  1. On every merge into main, update pyscript.net/latest/pyscript.js
  2. On every release published, update pyscript.net/releases/YYYY.DD.V/pyscript.js

@pww217 pww217 merged commit 01b64e1 into main Jun 23, 2022
@pww217 pww217 deleted the release-automation-for-prod branch June 23, 2022 16:08
@fpliger fpliger added the tag: tooling Related to the configuration of infrastructure and tooling label Jun 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tag: tooling Related to the configuration of infrastructure and tooling
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants
0