diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8f6c044ba3816e25d76cfb50fd0ed9e03159d87b..f66ee7fee9a9585fd943d062f88ea050a2f36b02 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -75,8 +75,6 @@ pages: script: - export GOPATH=/usr/local/go - export PATH=$PATH:$GOPATH/bin - - echo $GOPATH - - echo $PATH - GO111MODULE=on /usr/lib/go-1.15/bin/go get github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc@v1.4.1 - mkdir -p build - cd build diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000000000000000000000000000000000..10652f17f2f515bb408d91ffc2f18564c7452f1d --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,20 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +### Added + +### Changed + +### Deprecated + +### Removed + +### Fixed + +### Security diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000000000000000000000000000000000000..9de921c9981572e001ee41e37f4ef7a36ccd30d8 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at **t.fitschen (AT) indiscale.com**, +**d.hornung (AT) indiscale.com**, **a.schlemmer (AT) indiscale.com**, or +**h.tomwoerden (AT) indiscale.com**. All complaints will be +reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000000000000000000000000000000000..57ca255f3841ec34e005a36445f19afeac382325 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,28 @@ +# Contributing + +Thank you very much to all contributers—[past, present](HUMANS.md), and prospective ones. + +## Code of Conduct + +By participating, you are expected to uphold our [Code of Conduct](CODE_OF_CONDUCT.md). + +## How to Contribute + +* You found a bug, have a question, or want to request a feature? Please file + a Gitlab issue. +* You want to contribute code or write documentation? There is no standardized + way to contribute code yet. Please contact us at <info@indiscale.com> if + there has not been any prior contact. + +## Merge Requests and Code Review + +Please, prepare your MR for a review: Be sure to write a summary section and a +focus section. The summary should summarize what your MR is about. The focus +should point the reviewer to the most important code changes. + +Also, create gitlab comments for the reviewer. They should guide the +reviewer through the changes, explain your changes and also point out open +questions. + +For further good practices have a look at +[our review guidelines](https://gitlab.com/caosdb/caosdb/-/blob/dev/REVIEW_GUIDELINES.md). diff --git a/DEPENDENCIES.md b/DEPENDENCIES.md new file mode 100644 index 0000000000000000000000000000000000000000..50044892de77876c47c45760c47f1f5e9fdc5d9d --- /dev/null +++ b/DEPENDENCIES.md @@ -0,0 +1,19 @@ +# GENERAL + + +# BUILD DOCS + +* >=cmake-3.14 +* >=protoc-3.12 +* =[protoc-gen-doc](https://github.com/pseudomuto/protoc-gen-doc@)-1.4.1 +* >=python-3.7 +* >=pip-21.0.1 +* python packages from the `doc/requirements.txt` file. + +# LINTING + +* >=buf-0.43.2 + +# FORMATTING + +* >=clang-formatting-11 diff --git a/HUMANS.md b/HUMANS.md new file mode 100644 index 0000000000000000000000000000000000000000..3104ed33f893da734c04d97b694bc2c1126ac519 --- /dev/null +++ b/HUMANS.md @@ -0,0 +1,3 @@ +# Active Contributors + +* Timm Fitschen <t.fitschen@indiscale.com> diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..93543a04fd9b3f2b9d206b40e564e97c0155b73d --- /dev/null +++ b/README.md @@ -0,0 +1,27 @@ +# caosdb-proto + +## Welcome + +This is the development repository of **caosdb-proto** - a collection of +protobuf files which make up the gRPC API of CaosDB. This repository is a part +of the CaosDB project. + +## Setup + +Please read the [README_SETUP.md](README_SETUP.md) for instructions on how to +develop, build and use this code. + +## Further Reading + +Please refer to the [official documentation](https://docs.indiscale.com/caosdb-proto/) for more information. + +## Contributing + +Please read [CONTRIBUTING.md](CONTRIBUTING.md). + +## License + +* Copyright (C) 2021 Indiscale GmbH <info@indiscale.com> + +All files in this repository are licensed under a [GNU Affero General Public +License](LICENCE.md) (version 3 or later). diff --git a/README_SETUP.md b/README_SETUP.md new file mode 100644 index 0000000000000000000000000000000000000000..fd9a0ededf8bddd88874714ada1e731600f67ecf --- /dev/null +++ b/README_SETUP.md @@ -0,0 +1,37 @@ +# How to Develop the CaosDB GRPC API + +Make yourself familiar with +[protobuf](https://developers.google.com/protocol-buffers/) and +[grpc](https://grpc.io/). + +## Formatting + +We use +[clang-format-11](https://releases.llvm.org/11.0.0/tools/clang/docs/ClangFormat.html) +or later for formatting of `*.proto` files. Run `clang-format -i $(find proto/ +-type f -iname "*.proto")` to format all the files. The `.clang-format` +contains all necessary configuration. + +## Linting + +We use [buf](https://docs.buf.build/) for linting. Run `buf lint`. The +`buf.yaml` contains all necessary configuration. + +## Docs + +We use [cmake](https://cmake.org) as build tool for the documenation and +generate the documentation with Sphinx and the Read-The-Docs theme. + +See [DEPENDENCIES.md](DEPENDENCIES.md). + +1. `cmake -B build` +2. `cd build` +3. `cmake --build . --target doc` + +Results are in `build/doc_out/index.html`. + +### Dependencies + +* cmake >= v3.14 +* protoc >= v3.12 +* all the pypi packages from `doc/requirements.txt`. diff --git a/RELEASE_GUIDELINES.md b/RELEASE_GUIDELINES.md new file mode 100644 index 0000000000000000000000000000000000000000..a4ef6e55a76bb0eeca84d814f46b9c5161217595 --- /dev/null +++ b/RELEASE_GUIDELINES.md @@ -0,0 +1,32 @@ +# Release Guidelines for the CaosDB gRPC API + +This document specifies release guidelines in addition to the generel release +guidelines of the CaosDB Project +([RELEASE_GUIDELINES.md](https://gitlab.com/caosdb/caosdb/blob/dev/RELEASE_GUIDELINES.md)) + +## General Prerequisites + +* All tests are passing. +* FEATURES.md is up-to-date and a public API is being declared in that document. +* CHANGELOG.md is up-to-date. +* DEPENDENCIES.md is up-to-date. + +## Steps + +1. Create a release branch from the dev branch. This prevents further changes + to the code base and a never ending release process. Naming: `release-<VERSION>` + +2. Update CHANGELOG.md + +3. Check all general prerequisites. + +4. Prepare [CMakeLists.txt](./CMakeLists.txt): Check the `MAJOR`, `MINOR`, `PATCH` + version variables. + +5. Merge the release branch into the main branch. + +6. Tag the latest commit of the main branch with `v<VERSION>`. + +7. Delete the release branch. + +8. TODO...