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

prepare alpha channel release builder #6512

Merged
merged 1 commit into from
Oct 2, 2019
Merged

Conversation

d-a-v
Copy link
Collaborator

@d-a-v d-a-v commented Sep 13, 2019

tag '0.0.1' in the repository should trigger the build of a special '-0.0.1' release visible in arduino board manager.
This is intended to provide a regular snapshot of git head to arduino board manager.
This way of releasing alpha versions is a workaround to arduino/Arduino#6012

closes #6511

edit: https://twitter.com/mbanzi/status/1173532857857400832

@d-a-v
Copy link
Collaborator Author

d-a-v commented Sep 13, 2019

Releases are created when tagging the main (this) repository (doc)

With this PR, tagging with '0.0.1' will generate a release ("esp8266-0.0.1.zip") and update the package.json file to show a new version '0.0.1' that will be displayed by the arduino IDE in the bottom of the list of available versions (so users cannot accidentally update to this version).

Once the alpha release is generated, the tag '0.0.1' has to be removed from the main repository.

What I tested so far:

  • generate an alpha release 0.0.1 by tagging my local repo with '0.0.1' and starting the release script
  • put the generated files (.zip and .json) on my local webserver
    (URL to 0.0.1.zip file is changed in the json file to point to my webserver)
  • configure the Arduino IDE board manager URL to my local webserver
  • install this release 0.0.1 with board manager (sketch compile, upload, run)
  • uninstall, reinstall 0.0.1, nothing is downloaded, everything is cached, still working
  • make a random commit, regenerate alpha 0.0.1 (points above)
  • Arduino IDE board manager sees nothing, so 0.0.1 is not updated from IDE
  • uninstall 0.0.1 from board manager
  • reinstall 0.0.1, this time the new release is downloaded because crc in the package.json file does not match the 0.0.1.zip in arduino cache (the old 0.0.1 is definitely lost)
  • the new '0.0.1' release works and is indeed updated

And the most important, no version accumulation in arduino cache or installed version, which is the real goal of this operation: a workaround to arduino/Arduino#6012 which is what prevents to provide a "nightlies" release channel.

One caveat: if a user has an alpha version working, then remove/update later with a new version with bad issues, there is no path back to the previous one, it is definitely lost in the limbs of the past.

Now, it has to be tested on the real field.

Review for this process is welcome from @igrr @me-no-dev and current maintainers.

@d-a-v d-a-v changed the title (WIP) prepare alpha channel release builder prepare alpha channel release builder Sep 22, 2019
@d-a-v
Copy link
Collaborator Author

d-a-v commented Sep 28, 2019

Alpha/snapshot release demo, check https://d-a-v.github.io/esp8266/Arduino/

@Jason2866
Copy link
Contributor

Install went smooth.

@pfeerick
Copy link
Contributor

pfeerick commented Oct 15, 2019

One caveat: if a user has an alpha version working, then remove/update later with a new version with bad issues, there is no path back to the previous one, it is definitely lost in the limbs of the past.

Perhaps a manual save of the package file (or esp8266 folder) on the local system BEFORE uninstalling/reinstalling to refresh to the current nightly would be the workaround? The user could then unpack/copy that into their sketchbook hardware folder? I know it's self-defeating as far as 'easy for the end user'... 'cause you might as well just run the git version at that point... but still... it kinda... could of... should work? 😆

@d-a-v d-a-v deleted the alpha branch October 15, 2019 10:05
@d-a-v
Copy link
Collaborator Author

d-a-v commented Oct 15, 2019

save of the package file (or esp8266 folder) on the local system BEFORE

Totally.
But that would be a <<< complex >>> thing to do, similar to the complexity level for:

'cause you might as well just run the git version at that point...

And I/we'd not store the 40MB zip file for every generated alpha.

BTW testing is at https://d-a-v.github.io/esp8266/Arduino/

edit
Or wait for ubuntu-19.10, install zfs on root fs, make snapshots, rollback snapshots :]

@pfeerick
Copy link
Contributor

zfs? Who needs zfs... just use btrfs + timeshift already!! :-P

Didn't say it was a bright idea now, did I? 😆 🤣

This pull request was closed.
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

Successfully merging this pull request may close these issues.

4 participants