diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 000000000..6a7ac98ab --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,98 @@ +name: Bug report +description: Create a report to help us improve +title: "Component Name: Issue Title" +labels: "Status: Needs Triage" +body: + - type: markdown + attributes: + # yamllint disable rule:line-length + value: > + ### There is no guarantee in receiving an immediate response in GitHub Issue Tracker, If you'd like to secure our response, you may consider *PrimeVue PRO Support* where support is provided within 4 business hours + # yamllint enable rule:line-length + - type: textarea + id: description + attributes: + label: Describe the bug + description: A clear and concise description of what the bug is. + validations: + required: true + - type: input + id: reproducer + attributes: + label: Reproducer + placeholder: https://codesandbox.io/s/primevue-3-issue-template-ip3vm + description: | + Please fork one of the issue template + [PrimeVue 3 Issue Template](https://codesandbox.io/s/primevue-3-issue-template-ip3vm) + [PrimeVue TypeScript Issue Template](https://codesandbox.io/s/primevue-3-typescript-issue-template-z1f6e2) + [PrimeVue 2 Issue Template](https://codesandbox.io/s/primevue-2-issue-template-dw7jd7) + and create a case demonstrating your bug report. Issues **without** a CodeSandbox have much less possibility to be reviewed. + validations: + required: true + - type: input + id: pr-version + attributes: + label: PrimeVue version + placeholder: x.x.x + validations: + required: true + - type: dropdown + id: vue-version + attributes: + label: Vue version + multiple: false + options: + - 3.x + - 2.x + validations: + required: true + - type: dropdown + id: language + attributes: + label: Language + multiple: false + options: + - TypeScript + - ES5 + - ES6 + - ALL + validations: + required: true + - type: dropdown + id: engine + attributes: + label: Build / Runtime + multiple: false + options: + - Vue CLI App + - TypeScript + - Nuxt + - Vite + validations: + required: true + - type: input + id: browsers + attributes: + label: Browser(s) + description: List specific browser(s) the problem occurs on or leave blank if ALL browsers + placeholder: > + e.g. Safari 15, iOS 15.4, Chrome 90 + - type: textarea + id: reproduce-steps + attributes: + label: Steps to reproduce the behavior + description: A clear and concise description of how to make the issue happen. + placeholder: > + 1. Go to '...' + 2. Click on '....' + 3. Scroll down to '....' + 4. See error + validations: + required: false + - type: textarea + id: expected-behavior + attributes: + label: Expected behavior + description: A clear and concise description of what you expected to happen. + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000..537268fb7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,4 @@ +contact_links: + - name: Support + url: https://www.primefaces.org/primevue/support/ + about: Professional support for the open source innovation. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 000000000..68f495099 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,39 @@ +name: Feature request +description: Suggest an idea for this project +title: "Component Name: Issue Title" +labels: ['Type: New Feature', 'Status: Discussion'] +body: + - type: textarea + id: description + attributes: + label: Describe the feature you would like to see added + validations: + required: true + - type: textarea + id: problem-related + attributes: + label: Is your feature request related to a problem? + description: A clear and concise description of what the problem is. Ex. I'm always frustrated when? + validations: + required: false + - type: textarea + id: solution + attributes: + label: Describe the solution you'd like + description: A clear and concise description of what you want to happen. + validations: + required: false + - type: textarea + id: alternatives + attributes: + label: Describe alternatives you have considered + description: A clear and concise description of any alternative solutions or features you've considered. + validations: + required: false + - type: textarea + id: additional-context + attributes: + label: Additional context + description: Add any other context or screenshots about the feature request here. + validations: + required: false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000..acdf57ea2 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,5 @@ +###Defect Fixes +When submitting a PR, please also create an issue documenting the error. + +###Feature Requests +Due to company policy, we are unable to accept feature request PRs with significant changes as such cases has to be implemented by our team following our own processes. \ No newline at end of file diff --git a/.github/workflows/issue-inactive-checker.yml b/.github/workflows/issue-inactive-checker.yml new file mode 100644 index 000000000..6e70dffbc --- /dev/null +++ b/.github/workflows/issue-inactive-checker.yml @@ -0,0 +1,22 @@ +name: Issue Inactive Checker + +on: + schedule: + - cron: "0 13 * * 1" # Every Monday at 1PM UTC (9AM EST) + +permissions: + contents: read + +jobs: + issue-close-require: + permissions: + issues: write + pull-requests: write + runs-on: ubuntu-latest + steps: + - name: cannot replicate + uses: actions-cool/issues-helper@v3 + with: + actions: "close-issues" + labels: "Resolution: Cannot Replicate" + inactive-day: 20 diff --git a/.github/workflows/issue-labeled.yml b/.github/workflows/issue-labeled.yml new file mode 100644 index 000000000..d552ebb50 --- /dev/null +++ b/.github/workflows/issue-labeled.yml @@ -0,0 +1,25 @@ +name: Issue Labeled + +on: + issues: + types: [labeled] + +permissions: + contents: read + +jobs: + issue-labeled: + permissions: + issues: write # for actions-cool/issues-helper to update issues + pull-requests: write # for actions-cool/issues-helper to update PRs + runs-on: ubuntu-latest + steps: + - name: Cannot Replicate + if: "${{ github.event.label.name == 'Resolution: Cannot Replicate'}}" + uses: actions-cool/issues-helper@v3 + with: + actions: 'create-comment' + token: ${{ secrets.GITHUB_TOKEN }} + issue-number: ${{ github.event.issue.number }} + body: | + We're unable to replicate your issue, if you are able to create a reproducer or add details please edit this issue. This issue will be closed if no activities in 20 days. diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml new file mode 100644 index 000000000..b93e42026 --- /dev/null +++ b/.github/workflows/nightly.yml @@ -0,0 +1,32 @@ +name: Daily Build + +on: + schedule: + - cron: '0 6 * * *' + +permissions: + contents: read + +jobs: + nightly: + if: github.repository == 'primefaces/primevue' && github.ref == 'refs/heads/master' + runs-on: ubuntu-latest + name: Node ${{ matrix.node-version }} + + strategy: + matrix: + node-version: [16.x, 18.x] + + steps: + - uses: actions/checkout@v2 + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + + - name: Build + run: | + npm install + npm run build:lib diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml new file mode 100644 index 000000000..515772c7c --- /dev/null +++ b/.github/workflows/node.js.yml @@ -0,0 +1,49 @@ +name: NodeJS CI + +on: + push: + branches: [ master ] + +permissions: + contents: read + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [16.x, 18.x] + + steps: + - uses: actions/checkout@v2 + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + + - name: Build + run: | + npm install + + - name: Lint Check + if: ${{ success() }} + run: | + npm run lint + + - name: Code Format + if: ${{ success() }} + run: | + npm run format:check + + - name: Security Check + if: ${{ success() }} + run: | + npm run security:check + + - name: Test + if: ${{ success() }} + run: | + npm run test:unit diff --git a/.github/workflows/pr-checker.yml b/.github/workflows/pr-checker.yml new file mode 100644 index 000000000..48f6ba81e --- /dev/null +++ b/.github/workflows/pr-checker.yml @@ -0,0 +1,71 @@ +name: Pr Checker + +on: + pull_request: + types: [edited, synchronize, opened, reopened] + +permissions: + contents: read + pull-requests: write + +jobs: + pr-open-check: + permissions: + issues: write + pull-requests: write + runs-on: ubuntu-latest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + steps: + - name: Verify Linked Issue + uses: hattan/verify-linked-issue-action@v1.1.5 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + message: 'Thanks a lot for your contribution! But, PR does not seem to be linked to any issues. Please [manually link to an issue](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#manually-linking-a-pull-request-or-branch-to-an-issue-using-the-issue-sidebar) or mention it in the description using #.' + + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 16 + cache: 'npm' + + - name: Install packages + run: | + npm install + + - name: Code Format + id: codeFormat + run: | + npm run format:check + + - name: Unit Test + id: unitTest + run: | + npm run test:unit + + - name: Add Code Format Fail Comment + if: always() && steps.codeFormat.outcome == 'failure' + uses: thollander/actions-comment-pull-request@v1 + with: + message: | + Thanks a lot for your contribution! But, PR does not seem to fit our code format standards. Please run the 'npm run format' command and commit the changes. + + - name: Add Unit Test Fail Comment + if: always() && steps.unitTest.outcome == 'failure' + uses: thollander/actions-comment-pull-request@v1 + with: + message: | + Thanks a lot for your contribution! But, Unit tests failed. You can check the unit tests with the command 'npm run test:unit' and commit the changes. + + - name: Add Label + if: ${{ failure() }} + uses: actions-ecosystem/action-add-labels@v1 + with: + labels: 'Resolution: Needs Revision' + + - name: Remove Label + uses: actions-ecosystem/action-remove-labels@v1 + if: ${{ success() }} + with: + labels: 'Resolution: Needs Revision'