Check out our website at ipfs.tech.
For papers on IPFS, please see the Academic Papers section of the IPFS Docs.
MIT.
AEgir - Automated JavaScript project building
Home Page: https://ipfs.github.io/aegir
License: Other
Check out our website at ipfs.tech.
For papers on IPFS, please see the Academic Papers section of the IPFS Docs.
MIT.
use case:
aegir-test --entry=./test/core
aegir-test --entry=./test/cli
aegir-test --entry=./test/http-api
aegir-test --entry=./test/tests-for-lars-to-check-websockets-stuff
Came across this problem in ipfs/js-ipfs#631 where I made a PR from my fork to the main repository. Since Travis would hide environment variables for forks (and rightly so), Sauce Labs could not authenticate, therefore failing the tests.
Not sure about the solution, but currently, any PR coming from a contributor not having write access to the main repository, would fail.
Getting this error on npm release
[22:37:55] Error: Cannot find module 'uglify-js'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Gulp.gulp.task (/Users/koruza/code/js-ipfs-api/node_modules/aegir/tasks/build/browser.js:10:20)
at module.exports (/Users/koruza/code/js-ipfs-api/node_modules/orchestrator/lib/runTask.js:34:7)
at Gulp.Orchestrator._runTask (/Users/koruza/code/js-ipfs-api/node_modules/orchestrator/index.js:273:3)
at Gulp.Orchestrator._runStep (/Users/koruza/code/js-ipfs-api/node_modules/orchestrator/index.js:214:10)
at /Users/koruza/code/js-ipfs-api/node_modules/orchestrator/index.js:279:18
at finish (/Users/koruza/code/js-ipfs-api/node_modules/orchestrator/lib/runTask.js:21:8)
at cb (/Users/koruza/code/js-ipfs-api/node_modules/orchestrator/lib/runTask.js:29:3)
at next (/Users/koruza/code/js-ipfs-api/node_modules/rimraf/rimraf.js:74:7)
at FSReqWrap.CB [as oncomplete] (/Users/koruza/code/js-ipfs-api/node_modules/rimraf/rimraf.js:110:9)
And if uglify-js is installed, I get a type error on .replace
during the minify step
^c
does nothing to stop it
The package.json in harmony branch on UglifyJS2 has rename name field to 'uglify-es'
Install fail! Error: [[email protected] › [email protected] › [email protected] › [email protected] › [email protected] › uglify-js@github:mishoo/UglifyJS2#harmony] Invalid Package, expected uglify-js but found uglify-es
Something like:
npm install --save-dev aegir chai pre-commit
Add eslint rule/plugin to check for self
vs window
.
Generation using
Documentation upload during aegir-relase
by using the technique from here:
Branch | Build failing 🚨 |
---|---|
Dependency | eslint-plugin-standard |
Current Version | 2.1.1 |
Type | dependency |
This version is covered by your current version range and after updating it in your project the build failed.
As eslint-plugin-standard is a direct dependency of this project this is very likely breaking your project right now. If other packages depend on you it’s very likely also breaking them.
I recommend you give this issue a very high priority. I’m sure you can resolve this 💪
There is a collection of frequently asked questions and of course you may always ask my humans.
Your Greenkeeper Bot 🌴
Every module below 1.0.0 should use ~
instead of ^
. Aegir should check for this.
test:saucelabs
, and enabled by running aegir-test --env saucelabs
$SAUCE_USERNAME
and $SAUCE_ACCESS_KEY
(already done by the karma-sauce-launcher)Add this rule
Followed by #99 (comment) and as @dignifiedquire has mentioned several times:
I am not saying the current version is particularly good, in reality the whole thing just needs refactoring and clean up, this was never intended to support many options.
We need to take the project to the next level, establish what it is all about, create a Roadmap, list out every item that needs to be handled and refactor the codebase to a state where it is easy to understand what is going on.
@dignifiedquire I believe you are the best person to create the Roadmap.
Another thing that might make sense, is move this to the IPFS org and welcome the community to take ownership and contribute, right now, the fact that it is only under your user account kind of hides it from contributors, I feel.
Since this module is going to be used so widely across IPFS, I expect many current & prospective contributors to be funneled to this repo at one point or another. As such, I'd be really interested in seeing the README be very clear about
a. what is dignified.js? and
b. what problems does it solve?
Right now it does a very good job of explaining its subcommands and setting it up, but having Background and Description sections that explain a bit more could save @dignifiedquire the work of explaining things many more times via IRC or elsewhere.
When running tests under the karma-mocha-webworker plugin, some tests fail but they are not being marked as failed by karma-runner.
Would be effective if we could really get into the habit of writing git commit msgs that conforms to our standard.
One way of enforcing this could be to look through the commits pre-push, to make sure that they match our expectations.
Could also run in a post-commit hook I guess.
Related: #30
Sometimes, after npm run release
is executed, doing ^c
only stops the run of the tests, but the build + release steps are still executed, it is actually a way to bypass the tests.
When running the command aegis-test node
, I get the following error:
Message:
Command failed: mocha --colors ---r=spec --timeout=80000
error: unknown option `---r'
Any clue? Also, am willing to contribute fix..
Any technical reason for:
if (isNode) {
tfbPath = path.join(__dirname, '/fixtures/15mb.random')
testfileBig = fs.createReadStream(tfbPath, { bufferSize: 128 })
testfile = loadFixture(__dirname, '/fixtures/testfile.txt')
} else {
testfile = loadFixture(__dirname, 'fixtures/testfile.txt')
}
Found in https://github.com/ipfs/js-ipfs-api/blob/master/test/get.spec.js
When running ipfs-bitswap tests with aegir 9.2.0:
It is a very strange behaviour. aegir 9.1.2 is 👌🏽
Merged, and renamed to aegir
I want a place describing rationale behind linting decisions in the documentation.
I just went to ipfs/community to the js-guidelines to look for a place to add a note about not nesting deps too deeply. There isn't a good place to put this. I think this isn't great; we should be able to explain our linting decisions in aegir, somewhere, if only in this README, or in the js-guidelines README.
It would be great if we could add a section for each linting decision, or each major design decision. I am 100% ok with pointing to issues in brief sentences, but I think this should exist. Otherwise, I don't know how to find the rationale for something if I find it controversial.
Aegir leaves (often) zombie processes created by the gulpfile tasks, when the tests fail. I find myself constantly having to kill processes manually by finding it through the port:
» lsof -n -i4TCP:9095 | grep LISTEN
node 4660 ground-control 22u IPv4 0x4d30d26af3bdd79b 0t0 TCP *:9095 (LISTEN)
Is there a way to get it to run the 'post:tests' tasks, so that it closes anything that it opened during the pre:test?
This is probably due to gulp-mocha
Current stats are showing we can do a lot to improve general test execution time.
npm run test:node 3.70s user 0.59s system 89% cpu 4.784 total
node_modules/.bin/aegir-test --env node 2.47s user 0.25s system 108% cpu 2.508 total
mocha 1.16s user 0.10s system 100% cpu 1.261 total
This also means we should not suggest to use npm run
, but rather provide a global command which avoids the large overhead npm run
has.
npm doesn't let me publish
» npm publish
npm http request PUT https://registry.npmjs.org/aegir
npm http 403 https://registry.npmjs.org/aegir
npm ERR! publish Failed PUT 403
npm ERR! Darwin 15.4.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "publish"
npm ERR! node v4.3.2
npm ERR! npm v3.8.7
npm ERR! code E403
npm ERR! you do not have permission to publish "aegir". Are you logged in as the correct user? : aegir
Although it lists me as an owner https://www.npmjs.com/package/aegir
When adding a new example to js-ipfs-api and running git commit
, aegir runs lint and it failed somewhere but not showing any real errors.
Running eslint
directly on the newly added code revealed the following error (but not sure if this is the only/right one)
➜ js-ipfs-api git:(master) ✗ ./node_modules/.bin/eslint -c node_modules/aegir/config/eslintrc.yml examples
Oops! Something went wrong! :(
ESLint couldn't find the plugin "eslint-plugin-react". This can happen for a couple different reasons:
1. If ESLint is installed globally, then make sure eslint-plugin-react is also installed globally. A globally-installed ESLint cannot find a locally-installed plugin.
2. If ESLint is installed locally, then it's likely that the plugin isn't installed correctly. Try reinstalling by running the following:
npm i eslint-plugin-react@latest --save-dev
If you still can't figure out the problem, please stop by https://gitter.im/eslint/eslint to chat with the team.
Currently this is a dependency so react
is pulled as well :(
I found the problem by installing js-ipfs
and having a second react install that broke my app.
Bundling babel-polyfill with libs is discouraged by Babel devs, see https://babeljs.io/docs/usage/polyfill/. The Babel polyfill can only run once in the browser, it throws the second time it runs and pulls everything else down with it.
Suggestions:
transform-runtime
plugin, orAny strong reason to keep:
[623] ./~/chai/lib/chai/utils/overwriteProperty.js 1.53 kB {1} {2} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16} {17} {18} {19} {20} {21} {22} {23}
?
It has been at least more than 11 times that I was bitten by this and then I need to use very unorthodox techniques to figure out where the silenced error was thrown.
Can we print out those errors?
Related #67
I just read upon jsnext:main
in https://github.com/rollup/rollup/wiki/jsnext:main and realised that the current setup is not correct. What we do is right now
main
: ES5 transpiled codejsnext:main
ES6 original code, fully compatible with @4 and aboveWhat the wiki article above actually suggest forjsnext:main
is
jsnext:main will point to a module that has ES2015 module syntax but otherwise only syntax features that node supports.
My suggestion to fixing this, is to stop transpiling for node code as we are already setting the engine version to node >= 4 and running CI against the non transpiled version. As such we can drop the whole lib
directory and just start pointing main
to src/index.js
.
This will also enable us to make npm link
work much better out of the box when doing development on multiple modules.
cc @diasdavid
From 80s to 20s (or even 15s), it is annoying to have to wait for some timeouts and in really, no test should need to take that long.
Can we get Istanbul as one of the convenient scripts inside the tool? Thank you :)
Can we have an option to specify what is the root of the folder with the tests we want to run?
Branch | Build failing 🚨 |
---|---|
Dependency | eslint-config-standard |
Current Version | 7.0.1 |
Type | dependency |
This version is covered by your current version range and after updating it in your project the build failed.
As eslint-config-standard is a direct dependency of this project this is very likely breaking your project right now. If other packages depend on you it’s very likely also breaking them.
I recommend you give this issue a very high priority. I’m sure you can resolve this 💪
There is a collection of frequently asked questions and of course you may always ask my humans.
Your Greenkeeper Bot 🌴
As we are using callbacks in quite a lot of places and probably will so for a long time I would like to suggest adding these two new rules to the eslint config to enforce any deep nesting
Branch | Build failing 🚨 |
---|---|
Dependency | webpack-merge |
Current Version | 4.0.0 |
Type | dependency |
This version is covered by your current version range and after updating it in your project the build failed.
As webpack-merge is a direct dependency of this project this is very likely breaking your project right now. If other packages depend on you it’s very likely also breaking them.
I recommend you give this issue a very high priority. I’m sure you can resolve this 💪
The new version differs by 9 commits .
d9559b9
4.1.0
ca835a7
Update lib
5ad8c5f
chore: Add @herecydev to contributors
5b643d5
chore: Update changelog
6bf19b6
Merge pull request #74 from herecydev/master
9e21275
Added multiple merging to readme
8b9d376
Formatting fixes
f62d69f
Added more tests to cover upsert
237117c
Added merge multiple that outputs an array
See the full diff.
There is a collection of frequently asked questions and of course you may always ask my humans.
Your Greenkeeper Bot 🌴
I'm not sure that dignified.js is the best name for this module, if it is to be accepted widely.
It comes off to me (as a native English speaker) that you're trying to give this tool respect by naming it something respectful. But you have to gain respect, not just name it, so it sounds a bit haughty. I think we should name it something else.
Ideally, the name would reflect the function. Naming is hard. But what does this actually do?
Automated JavaScript project management.
That's really broad. Can we have a more concise definition to work with?
please 👼
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.