diff --git a/.github/ISSUE_TEMPLATE/bug-developer.yml b/.github/ISSUE_TEMPLATE/bug-developer.yml new file mode 100644 index 0000000..3880f58 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-developer.yml @@ -0,0 +1,187 @@ +name: 🐛 Developer Bug report +description: File a Code bug/issue +title: +labels: + - bug +body: + - type: checkboxes + attributes: + label: Is there an existing issue for this? + description: Please search to see if an issue already exists for the bug you encountered. + options: + - label: I have searched the existing issues + required: true + + - type: textarea + attributes: + label: Current Behavior + description: A concise description of what you're experiencing. + validations: + required: true + + - type: textarea + attributes: + label: Expected Behavior + description: A concise description of what you expected to happen. + validations: + required: true + + - type: textarea + attributes: + label: Steps To Reproduce + description: Steps to reproduce the behavior. + placeholder: | + 1. In this environment... + 2. With this config... + 3. Run '...' + 4. See error... + validations: + required: true + + - type: dropdown + id: system + attributes: + label: On which operating system are you experiencing the problem? + multiple: true + options: + - BSD + - Linux + - Windows + - MacOS + - iOS + - Android + validations: + required: true + + - type: input + id: system-version + attributes: + label: The version of your Operation System + validations: + required: true + + - type: dropdown + id: subsystem + attributes: + label: What subsystem is the problem related to? + multiple: true + options: + - Docker + - WSL + - WINE + + - type: input + id: subsystem-version + attributes: + label: The version of your Sub-system + + - type: dropdown + id: Web-browser + attributes: + label: What browsers are you seeing the problem on? + multiple: true + options: + - Firefox + - Chrome + - Safari + - Microsoft Edge + - Opera + - Brave + - Arc Browser + - UC Browser + validations: + required: true + + - type: input + id: Web-browser-version + attributes: + label: The version of your Web browser + validations: + required: true + + - type: dropdown + id: network-region + attributes: + label: What network region are you in? + multiple: true + options: + - Global + - China mainland + validations: + required: true + + - type: dropdown + id: cli + attributes: + label: Which command line terminal are you using? + multiple: true + options: + - Shell + - CMD + - Powershell + validations: + required: true + + - type: input + id: cli-version + attributes: + label: The version of your Command-line Terminal + + - type: dropdown + id: JavaScript-runtime + attributes: + label: Which JavaScript runtime are you using? + multiple: true + options: + - Node.js + - Bun + - Deno + validations: + required: true + + - type: input + id: JavaScript-runtime-version + attributes: + label: The version of your JavaScript runtime + validations: + required: true + + - type: dropdown + id: JavaScript-package-manager + attributes: + label: Which JavaScript package manager are you using? + multiple: true + options: + - npm + - Yarn + - pnpm + - Bun + validations: + required: true + + - type: input + id: JavaScript-package-manager-version + attributes: + label: The version of your JavaScript package manager + validations: + required: true + + - type: dropdown + id: development_environment + attributes: + label: Which development environment are you using? + multiple: true + options: + - Local + - Gitpod + - GitHub Codespaces + validations: + required: true + + - type: textarea + attributes: + label: Anything else? + description: | + Links? References? Anything that will give us more context about the issue you are encountering! + + Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in. diff --git a/.github/ISSUE_TEMPLATE/bug-user.yml b/.github/ISSUE_TEMPLATE/bug-user.yml new file mode 100644 index 0000000..751475d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-user.yml @@ -0,0 +1,131 @@ +name: 🐛 User Bug report +description: File an UI bug/issue +title: <title> +labels: + - bug +body: + - type: checkboxes + attributes: + label: Is there an existing issue for this? + description: Please search to see if an issue already exists for the bug you encountered. + options: + - label: I have searched the existing issues + required: true + + - type: textarea + attributes: + label: Current Behavior + description: A concise description of what you're experiencing. + validations: + required: true + + - type: textarea + attributes: + label: Expected Behavior + description: A concise description of what you expected to happen. + validations: + required: true + + - type: textarea + attributes: + label: Steps To Reproduce + description: Steps to reproduce the behavior. + placeholder: | + 1. In this environment... + 2. With this config... + 3. Run '...' + 4. See error... + validations: + required: true + + - type: dropdown + id: hardware + attributes: + label: What kind of hardware did the bug occur on? + multiple: true + options: + - Desktop + - Pad + - Phone + - Smart Device + - Car + validations: + required: true + + - type: dropdown + id: system + attributes: + label: On which operating system are you experiencing the problem? + multiple: true + options: + - BSD + - Linux + - Windows + - MacOS + - iOS + - Android + validations: + required: true + + - type: input + id: system-version + attributes: + label: The version of your Operation System + validations: + required: true + + - type: dropdown + id: Web-browser + attributes: + label: What browsers are you seeing the problem on? + multiple: true + options: + - Firefox + - Chrome + - Safari + - Microsoft Edge + - Opera + - Brave + - Arc Browser + - UC Browser + validations: + required: true + + - type: input + id: Web-browser-version + attributes: + label: The version of your Web browser + validations: + required: true + + - type: dropdown + id: network-connection + attributes: + label: What kind of network are you connecting to? + multiple: true + options: + - WLAN + - WiFi + - 4G + - 5G + validations: + required: true + + - type: dropdown + id: network-region + attributes: + label: What network region are you in? + multiple: true + options: + - Global + - China mainland + validations: + required: true + + - type: textarea + attributes: + label: Anything else? + description: | + Links? References? Anything that will give us more context about the issue you are encountering! + + Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in. diff --git a/.github/ISSUE_TEMPLATE/feature-enhancement.yml b/.github/ISSUE_TEMPLATE/feature-enhancement.yml new file mode 100644 index 0000000..7d34e7b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-enhancement.yml @@ -0,0 +1,35 @@ +name: ✨ Feature/Enhancement +description: Request a new feature or enhancement +title: <title> +labels: + - enhancement +body: + - type: checkboxes + attributes: + label: Is there an existing feature request for this? + description: Please search to see if a feature request already exists for the enhancement you are proposing. + options: + - label: I have searched the existing feature requests + required: true + + - type: textarea + attributes: + label: Description + description: | + A detailed description of the new feature or enhancement you are proposing. Additionally, provide any relevant + links, references, or attachments to offer more context about the proposal. You can also attach images or other + files by clicking this area to highlight it and then dragging files in. + + Tip: You can attach images or other files by clicking this area to highlight it and then dragging files in. + validations: + required: true + + - type: textarea + attributes: + label: Use Case + description: Provide a use case or scenario where this feature or enhancement would be beneficial. + + - type: textarea + attributes: + label: Proposed Solution + description: If you have a specific solution in mind, please describe it here. diff --git a/.github/settings.yml b/.github/settings.yml new file mode 100644 index 0000000..87ecb22 --- /dev/null +++ b/.github/settings.yml @@ -0,0 +1,85 @@ +# These settings are synced to GitHub by https://probot.github.io/apps/settings/ + +repository: + allow_merge_commit: false + + delete_branch_on_merge: true + + enable_vulnerability_alerts: true + +labels: + - name: bug + color: '#d73a4a' + description: Something isn't working + + - name: documentation + color: '#0075ca' + description: Improvements or additions to documentation + + - name: duplicate + color: '#cfd3d7' + description: This issue or pull request already exists + + - name: enhancement + color: '#a2eeef' + description: Some improvements + + - name: feature + color: '#16b33f' + description: New feature or request + + - name: good first issue + color: '#7057ff' + description: Good for newcomers + + - name: help wanted + color: '#008672' + description: Extra attention is needed + + - name: invalid + color: '#e4e669' + description: This doesn't seem right + + - name: question + color: '#d876e3' + description: Further information is requested + + - name: wontfix + color: '#ffffff' + description: This will not be worked on + +branches: + - name: master + # https://docs.github.com/en/rest/reference/repos#update-branch-protection + protection: + # Required. Require at least one approving review on a pull request, before merging. Set to null to disable. + required_pull_request_reviews: + # The number of approvals required. (1-6) + required_approving_review_count: 1 + # Dismiss approved reviews automatically when a new commit is pushed. + dismiss_stale_reviews: true + # Blocks merge until code owners have reviewed. + require_code_owner_reviews: true + # Specify which users and teams can dismiss pull request reviews. + # Pass an empty dismissal_restrictions object to disable. + # User and team dismissal_restrictions are only available for organization-owned repositories. + # Omit this parameter for personal repositories. + dismissal_restrictions: + # users: [] + # teams: [] + # Required. Require status checks to pass before merging. Set to null to disable + required_status_checks: + # Required. Require branches to be up to date before merging. + strict: true + # Required. The list of status checks to require in order to merge into this branch + contexts: [] + # Required. Enforce all configured restrictions for administrators. + # Set to true to enforce required status checks for repository administrators. + # Set to null to disable. + enforce_admins: true + # Prevent merge commits from being pushed to matching branches + required_linear_history: true + # Required. Restrict who can push to this branch. + # Team and user restrictions are only available for organization-owned repositories. + # Set to null to disable. + restrictions: null diff --git a/.gitpod.yml b/.gitpod.yml new file mode 100644 index 0000000..2382166 --- /dev/null +++ b/.gitpod.yml @@ -0,0 +1,29 @@ +# This configuration file was automatically generated by Gitpod. +# Please adjust to your needs (see https://www.gitpod.io/docs/introduction/learn-gitpod/gitpod-yaml) +# and commit this file to your remote git repository to share the goodness with others. + +# Learn more from ready-to-use templates: https://www.gitpod.io/docs/introduction/getting-started/quickstart + +vscode: + extensions: + - yzhang.markdown-all-in-one + - unifiedjs.vscode-mdx + - xyc.vscode-mdx-preview + - jock.svg + - redhat.vscode-yaml + - clinyong.vscode-css-modules + - akamud.vscode-caniuse + - visualstudioexptteam.intellicode-api-usage-examples + - pflannery.vscode-versionlens + - christian-kohler.npm-intellisense + - esbenp.prettier-vscode + - rangav.vscode-thunder-client + - eamodio.gitlens + - github.vscode-pull-request-github + - github.vscode-github-actions +tasks: + - before: | + pnpm i vercel -g + vercel login --github --oob + init: pnpm i + command: npm start diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..9723ebb --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,19 @@ +{ + "recommendations": [ + "yzhang.markdown-all-in-one", + "unifiedjs.vscode-mdx", + "xyc.vscode-mdx-preview", + "jock.svg", + "redhat.vscode-yaml", + "clinyong.vscode-css-modules", + "akamud.vscode-caniuse", + "visualstudioexptteam.intellicode-api-usage-examples", + "pflannery.vscode-versionlens", + "christian-kohler.npm-intellisense", + "esbenp.prettier-vscode", + "rangav.vscode-thunder-client", + "eamodio.gitlens", + "github.vscode-pull-request-github", + "github.vscode-github-actions" + ] +} diff --git a/ReadMe.md b/ReadMe.md index f2caac5..ea1869d 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -1,19 +1,20 @@ -![](src/image/WebCell-0.png) +![](https://git-pager.vercel.app/src/image/WebCell-0.png) # WebCell mobile scaffold -Mobile App scaffold of **WebCell** v3 +Mobile App scaffold of [WebCell v3][1] https://web-cell.dev/mobile/ -[![CI & CD](https://github.com/EasyWebApp/mobile/workflows/CI%20&%20CD/badge.svg)][2] +[![CI & CD](https://github.com/EasyWebApp/mobile/actions/workflows/main.yml/badge.svg)][2] -[![Open in Visual Studio Code](https://open.vscode.dev/badges/open-in-vscode.svg)][3] +[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)][3] +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)][4] ## Technology stack -- Language: [TypeScript v5][4] -- Component engine: [WebCell v3][5] +- Language: [TypeScript v5][5] +- Component engine: [WebCell v3][1] - Component suite: [Material Web v1][6] - PWA framework: [Workbox v7][7] - Package bundler: [Parcel v2][8] @@ -22,23 +23,41 @@ https://web-cell.dev/mobile/ ## Development ```shell -npm install - +npm i pnpm -g +pnpm i npm start ``` ## Deployment ```shell -npm run build +pnpm build ``` -[2]: https://github.com/EasyWebApp/mobile/actions -[3]: https://open.vscode.dev/EasyWebApp/mobile -[4]: https://typescriptlang.org -[5]: https://web-cell.dev/ +## Best practice + +1. Install **[Settings][11] GitHub app** in your account or organization +2. Click the **[Use this template][12] button** on the top of this GitHub repository's home page, then create your own repository in the app-installed namespace above +3. Click the **[Open in GitHub codespaces][4] button** on the top of ReadMe file, then an **online VS Code development environment** will be started immediately +4. Set [Vercel variables][13] as [Repository secrets][14], then every commit will get an independent **Preview URL** +5. Recommend to add a [Notification step in GitHub actions][15] for your Team IM app +6. Remind the PMs & users of your product to submit **Feature/Enhancement** requests or **Bug** reports with [Issue forms][16] instead of IM messages or Mobile Phone calls +7. Collect all these issues into [Project kanbans][17], then create **Pull requests** & add `closes #issue_number` into its description for automation + +[1]: https://web-cell.dev/ +[2]: https://github.com/EasyWebApp/mobile/actions/workflows/main.yml +[3]: https://codespaces.new/EasyWebApp/mobile +[4]: https://gitpod.io/?autostart=true#https://github.com/EasyWebApp/mobile +[5]: https://typescriptlang.org/ [6]: https://material-web.dev/ [7]: https://developers.google.com/web/tools/workbox -[8]: https://parceljs.org +[8]: https://parceljs.org/ [9]: https://github.com/features/actions [10]: https://pages.github.com/ +[11]: https://github.com/apps/settings +[12]: https://github.com/new?template_name=mobile&template_owner=EasyWebApp +[13]: https://github.com/idea2app/Next-Bootstrap-ts/blob/80967ed49045af9dbcf4d3695a2c39d53a6f71f1/.github/workflows/pull-request.yml#L9-L12 +[14]: https://github.com/EasyWebApp/mobile/settings/secrets/actions +[15]: https://github.com/kaiyuanshe/kaiyuanshe.github.io/blob/bb4675a56bf1d6b207231313da5ed0af7cf0ebd6/.github/workflows/pull-request.yml#L32-L56 +[16]: https://github.com/EasyWebApp/mobile/issues/new/choose +[17]: https://github.com/EasyWebApp/mobile/projects