Comments (6)
This functionality was both added and removed in the last month.
At first thought it seemed ideal. However it ended up having some less than ideal traits:
- Since
zef test Some::Module
"just worked", thenzef build Some::Module
should also work - The above
zef build Some::Module
actually did work. But now there was an abundance of redundancy wherezef build Some::Module
zef test Some::Module
andzef install Some::Module
all ran the same stuff except for the processes after it (build
stopped right beforetest
,test
stopped right beforeinstall
) - Since both
test
andbuild
were able to accept module names this gave the impression that they should optionally fetch any required dependencies. This also means that bothtest
andbuild
commands need all the additional options/flags inmulti MAIN
to support search/depends/etc, which in turn makes the automaticUSAGE
that shows commands + options (not the --helpUSAGE
) even larger (mostly with redundant flags) test
should not imply runningbuild
. So theinstall
workflow cannot be used as is, adding only a way to stop after testing (it would have to use a different workflow to skipbuild
, unlike install)
I'm open to being convinced otherwise, but for now my evidence suggests the pros do not outweight the cons of added redundancy/complexity. The desired behavior can, however, be accomplished a few different ways:
# Fetch dependencies
zef --dry install Some::Module # Additionally runs `build` as needed
zef look Some::Module && zef --depsonly install . && zef test .
# Don't fetch dependencies
zef look Some::Module && zef build . && zef test . # Additionally runs `build`
zef look Some::Module && zef test .
tl;dr: If rakudo's &MAIN_HELPER
ever gets updated to gracefully handle universal options (options that all multi MAIN
share) the complexity will no longer be an issue, because it won't have to duplicate the same descriptive (so sometimes longer) variable names in every signature to get the proper USAGE
from zef.
In my mind, zef test .
depends on a on zef build .
. Ofcourse one can add a --no-build
for people who may want that behavior.
from zef.
Any update on this one?
from zef.
I will probably bring it back when I have some free time. I see there is a way to hide stuff from USAGE
that could alleviate my previously mentioned concerns, but because zef --dry install .
at least provides the functionality already, it's not yet at the top of my todo list
from zef.
So shall i close it or not?
from zef.
You can leave it open. Maybe someone else will have an opinion on it before I get around to redoing USAGE
from zef.
Related Issues (20)
- Out-of-sync installation of some modules? HOT 2
- memory leak HOT 1
- [Discussion] - mixing zef and alpine package installations HOT 2
- zef incorectly runs tests against (previosly installed) old module version HOT 5
- New env variables should be documented
- zef --help writes to stderr HOT 8
- zef does not see already installed module HOT 2
- zef silently ignores malformed dependency specifications HOT 2
- Is there a way to install, but not test, test dependencies? HOT 1
- Zef throws `Type check failed for return value; expected IO::Path but got Any (Any)` when it can't find the `META6.json` HOT 14
- [Feature Request] Simple method to remove old versions of modules
- Couldn't upgrade zef on windows HOT 2
- Failed to install TAP module on Windows HOT 6
- can't install .tar.gz files w/ META.info HOT 6
- Test output is repeated with every dependency name prefixed HOT 2
- Command `zef install ...` results in `Type check failed for return value; expected IO::Path but got Any (Any)` HOT 1
- zef does not compile under rakudo-jvm HOT 1
- Cannot install modules with zef on multi-user system HOT 1
- "latest" tag is strange :)
- Failed to create directory '/usr/share/perl6/site/short' with mode '0o777': Failed to mkdir 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 zef.