aldlevine / comptroller Goto Github PK
View Code? Open in Web Editor NEWA simple and lightweight tool to manage your monorepo.
License: MIT License
A simple and lightweight tool to manage your monorepo.
License: MIT License
Right now none of the async functions handle promise exceptions. This makes it very difficult to debug.
This project is severely lacking in tests.
This seems to happen because patches are applied to each package all at once. After bumping the main package version, if one package that includes another as a dependency is patched before the package it depends on the versions won't match. This can likely be solved by applying all inherit patches before applying any other patches,
Not clear if or how this can be used for a project using TypeScript or ES modules.
Please add notes on this in the readme. Only static require
analysis is mentioned.
Would this perhaps be possible using an extension of sorts?
Thanks.
Should add an option which, when added to local packages' package.json, will tell Comptroller to copy those values from the main package.json. This is beneficial for, among other things, keeping the version consistent between all local packages with the parent package.
When a local package's package.json is missing this breaks.
How does the infrastructure work behind the hood?
Are the test even correct!?
For the fileStructure
used you have a spelling error for source
// WORKS (guess the option is ignored)
"comptroller": {
"srource": "index.js",
}
// FUCKS UP!
"comptroller": {
"source": "index.js", // BREAKS!!
}
Also, my new detective infrastructure works, to find dependencies for these file/module types:
However, I can see that they are resolved just once, whereas the require
are resolved deeply somehow... So there must be some other hard coding going on that is targeted specifically to CommonJS/node require
. Please advice.
Please see: https://github.com/kristianmandrup/comptroller/tree/test
🚨 You need to enable Continuous Integration on all branches of this repository. 🚨
To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because it uses your CI build statuses to figure out when to notify you about breaking changes.
Since we didn’t receive a CI status on the greenkeeper/initial
branch, it’s possible that you don’t have CI set up yet. We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.
If you have already set up a CI for this repository, you might need to check how it’s configured. Make sure it is set to run on all new branches. If you don’t want it to run on absolutely every branch, you can whitelist branches starting with greenkeeper/
.
Once you have installed and configured CI on this repository correctly, you’ll need to re-trigger Greenkeeper’s initial pull request. To do this, please delete the greenkeeper/initial
branch in this repository, and then remove and re-add this repository to the Greenkeeper integration’s white list on Github. You'll find this list on your repo or organization’s settings page, under Installed GitHub Apps.
When writing updates to package.json's Comptroller aggressively reformats the file. This is okay if you don't care about how it's structured, but if you have your own way of organizing the file it can get pretty annoying. We should update this to retain as much of the provided format as possible.
When executing comp update -s
, Comptroller applies the dev
option from the top level config as opposed to allowing subpackages determine whether or not a package should be marked as dev. If a subpackage specifies the dev
option it should override the top level option.
The custom detective
module appears to not provide two dependencies it needs:
I'm not sure if this is an issue with my expectations or my settings, or if it's an actual limitation of Comptroller, so any help would be appreciated.
I have the following file structure:
Root
-- package.json (parent)
-- src
---- shared
------ package.json
------ tests (folder)
------ code files
---- components
------ component-a
-------- package.json
-------- tests (folder)
-------- code files
Ideally, I'm trying to manage the package.json files in both shared
and components
with Comptroller and have them sync with the root level package.json, but I can't seem to get it to actually pick up the children package.json files.
My current settings for Comptroller are:
"comptroller": {
"packages": "{src/components/*,src/shared}",
"source": "src/**/*.[js|vue]",
"dev": "src/**/tests/*.js",
"ignore": "**/node_modules/**",
"inherits": [
"version",
"author",
"homepage",
"browserslist",
"license"
],
"detective": {
"parse": {
"plugins": ["objectRestSpread"]
}
}
}
I've tried a few different permutations at this point, but none of them have worked so far. None of my subpackages deviate from the main template, so none of them have a comptroller
section in their package.json files.
When I run comp update
, the only feedback I get in the terminal is:
and none of the package.json files appear to be updated (no inherited fields are added/updated). However, if I run comp update -s
, I get the warnings for unused dependencies and package.json is obviously updated.
From what I've found when digging through the code, issues, and what examples I've been able to find, I'd expect Comptroller to recurse through the folders in packages to find the different packages, as well as allow for a couple of different package folder locations, the same way Yarn workspaces does (which is in my setup and works). At least with what I have set up, however, it doesn't seem to be doing this.
Can/should it be able to go through package folders recursively? If not, is there a way around this limitation? If so, how is my configuration incorrect and what should it be?
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.