mozilla / node-convict

Featureful configuration management library for Node.js

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Preparing convict 6

madarche opened this issue · comments

@A-312, since we are preparing a new major version, are there any breaking changes that you would like to be included in 6.0.0?

commented

There are not a break change but :

#314 #336 and #347 ? (but I think #347 have many conflict in the new branch)


For #342, I need one week-end or one full day. I think, this one will ready before the 10th january, for 6.0.0 or 7.0.0.

commented

This morning, I rebased my PRs into mozilla:feat-multi-packages-split : #347, #348, #336

commented

I will wait that all my PR is merged before rebase #342 (because if I do before I will do resolve conflict several time).

I reopen #352 to prepare #342 and have less work in #342 rebase.

commented

Can you rebase mozilla:feat-multi-packages-split into master ? Because this commit is missing : d263763

commented

#314 ready too

commented

I did the work of merging & resolving conflict in my PR#353 to save some time and let you merge the 6.0.0 with only one click :) (You just need to write the CHANGELOG.md and fix my english :') )

commented

I will make another PR (for 6.0.0), to support default like property name in config.

Today or tomorrow, I will improve default usage in parsing of schema and in validate (to be more user friendly) (#337), you can merge my PR but just wait my last change.

commented

I would like to take advantage of these break changes to rename some function. After reading the new doc of #314: https://github.com/mozilla/node-convict/pull/314/files#diff-24ac9951b3e0cda0a70e9b9877953990R306 I think merge is more appropriate function name that load or loadFile. Because when we use load we merge configs depending of getters priority.

@madarche Should we rename/merge .load(object) and .loadFile(string | array) into a new function .merge(object | string | array) ?

We can mark load and loadFile to deprecated and remove it for convict v7 or v8. Or remove this 2 functions now to force people to read the changelog/readme of 6.0.0.

commented

Object-path was updated this morning but not yet published on npm.

@A-312 I'm working on master to update the dependencies, and I'm new to lerna: I've just read about but not actually used it before.

On my local repository I've changed the 4 package.json files and I now want to update the corresponding package-lock.json files.

From what I've read I think the following command should do what I want:

$ npx lerna exec -- npm i

I've also tried the following command, but I'm really less sure this is what I need to just update the corresponding package-lock.json files:

$ npx lerna bootstrap

But both commands produce the same kind of warnings:

lerna WARN ECYCLE Dependency cycles detected, you should fix these!
lerna WARN ECYCLE convict-format-with-moment -> convict -> convict-format-with-moment
lerna WARN ECYCLE convict-format-with-validator -> convict -> convict-format-with-moment -> convict
lerna WARN ECYCLE convict-format-with-moment -> convict -> convict-format-with-validator -> convict
lerna WARN ECYCLE convict-format-with-validator -> convict -> convict-format-with-validator
lerna WARN ECYCLE convict -> convict-format-with-moment -> convict

and finish with a 1 error code.

What commands should I use? Or is it a real problem?

Beside, could you recommend me a project which is using lerna and has documented its commands for contributing? A beginner's guide?

@A-312 could you help me please?

commented

@madarche It the version script tag in your package.json that cause your problem.

I forget to edit. I mean this one : https://github.com/mozilla/node-convict/blob/master/assert_changelog_ready

(I published my fork https://www.npmjs.com/package/blueconfig because I had to use it for my project, you can use it like example)

Thank you @A-312, I'll use https://www.npmjs.com/package/blueconfig as a model.

I'll report here soon.

@A-312 the solution to fix the Dependency cycles detected warnings was to remove all references to convict-format-with-moment and convict-format-with-validator from convict. This has been fixed with 5a16dd1. The main change was in convict's package.json.

I've checked-out the code of blueconfig and the Dependency cycles detected warnings are there too:

node-blueconfig (master)$ npx lerna exec -- npm i
lerna notice cli v3.20.2
lerna info Executing command in 3 packages: "npm i"
lerna WARN ECYCLE Dependency cycles detected, you should fix these!
lerna WARN ECYCLE blueconfig-format-with-moment -> blueconfig -> blueconfig-format-with-moment
lerna WARN ECYCLE blueconfig-format-with-validator -> (nested cycle: blueconfig-format-with-moment -> blueconfig -> blueconfig-format-with-moment) -> blueconfig-format-with-validator
lerna WARN ECYCLE (nested cycle: blueconfig-format-with-validator -> (nested cycle: blueconfig-format-with-moment -> blueconfig -> blueconfig-format-with-moment) -> blueconfig-format-with-validator) -> (nested cycle: blueconfig-format-with-validator -> (nested cycle: blueconfig-format-with-moment -> blueconfig -> blueconfig-format-with-moment) -> blueconfig-format-with-validator)
commented

I think npx lerna exec -- npm i is not a good command, maybe you should do: npm bootstrap ?

commented

In blueconfig, I think I will remove devDependencies in packages/*/package.json

@A-312:

  • OK for lerna bootstrap! Thanks!
  • Acknowledged about intention to remove devDependencies in packages/*/package.json. I'm investigating different options in the same area, to see if it's possible/desirable to have test coverage globally and/or separately for each package.

convict@6.0.0 is now ready for publishing. All the points related to the use of lerna have been dealt with #368.