Please summarize peer dependencies in colonyJS release message

colonyjs

#1

It would be a great help if the release message for each new release of colonyJS would list all the correct peer dependencies so we can make sure to upgrade everything together.
For example versions for:

"@colony/colonyNetwork" (and necessary dependencies to run it, e.g. node)
"@colony/colony-js-adapter-ethers"
"@colony/colony-js-client"
"@colony/colony-js-contract-loader-http"
"@colony/colony-js-contract-loader-network"
"ethers"

And anything else necessary.

Thanks! Then I could just focus on upgrading actual API changes and not worry about broken dependencies.


#2

I think this is a good idea! We’re not really using peer dependencies though but direct dependencies. The problem is that we are not adhering to proper semver (sorry!) at the moment as we’re planning to do a total rewrite of ColonyJS based on tailor.

I think as an intermediary solution this could work (basically adding the changed packages to the release).

What you can also do to bring everything up to date when a new colonyJS version is release is

yarn upgrade -S colony -C

which should upgrade all packages under the colony scope to the newest version.

Note: this should also upgrade purser if you have it installed (which is not necessarily a bad thing; don’t worry, we’re using proper semver there).


#3

Thanks for your suggestion. Unfortunately, I’ve had issues related to developing my colonyJS project that arose from misalignment with ethers as well as the node version itself in the past, which Ryan helped me resolve. So for the benefit of us masses out here I think it is worth explicitly mentioning known working versions of these as well so that we can absolutely rule out dependency issues when upgrading colony.

As a side note, I’ve had a frustrating past couple of weeks getting all of the following upgraded and working together. They had been working, but with various breaking API changes happening on the bleeding edge, waiting a year to upgrade is not a good idea either. It’s damned if you do and damned if you don’t. Various dependencies are now clashing resulting in having to spend 80% of my time not actually developing, but resolving dependency problems with unclear failure errors.

  • Truffle
  • Web3 (which must be held back for Truffle at v1 beta.37)
  • Zos, zos-lib and oppenzeppelin-eth because I am writing a supplemental contract that is using those libraries
  • Uport
  • IPFS
  • 3box

And Colony, including a change in how roles are handled through colonyJS, which has multiple ripple effects through my project because my custom contract checks to see if you have the right Colony role before allowing certain functions.

I would like to get back to “real” development! :slight_smile:


#4

Hey @bmiller59! Great suggestion.

We should definitely make known working versions more explicit so you don’t have to go through the pain of figuring out what dependencies are compatible with each other. In regards to the colonyJS packages themselves, the latest versions of each package will always be compatible with each other.

As Chris mentioned, we can add the changed packages to the release. We actually are doing this already in the Discourse release posts (colonyJS v1.11.2) and I’m not not sure why we haven’t started doing the same in the changelog. This should probably include current versions of packages not updated as well and we should also probably mention what version of ethers colonyJS is using.

A good reference point in the meantime would be checking out the versions that the colonyStarter packages are using. An update to the colonyStarter packages is coming today, which includes an initial implementation of your suggested feature request for a service module. I will follow up on the issue you opened in GitHub.


#5

Also, I am really interested in seeing the project you are building! Do you have any code you can share?


#6

Great, thanks for all of this Ryan. I appreciate it. I think having it in the changelog will be very helpful for people like me who watch releases on Github so I know what to update.

For now, I’ll look for the package version in the new colonyStarter when it is released.

As for what I am working on, I was hoping to have something released well before now but various personal and technical slowdowns have create delays. It will be an Affero GPL licensed dapp meant to be a foundation for creating a new democratic, distributed digital commons. It’s a large vision and I am only working on step 1 of many. I hope to release this first partial alpha on Github later this spring and then reach out to find other collaborators at that point.


#7

Awesome! I’m very excited to see what you have been building. A large vision is good as long as you are working on it one step at a time. Sounds like you are on track. Looking forward to seeing the MVP!

I will let you know what colony-cli is released and would love to get your feedback. I need to run through some tests and realign the starter packages a bit but I am hoping to release by the end of the day.