Comments (4)
- It is expected that client and server will both point at the same git repo. The server will update that repo at some point, while the clients will only ever read from the repo. It is indeed expected that the client and server will be identical, because they point at the same time.
- Both client and server only update files in the current directory they are started from. The tests will never be run directly in the repo. I expect you to create a bake-managed directory outside your source repo that you always run clients or servers from - the fact that test creates a subdirectory is mostly an artefact of the test, so I can debug into it more directly.
- Everything is run in a direct subdirectory of the working directory.
- Clients are indeed slaves which only do exactly what the server tells them. In general a test is only run on one client, but there are some cases where if you have multiple clients and dependencies where multiple clients may have to run the same test.
So yes, pretty much correct :)
BTW, you should make sure you use bake from the git repo, not from Hackage, since the code is evolving quickly and I've fixed a number of bugs and made a lot of optimisations - and continue to do so.
from bake.
Thanks for the detailed answer. Yes, I am following closely your repo. BTW, I this raises a question about how to contribute back: I use bake as CI for some proprietary software meaning the repository is a private bitbucket repo. What would be the best way to propose patches/PR? I also have a github clone, so I could imagine propagating back the changes relevant to bake proper to public github repo and propose PR from there. Or I could simply send patches...
First thing I wanted to contribute: I usually do -Wall -Werror
in my code so that no warning can escape unattended. I did this on bake code and noticed quite a few places with, among other things, unused bindings, so I started "cleaning" that stuff.
from bake.
Patches are best as pull requests, but I can take a diff if that's easier.
I tend not to be a fan of -Wall. Some of the GHC errors, like unused variables, can be downright unhelpful - e.g.
map f [] = []
map f (x:xs) = f x : map f xs
This warns about having the variable f
in the first line unused. The "fix" is use _
instead of f
, which makes a dull bit of the code that is deliberately unchanging suddenly into something special, and hurts readability. That said, it also catches things like let x = 1 in y
, where the binding of x
is totally pointless, but I'm not a fan of blindly avoiding all warnings. I also test using CI with -Werror, but don't write it in the cabal file, so I get notified of all warnings but it doesn't break for my users.
from bake.
Good point. But I think the upside wins in the end, even if there are a couple annoying warnings like the one you notice.
from bake.
Related Issues (20)
- Support much bigger files HOT 1
- Notifications on clients coming/going are missing HOT 1
- Include patch author in the emails HOT 1
- Client crashes due to error 500 when finishing HOT 15
- Bake client process is too CPU heavy HOT 1
- Don't send emails until after updating the state
- Merged summary issues are in the wrong order
- Code is built twice HOT 6
- Build output disappears HOT 3
- How to run tests in parallel with multiple clients? HOT 13
- Add -K1K to the test suite
- How do I use `bake gc` ? HOT 4
- GC should not remove data from latest incremental build
- Using 'Retry' in admin view adds a quote to patch number preventing it to be merged HOT 2
- Bring up clients as needed? (assuming clients are virtualized) HOT 7
- Problems building on ghc-7.8.4 HOT 6
- Document all functions HOT 4
- Build failure with extra-1.5.1 HOT 1
- Support multiple Git repositories from a single server? HOT 1
- bake-0.5 HOT 2
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 bake.