mirror of
https://github.com/project-zot/zot.git
synced 2024-12-30 22:34:13 -05:00
parent
72454aad60
commit
73b7aa977f
2 changed files with 156 additions and 0 deletions
154
CONTRIBUTING.md
Normal file
154
CONTRIBUTING.md
Normal file
|
@ -0,0 +1,154 @@
|
|||
# Getting Started
|
||||
|
||||
## Fork Repository
|
||||
|
||||
[Fork](https://github.com/anuvu/zot) the zot repository on GitHub to your personal account.
|
||||
|
||||
```
|
||||
#Set golang environment
|
||||
export GOPATH=$HOME/go
|
||||
mkdir -p $GOPATH/src/github.com/anuvu
|
||||
|
||||
#Get code
|
||||
go get github.com/anuvu/zot
|
||||
cd $GOPATH/src/github.com/anuvu/zot
|
||||
|
||||
#Track repository under your personal account
|
||||
git config push.default nothing # Anything to avoid pushing to anuvu/zot by default
|
||||
git remote rename origin anuvu
|
||||
git remote add $USER git@github.com:$USER/zot.git
|
||||
git fetch $USER
|
||||
|
||||
```
|
||||
|
||||
NOTES: Note that GOPATH can be any directory, the example above uses $HOME/go.
|
||||
Change $USER above to your own GitHub username.
|
||||
|
||||
## Build
|
||||
|
||||
There are several ways to build the zot project. The resulting binaries are
|
||||
produced under bin/
|
||||
|
||||
|
||||
## Using host's toolchain
|
||||
|
||||
For fully-featured zot,
|
||||
|
||||
```
|
||||
make
|
||||
```
|
||||
|
||||
For a minimal dist-spec only zot,
|
||||
|
||||
```
|
||||
make binary-minimal
|
||||
```
|
||||
|
||||
## Using container builds (stacker)
|
||||
|
||||
```
|
||||
make binary-stacker
|
||||
```
|
||||
|
||||
## Using container builds (docker)
|
||||
|
||||
```
|
||||
make binary-container
|
||||
```
|
||||
|
||||
# Project Structure
|
||||
|
||||
```
|
||||
.
|
||||
...
|
||||
├── cmd/zot # Source code contains the main logic
|
||||
├── docs # Source code for Swagger docs
|
||||
├── errors # Source code for errors
|
||||
├── examples # Configuration examples to enable various features
|
||||
├── pkg/api # Source code contains the HTTP handlers
|
||||
├── pkg/cli # Source code that handles the commandline logic
|
||||
├── pkg/compliance # Source code that handles the dist-spec compliance logic
|
||||
├── pkg/extensions # Source code that handles the feature extensions
|
||||
├── pkg/log # Source code that handles logging
|
||||
├── pkg/storage # Source code that handles image storage
|
||||
|
||||
```
|
||||
|
||||
## Contribute Workflow
|
||||
|
||||
PRs are always welcome, even if they only contain small fixes like typos or a few
|
||||
lines of code. If there will be a significant effort, please document it as an
|
||||
issue and get a discussion going before starting to work on it.
|
||||
|
||||
Please submit a PR broken down into small changes bit by bit. A PR consisting of
|
||||
a lot features and code changes may be hard to review. It is recommended to
|
||||
submit PRs in an incremental fashion.
|
||||
|
||||
Note: If you split your pull request to small changes, please make sure any of
|
||||
the changes goes to master will not break anything. Otherwise, it can not be
|
||||
merged until this feature complete.
|
||||
|
||||
## Develop, Build and Test
|
||||
|
||||
Write code on the new branch in your fork. The coding style used in zot is
|
||||
suggested by the Golang community. See the [style doc](https://github.com/golang/go/wiki/CodeReviewComments) for details.
|
||||
|
||||
Try to limit column width to 120 characters for both code and markdown documents
|
||||
such as this one.
|
||||
|
||||
As we are enforcing standards set by
|
||||
[golangci-lint](https://github.com/golangci/golangci-lint), please always run a full 'make' on source
|
||||
code before committing your changes. This will trigger compilation, unit tests
|
||||
and linting. If it reports an issue, in general, the preferred action is to fix
|
||||
the code. We try to enforce the guideline that code coverage doesn't drop as
|
||||
code is added or modified.
|
||||
|
||||
## Automated Testing (via CI/CD)
|
||||
|
||||
Once your pull request has been opened, zot will start a full CI pipeline
|
||||
against it that compiles, and runs unit tests and linters.
|
||||
|
||||
## Reporting issues
|
||||
|
||||
It is a great way to contribute to zot by reporting an issue. Well-written
|
||||
and complete bug reports are always welcome! Please open an issue on Github and
|
||||
follow the template to fill in required information.
|
||||
|
||||
Before opening any issue, please look up the existing issues to avoid submitting
|
||||
a duplication. If you find a match, you can "subscribe" to it to get notified on
|
||||
updates. If you have additional helpful information about the issue, please
|
||||
leave a comment.
|
||||
|
||||
When reporting issues, always include:
|
||||
|
||||
Build environment (golang compiler, etc)
|
||||
Configuration files of zot
|
||||
|
||||
Log files as per configuration.
|
||||
|
||||
Because the issues are open to the public, when submitting the log
|
||||
and configuration files, be sure to remove any sensitive
|
||||
information, e.g. user name, password, IP address, and company name.
|
||||
You can replace those parts with "REDACTED" or other strings like
|
||||
"****".
|
||||
|
||||
Be sure to include the steps to reproduce the problem if applicable.
|
||||
It can help us understand and fix your issue faster.
|
||||
|
||||
## Documenting
|
||||
|
||||
Update the documentation if you are creating or changing features. Good
|
||||
documentation is as important as the code itself.
|
||||
|
||||
The main location for the documentation is the website repository. The images
|
||||
referred to in documents can be placed in docs/img in that repo.
|
||||
|
||||
Documents are written with Markdown. See Writing on GitHub for more details.
|
||||
|
||||
## Design New Features
|
||||
|
||||
You can propose new designs for existing zot features. You can also design
|
||||
entirely new features, Please submit a proposal in GitHub issues. zot
|
||||
maintainers will review this proposal as soon as possible. This is necessary to
|
||||
ensure the overall architecture is consistent and to avoid duplicated work in
|
||||
the roadmap.
|
|
@ -250,3 +250,5 @@ Works with "docker://" transport which is the default.
|
|||
We encourage and support an active, healthy community of contributors.
|
||||
|
||||
* Details are in the [code of conduct](CODE_OF_CONDUCT.md)
|
||||
* Details to get started on code development are in
|
||||
[contributing](CONTRIBUTING.md) document.
|
||||
|
|
Loading…
Reference in a new issue