MarsBased / marsman

Frontend framework for starting new projects
MIT License
55 stars 6 forks source link

Define the versioning system #29

Open jvendrell opened 7 years ago

jvendrell commented 7 years ago

People showed some interest in MarsMan when we did a bit of marketing, and other companies have used it to develop their own projects. For that reason, it'd be good to define a versioning system as soon as possible. People using MarsMan need to know which version are they using, what changes have been made in each version, if there are dependencies in a given version, etc.

jvendrell commented 7 years ago

Hey @MarsBased/marsbased,

We will use this issue to define the versioning system. Also, we need to define how MarsMan will be installed and used, both things come together.

As this is a fairly technical discussing, I will step aside and I won't participate too much ;)

davidgg commented 7 years ago

Releases is the Github way to ship software, they are related with git tags and you can provide a version detail for each one, including binary files.

The first step is create a tag with the commit and upload it to github (I think that a lightweight tag is enough)

git tag v1.0.0
git push origin v1.0.0

Now you can link the tag to a new release. Go to the releases section and select new draft, the tag you’ve created or input a version number, the branch, add a title, details and files. You've just created a release!

For versioning, http://semver.org/ is recommended.

As Xavi suggested we can use npm package to release versions, I think it’s a good idea for styles and js (it’s easy to import this resources from a node_module) but I’m not sure how a dev could use the html or images inside a npm package. Anyway I think we can check it in the future.

info: https://help.github.com/articles/creating-releases/

samples: https://github.com/driftyco/ionic/releases