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

chore: deprecating rust folder #1482

Merged
merged 2 commits into from
Jan 10, 2022
Merged

Conversation

thlorenz
Copy link
Contributor

@thlorenz thlorenz commented Jan 9, 2022

This PR removed all files from the ./rust folder of this repository and added a README.md in
their place which outlines the reasoning behind this step.

Additionally github actions which were specific to those removed Rust programs have been removed.

The below is mostly quoting that readme which was added to the deprecated rust folder
./rust/README.md.

Deprecating Metaplex Rust Programs

The Rust programs for each contract have been removed from the Rust folder and moved to other repositories as explained below.

Where are those programs now?

The Rust programs of all actively maintained Metaplex contracts were moved to the
metaplex-program-library. They are stored there alongside their respective SDK.

All programs of deprecated contracts were moved to the a separate repository
aka the graveyard and are no longer maintained..

Why were the programs moved?

We at Metaplex determined that moving contracts into a separate repository and having the Rust
programs live alongside the client SDK is necessary to allow us to stabilize our contracts and
evolve them quickly and securely.

Structuring Solana contracts like this is a rather standard approach and demonstrated by the
solana program library which most of us are familiar with.

This approach provides the following benefits:

  • aside from lower level Rust tests, integration tests can be easily authored using the SDK
    that lives in the same repo
  • SDK and Rust program code can be changed and tested together and those changes can be
    provided in one pull request in one repository
  • CI workflows can be setup for those tests and will run for each pull request which ensures that
    changes that are merged don't break existing functionality in either the program or the SDK
  • pull requests are now clearly scoped to either the frontend app (this repository) or the
    underlying contracts (the metaplex-program-library) which aids in reviewing them and
    paying particular attention to contract changes as those form the core of the Metaplex
    functionality

As a result this not only improves security but also the experience of Metaplex users and
developers.

Which Contracts were deprecated?

  • NFT Candy Machine v1
  • Fair Launch

NOTE that deprecated programs will stay available on-chain and are stored as readonly
inside the deprecated contracts repository.

What are the Future Plans for this Repository?

In the near future the metaplex repository will become an example
of how to use the SDK provided by the metaplex-program-library in order to build
applications with Metaplex.

I want to change contract SDK or Rust program code, where do I pull request?

First make sure that the contract has not been deprecated and then add those changes inside the
respective folder of the metaplex-program-library repository. Make sure to add tests
that show that additions/fixes work.

If you make changes to the SDK add an integration test.

If you add/change API of a Rust program also update the respective SDK and add an integration
test showing that it works end to end.

NOTE: for deprecated programs found inside the deprecated
repository
no changes will be accepted

I want to change the store front app, where do I pull request?

Changes to the React code should still be provided via a pull request in this repository as
before.
Please be aware though that it will eventually see a major rewrite to use the SDK provided by
the metaplex program library as stated above. Thus we may choose to hold off on
merging features that aren't essential to most of our users and focus on merging fixes instead.

@vercel
Copy link

vercel bot commented Jan 9, 2022

This pull request is being automatically deployed with Vercel (learn more).
To see the status of your deployments, click below or on the icon next to each commit.

metaplex-web – ./js

🔍 Inspect: https://vercel.com/metaplex/metaplex-web/AuR9pkCfdtvmBa6ToeNAPzTqRibe
✅ Preview: https://metaplex-web-git-thlorenz-choredeprecate-rust-folder-metaplex.vercel.app

candy-machine-ui – ./js/packages/candy-machine-ui

🔍 Inspect: https://vercel.com/metaplex/candy-machine-ui/4heLc9xhBkZTGLEM2uFsy9FNCQHx
✅ Preview: https://candy-machine-ui-git-thlorenz-choredeprecate-ru-831080-metaplex.vercel.app

metaplex-1-1-0 – ./js

🔍 Inspect: https://vercel.com/nft-packs/metaplex-1-1-0/Cixg8kBqqfd2GxgNTfDSM9cAGzzp
✅ Preview: https://metaplex-1-1-0-git-thlorenz-choredeprecate-rus-643e74-nft-packs.vercel.app

@thlorenz thlorenz requested a review from austbot January 9, 2022 20:17
@austbot austbot merged commit 786cfe4 into master Jan 10, 2022
sucineri pushed a commit to sucineri/metaplex that referenced this pull request Jan 16, 2022
* chore: deprecate rust folder + add readme with explanation

* ci: removing rust specific gh workflow and actions
nikkaroraa pushed a commit to tech-guides/metaplex that referenced this pull request Jan 22, 2022
* chore: deprecate rust folder + add readme with explanation

* ci: removing rust specific gh workflow and actions
@stegaBOB stegaBOB deleted the thlorenz/chore/deprecate-rust-folder branch January 31, 2022 20:19
DeeElGee added a commit to DeeElGee/buildspace-projects that referenced this pull request Feb 1, 2022
Metaplex have moved all their rust files into their program-library repo (see metaplex-foundation/metaplex#1482), so this needs to be reflected in this MD file (current link goes to 404).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants