devpunks / snuggsi

snuggsi ツ - Easy Custom Elements in ~1kB
https://snuggsi.com
MIT License
395 stars 17 forks source link

Calendar Versioning #213

Closed snuggs closed 3 years ago

snuggs commented 3 years ago

@brandondees @JoshuaBehrens regarding #212 this should make 2021 more up to *date with releases.

Pun intended 😜

https://calver.org

Thanks for the help @ JoshuaBehrens. P.S. check your email πŸ’ͺ🏽

vercel[bot] commented 3 years ago

This pull request is being automatically deployed with Vercel (learn more).
To see the status of your deployment, click below or on the icon next to each commit.

πŸ” Inspect: https://vercel.com/sneakyhead/snuggsi/gek2575b6
βœ… Preview: https://snuggsi-git-cal-ver.sneakyhead.now.sh

snuggs commented 3 years ago

@brandondees @JoshuaBehrens Please see https://github.com/devpunks/snuggsi/blob/master/bin/README.md#distribute

JoshuaBehrens commented 3 years ago

Thanks for the triage rights and requesting my thoughts on that one.

I am a great fan of loose version constraints to make it easier for externals to integrate into their project.

As you switch from semver to calver I'd expect some sort of cronjob that runs your instructions for a minor and major release. Can you setup travis to match the info of your major and minor release cycle?

Additionally: I am also a great fan of puns ;)

snuggs commented 3 years ago

@JoshuaBehrens that sh!t sounds hot! Where do we begin? Lol. I'm actually writing a post on the whole thing and start documenting that way. I'm at the talking point of "I don't think EVERYTHING CAN be automated. But I don't think everything is done manually either." So we are on the same page. Once I got past the insecurity I realized that CalVer IS SEMVER! 😱

So far the past 24 hours I'm thinking that the drum beat is at minimum Yearly, and Monthly, (Daily). However the day to day work would be "Patch prerelease". Basically instead of trying to predict the future. More about getting comfortable with small units of work on a day to day basis. The creativity is around midnight each day. _(Nightly Releases? KInda been doing this already manually the past couple years. Totally open to thoughts. Welcome aboard! πŸ™πŸ½ Capture d’écran 2021-01-01 aΜ€ 14 26 55

snuggs commented 3 years ago

@JoshuaBehrens FWIW Here's a rough path started of some different flows (From an NPM perspective) of the integration steps. A nice side effect is npm publish also tags github for release. And can pass a message along as well.

Edit: I think a nice pattern is at minimum can always count on a monthly/yearly release to be stable. Anything in between would be pretty much perpetually on its way to the clearance rack. Leaving the developer and user with independent freedom. Once again that is SemVer as well. Just not the pattern many are used to. (Unless you've heard about Ubuntu). I'd say anything automated with all checks passing is worthy.

/cc @rianby64

snuggs commented 3 years ago

@JoshuaBehrens P.S. the irony of this project is the only installation needed for users is:

<script src=//unpkg.com/snuggsi></script>

and that's it. πŸ˜‚ But putting it all together is a whole nother story. People want their npm install though. The installation process is actually something jQuery got right.

JoshuaBehrens commented 3 years ago

I am aware of calver being semver to a certain degree. I don't see them alike although they share features. You are right that software changes over time and versioning helps to identify progress. But as time progresses it is not equal to the software progressing as well. When each month is flagged as minor and stable say by semver that there were features added, maybe bugs fixed but is still compatible to the previous minor version as a breaking change would've increased the major version. So when you want to set them equal you have to apply the constraints to the calendar and therefore have a time enforced way to follow for implementations. E.g. there are no major breaks allowed until the next year. And by now every version from the recent years is a major break to the previous one. There is one thing that both versionings share: you increment by change (either code or time) and therefore can make constraints on a numeric comparison.

You are right, it is very easy to add the minified version to the DOM. When I wanted to integrate it first, it was a plugin into an existing framework. In that case I was forced to used webpack to a certain degree to a proper usage.