#Making Releases for Libraries

1 messages · Page 1 of 1 (latest)

unborn path
#

It is easiest to do this with two tabs in your browser... Use middle click or your prefered tab opening method to get one tab loaded up on the "Draft new release" page. Should be near the top right.

#

The second tab, you want to open up to the "edit" page for the previous release. Once you get it open be careful not to make any changes and we are not going to actually save anything so don't press the "Update Release" button at the bottom while you're on this page.

gritty glacier
#

In this case I'd be opening the edit for 1.5.2 right?

unborn path
#

Yep, that is correct.

#

We are going to copy the body message of the previous release. It's markdown and it contains some special things for links and code syntax which don't copy properly if we aren't in the "edit" thing.

#

So once you're on that edit page go ahead and select everything in the body message and copy it.

gritty glacier
#

Ok, I've got it copied over in markdown--perfect, just like that

unborn path
#

Okay, once copied you can close the tab with the Edit previous release. (I usually close it immediately to make sure I don't accidentally go back and change anything).

#

Over on the "Draft a New Release" tab you can paste that markdown into the main text box.

#

If the first line that you paste in is talking about something specific in the previous release then we erase it. However in this case the first line is just one of the "template" lines that we put in every release, so no need to erase it.

gritty glacier
#

Good to know!

unborn path
#

sometimes it will be like "This release includes [some specific change]" and we don't want to repeat that into the new release we're making.

#

Once you've got the body message pasted in, we need to set the tag (version number) and the title.

#

For creating the tags we use semantic versioning numbers. If your not familiar it's basically 3 numbers seperated by dots. The first number is like "major release", the middle number is like "medium release" and the last number is like "minor release". Its not super strict though so you can use your best judgement and it's not a huge deal which way you do it. Most typically you'll be either increasing the minor number by 1, or increasing the middle number by 1 and setting the minor number back to 0.

#

Roughly speaking major release means a breaking change, medium release means maybe new features, but no breaking change. and minor release for small bug fixes or documentation / readme updates or similar that don't add new features, or contain any breaking changes.

#

In this case we can go with just bumping the minor release, so 1.5.3 will be the new tag name. Click on "Choose a Tag" and then type 1.5.3 into the box in the dropdown.

#

After you type it in click on Create new tag on publish:

#

After that the last thing we need is the title.

#

I don't think there are strict rules about it. But try to pick a consice description of what chaged. I like to prepend the tag number in front of it, but not everyone does it that way.

In this case I would use something like:

1.5.3 - Fix bug related to with context
gritty glacier
#

For the title, do I include the version number as well? Or is that tag added automatically

unborn path
#

It's not added automatically.

#

I do tend to include it. But some folks don't when they make a release. It does still get shown on the same page, so it's not a huge deal either way.

gritty glacier
#

Good to know! I wasn't sure how it was handled, thank you!

Ok so here we have just about everything on the page filled out

unborn path
#

Yep, before pushing the button verify that you have title and message filled in. and then the most important thing to verify is that you've selected a tag, and that the tag is a higher number than the previous releast

#

If you accidentally select a tag with a lower number it can cause issues (resolved just by making another new release, so not a gigantic problem, but not great).

#

(I usually swap back to another new tab and go to the library main page to confirm my selected new tag is higher than the previous one). In this case 1.5.3 is definitely higher than 1.5.2 so we should be good to go.

#

Once you've verified title, message and tag number. We are ready to push the button 🎉

#

Down below the things you filled in there should be a green "publish release" button. Thats the one to click once you've got everything filled in and verified.

gritty glacier
#

And all together it should look like this?

unborn path
#

It defaults to unchecked (so there is nothing specific to do) but worth noting we don't generally use "pre-releases" so don't check the "This is a pre-release" box, or uncheck it if it did get checked.

unborn path
gritty glacier
#

Ok, then unless there's anything else, I'll publish the release

unborn path
#

We got everything. Go ahead and click publish.

gritty glacier
#

Published!

unborn path
#

Hooray! thanks for working on that. It will kick off a set of github actions that will mpy-cross and upload the assets to that page for you.

Also having the release published will cause Adabot to realize there is a new version so she will include the new one in the bundle. That process happens automatically once a night.

gritty glacier
#

Cool! I was just looking at the assets and about to ask about the difference in asset count

#

Well thank you so much for walking me through this, and taking the time to add images and highlights! I really appreciate it!

unborn path
# gritty glacier Well thank you so much for walking me through this, and taking the time to add i...

For sure! you are welcome. and yep the assets will automatically show up after a few minutes (depending on actions workload, I've seen the time it takes vary a fair amount). You can see the specific things it's doing in the actions page inside github if you're curious, that will also allow you to tell roughly how close it is to finished. But truthfully there is no need to watch it if you're not interested. It'll do it's thing automatically.

#

Thanks again for working on that. Anytime you merge a PR you can use this same process to make a release for the library that it's from if you've got the time for it.

If not no worries. Dylan typically goes through the list and makes releases for any that need it. She does that every few days or week or so. If one gets missed at the time the PR is merged she'll take care of it fairly soon after.

gritty glacier
#

Oh that's pretty neat to look at! And sweet, I tend to forget stuff so that's also great to know (from that, thank you for making this a thread--it'll make it far easier for me to find and refer to again in the future!)