Skip to content
This repository has been archived by the owner on Jan 21, 2022. It is now read-only.

Lerna build #107

Closed
7 of 9 tasks
raulk opened this issue Sep 23, 2018 · 31 comments
Closed
7 of 9 tasks

Lerna build #107

raulk opened this issue Sep 23, 2018 · 31 comments
Labels
bounty Type: Feature New feature or request

Comments

@raulk
Copy link
Contributor

raulk commented Sep 23, 2018

Motivation

We want to publish each plugin independently on NPM, so that users can compose only the plugins they require in their deployment. Independent versioning of plugins may also be desirable.

Requirements

  • Configure the build to use lerna.
  • Each plugin should be enclosed in a separate package, with the exception of core, which should be part of the engine.
  • Resulting Node packages:
  • Help us decide if we want independent module versioning, or not. Argument for and against.
  • This issue should be resolved after Support resolving ENS names in queries (as a plugin) #106, so that we have at least 3 packages.
  • do not publish anything on NPM just yet, we will do that from the ConsenSys organisation.

Definition of done

  • PR accepted and merged, including all changes to package.json, directory layout, etc. to implement the above requirements.
  • Updated README and wiki pages: particularly "how to build" instructions, and "usage/install" sections.
  • Good discussion with a decision regarding independent versioning or not.
@raulk raulk added Type: Feature New feature or request bounty labels Sep 23, 2018
@gitcoinbot
Copy link

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 250.0 DAI (250.0 USD @ $1.0/DAI) attached to it.

@spm32
Copy link

spm32 commented Sep 28, 2018

Hey @mul1sh I see you already have quite a few large bounties in progress, are you sure you have time to take this on as well?

@mul1sh
Copy link

mul1sh commented Sep 28, 2018

@ceresstation yep I believe I can handle this one as well because i'm almost done with 2 my other bounties and the other one is WIP but isn't that urgent because of a major blocker we discovered in its implementation. So i believe I can handle this issue as I finish up and submit the other bounties, and submit it by Tuesday next week of course with daily updates, 😃 thanks.

@gitcoinbot
Copy link

gitcoinbot commented Oct 2, 2018

@mul1sh Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • warning (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

@mul1sh
Copy link

mul1sh commented Oct 2, 2018

uuhhmmm.....already made my PR @gitcoinbot 😂 😂 , so yes i'm still working on this issue

@mul1sh
Copy link

mul1sh commented Oct 2, 2018

@raulk btw has issue #106 been solved so that I continue working on this ticket?? thanks 🙂

@mul1sh
Copy link

mul1sh commented Oct 5, 2018

@raulk @ceresstation any help with the above 👆 query? or should I continue working and stop waiting for issue 106 to be closed?

@gitcoinbot
Copy link

@mul1sh Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • warning (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

1 similar comment
@gitcoinbot
Copy link

@mul1sh Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • warning (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

@raulk
Copy link
Contributor Author

raulk commented Oct 15, 2018

@mul1sh issue #106 has not been solved yet, as conveyed by the status "open". There is a WIP pull request in progress here: #111. You can track that for updates.

You can update your WIP PR to make sure we're not introducing a package-lock file, and that we're integrating with yarn.

@raulk
Copy link
Contributor Author

raulk commented Oct 18, 2018

@mul1sh Could you provide an estimate and a plan to move forward? I am not satisfied with the WIP PR #110, which only added basic boilerplate and didn't even restructure the tree in packages. That PR did not honor our usage of yarn, and instead attempted to introduce a package-lock.json as a result of plain NPM usage.

Please advise if you're still interested in pursuing this issue; if so, we'll need to see substantial progress in the next day, otherwise we'll release the bounty back to the community.

@mul1sh
Copy link

mul1sh commented Oct 18, 2018

@raulk sincere apologies for the delay, i truly wanted to finish this issue this week but things were abit chaotic for me.

Nonetheless i'm still very much interested in this issue and I plan to work on it from Friday and over the weekend and deliver it on Monday. So please expect another PR from me in less than 24 hours with more substantial changes.

Thanks.

@mul1sh
Copy link

mul1sh commented Oct 21, 2018

@raulk i've added the package tree, i'm now separating each of the dependencies of each package into a seperate package.json file. So i'm course to finishing this tomorrow.

2 questions though,

  1. For the ethql package, what constitutes the foundation + core plugin?
  2. Is the ens module ready for integration and if so, what are the respective files and folders to use?

Thanks for your patience, I highly appreciate it.

@mul1sh
Copy link

mul1sh commented Oct 31, 2018

@StevenJNPearce i'm working on this issue and it requires #106 to be working, any idea when it would be ready so that I incorporate it into my PR? Thanks 🙂

@raulk
Copy link
Contributor Author

raulk commented Nov 12, 2018

@mul1sh I believe I provided answers to those questions in #113. Note that getting #106 merged is not an impediment to nail the Lerna structure down, which is what this bounty is about. Once we were happy with the Lerna structure, converting the ENS plugin to it would've been trivial.

Unfortunately we haven't seen progress in the right direction, so we'll be putting this bounty up for grabs again in Gitcoin. Thanks!

@mul1sh
Copy link

mul1sh commented Nov 12, 2018

@raulk ok well noted, apologies again for the delay, i'll stop work so that someone else can pick it up.

@gitcoinbot
Copy link

gitcoinbot commented Nov 12, 2018

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 5 months ago.
Please review their action plans below:

1) evgeniuz has been approved to start work.

I would like to make this migration, was trying out lerna recently :) I will also check what versioning scheme seems to me more relevant for this case and provide my thoughts.

Learn more on the Gitcoin Issue Details page.

@spm32
Copy link

spm32 commented Nov 12, 2018

You're good to go @evgeniuz :)

@evgeniuz
Copy link
Contributor

Thanks, already started working on it. Will create WIP PR once I resolve issue with TypeScript typing between packages (during my quick tests web3 types were not resolved correctly). I will try to separate it in @types package, so that it can be removed when patches are merged in DefinitelyTyped.

@evgeniuz evgeniuz mentioned this issue Nov 14, 2018
@evgeniuz
Copy link
Contributor

evgeniuz commented Nov 14, 2018

As for independent versioning or not: my suggestion is go with independent at least up to version 1.0.0. Semantic versioning suggests that no API should break when minor/patch version are updated, so until you introduce breaking changes it's easier to maintain common versioning, than to track them separately (that's why it's default in lerna).

After version 1.0.0 I think it's still makes sense to keep common versioning: since packages are mostly plugins for ethql itself, it's unlikely that some other software will rely on a plugin without ethql, so they probably should be upgraded together.

There are two scenarios I can think of where independent versioning is better:

  • ethql plugins will receive lots of updates, while ethql core remains same for a long time - if new version of plugin is released everyone should update core/all other plugin, even if they don't use updated plugin, which makes little sense (although should not be harmful);
  • some other packages are introduced that can be used without ethql (e. g. some utility package useful in other context)

In this case you can switch to independent versioning by adding a single parameter to lerna.json, which can be done at any time.

@gitcoinbot
Copy link

@evgeniuz Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • reminder (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

1 similar comment
@gitcoinbot
Copy link

@evgeniuz Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • reminder (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

@spm32
Copy link

spm32 commented Dec 30, 2018

Hey @raulk have you had a chance to review @evgeniuz's work?

@kshinn
Copy link
Collaborator

kshinn commented Feb 25, 2019

@evgeniuz Sorry for the delay. Are you still interested in finishing this bounty? I've merged this branch into upstream consensus branch and I believe the only thing left to do is to update the README. At that point, I think we can consider this done and merged.

@evgeniuz
Copy link
Contributor

@kshinn Sure, will update README in a day or so.

@kshinn
Copy link
Collaborator

kshinn commented Feb 27, 2019

Great. If you can do that in a separate PR, I'm going to merge the original PR into master since it is blocking other work.

@evgeniuz
Copy link
Contributor

evgeniuz commented Mar 5, 2019

@kshinn just checked, README in lerna branch is already updated: those three commands (install, bootstrap, dev) is enough to start development. Lerna itself doesn't need any special moves for development (unless new module is added, but this is not a topic for README). Not sure if I need to add anything there.

@kshinn
Copy link
Collaborator

kshinn commented Mar 13, 2019

Thanks for checking. Considering this work finished.

@kshinn kshinn closed this as completed Mar 13, 2019
@kshinn
Copy link
Collaborator

kshinn commented Mar 13, 2019

@ceresstation Are we able to pay this bounty?

@gitcoinbot
Copy link

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 250.0 DAI (250.0 USD @ $1.0/DAI) has been submitted by:

  1. @evgeniuz

@ceresstation please take a look at the submitted work:


@gitcoinbot
Copy link

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


The funding of 250.0 DAI (250.0 USD @ $1.0/DAI) attached to this issue has been approved & issued to @evgeniuz.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bounty Type: Feature New feature or request
Projects
None yet
Development

No branches or pull requests

6 participants