Support for full SemVer 2.0.0 specification

I’d like to publish my orbs such that build metadata is included in the version (i.e. v1.0.0+aef234b.34). This is so that we can quickly work our way back to the commit (via the git short sha) and the build (via the circle ci build number) that produced the published orb. This is very helpful for us during times when we need to debug something. Are there plans to support the full SemVer 2.0 standard as specified here?

Hi @relaxdiego! If you tag your releases on GitHub it should be easy to spot which commit introduced the version. In your case, you might look at development orbs, which are temporary overwrite-able orb tag versions. Let me know if that helps!

Thanks @thekatertot. That only partially solves my problem though. For now, let’s set aside the scenario where some random aberration prevents the pipeline from tagging the commit soon after the build is released. Instead, let’s focus on being able to trace the released build to the build logs produced alongside the build. How would we get to that without build metadata in the version?

As for development orbs, I use that and it’s definitely useful prior to release. However, I’m only concerned with released builds here since those are the ones that users will interact with and will be the source of support tickets down the line. When those support tickets come in, I’d like to have the git commit and build logs close by as part of my toolkit for debugging the issue.

1 Like

Good to know! I’m going to ping our orb experts @KyleTryon and @gmemstr to see if they have ideas.

Hello,

Sorry for the delay, I was away for the first half of this week.

@relaxdiego We do not currently support this kind of versioning but could you tell me if this is a common practice with any other package managers you currently use?

One source of inspiration our team had looked into when Orbs were originally created was the NPM registry. It’s possible NPM already supports this, they do use “semver” but I haven’t seen this personally used,

My recommendation at the moment is to tag/release releases as they are created. This way you can view the corresponding version in your GitHub releases to find the commit.

I have created a copy of your request in our feature request system for users to vote on: Support full Semver 2.0.0 | Orbs | CircleCI Ideas

All user-requested features are voted on and tracked in the system above, if you vote for the item you can automatically follow it to receive updates as decisions are made.

1 Like

Thanks @KyleTryon. I’ve voted on that feature request. The package managers that allow me to use the full SemVer standard are Artifactory and Nexus.

I’ve found a workaround in the meantime which is to add the full SemVer version as a comment at the top of the Orb file. There’s the tag too but ai find that less reliable because of the possibility that something might happen between the orb being published and the tag created in git.

2 Likes