diff --git a/01OS/pyproject.toml b/01OS/pyproject.toml index 04d816d..7312dd1 100644 --- a/01OS/pyproject.toml +++ b/01OS/pyproject.toml @@ -32,4 +32,17 @@ requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.poetry.scripts] -01 = "start:main" \ No newline at end of file +01 = "start:main" + +[tool.poetry.group.dev.dependencies] +black = "^23.10.1" +isort = "^5.12.0" +pre-commit = "^3.6.2" + +[tool.black] +target-version = ['py311'] + +[tool.isort] +profile = "black" +multi_line_output = 3 +include_trailing_comma = true \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..0f011a6 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,88 @@ +# ● + +**01 is the world's first open-source Language Model Computer (LMC). 01OS is the operating system that powers it** + +There are many ways to contribute, from helping others on [Github](https://github.com/KillianLucas/01/issues) or [Discord](https://discord.gg/Hvz9Axh84z), writing documentation, or improving code. + +We depend on contributors like you. Let's build this. + +## What should I work on? + +Please pick up a task from our [roadmap](https://github.com/KillianLucas/01/blob/main/ROADMAP.md) or work on solving an [issue](https://github.com/KillianLucas/01/issues). + +If you encounter a bug or have a feature in mind, [search if an issue already exists](https://docs.github.com/en/github/searching-for-information-on-github/searching-on-github/searching-issues-and-pull-requests#search-by-the-title-body-or-comments). If a related issue doesn't exist, please [open a new issue](https://github.com/KillianLucas/01/issues/new/choose). + +## Philosophy + +01OS embodies a philosophy of breaking free from technological limitations and knowledge gaps by leveraging AI for intuitive, natural language interactions, democratizing access to compute through open-source flexibility and transforming devices into responsive, human-centric computing tools. + +# Contribution Guidelines + +1. Before taking on significant code changes, please discuss your ideas on [Discord](https://discord.gg/Hvz9Axh84z) to ensure they align with our vision. We want to keep the codebase simple and unintimidating for new users. +2. Fork the repository and create a new branch for your work. +3. Follow the [Running Your Local Fork](https://github.com/KillianLucas/01/blob/main/CONTRIBUTING.md#running-your-local-fork) guide below. +4. Make changes with clear code comments explaining your approach. Try to follow existing conventions in the code. +5. Follow the [Code Formatting and Linting](https://github.com/KillianLucas/01/blob/main/CONTRIBUTING.md#code-formatting-and-linting) guide below. +6. Open a PR into `main` linking any related issues. Provide detailed context on your changes. + +We will review PRs when possible and work with you to integrate your contribution. Please be patient as reviews take time. Once approved, your code will be merged. + +## Running Your Local Fork + +Once you've forked the code and created a new branch for your work, you can run the fork by following these steps: + +1. CD into the project folder `/01OS` +2. Install dependencies `poetry install` +3. Run the program `poetry run 01` + +**Note**: This project uses [`black`](https://black.readthedocs.io/en/stable/index.html) and [`isort`](https://pypi.org/project/isort/) via a [`pre-commit`](https://pre-commit.com/) hook to ensure consistent code style. If you need to bypass it for some reason, you can `git commit` with the `--no-verify` flag. + +### Installing New Dependencies + +If you wish to install new dependencies into the project, please use `poetry add package-name`. + +### Installing Developer Dependencies + +If you need to install dependencies specific to development, like testing tools, formatting tools, etc. please use `poetry add package-name --group dev`. + +### Known Issues + +For some, `poetry install` might hang on some dependencies. As a first step, try to run the following command in your terminal: + +`export PYTHON_KEYRING_BACKEND=keyring.backends.fail.Keyring` + +Then run `poetry install` again. If this doesn't work, please join our [Discord community](https://discord.gg/Hvz9Axh84z) for help. + +## Code Formatting and Linting + +Our project uses `black` for code formatting and `isort` for import sorting. To ensure consistency across contributions, please adhere to the following guidelines: + +1. **Install Pre-commit Hooks**: + + If you want to automatically format your code every time you make a commit, install the pre-commit hooks. + + ```bash + pip install pre-commit + pre-commit install + ``` + + After installing, the hooks will automatically check and format your code every time you commit. + +2. **Manual Formatting**: + + If you choose not to use the pre-commit hooks, you can manually format your code using: + + ```bash + black . + isort . + ``` + +# Licensing + +Contributions to 01 are under AGPL. + +# Questions? + +Join our [Discord community](https://discord.gg/Hvz9Axh84z) and post in the #General channel to connect with contributors. We're happy to guide you through your first open source contribution to this project! + +**Thank you for your dedication and understanding as we continue refining our processes. As we explore this extraordinary new technology, we sincerely appreciate your involvement.** diff --git a/ROADMAP.md b/ROADMAP.md new file mode 100644 index 0000000..b41e79a --- /dev/null +++ b/ROADMAP.md @@ -0,0 +1,9 @@ +# Roadmap + +- [ ] Release a device that works without internet connection + +- [ ] Train model for computer control + +- [ ] Publish open source protocols + +- [ ] Expanding the devices supported by 01OS diff --git a/hardware/01-light.md b/hardware/01-light.md new file mode 100644 index 0000000..b6516a8 --- /dev/null +++ b/hardware/01-light.md @@ -0,0 +1,5 @@ +# 01 light + +[Bill of Materials](https://docs.google.com/spreadsheets/d/19O2-IE3wup_nufkUPvPG0498qMEbMPHYapTOIlA6QyY/edit#gid=0) + +[Design Files](https://drive.google.com/drive/folders/1DdxV91708B1xeIigJ3n9jjMrv-IZi9g4)