Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deployment strategy & dependent projects #67

Closed
TG9541 opened this issue Sep 22, 2017 · 4 comments
Closed

Deployment strategy & dependent projects #67

TG9541 opened this issue Sep 22, 2017 · 4 comments
Assignees

Comments

@TG9541
Copy link
Owner

TG9541 commented Sep 22, 2017

Travis-ci provides a "Deploy to GitHub Releases" feature but I haven't figured out how to distinguish between "master" and "develop" builds.

It would be really cool to have something like a dependency graph. Maybe that would be possible by wrapping the binary distribution into some other popular packaging system.

@TG9541 TG9541 mentioned this issue Oct 1, 2017
@TG9541 TG9541 closed this as completed in 8a3eae2 Oct 2, 2017
TG9541 added a commit that referenced this issue Oct 2, 2017
fixes #67 deploy with Travis-CI (looks good)
@TG9541 TG9541 reopened this Oct 2, 2017
@TG9541 TG9541 self-assigned this Oct 2, 2017
@TG9541
Copy link
Owner Author

TG9541 commented Oct 2, 2017

Option 1: It might be best to keep the tag name in a file and update it to the "semantic version" of the next release's pre-released after the release process (e.g. v2.2.18.pre).

Option 2: Deployment to GitHub Releases gets triggered by pushing a tag. The following link contains environment variables available in a Travis-CI build
https://docs.travis-ci.com/user/environment-variables/

@larsbrinkhoff larsbrinkhoff changed the title Deployment strategie & dependent projects Deployment strategy & dependent projects Oct 3, 2017
@TG9541
Copy link
Owner Author

TG9541 commented Oct 15, 2017

With respect to dependent projects, the input for dependency graphs GitHub currently supports are limited to either Gemfile or package.json files. I didn't check the first, but implementing a subset of the second doesn't look too difficult.
I have to learn more about how the NPM artifact management works ~~~, and how an artifact storage facility can be emulated with GitHub Releases~~~.

Full fledged semantic versioning would require two things:

  • unfreeze the minor, and major numbers for their actual purpose (i.e. break away from the historic eForth versioning scheme)
  • some kind of indirection for identifying 2.* or 2.2.* style wildcards

A work around might look like this:

  • rely on fixed version tags (e.g. v2.2.17) for all stable dependencies (recommended anyway)
  • use latest for continuous integration branches only

In the future, it would be better to omit the "v" in the tag and use plain numbers.

@TG9541
Copy link
Owner Author

TG9541 commented Nov 4, 2017

Using a NPM package.json for modeling the dependencies in a non-JavaScript project, while using GitHub Releases for storing artifacts, doesn't appear to work with the current GitHub "Dependency Graph" feature (neither in the package producing, nor in the package consuming repository). I asked the GitHub support for advice (see answer below) but the use case seems not to be covered.

For the records, here are some pointers:


Thanks for getting in touch! You asked:

Question: is a valid package.json files a sufficient condition for using the Dependeny Graph feature, or do other conditions apply (e.g. the repository has to contain Node.js code)?

To enable the dependency graph for your project, your repository must define Ruby or JavaScript dependencies in either a Gemfile or package.json file as mentioned here:

https://help.github.com/articles/listing-the-packages-that-a-repository-depends-on/

In this case, I see you have a package.json defined as well as a dependencies field. However, the dependency specified isn't something that we recognize:

"STM8eForth": "git://github.com/TG9541/stm8ef#master"

I recommend following this guide for checking what the valid inputs are for dependencies:

https://docs.npmjs.com/files/package.json#dependencies

@TG9541
Copy link
Owner Author

TG9541 commented Nov 4, 2017

For the time being, using well established dependency management infrastructure (e.g. maven, npm) does more harm than good to usability. I'll go for a simple Makefile/curl approach (see TG9541/W1209#5)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant