Comments (14)
Should the src
input always be the current repo?
from legacy-old-hercules.
We could get rid of src input in the first place since imports can be relative and we'll just evaluate some conventional file like release.nix
from legacy-old-hercules.
That's a good point. I suppose it's only there in the existing declarative jobsets for ease of integration
from legacy-old-hercules.
Indeed :)
from legacy-old-hercules.
unless it could be used to do things such as building the branch with master merged into it or something. I'm not sure that nix is the right environment for that though.
from legacy-old-hercules.
@expipiplus1 since yaml
uses attoparsec https://github.com/snoyberg/yaml/blob/master/yaml.cabal#L58, how much work would we need to make yaml provide friendly error message? Rewrite backend to megaparsec? I'd like to understand the scope here.
from legacy-old-hercules.
from legacy-old-hercules.
@expipiplus1 we can still swap out the parser in future, but I'd like to be sure we don't use a parser that won't produce useful messages to users if they make mistakes in declarative config.
from legacy-old-hercules.
I really appreciate what you guys are trying to do with this project.
I am curious as to what you mean when you say you want to make the declarative format more Travis CI like because they and other build servers like them have a very strong correlation where 1 branch = 1 jobset while Hydras declarative format takes the form of a special jobsets that creates the other jobsets. So which model are you planning for Hercules?
Personally i like the Travis model and the Hydra model feels bolted on as an afterthought though it is a lot more flexible and more complex.
from legacy-old-hercules.
Thanks!
declarative format takes the form of a special jobsets that creates the other jobsets
I'm not sure what you mean by that exactly. Can you provide an example?
from legacy-old-hercules.
@domenkozar he's talking about the declarative jobset functionality that shlevy added to hydra. the .jobsets
jobset.
from legacy-old-hercules.
@griff Hydra declarative jobsets is a feature that added declarative format with minimal code change. But it wasn't really properly integrated, which we plan to do travis-ci like.
We might need to consider that a project can have multiple jobsets though.
from legacy-old-hercules.
@domenkozar I believe you can have different content in .travis.yml
in different branches on Travis CI. Doing the same with this project might solve the multiple jobsets per project though you would then be limited to 1 jobset pr. branch.
from legacy-old-hercules.
Although I have no say in this, I want to contribute my thoughts to this discussion. Two distinct points I have to make:
JSON for jobsets
I use hydra declarative jobset feature only recently. The first thing that strikes me is, that you only need JSON ever once per project, namely the one file you use to instantiate the project itself and that points hydra to the nix expression that generates the .jobsets
jobset. After that you can handle everything from that nix expression. I wrote a small library (20+ lines) that handles argument testing and json creation, which is trivial as nix has toJSON
as a builtin. This feature does not feel like an afterthought to me. BTW an extra src
input is not needed for declarative jobsets as it comes as declInput
into the nix expression already.
Definition of project
As projects in hydra are the basis for defining releases, it is natural to have multiple jobsets per project of which any one might evolve into a release or multiple releases. In that sense, projects should support "multiple branches". The flexibility is a great gain and comes at virtually no cost in the trivial cases. If another path is pursued in hercules, declarative projects might have other needs, though.
from legacy-old-hercules.
Related Issues (20)
- Autogenerate secret.key on first start HOT 7
- In DEBUG print also inserting queries
- Private access to projects, jobsets, jobs, logs, and outputs HOT 3
- SSH binary cache keys management thorugh Hercules HOT 11
- Test suite, Elm HOT 4
- NixOS package/module HOT 3
- Hydra-Build-Products HOT 1
- Smarter dependency-aware evaluator than Hydra HOT 4
- There should be user facing status for every non trivial operation
- Idea: be able to bisect between SCM commits
- Better interface to nix-build
- Be able to estimate job build time HOT 3
- Prepend each log line with a timestamp HOT 2
- eval input changes
- support nix metrics in hercules
- Allow dependencies between jobsets
- Badge / shield support HOT 1
- Deterministic bootstrapping HOT 5
- TODO list HOT 1
- Hercules as a Service HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from legacy-old-hercules.