diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 38de5fd021..bc0c5ab76e 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1 +1 @@
-* @kodadot/code-review-guild @kodadot/qa-guild
+* @kodadot/code-review-guild
diff --git a/.github/diagram.svg b/.github/diagram.svg
index 1b5cf4699d..67f049f478 100644
--- a/.github/diagram.svg
+++ b/.github/diagram.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 044919ae7a..6b89beb163 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -10,11 +10,6 @@ on:
jobs:
test:
runs-on: ubuntu-latest
- container:
- image: cypress/included:10.6.0
- options: --user 1001
- env:
- CYPRESS_CACHE_FOLDER: '${GITHUB_WORKSPACE}/.cypress-cache'
steps:
- uses: actions/checkout@v3
@@ -27,7 +22,7 @@ jobs:
${{ runner.os }}-
- name: Install pnpm
- uses: pnpm/action-setup@v2.2.1
+ uses: pnpm/action-setup@v2
with:
version: latest
@@ -46,24 +41,6 @@ jobs:
- name: Run Test
run: pnpm test
- - name: Cypress run
- uses: cypress-io/github-action@v4
- with:
- project: ./tests
- build: pnpm generate
- start: pnpm start:static
- wait-on: 'http://localhost:9090'
- # wait for 2 minutes for the server to respond
- wait-on-timeout: 150
- command: pnpm test:e2e --browser chrome
-
- - name: Upload Screenshots
- uses: actions/upload-artifact@v2
- if: failure()
- with:
- name: cypress-website-screenshots
- path: ./tests/cypress/screenshots/
-
build:
strategy:
matrix:
@@ -81,7 +58,7 @@ jobs:
${{ runner.os }}-
- name: Install pnpm
- uses: pnpm/action-setup@v2.2.1
+ uses: pnpm/action-setup@v2
with:
version: latest
diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml
new file mode 100644
index 0000000000..bd72973108
--- /dev/null
+++ b/.github/workflows/e2e.yml
@@ -0,0 +1,56 @@
+name: cypress
+
+on:
+ workflow_dispatch:
+ push:
+ branches: [main]
+ pull_request:
+ branches: [main]
+
+jobs:
+ e2e:
+ runs-on: ubuntu-latest
+ container:
+ image: cypress/included:10.10.0
+ options: --user 1001
+ env:
+ CYPRESS_CACHE_FOLDER: '${GITHUB_WORKSPACE}/.cypress-cache'
+ strategy:
+ matrix:
+ index: [1, 2, 3, 4] # [1, ..., n] where n === parallelSize in e2e-run-tests.js
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Cache pnpm modules
+ uses: actions/cache@v3
+ with:
+ path: ~/.pnpm-store
+ key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
+ restore-keys: |
+ ${{ runner.os }}-
+
+ - name: Install pnpm
+ uses: pnpm/action-setup@v2
+ with:
+ version: latest
+
+ - name: Setup Node.js
+ uses: actions/setup-node@v3
+ with:
+ node-version: 16
+ cache: 'pnpm'
+
+ - name: Install Dependencies
+ run: pnpm install && pnpm cypress install
+
+ - name: Build App
+ run: pnpm generate
+
+ - name: Cypress run
+ run: pnpm start:static & pnpm wait-on http://localhost:9090 && MATRIX=${{ matrix.index }} node tests/cypress/e2e-run-tests.js
+
+ - name: Upload Screenshots
+ uses: actions/upload-artifact@v3
+ if: failure()
+ with:
+ path: ./cypress/screenshots/
diff --git a/.github/workflows/reviewdog.yml b/.github/workflows/reviewdog.yml
index ec428b201a..b7f61c32f8 100644
--- a/.github/workflows/reviewdog.yml
+++ b/.github/workflows/reviewdog.yml
@@ -20,7 +20,7 @@ jobs:
${{ runner.os }}-
- name: Install pnpm
- uses: pnpm/action-setup@v2.2.1
+ uses: pnpm/action-setup@v2
with:
version: latest
diff --git a/.gitignore b/.gitignore
index bf7408876b..71f23e649f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -91,4 +91,4 @@ typings/
## service-worker.js
# cypress
-/tests/cypress/screenshots/
+cypress/screenshots/
diff --git a/BURN_RATE.md b/BURN_RATE.md
index b0a0f162cd..ed3ff46554 100644
--- a/BURN_RATE.md
+++ b/BURN_RATE.md
@@ -2,8 +2,9 @@
| date | # of paid PRs | total :moneybag: | # of :construction_worker: | :moneybag: / PR |
|:-----------------:|:-----------------------:|:----------------------:|:----------------:|:------------:|
-| :date: ***October 2022*** | ***0*** | ***$0*** | ***1*** | ***$0*** |
- | Week 39/22 | 7 | $450 | 7 | $64 |
+| :date: ***October 2022*** | ***5*** | ***$425*** | ***8*** | ***$85*** |
+ | Week 40/22 | 5 | $425 | 8 | $85 |
+| Week 39/22 | 7 | $450 | 7 | $64 |
| :date: ***September 2022*** | ***33*** | ***$2001*** | ***14*** | ***$61*** |
| Week 38/22 | 11 | $610 | 10 | $55 |
| Week 37/22 | 5 | $300 | 7 | $60 |
@@ -64,6 +65,6 @@
| Week 44/21 | 2 | $354 | 6 | $177 |
- **BURN RATE TABLE GENERATED BASED ON 602 PAID PULL REQUESTS AND CONTRIBUTIONS OF 44 PEOPLE**
+ **BURN RATE TABLE GENERATED BASED ON 607 PAID PULL REQUESTS AND CONTRIBUTIONS OF 44 PEOPLE**
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
index bee77a95c5..7a37631150 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,16 +1,13 @@
# Dockerfile
FROM node:16
+RUN npm i -g pnpm
WORKDIR /app
-COPY package.json .
-COPY pnpm-lock.yaml .
-
-RUN pnpm install
-
COPY . .
+RUN pnpm install
ENV HOST 0.0.0.0
EXPOSE 9090
-CMD [ "pnpm", "dev" ]
+ENV PATH ./node_modules/.bin/:$PATH
diff --git a/LEADERBOARD.md b/LEADERBOARD.md
index a2fffd0c16..48953c4cd7 100644
--- a/LEADERBOARD.md
+++ b/LEADERBOARD.md
@@ -1,14 +1,14 @@
| devName | total amount received | amount per merged PR | total open PRs | merged PRs | closed PRs | lines added to lines removed| commits merged | total # comments | comments per PR | resolved issues to # of open PR | last transaction |
|-----------------|-----------------------|----------------------|----------------|------------|------------|------------------------------|----------------|------------------|-----------------|---------------------------------|-----------------|
-| Jarsen136 | $15267.66/189.38KSM | $83.43 | 190 | 183 | 7 | 9160/5668 | 744 | 1446 | 7.61 | 195/190 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0x8d60dfc8dc81085baecafbf0a88f98679e58fa5bcf714b3f54da78572661026c) |
-| prachi00 | $15180.36/111.417KSM | $99.87 | 163 | 152 | 11 | 4766/4238 | 564 | 992 | 6.09 | 147/163 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0x1d11407c7a80d4394b4a325491be22ab1d3cd8d3d706cbce19e83bd749d396bb) |
-| kkukelka | $11750.58/79.299KSM | $123.69 | 100 | 95 | 5 | 9922/6280 | 414 | 512 | 5.12 | 98/100 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0xea082c84c529af0deaca456b5d83d42b99e49262033df4a7a7848cecd554e59f) |
-| preschian | $4063.31/46.228KSM | $72.56 | 59 | 56 | 3 | 24358/23451 | 505 | 457 | 7.75 | 52/59 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0xee5f404314326647aae54aee4e47351e4a7f5ae00ed7c6681d317f845f89fff9) |
+| Jarsen136 | $15317.55/190.527KSM | $83.25 | 191 | 184 | 7 | 9162/5673 | 745 | 1451 | 7.6 | 196/191 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0x4e6938c87260dd2b6b8f5a52d36bed93f04679aa18b07914f988f60c9708b776) |
+| prachi00 | $15280.37/113.722KSM | $99.87 | 164 | 153 | 11 | 5123/4313 | 582 | 1014 | 6.18 | 148/164 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0x3a7f3c1b5770fc544d1d447079b9adf5e658c72ae6ec1c6ee924806f27176a42) |
+| kkukelka | $11875.68/82.262KSM | $123.71 | 101 | 96 | 5 | 10189/6663 | 419 | 523 | 5.18 | 99/101 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0x6e28f690df83a228fbeb64c0577f3c1a73c16a377911968760309a2898f352fb) |
+| preschian | $4063.31/46.228KSM | $70.06 | 62 | 58 | 4 | 24490/23454 | 508 | 466 | 7.52 | 53/62 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0xee5f404314326647aae54aee4e47351e4a7f5ae00ed7c6681d317f845f89fff9) |
| KngZhi | $3855.57/53.7KSM | $110.16 | 40 | 35 | 5 | 2458/637 | 343 | 402 | 10.05 | 43/40 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0x8d607dc52fb5bba52c387bb3d03f8e4cc98afc20b67c487044274f2c905bfb87) |
-| zhengow | $3450.85/50.901KSM | $82.16 | 42 | 42 | 0 | 1805/759 | 211 | 348 | 8.29 | 46/42 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0x7dc5bf5ab3055ea883eb4e4d9dcf34420e47c1454206e57d31ca8cc6c677783c) |
+| zhengow | $3500.87/52.054KSM | $81.42 | 43 | 43 | 0 | 1835/762 | 215 | 354 | 8.23 | 46/43 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0x2c4aa5186fdfc121ded60bc9cf66e9cf1158fb695c4e93c0a5f52f3afb58e874) |
| chandradot99 | $1204.46/5.955KSM | $133.83 | 9 | 9 | 0 | 900/146 | 43 | 75 | 8.33 | 8/9 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0xa60c8eda47807651d47079645ac2a23241e38ec6f5f434b229eebbcdd1fa4c10) |
| pandasamanvaya | $1098.43/4.32KSM | $64.61 | 18 | 17 | 1 | 1560/455 | 66 | 35 | 1.94 | 7/18 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0xa2b431d8f528ad863174d5378f89fd90016c872a227f06b4d1714c652c3a18d9) |
-| rhaicode | $954.8/3.06KSM | $238.7 | 7 | 4 | 3 | 1014/680 | 27 | 70 | 10 | 7/7 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0xdf0621c718394966b2bf3df5dcf74b988c62e9aa01e13a1ea3014e1ad9b92889) |
+| rhaicode | $954.8/3.06KSM | $238.7 | 8 | 4 | 4 | 1014/680 | 27 | 73 | 9.13 | 7/8 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0xdf0621c718394966b2bf3df5dcf74b988c62e9aa01e13a1ea3014e1ad9b92889) |
| magrisya | $755.22/5.682KSM | $755.22 | 2 | 1 | 1 | 642/0 | 8 | 12 | 6 | 0/2 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0x22803d613b1a7d0fd0bba7c6b09b56842444ea977089756ea60ca35745aab4ea) |
| MSghais | $701.94/8.207KSM | $140.39 | 12 | 5 | 7 | 1377/137 | 112 | 110 | 9.17 | 10/12 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0x01896f925b34b70a39f9bd3fc5761414a01034bc99d2d31323a1ddb62612e8ee) |
| atharva3010 | $608.03/2.34KSM | $202.68 | 4 | 3 | 1 | 50/87 | 7 | 37 | 9.25 | 2/4 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0xd4d0fb93feb14bf3c5192c395cae150a8a0a1ae16d8e4887d0c24dad2c16d3b4) |
@@ -19,11 +19,11 @@
| lohba | $255.68/0.86KSM | $63.92 | 4 | 4 | 0 | 51/17 | 21 | 25 | 6.25 | 3/4 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0x00915c8de0bdc4a8b91dab001bf9b3c538e397d80139e88fdebd1f177c6eaae0) |
| newraina | $249.94/1.799KSM | $124.97 | 2 | 2 | 0 | 86/6 | 10 | 16 | 8 | 2/2 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0x03c6489039fa02fd2e6666cd19bcde974e3dd1530da6d800356a080cf5e0e647) |
| MubarakSULAYMAN | $201.81/0.949KSM | $50.45 | 5 | 4 | 1 | 61/11 | 22 | 26 | 5.2 | 2/5 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0x0162abe9a26b4733f9d4dbc306d137f1ece23a8ab361a550c019159efae225cb) |
+| jakartinho | $200.03/4.422KSM | $100.02 | 2 | 2 | 0 | 1850/241 | 19 | 30 | 15 | 0/2 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0x0462209a8cbd3be3817fa40ae956f9956e0a89b78b522635f46814a70aa6affb) |
| virtugroweey | $100.38/0.85KSM | $100.38 | 1 | 1 | 0 | 552/96 | 2 | 14 | 14 | 0/1 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0xc62df416cfc829e216bc05902599ae7d4bd893a1ec14588fcddcabf4e98142d8) |
| shixin-guo | $100.22/0.723KSM | $100.22 | 1 | 1 | 0 | 1/1 | 1 | 3 | 3 | 1/1 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0xe07fc97e53b52f88e5944e19d6e0aad19108f69747b378e1d31a4c7fc8ada238) |
| GabrielBuragev | $100.19/1.229KSM | $33.4 | 3 | 3 | 0 | 119/1487 | 9 | 14 | 4.67 | 3/3 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0x1439532d230c20a2be81fc135de220df628dd0579e9b755cb50a62bbe2a0945d) |
| LatinSoul | $100.17/0.36KSM | $100.17 | 3 | 1 | 2 | 32/32 | 5 | 17 | 5.67 | 0/3 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0x14101d25cb4ddc73159dfadabba18c6e3f98fa369dfce47cefde7699d964a538) |
-| jakartinho | $100.02/2.116KSM | $50.01 | 2 | 2 | 0 | 1850/241 | 19 | 30 | 15 | 0/2 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0xfa72224330cd8362d37261c73bb0317a7e8e49251a233f38f5e641d16cef4458) |
| thea-exe | $99.98/0.66KSM | $20 | 6 | 5 | 1 | 124/163 | 27 | 25 | 4.17 | 2/6 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0x093bdf32d514684250b6290a530fc8fe2cc4e24804cd41b654020b1a7d0cfa6f) |
| johnrhodel | $99.91/2.037KSM | $99.91 | 1 | 1 | 0 | 630/312 | 4 | 17 | 17 | 0/1 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0x2bf23f2acb5715b2feb919ecd65fd275b0ecd35be8618eb09e0c8c37655bad4c) |
| lluuk | $99.85/1.188KSM | $99.85 | 1 | 1 | 0 | 96/45 | 3 | 4 | 4 | 1/1 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0xecc52b711290f3e65bd6ca299969c744daef3b207aa0f559794f80162b41d10a) |
@@ -34,4 +34,4 @@
| alohaw0 | $30/0.752KSM | $30 | 1 | 1 | 0 | 6/1 | 3 | 9 | 9 | 1/1 |[Link to last transaction](https://kusama.subscan.io/extrinsic/0x2a6b5bd3878d33cc35faaf1491c8c8f4991615c8a8658549e1aa6a3d6817edbe) |
- **LEADERBOARD TABLE GENERATED AT Oct 2nd 2022 FROM 1682 MERGED AND 194 CLOSED PULL REQUESTS MADE BY CONTRIBUTIONS TO KODADOT**
\ No newline at end of file
+ **LEADERBOARD TABLE GENERATED AT Oct 9th 2022 FROM 1699 MERGED AND 197 CLOSED PULL REQUESTS MADE BY CONTRIBUTIONS TO KODADOT**
\ No newline at end of file
diff --git a/STYLE_GUIDE.md b/STYLE_GUIDE.md
index 05c8fb9056..ab2c58a123 100644
--- a/STYLE_GUIDE.md
+++ b/STYLE_GUIDE.md
@@ -20,7 +20,7 @@ With a few exceptions, code and comments should be written in **English** only.
## SFC Conventions
### Skeleton
-99% of the time your SCSS should be **scoped**, so it won't bleed outside of your component and pollute the global namespace!
+99% of the time your SCSS should be **scoped**, which makes sure your CSS won't bleed outside of your component and pollute the global namespace!
```vue
@@ -28,26 +28,68 @@ With a few exceptions, code and comments should be written in **English** only.
-
+
+
+```
+
+### Composition API
+Since we want to upgrade to Nuxt 3 in the near future, we should pre-emptively work towards a compatible codebase, such that the transition will be as smooth as possible. Therefore, every new feature is required to be written in the new **Composition API** and should follow the following recommendations:
+
+```vue
+
-
+
+
+
+
```
+For more details make sure to checkout [Vue's official documentation](https://vuejs.org/guide/introduction.html).
-### Property Decorators
+
+### Property Decorators DEPRECATED! (only use this syntax for maintenance reasons)
We rely on the package 'nuxt-property-decorator', hence, we urge you to comply with the [Nuxt Class Component Syntax](https://github.com/nuxt-community/nuxt-property-decorator/)
```typescript
import {
@@ -90,32 +132,19 @@ Use shorthands for vue attributes
### Fetching Data
Though we haven't yet transitioned most of our data fetching logic to Nuxt lifecycles, the following syntax should be considered best practice:
+#### Composition API
```typescript
-// pages
-import { Component } from 'nuxt-property-decorator'
-
-@Component({
- async asyncData({ app, $config, params }) {
- const res = await app?.apolloProvider?.clients[$config.prefix].query({
- query: queryGql,
- variables: {
- id: params.id
- },
- })
-
- return {
- data: res.data,
- total: res.total,
- }
- }
+// useGraphql is a composable function that is auto-imported without having to use an explicit import statement
+// you can then call a specific GraphQL query like this in any of your SFCs
+const { data } = useGraphql({
+ queryName: 'buyEventByProfile',
+ variables: {
+ id: address,
+ },
})
-export default class ClassName extends Vue {
- data?: Type
- total?: Type
-
- [...]
-}
```
+For reference you can take a look at `useCarousel.ts` and its usage throughout the app. It will show you how to best abstract such calls into its own [composables](https://vuejs.org/guide/reusability/composables.html), which is one of the core concepts behind the Composition API.
+
### Reusability Through Abstraction
If your component will be used on several occasions in many different contexts, you should think about how you pass data to your components and how events are handled.
@@ -135,27 +164,17 @@ Regarding event handling, you should always aim to emit events happening in your
Make reusable components as generic as possible. Therefore, the naming should only imply the functionality of the component itself and not what it does in the given context.
```vue
-
```
diff --git a/assets/Koda_Beta.svg b/assets/Koda_Beta.svg
index 4ba23dfef2..4890fd3387 100644
--- a/assets/Koda_Beta.svg
+++ b/assets/Koda_Beta.svg
@@ -1,14 +1,20 @@
-