Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use npm and git submodules #728

Merged
merged 4 commits into from
May 9, 2019
Merged

Use npm and git submodules #728

merged 4 commits into from
May 9, 2019

Commits on May 7, 2019

  1. Use npm and git submodules

    Code deduplication by getting dependencies from npm and git submodules.
    
    * `UtilityToken` contracts are now imported as a git submodule.
    * `Organization` contracst are now imported as a git submodule inside
      the `UtilityToken` submodule.
    * `SafeMath` is now imported as open zeppelin npm package.
    
    Note that inside the utility token repository, `token` has not been
    renamed to `value token`, and therefore some tests needed to be updated.
    Also, some tests required updating as `SafeMath` does not give an error
    message anymore.
    
    `Organiation` contracts cannot be imported as a separate git submodule
    dependency, as then the solidity compiler will complain that there are
    multiple definitions of the same symbol (e.g. `contract Organization`).
    
    For now it is fine to import organization from inside utility tokens,
    but that will lead to an error latest when there is a diamond
    dependency:
    
    ```
           Organization
            /        \
    UtilityToken   SomethingElse
            \        /
           NewRepository
    ```
    
    In this case, it couldn't be avoided that `Organization` was defined
    multiple times.
    
    To fix this, I created follow-up ticket:
    OpenST/developer-guidelines#27
    
    Deduplicating EIP20Token is out-of-scope, as it requires changing
    UtilityToken contracts (which has an EIP20Token) and all consumers of
    UtilityToken, which currently may or may not rely on the EIP20Token from
    there.
    Simply adding the npm package does not work, as there will be an error
    about multiple definitions of the same Symbol (`contract EIP20Token`).
    
    To fix this, I created a follow-up ticket:
    OpenST/developer-guidelines#28
    
    Fixes OpenST#712
    schemar committed May 7, 2019
    Configuration menu
    Copy the full SHA
    d74dbab View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a7cedb1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f071549 View commit details
    Browse the repository at this point in the history
  4. Remove utility token tests

    schemar committed May 7, 2019
    Configuration menu
    Copy the full SHA
    65dbac0 View commit details
    Browse the repository at this point in the history