summaryrefslogtreecommitdiff
path: root/checklists
diff options
context:
space:
mode:
Diffstat (limited to 'checklists')
-rw-r--r--checklists/checklist-demo-upgrade.rst173
-rw-r--r--checklists/checklist-release.rst141
-rw-r--r--checklists/qa-0.10.rst233
3 files changed, 547 insertions, 0 deletions
diff --git a/checklists/checklist-demo-upgrade.rst b/checklists/checklist-demo-upgrade.rst
new file mode 100644
index 00000000..d8724030
--- /dev/null
+++ b/checklists/checklist-demo-upgrade.rst
@@ -0,0 +1,173 @@
+GNU Taler Demo Upgrade Checklist
+--------------------------------
+
+.. |democheck| raw:: html
+
+ <input type="checkbox">
+
+
+Domains
+^^^^^^^
+
+The checklist uses the ``demo.taler.net`` domains. However,
+the same sandcastle demo can also be hosted at other domains.
+The same instructions should apply.
+
+Post-upgrade checks
+^^^^^^^^^^^^^^^^^^^
+
+- |democheck| Run the headless wallet to check that services are actually working:
+
+ .. code-block:: console
+
+ taler-wallet-cli api 'runIntegrationTestV2' '{"exchangeBaseUrl":"https://exchange.demo.taler.net", "corebankApiBaseUrl": "https://bank.demo.taler.net", "merchantBaseUrl": "https://backend.demo.taler.net", "merchantAuthToken":"secret-token:sandbox"}'
+
+
+Wallets
+^^^^^^^
+
+We consider the following published wallets to be "production wallets":
+
+* Browser: Firefox Add-On Store
+* Browser: Chrome Web Store
+* Android: Google Play
+* Android: F-Droid
+* iOS: Apple Store / Testflight
+
+Basics
+^^^^^^
+
+- |democheck| Visit https://demo.taler.net/ to see if the landing page is displayed correctly
+- |democheck| landing language switcher
+- |democheck| Visit the wallet installation page, install the wallet
+- |democheck| see if the wallet presence indicator is updated correctly (in browsers).
+- |democheck| Visit https://bank.demo.taler.net/, register a new user
+- |democheck| bank language switcher
+- |democheck| bank logout
+- |democheck| bank login
+- |democheck| bank-integrated withdraw process, abort in bank
+- |democheck| transaction history: delete pending withdraw
+- |democheck| do bank-integrated withdraw process (5 KUDOS)
+- |democheck| do wallet-initiated withdraw process (5 KUDOS)
+- |democheck| withdraw process of large amount (20 KUDOS) runs into KYC check
+- |democheck| fail KYC check (if possible for the given setup)
+- |democheck| pass KYC check (tests that 2nd attempt is possible)
+- |democheck| withdraw process of very large amount (50 KUDOS) runs into AML check
+- |democheck| visit exchange SPA, create AML officer key
+- |democheck| register AML officer key with offline tool (if possible)
+- |democheck| allow withdraw process blocked on AML to proceed (if possible)
+
+
+Exchange AML SPA
+^^^^^^^^^^^^^^^^
+
+- |democheck| enter non-trivial form, change status to frozen
+- |democheck| check account status in history is now frozen and shows in that category
+- |democheck| enter another form, change status to normal, increase AML threshold
+- |democheck| view forms in history, view previously submitted form
+- |democheck| check account status in history is now normal and shows in that category
+- |democheck| log out
+- |democheck| check log in succeeds with correct password
+- |democheck| check log in fails from different browser with same password
+
+
+Blog demo
+^^^^^^^^^
+
+- |democheck| Visit https://shop.demo.taler.net/
+- |democheck| blog page article list renders
+- |democheck| payment for blog article
+- |democheck| Verify that the balance in the wallet was updated correctly.
+- |democheck| Go back to https://shop.demo.taler.net/ and click on the same article
+ link. Verify that the article is shown and **no** repeated payment is
+ requested.
+- |democheck| Open the fulfillment page from the previous step in an anonymous browsing session
+ (without the wallet installed) and verify that it requests a payment again.
+- |democheck| Delete cookies on https://shop.demo.taler.net/ and click on the same article again.
+ Verify that the wallet detects that the article has already purchased and successfully
+ redirects to the article without spending more money.
+- |democheck| payment for other blog article
+- |democheck| refund of 2nd blog article (button at the end)
+- |democheck| wallet transaction history rendering
+- |democheck| delete refund history entry; check original purchase entry was also deleted
+- |democheck| payment for other blog article
+- |democheck| refund of 3rd blog article (button at the end)
+- |democheck| wallet transaction history rendering
+- |democheck| delete 3rd block purchase history entry; check refund entry was also deleted
+
+
+Donation demo
+^^^^^^^^^^^^^
+
+- |democheck| Reset wallet
+- |democheck| Withdraw age-restricted coins (< 14)
+- |democheck| Try to make a donation on https://donations.demo.taler.net/, fail due to age-restriction
+- |democheck| Withdraw age-restricted coins (>= 14)
+- |democheck| Make a donation on https://donations.demo.taler.net/
+- |democheck| Make another donation with the same parameters and verify
+ that the payment is requested again, instead of showing the previous
+ fulfillment page.
+
+
+Merchant SPA
+^^^^^^^^^^^^
+
+- |democheck| test SPA loads
+- |democheck| try to login with wrong password
+- |democheck| try to login with correct password
+- |democheck| create instance, check default is set to cover (STEFAN) fees
+- |democheck| modify instance
+- |democheck| add bank account
+- |democheck| edit bank account
+- |democheck| remove bank account
+- |democheck| check order creation fails without bank account
+- |democheck| add bank account again
+- |democheck| add product with 1 in stock and preview image
+- |democheck| add "advanced" order with inventory product and a 2 minute wire delay
+- |democheck| claim order, check available stock goes down in inventory
+- |democheck| create 2nd order, check this fails due to missing inventory
+- |democheck| pay for 1st order with wallet
+- |democheck| check transaction history for preview image
+- |democheck| trigger partial refund
+- |democheck| accept refund with wallet
+- |democheck| create template with fixed summary, default editable price
+- |democheck| scan template QR code, edit price and pay
+- |democheck| add TOTP device (using some TOTP app to share secret with)
+- |democheck| edit template to add TOTP device, set price to fixed, summary to be entered
+- |democheck| scan template QR code, edit summary and pay
+- |democheck| check displayed TOTP code matches TOTP app
+- |democheck| do manual wire transfer in bank to establish reserve funding
+- |democheck| check that partially refunded order is marked as awaiting wire transfer
+- |democheck| check bank wired funds to merchant (if needed, wait)
+- |democheck| add bank wire transfer manually to backend
+- |democheck| change settings for merchant to not pay for (STEFAN) fees
+- |democheck| create and pay for another order with 1 minute wire transfer delay
+- |democheck| edit bank account details, adding revenue facade with credentials
+- |democheck| wait and check if wire transfer is automatically imported
+- |democheck| check that orders are marked as completed
+
+
+P2P payments
+^^^^^^^^^^^^
+
+- |democheck| generating push payment (to self is OK)
+- |democheck| accepting push payment (from self is OK)
+- |democheck| generating pull payment (to self is OK)
+- |democheck| accepting pull payment (from self is OK)
+- |democheck| sending money back from wallet to bank account
+- |democheck| wallet transaction history rendering
+- |democheck| delete history entry
+
+
+Shutdown
+^^^^^^^^
+
+- |democheck| create two full wallets, fill one only via (a large) P2P transfer
+- |democheck| revoke highest-value denomination
+- |democheck| spend money in a wallet such that the balance falls below highest denomination value
+- |democheck| revoke all remaining denominations
+- |democheck| fail to spend any more money
+- |democheck| if wallet was filled via p2p payments, wallet asks for target deposit account (exchange going out of business)
+- |democheck| enter bank account (if possible)
+- |democheck| wallet balance goes to zero
+- |democheck| specified bank account receives remaining balance
diff --git a/checklists/checklist-release.rst b/checklists/checklist-release.rst
new file mode 100644
index 00000000..eaefd0b9
--- /dev/null
+++ b/checklists/checklist-release.rst
@@ -0,0 +1,141 @@
+GNU Taler Release Checklist
+---------------------------
+
+.. |releasecheck| raw:: html
+
+ <input type="checkbox">
+
+For exchange:
+
+- |releasecheck| no compiler warnings at "-Wall" with gcc
+- |releasecheck| no compiler warnings at "-Wall" with clang
+- |releasecheck| ensure Coverity static analysis passes
+- |releasecheck| make check.
+- |releasecheck| make dist, make check on result of 'make dist'.
+- |releasecheck| Change version number in configure.ac.
+- |releasecheck| update man pages / info page documentation (prebuilt branch)
+- |releasecheck| make dist for release
+- |releasecheck| verify dist builds from source
+- |releasecheck| upgrade 'demo.taler.net'
+- |releasecheck| run :doc:`demo upgrade checklist </checklists/checklist-demo-upgrade>`
+- |releasecheck| tag repo.
+- |releasecheck| use 'deployment.git/packaging/\*-docker/' to build Debian and Ubuntu packages
+- |releasecheck| upload packages to 'deb.taler.net' (note: only Florian/Christian can sign)
+- |releasecheck| change 'demo.taler.net' deployment to use new tag.
+- |releasecheck| Upload triplet to ftp-upload.gnu.org/incoming/ftp or /incoming/alpha
+
+For merchant (C backend):
+
+- |releasecheck| no compiler warnings at "-Wall" with gcc
+- |releasecheck| no compiler warnings at "-Wall" with clang
+- |releasecheck| ensure Coverity static analysis passes
+- |releasecheck| make check.
+- |releasecheck| make dist, make check on result of 'make dist'.
+- |releasecheck| update SPA (prebuilt branch)
+- |releasecheck| Change version number in configure.ac.
+- |releasecheck| make dist for release.
+- |releasecheck| verify dist builds from source
+- |releasecheck| upgrade 'demo.taler.net'
+- |releasecheck| run :doc:`demo upgrade checklist </checklists/checklist-demo-upgrade>`
+- |releasecheck| tag repo.
+- |releasecheck| use 'deployment.git/packaging/\*-docker/' to build Debian and Ubuntu packages
+- |releasecheck| upload packages to 'deb.taler.net' (note: only Florian/Christian can sign)
+- |releasecheck| change 'demo.taler.net' deployment to use new tag.
+- |releasecheck| Upload triplet to ftp-upload.gnu.org/incoming/ftp or /incoming/alpha
+
+For sync:
+
+- |releasecheck| no compiler warnings at "-Wall" with gcc
+- |releasecheck| no compiler warnings at "-Wall" with clang
+- |releasecheck| ensure Coverity static analysis passes
+- |releasecheck| make check.
+- |releasecheck| make dist, make check on result of 'make dist'.
+- |releasecheck| Change version number in configure.ac.
+- |releasecheck| make dist for release
+- |releasecheck| verify dist builds from source
+- |releasecheck| upgrade 'demo.taler.net'
+- |releasecheck| run :doc:`demo upgrade checklist </checklists/checklist-demo-upgrade>`
+- |releasecheck| tag repo.
+- |releasecheck| use 'deployment.git/packaging/\*-docker/' to build Debian and Ubuntu packages
+- |releasecheck| upload packages to 'deb.taler.net' (note: only Florian/Christian can sign)
+- |releasecheck| change 'demo.taler.net' deployment to use new tag.
+- |releasecheck| Upload triplet to ftp-upload.gnu.org/incoming/ftp or /incoming/alpha
+
+For taler-mdb:
+
+- |releasecheck| no compiler warnings at "-Wall" with gcc
+- |releasecheck| ensure Coverity static analysis passes
+- |releasecheck| Change version number in configure.ac.
+- |releasecheck| make dist for release.
+- |releasecheck| tag repo.
+- |releasecheck| use 'deployment.git/packaging/\*-docker/' to build Debian and Ubuntu packages
+- |releasecheck| upload packages to 'deb.taler.net' (note: only Florian/Christian can sign)
+- |releasecheck| Upload triplet to ftp-upload.gnu.org/incoming/ftp or /incoming/alpha
+
+For taler-twister:
+
+- |releasecheck| no compiler warnings at "-Wall" with gcc
+- |releasecheck| no compiler warnings at "-Wall" with clang
+- |releasecheck| ensure Coverity static analysis passes
+- |releasecheck| make check.
+- |releasecheck| make dist, make check on result of 'make dist'.
+- |releasecheck| Change version number in configure.ac.
+- |releasecheck| make dist for release.
+- |releasecheck| verify dist builds from source
+- |releasecheck| upgrade 'demo.taler.net'
+- |releasecheck| run :doc:`demo upgrade checklist </checklists/checklist-demo-upgrade>`
+- |releasecheck| tag repo.
+- |releasecheck| Upload triplet to ftp-upload.gnu.org/incoming/ftp or /incoming/alpha
+
+For libeufin:
+
+- |releasecheck| update SPA of bank
+- |releasecheck| build libeufin
+- |releasecheck| upgrade 'demo.taler.net'
+- |releasecheck| run :doc:`demo upgrade checklist </checklists/checklist-demo-upgrade>`
+- |releasecheck| make dist for release.
+- |releasecheck| verify dist builds from source
+- |releasecheck| tag repo.
+- |releasecheck| use 'deployment.git/packaging/\*-docker/' to build Debian and Ubuntu packages
+- |releasecheck| upload packages to 'deb.taler.net' (note: only Florian/Christian can sign)
+- |releasecheck| change 'demo.taler.net' deployment to use new tag.
+- |releasecheck| Upload triplet to ftp-upload.gnu.org/incoming/ftp or /incoming/alpha
+
+For Python merchant frontend:
+
+- |releasecheck| upgrade 'demo.taler.net'
+- |releasecheck| run :doc:`demo upgrade checklist </checklists/checklist-demo-upgrade>`
+- |releasecheck| change 'demo.taler.net' deployment to use new tag.
+
+Wallet-core:
+
+- |releasecheck| build wallet
+- |releasecheck| run integration test
+- |releasecheck| make dist for release.
+- |releasecheck| verify dist builds from source
+- |releasecheck| tag repo.
+- |releasecheck| use 'deployment.git/packaging/\*-docker/' to build Debian and Ubuntu packages
+- |releasecheck| upload packages to 'deb.taler.net' (note: only Florian/Christian can sign)
+- |releasecheck| change 'demo.taler.net' deployment to use new tag.
+- |releasecheck| Upload triplet to ftp-upload.gnu.org/incoming/ftp or /incoming/alpha
+
+Android-Wallet:
+
+- |releasecheck| build wallet
+- |releasecheck| run :doc:`demo upgrade checklist </checklists/checklist-demo-upgrade>`
+- |releasecheck| tag repo.
+- |releasecheck| upload new wallet release to app store
+
+Webextension-Wallet:
+
+- |releasecheck| build wallet
+- |releasecheck| run :doc:`demo upgrade checklist </checklists/checklist-demo-upgrade>`
+- |releasecheck| tag repo.
+- |releasecheck| upload new wallet release to app store
+
+Release announcement:
+
+- |releasecheck| Update bug tracker (mark release, resolved -> closed)
+- |releasecheck| Send announcement to taler@gnu.org
+- |releasecheck| Send announcement to info-gnu@gnu.org (major releases only)
+- |releasecheck| Send announcement to coordinator@translationproject.org
diff --git a/checklists/qa-0.10.rst b/checklists/qa-0.10.rst
new file mode 100644
index 00000000..262f44f5
--- /dev/null
+++ b/checklists/qa-0.10.rst
@@ -0,0 +1,233 @@
+Taler 0.9.4 QA Plan
+-------------------
+
+Wallet Platforms
+^^^^^^^^^^^^^^^^
+
+Platforms listed here are the officially supported platforms for this release.
+
+* Overview / Installation Page
+
+ * https://taler.net/en/wallet.html
+
+* Android
+
+ * Google Play: https://play.google.com/store/apps/details?id=net.taler.wallet
+ * F-Droid: https://f-droid.org/en/packages/net.taler.wallet.fdroid/
+ * APK Download: TBD
+
+* Browser
+
+ * Chrome: https://chromewebstore.google.com/detail/gnu-taler-wallet/millncjiddlpgdmkklmhfadpacifaonc
+ * Firefox: https://addons.mozilla.org/en-US/firefox/addon/taler-wallet/
+
+* iOS
+
+
+Running Deployments
+^^^^^^^^^^^^^^^^^^^
+
+These deployments are maintained by us and should work for the release:
+
+* Sandcastle-based:
+
+ * demo.taler.net
+
+ * test.taler.net
+
+* Regio-based:
+
+ * regio-taler.fdold.eu
+
+
+Wallet Flows
+^^^^^^^^^^^^
+
+* Bank-integrated withdrawal
+
+ * webext: "Continue with Mobile Wallet" flow
+
+* Manual withdrawal
+
+ * ``taler://withdraw-exchange`` flow
+
+ * Currency conversion withdrawal
+
+* Peer push payments ("Send Money")
+
+* Peer pull payments ("Receive Money")
+
+* Deposit into bank account
+
+ * Check that deposit arrived
+
+* Payment at merchant
+
+ * on blog merchant
+ * on survey
+ * directly initiated via merchant SPA
+ * webext: "Pay with Mobile Wallet" flow
+
+* Pay templates
+
+ * Payment TOTP codes
+
+* Exchange management
+
+ * Reloading exchange keys
+ * Deleting an exchange
+
+* Offline handling
+
+ * Check error messages for other flows when internet connectivity
+ is bad or device is completely offline.
+
+
+libeufin-bank Flows
+^^^^^^^^^^^^^^^^^^^
+
+* Admin functionality
+
+ * Login
+
+ * Credential change
+
+ * Conversion settings
+
+ * Bank account creation
+
+ * Test transfers
+
+* Normal account functionality
+
+ * Transfers
+
+ * Transfer to the exchange should bounce
+
+ * Withdrawals
+
+ * (conversion-only): Test cash-in
+
+ * (conversion-only): Test cash-out
+
+ * Lower cash-out limit enforced
+
+ * 2FA for withdrawals, cash-out
+
+
+Merchant Backend SPA Flows
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+* Instance creation
+
+* Simple bank account setup
+
+* Order creation
+
+ * Pay order (with short wire transfer deadline)
+
+ * Check that money from order arrive at the bank with the right subject
+
+* Extended bank account setup
+
+ * Add Taler Bank Revenue API
+
+ * Check bank transfer list (for wire transfer of previously paid+wired order)
+
+ * Check order payment status goes to "final" automatically
+
+* TOTP Device Management
+
+ * Add device
+
+ * Edit device (set new secret, export new secret as QR code)
+
+ * Delete device
+
+* Templates
+
+ * Add template
+
+ * Edit template
+
+ * Add TOTP device to template
+
+ * Edit TOTP device associated with template
+
+ * Pay template
+
+ * Check TOTP code matches
+
+ * Remove TOTP device from template
+
+ * Delete template
+
+
+
+Regio Deployment
+^^^^^^^^^^^^^^^^
+
+* Deployment Automation (deployment.git/regional-currency)
+
+ * Test with Debian bookworm
+
+ * Test with Ubuntu mantic
+
+ * Check logs for errors
+
+ * Test with telesign (SMS)
+
+ * Set up EBICS integration
+
+ * Check that ToS is configured
+
+* Deployment Functionality
+
+ * All flows of the wallet should work (see ``Wallet Flows`` above)
+
+ * All flows of libeufin-bank should work (see ``libeufin-bank Flows`` above)
+
+ * Merchant backend should work (see ``Merchant Backend SPA Flows`` above)
+
+ * Check logs
+
+
+Android Merchant PoS
+^^^^^^^^^^^^^^^^^^^^
+
+* Test against demo.taler.net
+
+
+Android Cashier App
+^^^^^^^^^^^^^^^^^^^
+
+* Test against demo.taler.net
+
+
+CI
+^^
+
+* https://buildbot.taler.net/#/waterfall
+* CI should pass
+
+
+Debian Repository
+^^^^^^^^^^^^^^^^^
+
+* Debian
+
+ * repo at https://deb.taler.net/apt/debian/
+ * supported codename(s): bookworm
+
+
+* Ubuntu:
+
+ * repo at https://deb.taler.net/apt/ubuntu/
+ * supported codename(s): mantic
+
+
+GNU Release
+^^^^^^^^^^^
+
+* Release announcement
+* FTP upload