chore: issue templates + readme updates + common gha (#226)

* chore: issue templates + readme updates + common gha

Signed-off-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com>

* chore: add contributing guide

Signed-off-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com>

* chore: link contributing guide in readme

Signed-off-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com>

* chore: update contributing guide

Signed-off-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com>

* chore: update contributing guide

Signed-off-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com>

---------

Signed-off-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com>
This commit is contained in:
Mathew Wicks 2025-03-07 12:57:42 -08:00 committed by GitHub
parent 1b4461934e
commit 51ea98a79c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 325 additions and 9 deletions

View File

@ -0,0 +1,75 @@
name: 🐜 Bug Report
description: Tell us about something not working properly
labels: [ "kind/bug", "priority/needs-triage" ]
body:
- type: markdown
attributes:
value: |
# Bug Report
Thanks for helping make the Kubeflow project better!
- type: checkboxes
attributes:
label: Checks
options:
- label: I have searched the [existing issues](https://github.com/kubeflow/notebooks/issues).
required: true
- label: My issue is related to one of the components in the [`kubeflow/notebooks`](https://github.com/kubeflow/notebooks) repository.
required: true
- type: input
id: kubeflow-notebooks-version
attributes:
label: Kubeflow Notebooks Version
placeholder: X.X.X
validations:
required: true
- type: input
id: kubeflow-platform
attributes:
label: Kubeflow Platform
description: Which method did you use to [install](https://www.kubeflow.org/docs/started/installing-kubeflow/#kubeflow-platform) your Kubeflow Platform?
placeholder: ...
validations:
required: true
- type: input
id: kubernetes-distribution
attributes:
label: Kubernetes Distribution
description: How are you running Kubernetes?
placeholder: EKS / GKE / AKS / k3d / custom / etc.
validations:
required: true
- type: textarea
id: kubernetes-version
attributes:
label: Kubernetes Version
description: Output of `kubectl version` command.
placeholder: |
Client Version: version.Info{Major:"X", Minor:"XX", GitVersion:"vX.X.X", ...}
Server Version: version.Info{Major:"X", Minor:"XX", GitVersion:"vX.X.X", ...}
render: shell
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: The __context__ the problem occurred in, and an __overview__ of what went wrong.
placeholder: I was trying to... but then...
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant Logs
description: Outputs of commands like `kubectl logs my-pod` or `kubectl describe pods my-pod`.
placeholder: |
* include any relevant log outputs here *
render: shell

View File

@ -0,0 +1,46 @@
name: 💡 Feature Request
description: Suggest an idea for the project
labels: [ "kind/enhancement", "priority/needs-triage" ]
body:
- type: markdown
attributes:
value: |
# Feature Request
Thanks for helping make the Kubeflow project better!
- type: checkboxes
attributes:
label: Checks
options:
- label: I have searched the [existing issues](https://github.com/kubeflow/notebooks/issues).
required: true
- label: My request is related to one of the components in the [`kubeflow/notebooks`](https://github.com/kubeflow/notebooks) repository.
required: true
- type: textarea
id: motivation
attributes:
label: Motivation
description: What has motivated your request?
placeholder: |
* This is the most important part of the request *
* Help us understand what you are trying to achieve, try to separate it from any implementation you may have in mind *
validations:
required: true
- type: textarea
id: implementation
attributes:
label: Implementation
description: What is your proposed implementation?
placeholder: |
* It's fine to leave this blank if you don't have an implementation already in mind *
- type: checkboxes
attributes:
label: Are you willing & able to help?
options:
- label: I am able to submit a PR!
- label: I can help test the feature!

13
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@ -0,0 +1,13 @@
blank_issues_enabled: true
contact_links:
- name: Kubeflow Documentation
url: https://www.kubeflow.org/
about: Kubeflow Documentation
- name: Kubeflow Documentation - Notebooks
url: https://www.kubeflow.org/docs/components/notebooks/
about: Kubeflow Notebooks Documentation
- name: "Kubeflow Slack (join `#kubeflow-notebooks` channel)"
url: https://www.kubeflow.org/docs/about/community/#kubeflow-slack-channels
about: Join the Kubeflow Slack

15
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@ -0,0 +1,15 @@
<!--
⚠️ please review https://www.kubeflow.org/docs/about/contributing/
Thank you for contributing to Kubeflow!
If there are related issues, please reference them using one of the following:
closes: #ISSUE
related: #ISSUE
Please remember:
- provide enough information so that others can review your pull request
- use a semantic title for your pull request (like "fix: xxxxx" or "feat: xxxxx", see contributing guide)
- the title of your pull request will be used to generate the changelog entry, so make it count!
-->

View File

@ -0,0 +1,49 @@
name: Approve Workflow Runs
permissions:
actions: write
contents: read
on:
pull_request_target:
types:
- labeled
- synchronize
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }}
cancel-in-progress: true
jobs:
ok-to-test:
if: contains(github.event.pull_request.labels.*.name, 'ok-to-test')
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: Approve Pending Workflow Runs
uses: actions/github-script@v7
with:
retries: 3
script: |
const request = {
owner: context.repo.owner,
repo: context.repo.repo,
event: "pull_request",
status: "action_required",
head_sha: context.payload.pull_request.head.sha,
}
core.info(`Getting workflow runs that need approval for commit ${request.head_sha}`)
const runs = await github.paginate(github.rest.actions.listWorkflowRunsForRepo, request)
core.info(`Found ${runs.length} workflow runs that need approval`)
for (const run of runs) {
core.info(`Approving workflow run ${run.id}`)
const request = {
owner: context.repo.owner,
repo: context.repo.repo,
run_id: run.id,
}
await github.rest.actions.approveWorkflowRun(request)
}

61
.github/workflows/stale.yaml vendored Normal file
View File

@ -0,0 +1,61 @@
name: Stale Issues and Pull Requests
permissions:
issues: write
pull-requests: write
on:
schedule:
- cron: '0 0 * * *' # Run every day at midnight
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9
with:
days-before-stale: 60
days-before-close: 21
stale-issue-label: lifecycle/stale
exempt-issue-labels: lifecycle/frozen,kind/enhancement
stale-pr-label: lifecycle/stale
exempt-pr-labels: lifecycle/frozen,kind/enhancement
# The message that will be added as a comment to the issues
# when the stale workflow marks it automatically as stale with a label.
stale-issue-message: |
This issue has been automatically marked as stale because it has not had recent activity.
It will be closed if no further activity occurs.
Thank you for your contributions.
Members may comment `/lifecycle frozen` to prevent this issue from being marked as stale.
# The message that will be added as a comment to the issues
# when the stale workflow closes it automatically after being stale for too long.
close-issue-message: |
This issue has been automatically closed because it has not had recent activity.
Members may comment `/reopen` to reopen it.
# The message that will be added as a comment to the pull requests
# when the stale workflow marks it automatically as stale with a label.
stale-pr-message: |
This pull request has been automatically marked as stale because it has not had recent activity.
It will be closed if no further activity occurs.
Thank you for your contributions.
Members may comment `/lifecycle frozen` to prevent this pull request from being marked as stale.
# The message that will be added as a comment to the pull requests
# when the stale workflow closes it automatically after being stale for too long.
close-pr-message: |
This pull request has been automatically closed because it has not had recent activity.
You can reopen the PR if you want.
# The issues or the pull requests with a milestone will not be marked as stale automatically
exempt-all-milestones: true
# Learn more about operations: https://github.com/actions/stale#operations-per-run.
operations-per-run: 250

54
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,54 @@
# Contributing to Kubeflow Notebooks
Welcome to the Kubeflow Notebooks project!
Contributions are welcome via GitHub pull requests.
Please see the [Contributing to Kubeflow](https://www.kubeflow.org/docs/about/contributing/) page for more information.
## Sign Your Work
To certify you agree to the [Developer Certificate of Origin](https://developercertificate.org/) you must sign-off each commit message using `git commit --signoff`, or manually write the following:
```text
feat(ws): my commit message`
Signed-off-by: John Smith <john-smith@users.noreply.github.com>
```
## Use Semantic Commits
We use [semantic commits](https://www.conventionalcommits.org/en/v1.0.0/) to help us automatically generate changelogs and release notes.
### Prefixes
A semantic commit message must start with one of the following __prefixes__:
- `fix:` (bug fixes)
- `feat:` (new features)
- `improve:` (improvements to existing features)
- `refactor:` (code changes that neither fixes a bug nor adds a feature)
- `revert:` (reverts a previous commit)
- `test:` (adding missing tests, refactoring tests; no production code change)
- `ci:` (changes to CI configuration or build scripts)
- `docs:` (documentation only changes)
- `chore:` (ignored in changelog)
To indicate a breaking change, add `!` after the prefix, e.g. `feat!: my commit message`.
### Scopes
You may optionally include a __scope__ after the prefix, for example:
- `nb` (changes to notebooks - web-app, controller, images)
- `pvc` (changes to volumes - web-app, controller)
- `tb` (changes to tensorboards - web-app, controller)
- `ws` (changes to workspaces - frontend, backend, controller, images)
### Examples
Here are some examples of semantic commit messages:
- `fix(nb): something that was broken`
- `feat(ws): a new feature`
- `improve: a general improvement`
- `chore: update readme`

View File

@ -2,6 +2,14 @@
[Kubeflow Notebooks](https://www.kubeflow.org/docs/components/notebooks/overview/) lets you run web-based development environments on your Kubernetes cluster by running them inside Pods.
> ⚠️ __Note__ ⚠️
>
> We are currently moving the _Kubeflow Notebooks 1.0_ codebase from [`kubeflow/kubeflow`](https://github.com/kubeflow/kubeflow) to this repository ([`kubeflow/notebooks`](https://github.com/kubeflow/notebooks)).
> Please see [`kubeflow/kubeflow#7549`](https://github.com/kubeflow/kubeflow/issues/7549) for more information.
>
> We are currently developing _Kubeflow Notebooks 2.0_ in this repository under the [`notebooks-v2`](https://github.com/kubeflow/notebooks/tree/notebooks-v2) branch.
> Please see [`kubeflow/notebooks#85`](https://github.com/kubeflow/notebooks/issues/85) for more information.
## What is Kubeflow Notebooks?
Key features of Kubeflow Notebooks:
@ -13,7 +21,7 @@ Key features of Kubeflow Notebooks:
## Installation
Currently, Kubeflow Notebooks must be deployed as part of a full Kubeflow platform (not as a standalone component).
Kubeflow Notebooks is designed to be deployed as part of a [Kubeflow Platform](https://www.kubeflow.org/docs/started/introduction/#what-is-kubeflow-platform) (not as a standalone component).
Please refer to the [Installing Kubeflow](https://www.kubeflow.org/docs/started/installing-kubeflow/) page for more information.
@ -25,16 +33,11 @@ The official documentation for Kubeflow Notebooks can be found [here](https://ww
Kubeflow Notebooks is part of the Kubeflow project, refer to the [Kubeflow Community](https://www.kubeflow.org/docs/about/community/) page for more information.
Connect with _other users_ and the [Notebooks Working Group](https://github.com/kubeflow/community/tree/master/wg-notebooks) in the following places:
Connect with _other users_ and the [Notebooks Working Group](https://github.com/kubeflow/community/tree/master/wg-notebooks) (maintainers of Kubeflow Notebooks) in the following places:
- [Kubeflow Slack](https://www.kubeflow.org/docs/about/community/#kubeflow-slack) - Join the [`#kubeflow-notebooks`](https://kubeflow.slack.com/archives/CESP7FCQ7) channel.
- [Kubeflow Slack](https://www.kubeflow.org/docs/about/community/#kubeflow-slack-channels) - Join the [`#kubeflow-notebooks`](https://cloud-native.slack.com/archives/C073W562HFY) channel.
- [Kubeflow Mailing List](https://groups.google.com/g/kubeflow-discuss)
## Contributing
> ⚠️ __Note__ ⚠️
>
> We are currently moving the Kubeflow Notebooks codebase from [`kubeflow/kubeflow`](https://github.com/kubeflow/kubeflow) to this repository ([`kubeflow/notebooks`](https://github.com/kubeflow/notebooks)).
> For now, please continue to make contributions by raising PRs on `kubeflow/kubeflow`.
Please see the [Contributing to Kubeflow](https://www.kubeflow.org/docs/about/contributing/) page for more information.
Please see the [`CONTRIBUTING.md`](CONTRIBUTING.md) file for more information.