From 13ad4537ffec186bb99f333f2c05bf700ca7a7b1 Mon Sep 17 00:00:00 2001 From: eskild <42120229+iameskild@users.noreply.github.com> Date: Mon, 21 Nov 2022 21:03:18 +0100 Subject: [PATCH 1/4] Small CLI fixes (#1529) * _ --> - * Fix CLI issues --- nebari/cli/init.py | 2 ++ nebari/cli/main.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/nebari/cli/init.py b/nebari/cli/init.py index 69fa408543..b28cf1c2f8 100644 --- a/nebari/cli/init.py +++ b/nebari/cli/init.py @@ -159,6 +159,8 @@ def check_cloud_provider_creds(ctx: typer.Context, cloud_provider: str): "Paste your SPACES_SECRET_ACCESS_KEY", hide_input=True, ) + os.environ["AWS_ACCESS_KEY_ID"] = os.getenv("SPACES_ACCESS_KEY_ID") + os.environ["AWS_SECRET_ACCESS_KEY"] = os.getenv("AWS_SECRET_ACCESS_KEY") # AZURE elif cloud_provider == ProviderEnum.azure.value.lower() and ( diff --git a/nebari/cli/main.py b/nebari/cli/main.py index fef13558dd..dc54801991 100644 --- a/nebari/cli/main.py +++ b/nebari/cli/main.py @@ -189,7 +189,7 @@ def validate( help="nebari configuration yaml file path, please pass in as -c/--config flag", ), enable_commenting: bool = typer.Option( - False, "--enable_commenting", help="Toggle PR commenting on GitHub Actions" + False, "--enable-commenting", help="Toggle PR commenting on GitHub Actions" ), ): """ From 9520129830d7a0d6578722336939c496bba9be45 Mon Sep 17 00:00:00 2001 From: Amit Kumar Date: Thu, 24 Nov 2022 00:44:51 +0000 Subject: [PATCH 2/4] Render github actions configurations as yaml (#1528) Co-authored-by: Pavithra Eswaramoorthy Co-authored-by: Nebari-sensei <116370392+nebari-sensei@users.noreply.github.com> --- .github/ISSUE_TEMPLATE/RFD.md | 52 +++++ .github/ISSUE_TEMPLATE/bug-report.yml | 56 ++++-- .github/ISSUE_TEMPLATE/config.yml | 19 +- .github/ISSUE_TEMPLATE/documentation.md | 15 -- .github/ISSUE_TEMPLATE/documentation.yml | 56 ++++++ ...eature_request.yml => feature-request.yml} | 4 +- .github/ISSUE_TEMPLATE/general-issue.yml | 52 +++++ .github/ISSUE_TEMPLATE/release-checklist.md | 70 ------- .github/ISSUE_TEMPLATE/testing-checklist.md | 31 --- .github/PULL_REQUEST_TEMPLATE.md | 58 +++--- CONTRIBUTING.md | 183 ++---------------- LICENSE | 2 +- docs/_templates/announcement.html | 5 + docs/conf.py | 5 +- docs/requirements.txt | 2 +- nebari/render.py | 20 +- 16 files changed, 278 insertions(+), 352 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/RFD.md delete mode 100644 .github/ISSUE_TEMPLATE/documentation.md create mode 100644 .github/ISSUE_TEMPLATE/documentation.yml rename .github/ISSUE_TEMPLATE/{feature_request.yml => feature-request.yml} (98%) create mode 100644 .github/ISSUE_TEMPLATE/general-issue.yml delete mode 100644 .github/ISSUE_TEMPLATE/release-checklist.md delete mode 100644 .github/ISSUE_TEMPLATE/testing-checklist.md create mode 100644 docs/_templates/announcement.html diff --git a/.github/ISSUE_TEMPLATE/RFD.md b/.github/ISSUE_TEMPLATE/RFD.md new file mode 100644 index 0000000000..b1af18c825 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/RFD.md @@ -0,0 +1,52 @@ +--- +name: "Request for Discussion (RFD) πŸ’¬" +about: Open discussion about a feature or design project in Nebari. +labels: + - "type: RFD" +title: "RFD - Title" +--- + + + + + + +| Status | Draft 🚧 / Open for comments πŸ’¬/ Accepted βœ… /Implemented πŸš€/ Obsolete πŸ—ƒ | +| ----------------- | ------------------------------------------------------------------------ | +| Author(s) | GitHub handle | +| Date Created | dd-MM-YYY | +| Date Last updated | dd-MM-YYY | +| Decision deadline | dd-MM-YYY | + +# Title + +## Summary + + + +## User benefit + + + +## Design Proposal + + + +### Alternatives or approaches considered (if any) + + + +### Best practices + + + +### User impact + + + +## Unresolved questions + + diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml index 7fc4c8b809..66e9002627 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.yml +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -1,19 +1,33 @@ -name: "Bug report \U0001F41B" -description: "Create a report to help us improve" +name: "Bug report πŸ›" +description: "Create a report to help us reproduce and correct the bug" title: "[BUG] - " -labels: ["type: bug πŸ›"] +labels: ["type: bug πŸ›", "needs: triage 🚦"] body: - type: markdown attributes: value: | - Hi! Thanks for using Nebari and taking some time to contribute to this project. + # Welcome πŸ‘‹ - Please answer the following sections to help us troubleshoot the problem. + Thanks for using Nebari and taking some time to contribute to this project. - - type: input + Please fill out each section below. This info allows Nebari maintainers to diagnose (and fix!) your issue as + quickly as possible. + Before submitting a bug, please make sure the issue hasn't been already addressed by searching through + [the past issues](https://github.com/nebari-dev/nebari/issues). + + Useful links: + + - Documentation: https://www.nebari.dev + - Contributing: https://www.nebari.dev/community/ + + - type: textarea attributes: - label: OS system and architecture in which you are running Nebari + label: Describe the bug + description: | + A clear and concise description of what the bug is. + We suggest using bullets (indicated by * or -). + placeholder: Be as precise as you can. validations: required: true @@ -22,16 +36,13 @@ body: label: Expected behavior description: | A clear and concise description of what you expected to happen. - We suggest using bullets (indicated by * or -) here. + We suggest using bullets (indicated by * or -). validations: required: true - - type: textarea + - type: input attributes: - label: Actual behavior - description: | - A clear and concise description of what the bug is. - We suggest using bullets (indicated by * or -) here. + label: OS and architecture in which you are running Nebari validations: required: true @@ -39,8 +50,9 @@ body: attributes: label: How to Reproduce the problem? description: | - Please provide steps to reproduce this bug. - Please use numbered list items. + Please provide a minimal code example to reproduce the error. + Be as succinct as possible, and provide detailed step by step guidelines to reproduce the bug (using numbered items). + If you have created a GitHub gist, you can paste the link in this box instead. validations: required: true @@ -56,7 +68,7 @@ body: If you want to present output from multiple commands, please present that as a shell session (commands you run get prefixed with `$ `). - Please also ensure that the "How to reproduce" section contains matching + Please also ensure that the "How to reproduce the problem?" section contains matching instructions for reproducing this. validations: required: false @@ -82,22 +94,23 @@ body: - "GCP" - "AWS" - "Digital Ocean" - - "minikube" + - "kind" validations: required: false - type: dropdown attributes: label: Integrations - description: Is this issue related to onay of the Nebari integrations? + description: Is this issue related to any of the Nebari integrations? multiple: true options: - "Prefect" - "Keycloak" - "conda-store" - "Dask" - - "dashboards" + - "CDS dashboards" - "Grafana" + - "Argo" - type: textarea attributes: @@ -108,3 +121,8 @@ body: Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in. validations: required: false + + - type: markdown + attributes: + value: > + Thanks for contributing πŸŽ‰! diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index d07e48033e..4df0662d69 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,11 +1,14 @@ blank_issues_enabled: false contact_links: - - name: Nebari Documentation πŸ“– - url: https://docs.nebari.dev/en/stable/ - about: Read Nebari docs and development guide. - - name: GitHub discussions πŸ’¬ - url: https://github.com/Quansight/nebari/discussions - about: Keep up to date with the community discussions - - name: "(maintainers only) Blank issue" - url: https://github.com/Quansight/nebari/issues/new + - name: Nebari Documentation + url: https://www.nebari.dev/docs/ + about: Check out the Nebari documentation + - name: Nebari Discussions - our user forum + url: https://github.com/orgs/nebari-dev/discussions + about: Ask questions, discuss RFDs and help other Nebari's users + - name: Documentation issues πŸ“– + about: Did you find an error in our documentation? Report your findings here. + url: https://github.com/nebari-dev/nebari-docs/issues/new/choose + - name: (maintainers only) - Blank issue + url: https://github.com/nebari-dev/nebari/issues/new about: For maintainers only - should be used sparingly diff --git a/.github/ISSUE_TEMPLATE/documentation.md b/.github/ISSUE_TEMPLATE/documentation.md deleted file mode 100644 index e22df9fe8a..0000000000 --- a/.github/ISSUE_TEMPLATE/documentation.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -name: "Documentation \U0001F516" -about: Issues and feedback related to the docs. -title: "[DOC] - <title>" -labels: ["type: documentation"] - ---- - -:warning: This form is for reporting issues and proving feedback about the documentation ONLY. - -**We are currently organising our docs and would appreciate any feedback, suggestions or painpoint report from our community. -Don't be shy, we will love to hear from you! πŸ‘‚ -** - -Have a question instead? Head over to our [Discussion Q&A](https://github.com/Quansight/nebari/discussions/categories/q-a) page and tell us what is bothering you. diff --git a/.github/ISSUE_TEMPLATE/documentation.yml b/.github/ISSUE_TEMPLATE/documentation.yml new file mode 100644 index 0000000000..dcf33b02ea --- /dev/null +++ b/.github/ISSUE_TEMPLATE/documentation.yml @@ -0,0 +1,56 @@ +name: "Documentation πŸ“–" +description: Did you find an error in our documentation? Report your findings here. +title: "[DOC] - <title>" +labels: ["area: documentation πŸ“–"] + +body: + - type: markdown + attributes: + value: | + # Welcome πŸ‘‹ + + Thanks for using Nebari and taking some time to contribute to this project. + + Please fill out each section below. This info allows Nebari maintainers to diagnose (and fix!) your issue as + quickly as possible. + Before submitting a bug, please make sure the issue hasn't been already addressed by searching through + [the past issues](https://github.com/nebari-dev/nebari-docs/issues). + + Useful links: + + - Documentation: https://www.nebari.dev + - Contribution guidelines: https://www.nebari.dev/community/ + + - type: checkboxes + attributes: + label: Preliminary Checks + description: Please make sure that you verify each checkbox and follow the instructions for them. + options: + - label: "This issue is not a question, feature request, RFC, or anything other than a bug report. Please post those things in GitHub Discussions: https://github.com/nebari-dev/nebari/discussions" + required: true + - type: textarea + validations: + required: true + attributes: + label: Summary + description: | + What problem(s) did you run into that caused you to request a fix to the documentation or additional + documentation? What questions do you think we should answer? + + - type: textarea + validations: + required: true + attributes: + label: Steps to Resolve this Issue + description: | + How can the problem be solved? Are there any additional steps required? Do any other pages need to be updated? + value: | + 1. + 2. + 3. + ... + + - type: markdown + attributes: + value: > + Thanks for contributing πŸŽ‰! diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml similarity index 98% rename from .github/ISSUE_TEMPLATE/feature_request.yml rename to .github/ISSUE_TEMPLATE/feature-request.yml index bd96eedf1d..65fc7a5aa3 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature-request.yml @@ -7,8 +7,7 @@ body: - type: markdown attributes: value: | - Hi! Thanks for using Nebari and taking some time to contribute to this project. - + Hi! Thanks for using Nebari and taking some time to contribute to Nebari. - type: textarea attributes: label: Feature description @@ -34,7 +33,6 @@ body: 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. validations: required: false diff --git a/.github/ISSUE_TEMPLATE/general-issue.yml b/.github/ISSUE_TEMPLATE/general-issue.yml new file mode 100644 index 0000000000..5eac4f2ce2 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/general-issue.yml @@ -0,0 +1,52 @@ +name: "General issue πŸ’‘" +description: "A general template for many kinds of issues." +title: "<title>" +labels: ["needs: triage 🚦"] + +body: + - type: markdown + attributes: + value: | + # Welcome πŸ‘‹ + + Thanks for using Nebari and taking some time to contribute to this project. + + Please fill out each section below. This info allows Nebari maintainers to diagnose (and fix!) your issue as + quickly as possible. + Before submitting a bug, please make sure the issue hasn't been already addressed by searching through + the past issues in this repository. + + Useful links: + + - Documentation: https://www.nebari.dev + - Contributing: https://www.nebari.dev/community/ + + - type: textarea + attributes: + label: Context + description: | + Describe what you are proposing. Provide as much context as possible and link to related issues and/or pull requests. + This section should contain "what" you are proposing. + Are you having any problems? Briefly describe what your pain points are. + validations: + required: true + + - type: textarea + attributes: + label: Value and/or benefit + description: | + What is the value of adding this feature, and who will benefit from it? Include any information that could help us prioritize the issue. + This section should contain "why" this issue should be resolved. + ✨ If this is for a new feature or enhancement, consider adding [user stories](https://www.atlassian.com/agile/project-management/user-stories). + 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. + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/release-checklist.md b/.github/ISSUE_TEMPLATE/release-checklist.md deleted file mode 100644 index c765c31e2f..0000000000 --- a/.github/ISSUE_TEMPLATE/release-checklist.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -name: Release Checklist -about: For maintainers only. -title: '[RELEASE] <version>' -labels: - - 'type: release 🏷' -assignees: '' - ---- - -# Release Checklist - -## Release details - -Scheduled release date - <yyyy/mm/dd> - -Release captain responsible - <@gh_username> - - -## Starting point - a new release is out - -- [x] Create *this* issue to track and discuss the upcoming release. -- [ ] Use the previous release issue for any final release-specific discussions, then close. - - This can be a good time to debrief and discuss improvements to the release process. - - -## Looking forward - planning - -- [ ] [Create milestone for next release](https://github.com/nebari-dev/nebari/milestones) (if it doesn't already exist) and link it back here. -- [ ] Triage `bugs` to determine what be should included in the release and add it to the milestone. -- [ ] What new features, if any, will be included in the release and add it to the milestone. - - This will be, in large part, determined by the roadmap. - - Is there a focus for this release (i.e. UX/UI, stabilitation, etc.)? - - -## Pre-release process - -- [ ] Decide on a date for the release. - - What outstanding issues need to be addressed? - - Has documentation been updated appropriately? - - Are there any breaking changes that should be highlighted? - - Are there any upstream releases we are waiting on? - - [Do we need to update the `dask` versions in the `nebari-dask`?](https://github.com/conda-forge/nebari-dask-feedstock/blob/main/recipe/meta.yaml#L13-L16) - - Will there be an accompanying blog post? -- [ ] Prepare for the release. - - [ ] Announce build freeze. - - [ ] Release Candidate (RC) cycle. - - Is this a hotfix? - - [ ] Create a new branch off of the last version tag. - - Use this branch to cut the pre-release and the "official" release. - - [ ] `git cherry-pick` the commits that should be included. - - [ ] Perform end-to-end testing. [Use the Testing Checklist template.](https://github.com/nebari-dev/nebari/issues/new?assignees=&labels=type%3A+release+%F0%9F%8F%B7&template=testing-checklist.md&title=Testing+checklist+for+<version>) - - For minor releases, relying on the end-to-end integration tests might suffice. - - [ ] [Cut RC via GHA release workflow (w/ "This is a pre-release" checked).](https://github.com/nebari-dev/nebari/releases/new) - - [ ] End-user validation. - - If possible, pull in volunteers to help test. - - (Repeat steps if necessary) - - [ ] [Update `RELEASE.md` notes.](https://github.com/nebari-dev/nebari/blob/main/RELEASE.md) - - -## Cut the official release - -*These steps must be actioned in the order they appear in this checklist.* -- [ ] [Tag, build and push docker images](https://github.com/nebari-dev/nebari-docker-images/releases/new) -- [ ] [Update and cut release for `nebari-dask` meta package on Conda-Forge.](https://github.com/conda-forge/nebari-dask-feedstock) -- [ ] [Cut PyPI release via GHA release workflow.](https://github.com/nebari-dev/nebari/releases/new) - - Avoid appending `v` to tag. - - Copy release notes from `RELEASE.md`. -- [ ] Merge release branch into `main` -- [ ] [Merge automated release PR for `nebari` on Conda-Forge.](https://github.com/conda-forge/nebari-feedstock) diff --git a/.github/ISSUE_TEMPLATE/testing-checklist.md b/.github/ISSUE_TEMPLATE/testing-checklist.md deleted file mode 100644 index 1a8553a0b6..0000000000 --- a/.github/ISSUE_TEMPLATE/testing-checklist.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -name: Testing Checklist -about: For maintainers only. -title: 'Testing checklist for <version>' -labels: - - 'type: release 🏷' -assignees: '' - ---- - -# Testing Checklist - -*Use/modify this checklist to capture the platform's core services that need to be manually tested .* - -## Manual testing: core services - -If the integration tests for all of the cloud providers are successful, that is a good sign! -However, the following core services still need to be manually validated (until we can automate them). - -At minimum, the following services will need to be tested: -- [ ] [Log into keycloak as root user](https://nebari-docs.netlify.app/how-tos/configuring-keycloak#change-keycloak-root-password) - - [ ] [Add a user](https://nebari-docs.netlify.app/how-tos/configuring-keycloak#adding-a-nebari-user) -- [ ] [Log into conda-store and create](https://nebari-docs.netlify.app/tutorials/creating-new-environments) - - [ ] a conda environment in a shared namespace and, - - [ ] a conda environment in your personal namespace -- [ ] [Launch dask-gateway cluster, test auto-scaler and](https://nebari-docs.netlify.app/tutorials/using_dask) - - [ ] [Validate that the dask-labextention is working](https://nebari-docs.netlify.app/tutorials/using_dask#step-5---viewing-the-dashboard-inside-of-jupyterlab) -- [ ] [Create a basic CDS Dashboard](https://nebari-docs.netlify.app/tutorials/creating-cds-dashboard) -- [ ] [Open VS-Code extension](https://nebari-docs.netlify.app/tutorials/using-vscode) - - [ ] [Add the Python extension](https://nebari-docs.netlify.app/tutorials/using-vscode#adding-extensions) - - [ ] [Create a `.py` file and run it](https://nebari-docs.netlify.app/tutorials/using-vscode#running-python-code) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 6467bfd5f4..bac0c8b888 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,22 +1,24 @@ -Fixes | Closes | Resolves # +<!-- +Thanks for contributing a pull request! Please ensure you have taken a look at +the contribution guidelines: https://nebari.dev/community +--> -> Please remove anything marked as optional that you don't need to fill in. -> Choose one of the keywords preceding to refer to the issue this PR solves, followed by the issue number (e.g Fixes # 666). -> If there is no issue, remove the line. Remove this note after reading. +## Reference Issues or PRs -## Changes introduced in this PR: +<!-- +Example: Fixes #1234. See also #3456. +Please use keywords (e.g., Fixes) to create a link to the issues or pull requests +you resolved, so that they will automatically be closed when your pull request +is merged. See https://github.com/blog/1506-closing-issues-via-pull-requests +--> -- +## What does this implement/fix? -## Types of changes - -What types of changes does your PR introduce? - -_Put an `x` in the boxes that apply_ +_Put a `x` in the boxes that apply_ - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds a feature) -- [ ] Breaking change (fix or feature that would cause existing features to not work as expected) +- [ ] Breaking change (fix or feature that would cause existing features not to work as expected) - [ ] Documentation Update - [ ] Code style update (formatting, renaming) - [ ] Refactoring (no functional changes, no API changes) @@ -25,25 +27,17 @@ _Put an `x` in the boxes that apply_ ## Testing -### Requires testing - -- [ ] Yes -- [ ] No - -### In case you checked yes, did you write tests? - -- [ ] Yes -- [ ] No - -## Documentation - -Does your contribution include breaking changes or deprecations? -If so have you updated the documentation? - -- [ ] Yes, docstrings -- [ ] Yes, main documentation -- [ ] Yes, deprecation notices +- [ ] Did you test the pull request locally? +- [ ] Did you add new tests? -## Further comments (optional) +## Any other comments? -If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered and more. +<!-- +Please be aware that we are a loose team of volunteers, so patience is necessary; +assistance handling other issues is very welcome. +We value all user contributions. If we are slow to review, either the pull request needs some benchmarking, tinkering, +convincing, etc., or the reviewers are likely busy. In either case, +we ask for your understanding during the +review process. +Thanks for contributing to Nebari πŸ™πŸΌ! +--> diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 11e8654fb6..a4f75277c8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,174 +1,33 @@ # Contributing to Nebari -:sparkles: :raised_hands: Welcome to the Nebari repository! :sparkles: :raised_hands: +Welcome πŸ‘‹πŸΌ! -Everyone is welcome to contribute, and we value everybody's contribution. Code is not the only way to help the community. Your choices aren't limited to programming; as you can see -below, there are many areas where we need **your** help. Answering questions, helping others, reaching out and improving the documentation is immensely valuable to the community. +Thanks for being interested in contributing to Nebari. We’re glad you want to join this community! +Open source doesn’t always have the best reputation for being friendly and welcoming, but the Nebari team truly believes +that everyone belongs in open source, and we are dedicated to making you feel welcome. -Whichever way you choose to contribute, please be mindful of respecting our code of conduct. +All contributions are welcome, including issues, contributing code, new docs as well as updates and tweaks, blog posts, +helping out people, organizing community events, working on accessibility and design items, and more. +Continue reading to learn what the community can do for you and what you can do for the community. +By contributing to open source projects you can connect with people, learn new skills, become a subject-matter expert, +and apply all learnings to your own projects. -This document will help you through your journey of open source. Here, you'll get a quick overview of how we organize things and, most importantly, how to get involved. +> **Note** +> Our detailed contribution guidelines can be found [on Nebari's main documentation site][nebari-community]. +> Make sure to check the guidelines before you start contributing. -## Table of contents +## Reporting issues -- [Contributing to Nebari](#contributing-to-nebari) - - [Table of contents](#table-of-contents) - - [🏷 Where to start: issues](#-where-to-start-issues) - - [Submitting issues](#submitting-issues) - - [Issue labels](#issue-labels) - - [:computer: Contributing to the codebase](#computer-contributing-to-the-codebase) - - [Development process - short summary](#development-process---short-summary) - - [If you are a first-time contributor](#if-you-are-a-first-time-contributor) - - [Develop your contribution](#develop-your-contribution) - - [Submitting your contribution](#submitting-your-contribution) - - [Review process](#review-process) - - [Document changes](#document-changes) - - [Cross referencing issues](#cross-referencing-issues) +When reporting issues please include as much detail as possible about your operating system, Nebari version, and dependencies version. +Whenever possible, also include a brief, self-contained code example that demonstrates the problem. +This [blog post by Matthew Rockling](https://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports) is a good primer on how to craft minimal bug reports. -## 🏷 Where to start: issues - -Before you open a new issue, please check the [open issues][nebari-issues]. See if the issue has already been reported or if your idea has already been discussed. If so, it's often -better to leave a comment on a current issue rather than opening a new one. Old issues also often include helpful tips and solutions to common problems. - -If you are looking for specific help with Nebari or its configuration, check our [Github discussions][nebari-qa]. - -### Submitting issues - -When opening an issue, give it a **descriptive title** and provide as much information as possible. Our [issue templates][nebari-templates] help you remember the most important -details to include. - -There are three issues templates to choose from: - -1. **Bug Report**: With this template, create an issue report that can help others fix something currently broken. -2. **Documentation**: Use this template to provide feedback on our documentation or suggest additions and improvements. -3. **Feature request**: Is there anything to make the community work better? Have you spotted something missing in Nebari? Use this template to share your feature ideas with the Nebari - team. - -A few more tips: - -- **Describing your issue**: Try to provide as many details as possible. What exactly goes wrong? How is it failing? Is there an error? "XY doesn't work" usually isn't that helpful - for tracking down problems. Always remember to include the code you ran, and if possible, extract only the relevant parts, and don't dump your entire script. This will make it - easier for us to reproduce the error. Screenshots are also great ways to demonstrate errors or unexpected behaviours. - -- **Sharing long blocks of code or logs**: If you need to include extended code, logs or tracebacks, you can wrap them in `<details> and </details>`. This collapses the content, so - it only becomes visible on click, making it easier to read and follow. - -- **Suggesting a new feature:** When suggesting a new feature, please also add details on how this new feature might impact the users' and developers' workflow. - -### Issue labels - -Check our [labels page][nebari-labels] for an overview of the system we use to tag our issues and pull requests. - -## :computer: Contributing to the codebase - -You don't have to be a Python or Kubernetes pro to contribute, and we're happy to help you get started. If you're new to Nebari, an excellent place to start are the issues marked -with the [type: good first issue](https://github.com/nebari-dev/nebari/labels/type%3A%20good%20first%20issue) label, which we use to tag bugs and feature requests that require -low-effort (i.e. low entry-barrier or little in-depth knowledge needed) and self-contained. If you've decided to take on one of these problems and you're making good progress, -don't forget to add a quick comment to the issue to assign this to yourself. You can also use the issue to ask questions or share your work in progress. - -### Development process - short summary - -Never made an open-source contribution before? Wondering how contributions work in the Nebari world? Here's a quick rundown! - -#### If you are a first-time contributor - -1. Go to the [Nebari repository][nebari-repo] and click the `fork` button on the top-right corner to create your own copy of the project. - -2. Clone the project to your local computer: - - ```bash - git clone https://github.com/your-username/nebari.git - ``` - -3. Change into the directory: - - ```bash - cd Nebari - ``` - -4. Add the upstream repository: - - ```bash - git remote add upstream https://github.com/nebari-dev/nebari.git - ``` - -Now using the command `git remote -v` will show two remote repositories: - -- `upstream`: which refers to the `Nebari` repository on Github. -- `origin`: which refers to your personal fork - -#### Develop your contribution - -1. Find an issue you are interested in addressing or a feature you would like to address. - -2. Pull the latest changes from upstream - - ```bash - git checkout main - git pull upstream main - ``` - -3. Create a branch for the feature you want to work on. Since the branch name will appear in the merge message, use a sensible, self-explanatory name: - - ```bash - git branch feature/<feature name> - git switch feature/<feature name> - # this is an alternative to the git checkout -b feature/<feature name> command - ``` - -4. Commit locally as you progress (`git add` and `git commit`). Use an adequately formatted commit message, write tests that fail before your change and pass afterwards, run all - the tests locally. Be sure to document any changed behaviour in docstrings. - -#### Submitting your contribution - -1. Push your changes back to your fork on GitHub: - - ```bash - git push origin feature/<feature name> - ``` - -2. Enter your GitHub username and password (repeat contributors or advanced users can remove this step by connecting to GitHub with SSH). - -3. Go to GitHub. The new branch will show a green **Pull Request** button. Make sure the title and message are clear, concise, and self-explanatory. Then click the button to submit - it. - -:warning: - If your commit introduces a new feature or changes functionality, please ensure you first create an open Pull Request on our repo with `WIP` (work in progress) in the -title and marked as draft, explaining what you want to do. That way we can discuss it to be sure it makes sense for Nebari. Or start by creating an issue and indicate that you would -be interested in solving the problem yourself. This is generally not necessary for bug fixes, documentation updates, etc. However, if you do not get any reaction, do feel free to -ask for a review. - -#### Review process - -Reviewers (the other developers and interested community members) will write inline and/or general comments on your Pull Request (PR) to help you improve its implementation, -documentation and style. Every developer working on the project has their code reviewed, and we've come to see it as a friendly conversation from which we all learn and the overall -code quality benefits. Therefore, please don't let the review discourage you from contributing: its only aim is to improve the quality of the project, not to criticize (we are, -after all, very grateful for the time you're donating!). - -To update your PR, make your changes on your local repository, commit, run tests, and only if they succeed, push to your fork. The PR will update automatically as soon as those -changes are pushed up (to the same branch as before). If you have no idea how to fix the test failures, you may push your changes anyway and ask for help in a PR comment. - -Various continuous integration (CI) pipelines are triggered after each PR update to build artefacts, run unit tests, and check the coding style of your branch. The CI tests must -pass before your PR can be merged. If CI fails, you can find why by clicking on the "failed" icon (red cross) and inspecting the build and test log. To avoid overuse and waste of -this resource, test your work locally before committing. - -Before merging, a PR must be approved by at least one core team member. Approval means the core team member has carefully reviewed the changes, and the PR is ready for merging. - -#### Document changes - -Beyond changes to a functions docstring and possible description in the general documentation, if your change introduces any user-facing modifications, they may need to be -mentioned in the release notes. - -#### Cross referencing issues - -If the PR relates to any issues, you can add the text `xref gh-xxxx` where `xxxx` is the issue number to GitHub comments. Likewise, if the PR solves an issue, replace the `xref` -with `closes`, `fixes` or any other flavours [github accepts](https://help.github.com/en/articles/closing-issues-using-keywords). - -In the source code, be sure to preface any issue or PR reference with gh-xxxx. +- Use the [Nebari issue tracker][nebari-issues] for issues, bug reports, and feature requests for Nebari. +- Use the [Nebari documentation issue tracker][nebari-docs-issues] for documentation-related improvements. +- Read more about [best practices for issues creation](https://www.nebari.dev/docs/community/file-issues) in our community docs. <!-- Links --> +[nebari-docs-issues]: https://github.com/nebari-dev/nebari-docs/issues [nebari-issues]: https://github.com/nebari-dev/nebari/issues -[nebari-labels]: https://github.com/nebari-dev/nebari/labels -[nebari-qa]: https://github.com/nebari-dev/nebari/discussions/categories/q-a -[nebari-repo]: https://github.com/nebari-dev/nebari/ -[nebari-templates]: https://github.com/nebari-dev/nebari/issues/new/choose +[nebari-community]: https://nebari.dev/docs/community diff --git a/LICENSE b/LICENSE index 2fa9f561d0..ff1384234c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2020, Nebari Development Team. +Copyright (c) 2020-2022, Nebari development team All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/docs/_templates/announcement.html b/docs/_templates/announcement.html new file mode 100644 index 0000000000..a75d87201e --- /dev/null +++ b/docs/_templates/announcement.html @@ -0,0 +1,5 @@ +<p> + <b>⚠️ QHub is now Nebari!</b> + Read the latest documentation at <a href="https://nebari.dev/">nebari.dev</a>. + This website (qhub.dev) is no longer maintained and will soon be removed. +</p> diff --git a/docs/conf.py b/docs/conf.py index 18dc0e1766..c92594012a 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -18,6 +18,9 @@ BLOG_TITLE = title = html_title = "Docs" BLOG_AUTHOR = author = "Quansight" html_theme = "pydata_sphinx_theme" +html_sidebars = { + "**": ["announcement", "search-field", "sidebar-nav-bs", "sidebar-ethical-ads"], +} # The master toctree document. master_doc = "index" @@ -95,7 +98,7 @@ # Import qhub version number here = os.path.abspath(os.path.dirname(__file__)) __version__ = None -exec(open(os.path.join(here, "../qhub/version.py")).read()) +exec(open(os.path.join(here, "../nebari/version.py")).read()) qhub_version_string = __version__ diff --git a/docs/requirements.txt b/docs/requirements.txt index 9fc0428eb1..2ca6d97da7 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1 +1 @@ -jupyter-book +jupyter-book # We don't use jupyter-book directly, it includes all the dependencies we need. diff --git a/nebari/render.py b/nebari/render.py index 73865bf8d3..cf953cf9f2 100644 --- a/nebari/render.py +++ b/nebari/render.py @@ -1,11 +1,13 @@ import functools import hashlib +import json import os import pathlib import shutil import sys from typing import Dict, List +import yaml from rich import print from rich.table import Table from ruamel.yaml import YAML @@ -162,16 +164,16 @@ def render_contents(config: Dict): if config.get("ci_cd"): for fn, workflow in gen_cicd(config).items(): - contents.update( - { - fn: workflow.json( - indent=2, - by_alias=True, - exclude_unset=True, - exclude_defaults=True, - ) - } + workflow_json = workflow.json( + indent=2, + by_alias=True, + exclude_unset=True, + exclude_defaults=True, ) + workflow_yaml = yaml.dump( + json.loads(workflow_json), sort_keys=False, indent=2 + ) + contents.update({fn: workflow_yaml}) contents.update(gen_gitignore(config)) From 81207dd21a53216d4050e50c11e54fc0fafe292a Mon Sep 17 00:00:00 2001 From: Pavithra Eswaramoorthy <pavithraes@outlook.com> Date: Thu, 24 Nov 2022 01:46:26 +0100 Subject: [PATCH 3/4] Update "QHub" to "Nebari" in example notebooks (#1556) Co-authored-by: Nebari-sensei <116370392+nebari-sensei@users.noreply.github.com> Co-authored-by: eskild <42120229+iameskild@users.noreply.github.com> --- .../jupyterhub/files/examples/dashboard_panel.ipynb | 2 +- .../services/jupyterhub/files/examples/dask-gateway.ipynb | 2 +- .../services/jupyterhub/files/examples/kbatch_nb.ipynb | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/nebari/template/stages/07-kubernetes-services/modules/kubernetes/services/jupyterhub/files/examples/dashboard_panel.ipynb b/nebari/template/stages/07-kubernetes-services/modules/kubernetes/services/jupyterhub/files/examples/dashboard_panel.ipynb index 198cab6aa2..f1e3e20d78 100644 --- a/nebari/template/stages/07-kubernetes-services/modules/kubernetes/services/jupyterhub/files/examples/dashboard_panel.ipynb +++ b/nebari/template/stages/07-kubernetes-services/modules/kubernetes/services/jupyterhub/files/examples/dashboard_panel.ipynb @@ -19,7 +19,7 @@ "outputs": [], "source": [ "content = panel.pane.Markdown('''\n", - "# Hello QHub\n", + "# Hello Nebari\n", "\n", "This is some markdown content\n", "''')\n", diff --git a/nebari/template/stages/07-kubernetes-services/modules/kubernetes/services/jupyterhub/files/examples/dask-gateway.ipynb b/nebari/template/stages/07-kubernetes-services/modules/kubernetes/services/jupyterhub/files/examples/dask-gateway.ipynb index 64d8f29851..d519477eeb 100644 --- a/nebari/template/stages/07-kubernetes-services/modules/kubernetes/services/jupyterhub/files/examples/dask-gateway.ipynb +++ b/nebari/template/stages/07-kubernetes-services/modules/kubernetes/services/jupyterhub/files/examples/dask-gateway.ipynb @@ -32,7 +32,7 @@ "source": [ "## List active cluster\n", "\n", - "QHub has a rich authorization model so it is possible that your given user does not have access. Consult your administrator if you need access." + "Nebari has a rich authorization model so it is possible that your given user does not have access. Consult your administrator if you need access." ] }, { diff --git a/nebari/template/stages/07-kubernetes-services/modules/kubernetes/services/jupyterhub/files/examples/kbatch_nb.ipynb b/nebari/template/stages/07-kubernetes-services/modules/kubernetes/services/jupyterhub/files/examples/kbatch_nb.ipynb index c31052fecd..ac2ea9199f 100644 --- a/nebari/template/stages/07-kubernetes-services/modules/kubernetes/services/jupyterhub/files/examples/kbatch_nb.ipynb +++ b/nebari/template/stages/07-kubernetes-services/modules/kubernetes/services/jupyterhub/files/examples/kbatch_nb.ipynb @@ -9,7 +9,7 @@ "source": [ "# Canonical Tests\n", "\n", - "The goal of the work we performed on behalf of OGC/USGS was to enable users on QHub (and perhaps plain JupyterHub) to:\n", + "The goal of the work we performed on behalf of OGC/USGS was to enable users on Nebari (and perhaps plain JupyterHub) to:\n", "- [ ] run long-running notebooks or scripts\n", "- [ ] run notebooks and scripts as cronjobs\n", "\n", @@ -27,11 +27,11 @@ "The first two features outline above will be handled by [`kbatch`](https://github.com/kbatch-dev/kbatch). `kbatch` consists of two major components, the frontend `kbatch` and backend `kbatch-proxy`. The user submits job requests to `kbatch-proxy` and `kbatch-proxy` submits those job requests to the Kubernetes API. \n", "\n", "> NOTE:\n", - "> At the present, no additional features have been added to `kbatch`, we have simply integrated `kbatch-proxy` into QHub. A feature enhancement PR will need to be opened on the `kbatch` repo in order to enable cronjobs.\n", + "> At the present, no additional features have been added to `kbatch`, we have simply integrated `kbatch-proxy` into Nebari. A feature enhancement PR will need to be opened on the `kbatch` repo in order to enable cronjobs.\n", "\n", "### Setup\n", "\n", - "In order to use `kbatch` in it's current form, some basic setup is required of the user. Going forward, we will assume that `kbatch-proxy` has been correctly integrated into QHub.\n", + "In order to use `kbatch` in it's current form, some basic setup is required of the user. Going forward, we will assume that `kbatch-proxy` has been correctly integrated into Nebari.\n", "\n", "1. Create or modify a conda environment by adding `kbatch`. And activate this conda environment.\n", "\n", From d1d97c76267bd802934ea559c7527904b59ada31 Mon Sep 17 00:00:00 2001 From: Pavithra Eswaramoorthy <pavithraes@outlook.com> Date: Thu, 24 Nov 2022 01:47:21 +0100 Subject: [PATCH 4/4] Update links to Nebari docs in guided init (#1557) Co-authored-by: Nebari-sensei <116370392+nebari-sensei@users.noreply.github.com> Co-authored-by: eskild <42120229+iameskild@users.noreply.github.com> --- nebari/cli/init.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nebari/cli/init.py b/nebari/cli/init.py index b28cf1c2f8..f5b944fb03 100644 --- a/nebari/cli/init.py +++ b/nebari/cli/init.py @@ -37,8 +37,8 @@ CREATE_GITHUB_OAUTH_CREDS = "https://docs.github.com/en/developers/apps/building-oauth-apps/creating-an-oauth-app" # links to Nebari docs -DOCS_HOME = "https://nebari.dev" -CHOOSE_CLOUD_PROVIDER = "https://nebari.dev/getting-started/deploy" +DOCS_HOME = "https://nebari.dev/docs/" +CHOOSE_CLOUD_PROVIDER = "https://nebari.dev/docs/get-started/deploy" def enum_to_list(enum_cls): @@ -544,7 +544,7 @@ def if_used(key, model=inputs, ignore_list=["cloud_provider"]): "You can now deploy your Nebari instance with:\n\n" "\t[green]nebari deploy -c nebari-config.yaml[/green]\n\n" "For more information, run [green]nebari deploy --help[/green] or check out the documentation: " - "[green]https://www.nebari.dev/how-tos/[/green]" + "[green]https://www.nebari.dev/docs/how-tos/[/green]" ) )