diff --git a/CODE-OF-CONDUCT.md b/CODE-OF-CONDUCT.md index a7f158f3..7e79582c 100644 --- a/CODE-OF-CONDUCT.md +++ b/CODE-OF-CONDUCT.md @@ -7,8 +7,8 @@ We are committed to making participation in the project a harassment-free experi ## Scope This code of conduct applies: -* within project and community spaces, -* in other spaces when a project community participant's words or actions are directed at or are about the project, the project's community, or another participant in the project community. +* Within project and community spaces +* In other spaces when a project community participant's words or actions are directed at or are about the project, the project's community, or another participant in the project community ## Our Standards diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..71f4d1c8 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,90 @@ +# Contributing Guide + +* [Ways to Contribute](#ways-to-contribute) +* [Development Environment Setup](#development-environment-setup) **TODO** +* [Pull Request Lifecycle](#pull-request-lifecycle) +* [Sign Your Commits](#sign-your-commits) +* [Pull Request Checklist](#pull-request-checklist) **TODO** +* [Ask for Help](#ask-for-help) + +Welcome! We are so excited that you want to contribute to our project! 💖 + +As you get started, you are in the best position to give us feedback on areas of our project that we need help with including: + +* Problems found during setting up a new developer environment +* Gaps in our guides or documentation +* Bugs in our tools and automation scripts + +If anything doesn't make sense, or doesn't work when you try it, please open a bug report and let us know! + +## Ways to Contribute + +We welcome many different types of contributions including: + +* New features +* Builds and CI/CD +* Bug fixes +* Documentation +* Issue triage +* Answering questions on Discord, or the mailing list +* Web design +* Communications, social media, blog posts, or other marketing +* Release management + +Not everything happens through a GitHub pull request. Please contact us in the [#general channel of our Discord server](https://discord.gg/XzSmtPn3) or during our [office hours meeting](./GOVERNANCE.md#meetings) and let's discuss how we can work together. + +## Development Environment Setup + +(TODO) **Explain how to set up a development environment** + +## Pull Request Lifecycle + +Pull requests are often called a "PR". KitOps generally follows the standard [GitHub pull request process](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests). + +## Code Reviews + +There are two aspects of code review: giving and receiving. To make it easier for your PR to receive reviews, consider that reviewers will need you to: + +* Follow the project coding conventions +* Write good commit messages +* Break large changes into a logical series of smaller patches which individually make easily understandable changes, and in aggregate solve a broader issue + +Reviewers, the people giving the review, are highly encouraged to revisit our [Code of Conduct](./CODE_OF_CONDUCT.md) and must go above and beyond to promote a collaborative, respectful community. When reviewing PRs from others [The Gentle Art of Patch Review](https://sage.thesharps.us/2014/09/01/the-gentle-art-of-patch-review/) suggests an iterative series of focuses which is designed to lead new contributors to positive collaboration without inundating them initially with a pile of suggestions: + +1. Is the idea behind the contribution sound? +1. Is the contribution architected correctly? +1. Is the contribution polished? + +If your PR isn't getting any attention after 3-4 days (remember Maintainers tend to be very busy) please ping one of the Maintainers in Discord. + +## Sign Your Commits + +Licensing is important to open source projects. It provides some assurances that the software will continue to be available based under the terms that the author(s) desired. We require that contributors sign off on commits submitted to our project's repositories. The [Developer Certificate of Origin (DCO)](https://probot.github.io/apps/dco/) is a way to certify that you wrote and have the right to contribute the code you are submitting to the project. + +You sign-off by adding the following to your commit messages. Your sign-off must match the git user and email associated with the commit. Your commit message should be followed by: + + Signed-off-by: Your Name + +Git has a `-s` command line option to do this automatically: + + git commit -s -m 'This is my commit message' + +If you forgot to do this and have not yet pushed your changes to the remote +repository, you can amend your commit with the sign-off by running + + git commit --amend -s + +## Pull Request Checklist + +When you submit your pull request, or you push new commits to it, our automated systems will run some checks on your new code. We require that your pull request passes these checks, but we also have more criteria than just that before we can accept and merge it. We recommend that you check the following things locally before you submit your code: + +(TODO) **Create a checklist that authors should use before submitting a pull request** + + +## Ask for Help + +The best way to reach us with a question when contributing is to ask on: + +* The original github issue +* Our Discord channel (TODO) +* At our [office hours meeting](./GOVERNANCE.md) diff --git a/MAINTAINERS.md b/MAINTAINERS.md index 17d1624b..08f56a90 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -1,11 +1,11 @@ The current Maintainers Group for the KitOps project are: -| GH Handle | Name | Employer | -| --------- | ---- | -------- | -| gorkem | Gorkem Ercan | Jozu | -| amisevsk | Angel Misevski | Jozu | -| nida-hasan | Nida Hasan | Jozu | -| javisperez | Javis Perez | Jozu | -| bmicklea | Brad Micklea | Jozu | +| GH Handle | Name | +| --------- | ---- | +| gorkem | Gorkem Ercan | +| amisevsk | Angel Misevski | +| nida-hasan | Nida Hasan | +| javisperez | Javis Perez | +| bmicklea | Brad Micklea | See [KitOps Governance](GOVERNANCE.md) for how maintainers are selected and replaced. diff --git a/README.md b/README.md index d49e03ef..2cc1f77e 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,45 @@ -# Kit - +# KitOps ## Description -`kit` is a command-line interface (CLI) tool designed to simplify the packaging, versioning, and distribution of AI/ML models as OCI (Open Container Initiative) artifacts. By leveraging the familiar workflow of containerization platforms like Docker, `kit` enables data scientists and AI developers to encapsulate their models along with all necessary dependencies, configurations, and environments into a standardized, portable format. This facilitates easy sharing and deployment across diverse computing environments, ensuring that models are readily usable without compatibility issues. `kit` supports a wide range of AI/ML frameworks, offers robust version control for model iterations, integrates security practices for safe distribution, and provides a seamless connection to model repositories for storing and retrieving models. With `kit`, the aim is to streamline the end-to-end lifecycle of AI/ML model management, making it as effortless as managing containerized applications. +The KitOps project provides tools for building, packaging, and deploying / running all kinds of ML models. The KitOps project enables data scientists and AI/ML developers to encapsulate their models along with all necessary dependencies, configurations, and environments into a standardized, portable format. This facilitates easy sharing and deployment across diverse computing environments, ensuring that models are readily usable without compatibility issues. + +The project is composed of two main components: + +* A `kitfile` manifest that lists a model, its dataset(s), code, and metadata - everything required to build, deploy, or run that model +* The `kit` command-line interface (CLI) tool designed to simplify the packaging, versioning, and distribution of AI/ML models as OCI (Open Container Initiative) artifacts + +We refer to the final package that the `kit` CLI builds based on the `kitfile` as a **Model Kit**. Model Kits can be run in a Jupyter Notebook, or packaged as a Docker container that can be run anywhere. Kit supports a wide range of AI/ML frameworks, offers robust version control for model iterations, integrates security practices for safe distribution, and provides a seamless connection to model repositories for storing and retrieving models. + +Kit's aim is to streamline the end-to-end lifecycle of AI/ML model management, making it as effortless as managing containerized applications. + +## Running Kit with Binaries + +You can download the Kit CLI using one of our [tagged versions](https://github.com/jozu-ai/kitops/tags). Make sure you get the right binary for your platform: + +* MacOS: TODO +* Linux: TODO +* Windows: TODO + +We suggest renaming the executable once it's downloaded to just `kit` (make sure it's in your path an executable). -## Table of Contents +Run Kit by opening a terminal and typing: -- [Installation](#installation) -- [Usage](#usage) -- [Contributing](#contributing) -- [License](#license) +```shell +./kit +``` + +This will list all the commands you can use. + +## Building and Running Kit from Source Code -## Build the project +You can get the Kit CLI sources from our [tagged versions](https://github.com/jozu-ai/kitops/tags). ```shell go build -o kit ``` -## Run the project +Then run the project: ```shell ./kit @@ -30,10 +51,18 @@ Alternatively go run kit ``` +## Filing Issues and Feature Requests + +We want to see Kit become an open standard across the growing AI/ML industry so we *deeply value* the issues and feature requests we get from users in our community :sparkling_heart:. You can file an issue by selecting the **Issues** tab and hitting the **New Issue** green button. There are templates for Issues and Feature Requests, the more information you provide us the faster and better we can address your request. Thank you! + ## Contributing -TODO: +We ❤️ our Kit community and contributors. To learn more about the many ways you can contribute (you don't need to be a coder) and how to get started see our [Contributor's Guide](./CONTRIBUTING.md). Please read our [Governance](./GOVERNANCE.md) and our [Code of Conduct](./CODE-OF-CONDUCT.md) before contributing. + +## Support + +If you need help there are several ways to reach our community and [Maintainers](./MAINTAINERS.md) outlined in our [support doc](./SUPPORT.md) -## License +## Code of Conduct -TODO: \ No newline at end of file +We run an inclusive, empathetic, and responsible community. Please read our [Code of Conduct](./CODE-OF-CONDUCT.md). diff --git a/SUPPORT.md b/SUPPORT.md index 16782dbb..ea9dacc6 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -5,6 +5,7 @@ Welcome to our project! We use GitHub for tracking bugs and feature requests. If you need other types of help try: * [User Documentation - TODO](TODO) * [Discord - TODO](TODO) +* Join our [public office hours meeting](./GOVERNANCE.md) ## Enterprise Support If you're looking to get enterprise support for your organization or team please contact [Jozu](mailto:sales@jozu.com)