Skip to content

Open Discussion: change library name #124

@c0nsol3

Description

@c0nsol3

Expected Behavior

As the ecosystem grows and more projects fork Ark's code they usually also fork python-crypto and python-client libs. This means developers working in the ecosystem install multiple versions of these same libraries but for different Ark forks.

For example I'd install crypto lib for Ark and Noah (an imaginative fork), like so:

  • pip install arkecosystem-crypto
  • pip install noah-crypto

Now I should be able to use both crypto libs in my projects at once, like so:

import ark_crypto
import noah_crypto

Current Behavior

Currently when I install crypto lib for Ark and Noah (an imaginative fork) I use the following commands

  • pip install arkecosystem-crypto
  • pip install noah-crypto
import crypto  # which crypto - Ark's or Noah's?

All good till this point. But problem occurs when I try to use both libraries in my project as both projects use the name crypto to get imported. This is an issue as it basically means one can not use Python libraries from Ark's ecosystem as they all end up having conflicting names. Given how generic name crypto is, it's very likely that another library (not related to Ark) can be using that name which will cause the same issue.

Possible Solution

a) Rename crypto directory to ark_crypto or arkcrypto
b) Change the name when packaging the library w/o the need to modify existing directories in the project (I'm not entirely certain this works and it's more difficult to test because you need to publish the library and install it to see if it worked.)

I've only opened this issue in python-crypto but it also affects python-client and perhaps libraries for other languages as well (depending on how they resolve such name conflicts).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Status: StaleThe pull request is in need of updates but there has not been a sufficient response.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions