Shards: CI: test master against Crystal nightly

Created on 6 Oct 2017  路  7Comments  路  Source: crystal-lang/shards

From the sentence "Shards master tries to follow Crystal master" stems 2 issues:

  1. Shards development isn't very active (it usually works well) and compatibility with Crystal master is only manually detected at some point, later after the issue, and sometimes just before a Crystal release.
  2. Since the master branch follows crystal master, CI ends up being broken until the next Crystal release when a breaking change occurs.

To improve this, we should:

  1. test master against a crystal nightly build 鈥攂ut do they exist?
  2. enable a Travis cron job, to test master daily 鈥攗nless a commit was issued during the day.

Follow up from https://github.com/crystal-lang/crystal/issues/5083.

enhancement help wanted

All 7 comments

I don't see this as an issue. Crystal master is a temporary thing that changes all the time. People shouldn't use it. They should use releases. And releases are guaranteed to have a compatible shards working because we make sure it builds before a release.

Not an issue for me (and I'm sure it's not an issue for you, @ysbaddaden )

Sure, 1. sure ain't a real problem, but being notified with a daily or weekly cron-job may be nice. But 2. means CI is broken until the next release, which can be problematic (e.g. git push and pull requests will always fail).

by issuing a homebrew formula you somewhat accepted that one can/ attempts to build from the master and for certain tests it might be good, not general usage, sure
(after all, this is actually an easy way to do it)

the issues with shards always will have to be fixed anyway, may as well see them in CI

@monouser7dig I don't think that just because we have a homebew formula, we should expect HEAD to work. Having a homebrew formula is a nicety to install releases, not a requirement for us not to break it with --HEAD.

We should not expect it to work flawlesslesly but a minimium of effort could be spend to detect breaking changes and eventually fix them.

Realistically these breaking changes will not occur that frequently?

If you think this is too much workload/ slows down other areas it is ok to leave it as is but a running CI job that detects work that has to be done anyway seems reasonably lightweight.

Alternatively, if building bin/shards fails, we could download+build crystal master then retry. If someone has some time to lose on this, please open a pull request :)

With the new CI setup of crystal, there are finally nightly builds available. At least the nightly docker image should be usable pretty easy.

There is also bcardiff/test-ecosystem would it make sense to add shards there, too? Or run the shards specs directly with the crystal nightlies. At least for the latest stable (I'm not sure, maybe this is already implemented)?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

straight-shoota picture straight-shoota  路  5Comments

kostya picture kostya  路  3Comments

straight-shoota picture straight-shoota  路  4Comments

paulcsmith picture paulcsmith  路  8Comments

Blacksmoke16 picture Blacksmoke16  路  8Comments