From 367198b95a5b0f14604d74176e45bcd57c4aed6a Mon Sep 17 00:00:00 2001 From: michael sulistio Date: Thu, 23 May 2024 13:42:15 -0700 Subject: [PATCH 1/2] Add S3 command flags to CLI docs --- docs/dapp-publishing/publisher-and-app-nft.md | 65 +++++++++++++++++++ docs/dapp-publishing/publishing_releases.md | 38 ----------- docs/dapp-publishing/submit.md | 39 ++++++++++- 3 files changed, 102 insertions(+), 40 deletions(-) delete mode 100644 docs/dapp-publishing/publishing_releases.md diff --git a/docs/dapp-publishing/publisher-and-app-nft.md b/docs/dapp-publishing/publisher-and-app-nft.md index 3bcbed3..54f8e6f 100644 --- a/docs/dapp-publishing/publisher-and-app-nft.md +++ b/docs/dapp-publishing/publisher-and-app-nft.md @@ -1,5 +1,8 @@ # Mint your Publisher and App NFT +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + If this is your first time publishing an app on the dApp Store, then you will need to mint a **Publisher NFT** and an **App NFT**. :::tip @@ -58,10 +61,42 @@ To customize this value, use param `-p` or `--priority-fee-lamports + + +By default the CLI uploads the NFT metadata using [Arweave](https://www.arweave.org/). + ```shell npx dapp-store create publisher -k [-u ] ``` + + + +Alternatively, you can instruct the CLI to upload the NFT metadata using [Amazon S3](https://aws.amazon.com/s3/), by passing in +the `-s` or `--storage-config` flag. + +```shell +npx dapp-store create publisher -k -s [-u ] +``` + +The `` is are an array of parameters in the expected format: + +``` +s3Params="[\"s3\", \"$releaseAwsAccessKey\", \"$releaseAwsSecretKey\", \"$releaseAwsS3Bucket\", \"$releaseAwsS3Region\"]" +``` + +An example of S3 parameters: + +```shell +-s "[\"s3\", \"TestAccessKey\", \"TestSecret\", \"TestBucket\", \"us-east-1\"]" +``` + + + + :::info This is a **one-time** operation. Once you have created your publisher, the mint address is recorded in your configuration file. @@ -70,10 +105,40 @@ If you have already published an app, you should not mint a new Publisher NFT an ### 2. Create your app NFT + + + +By default the CLI uploads the NFT metadata using [Arweave](https://www.arweave.org/). + ```shell npx dapp-store create app -k [-u ] ``` + + + +Alternatively, you can instruct the CLI to upload the NFT metadata using [Amazon S3](https://aws.amazon.com/s3/), by passing in +the `-s` or `--storage-config` flag. + +```shell +npx dapp-store create app -k -s [-u ] +``` + +The `` is are an array of parameters in the expected format: + +``` +s3Params="[\"s3\", \"$releaseAwsAccessKey\", \"$releaseAwsSecretKey\", \"$releaseAwsS3Bucket\", \"$releaseAwsS3Region\"]" +``` + +An example of S3 parameters: + +```shell +-s "[\"s3\", \"TestAccessKey\", \"TestSecret\", \"TestBucket\", \"us-east-1\"]" +``` + + + + :::info This is a **one-time** operation per app. Once you have created your dApp, the mint address is recorded in your configuration file. ::: diff --git a/docs/dapp-publishing/publishing_releases.md b/docs/dapp-publishing/publishing_releases.md deleted file mode 100644 index 7be41be..0000000 --- a/docs/dapp-publishing/publishing_releases.md +++ /dev/null @@ -1,38 +0,0 @@ -# Publishing subsequent dApp releases - -When you're ready to publish additional releases of your dApp, follow these steps. - -## 1. Create an updated APK file - -Each release of your dApp will require an updated release APK file, signed with the same signing key you used for your initial release. - -It is **very** important that each new APK file include the following updates: - -- The `versionName` value in `build.gradle` must be updated from the previous release. This field can be set to arbitrary values. -- The `versionCode` value in `build.gradle` must be incremented by one monotonically between each update. - -:::tip -You can learn more about APK versioning in the [Android developer docs](https://developer.android.com/studio/publish/versioning). -::: - -## 2. Update your configuration file - -Edit the `release` and `solana_mobile_dapp_publisher_portal` sections of your configuration file to reflect any changes. - -:::tip -Be sure to include `new_in_version` details so users can know what to expect with the update! -::: - -## 3. Mint a new release NFT - -The Solana dApp store requires each new release of your dApp to be minted as a release NFT with all the changes discussed in this section. - -Run the same CLI command as the "Create the release NFT" step from the [Mint a release NFT](submit#mint-a-release-nft) section in these docs. - -## 4. Submit an update to the Publisher Portal - -Submit the update to the Solana dApp Publisher Portal, where the new release will enter a review queue for inclusion in the dApp store catalog: - -``` -npx dapp-store publish update -k --requestor-is-authorized --complies-with-solana-dapp-store-policies -``` diff --git a/docs/dapp-publishing/submit.md b/docs/dapp-publishing/submit.md index 0875f34..8fecc49 100644 --- a/docs/dapp-publishing/submit.md +++ b/docs/dapp-publishing/submit.md @@ -1,5 +1,8 @@ # Submit your dApp release +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + After minting a Publisher and App NFT, you will need to mint a **Release NFT** in order to submit for app review. A Release NFT: @@ -7,14 +10,46 @@ A Release NFT: - Contains metadata that represents a specific release version of an app. - Should be newly created each time an updated app version is submitted. +For reference, you can view this [sample](https://explorer.solana.com/address/EpYpJpFSKX6r5WyAGjhVk2hN8weeJF9XGJHFMvebBW8Q/metadata) of a Release NFT on the Solana Explorer. + ## Mint a release NFT -Using the same wallet that contains your Publisher and App NFTs, run this command. +Using the same wallet that contains your Publisher and App NFTs, run this command to create the Release NFT and upload your app's Android APK. + + + + +By default the CLI uploads both the Android APK and NFT metadata using [Arweave](https://www.arweave.org/). ```shell npx dapp-store create release -k -b [-u ] ``` + + + +Alternatively, you can instruct the CLI to upload both the Android APK and NFT metadata using [Amazon S3](https://aws.amazon.com/s3/), by passing in +the `-s` or `--storage-config` flag. + +```shell +npx dapp-store create release -k -b -s [-u ] +``` + +The `` is are an array of parameters in the expected format: + +``` +s3Params="[\"s3\", \"$releaseAwsAccessKey\", \"$releaseAwsSecretKey\", \"$releaseAwsS3Bucket\", \"$releaseAwsS3Region\"]" +``` + +An example of S3 parameters: + +```shell +-s "[\"s3\", \"TestAccessKey\", \"TestSecret\", \"TestBucket\", \"us-east-1\"]" +``` + + + + **You will repeat this step for each new version of your dApp you want to release**. The mint address of the latest release is recorded in your configuration file. :::tip @@ -29,7 +64,7 @@ Please make sure your network connection is reliable and has a minimum upload sp ## Submit your app -After minting a complete set of on-chain NFTs (publisher, dApp, and release), you may choose to submit them to the Solana dApp Publisher Portal, as a candidate for inclusion in the Solana dApp Store catalog: +After minting a complete set of on-chain NFTs (publisher, dApp, and release), you may choose to submit them to the Solana dApp Publisher Portal, as a candidate for inclusion in the Solana dApp Store catalog. ```shell npx dapp-store publish submit -k -u --requestor-is-authorized --complies-with-solana-dapp-store-policies From fc1b52aea87a7232369b3a57267f681a97148698 Mon Sep 17 00:00:00 2001 From: michael sulistio Date: Thu, 23 May 2024 13:46:18 -0700 Subject: [PATCH 2/2] Fix CLI docs broken link --- docs/dapp-publishing/publisher-and-app-nft.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/dapp-publishing/publisher-and-app-nft.md b/docs/dapp-publishing/publisher-and-app-nft.md index 54f8e6f..b62d4da 100644 --- a/docs/dapp-publishing/publisher-and-app-nft.md +++ b/docs/dapp-publishing/publisher-and-app-nft.md @@ -6,7 +6,7 @@ import TabItem from '@theme/TabItem'; If this is your first time publishing an app on the dApp Store, then you will need to mint a **Publisher NFT** and an **App NFT**. :::tip -If you are looking to publish an update version of an existing app, then skip to [this step](/dapp-publishing/publishing_releases). +If you are looking to publish an update version of an existing app, then skip to [this step](/dapp-publishing/publishing-updates). ::: A Publisher NFT: