usi-verification-and-security / opensmt

The opensmt solver
Other
78 stars 18 forks source link

Use annotated tags for releases #808

Closed aehyvari closed 1 week ago

aehyvari commented 2 weeks ago

At the moment in opensmt's git, the following happens

% git describe
OpenSMT-2.0.0-1533-g319deeed

That is, the version that git reports for opensmt is 2.0.0. It look like we should use annotated tags when doing releases.

blishko commented 2 weeks ago

Or you can use git describe --tags instead :)

aehyvari commented 2 weeks ago

Or you can use git describe --tags instead :)

Sure, but there's this quote from the link I posted:

Annotated tags are meant for release while lightweight tags are meant for private or temporary object labels. For this reason, some git commands for naming objects (like git describe) will ignore lightweight tags by default.

Tomaqa commented 2 weeks ago

Can this be integrated into the release GitHub action we recently added?

blishko commented 1 week ago

Not as it stands now, the Github action runs after the release. From what I have read, you need to create the annotated tag manually and then create a Github release from that tag.

Tomaqa commented 1 week ago

I force-pushed the tag v2.8.0 to an annotated one. However, now the following happens:

% git describe
v2.8.0-6-g90c49489

That is, since we name the version tags as just v*, git describe does not explicitly output the fact that we deal with OpenSMT. I am not sure what are the other use cases of annotated tags than for git describe. But it seems a bit odd for me to name a tag OpenSMT-... inside of opensmt repository. Hence, I guess that the current state is fine?

aehyvari commented 1 week ago

Hence, I guess that the current state is fine?

Absolutely. Probably OpenSMT- was part of the tag back then, which is not consistent with semantic versioning.

Tomaqa commented 1 week ago

Probably OpenSMT- was part of the tag back then, which is not consistent with semantic versioning.

Shouldn't we even remove the letter v then? 😁

aehyvari commented 1 week ago

Probably we should, strictly speaking, but it's not the end of the world to me.

Tomaqa commented 1 week ago

I took a look at z3 and cvc5 and they both use tags in the form <name>-<M>.<m>.<p>, meaning they include the name of the solver (in lowercase). Hence, I would do the same and in this case use tag opensmt-2.8.0 instead of v2.8.0.

aehyvari commented 1 week ago

I suggest not to do that. I remember that we discussed this already once with @blishko long time ago and we explicitly decided not to include opensmt in the tag . Reintroducing opensmt in the version would be kind of a regression with respect to that discussion.

blishko commented 1 week ago

I suggest not to do that. I remember that we discussed this already once with @blishko long time ago and we explicitly decided not to include opensmt in the tag . Reintroducing opensmt in the version would be kind of a regression with respect to that discussion.

I don't quite remember what the reason behind that decision was.