Common subcommand naming scheme #208

Merged
6543 merged 5 commits from noerw/tea:issue-37-cmd-naming-scheme into master 2020-10-02 15:46:53 +00:00
14 changed files with 43 additions and 24 deletions

View File

@ -8,7 +8,6 @@
- [Discuss your design](#discuss-your-design)
- [Testing redux](#testing-redux)
- [Vendoring](#vendoring)
- [Translation](#translation)
- [Code review](#code-review)
- [Styleguide](#styleguide)
- [Sign-off your work](#sign-off-your-work)
@ -21,12 +20,10 @@
## Introduction
This document explains how to contribute changes to the Gitea project.
It assumes you have followed the
[installation instructions](https://docs.gitea.io/en-us/).
Sensitive security-related issues should be reported to
[security@gitea.io](mailto:security@gitea.io).
For configuring IDE or code editor to develop Gitea see [IDE and code editor configuration](contrib/ide/)
For configuring IDE or code editor to develop Gitea see [IDE and code editor configuration](https://github.com/go-gitea/gitea/tree/master/contrib/ide)
## Bug reports
@ -49,7 +46,7 @@ getting free help.
## Discuss your design
The project welcomes submissions. If you want to change or add something,
please let everyone know what you're working on—[file an issue](https://github.com/go-gitea/gitea/issues/new)!
please let everyone know what you're working on—[file an issue](https://gitea.com/gitea/tea/issues/new)!
Significant changes must go through the change proposal process
before they can be accepted. To create a proposal, file an issue with
your proposed changes documented, and make sure to note in the title
@ -87,16 +84,7 @@ an existing upstream commit.
You can find more information on how to get started with it on the [dep project website](https://golang.github.io/dep/docs/introduction.html).
## Translation
We do all translation work inside [Crowdin](https://crowdin.com/project/gitea).
The only translation that is maintained in this git repository is
[`en_US.ini`](https://github.com/go-gitea/gitea/blob/master/options/locale/locale_en-US.ini)
and is synced regularily to Crowdin. Once a translation has reached
A SATISFACTORY PERCENTAGE it will be synced back into this repo and
included in the next released version.
## Building Gitea
## Building tea
Generally, the go build tools are installed as-needed in the `Makefile`.
An exception are the tools to build the CSS and images.
@ -128,6 +116,27 @@ Some of the key points:
## Styleguide
### Command naming
- Subcommands should follow the following structure:
```
tea <noun> <verb> [<noun>] [<flags>]
```
for example:
```
tea issues list
tea pulls create
tea teams add user --team x --user y
```
- Commands should accept nouns as singular & plural by making use of the `Aliases` field.
- The default action without a verb is `list`.
- `list` commands always apply pagination where provided by the API.
- Try to reuse as many flag definitions as possible, see `cmd/flags.go`.
- Always make sure that the help texts are properly set, and as concise as possible.
### Code style
Use `go fmt`, check with `make lint`.
For imports you should use the following format (_without_ the comments)
```go
import (
@ -202,7 +211,7 @@ to the maintainers team. If a maintainer is inactive for more than 3
months and forgets to leave the maintainers team, the owners may move
him or her from the maintainers team to the advisors team.
For security reasons, Maintainers should use 2FA for their accounts and
if possible provide gpg signed commits.
if possible provide gpg signed commits.
https://help.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/
https://help.github.com/articles/signing-commits-with-gpg/
@ -245,7 +254,7 @@ they served:
## Versions
Gitea has the `master` branch as a tip branch and has version branches
tea has the `master` branch as a tip branch and has version branches
such as `release/v0.9`. `release/v0.9` is a release branch and we will
tag `v0.9.0` for binary download. If `v0.9.0` has bugs, we will accept
pull requests on the `release/v0.9` branch and publish a `v0.9.1` tag,

View File

@ -17,6 +17,7 @@ import (
// CmdIssues represents to login a gitea server.
var CmdIssues = cli.Command{
Name: "issues",
Aliases: []string{"issue"},
Usage: "List, create and update issues",
Description: "List, create and update issues",
ArgsUsage: "[<issue index>]",

View File

@ -19,6 +19,7 @@ import (
// CmdIssuesList represents a sub command of issues to list issues
var CmdIssuesList = cli.Command{
Name: "ls",
Aliases: []string{"list"},
Usage: "List issues of the repository",
Description: `List issues of the repository`,
Action: RunIssuesList,

View File

@ -23,6 +23,7 @@ import (
// CmdLabels represents to operate repositories' labels.
var CmdLabels = cli.Command{
Name: "labels",
Aliases: []string{"label"},
Usage: "Manage issue labels",
Description: `Manage issue labels`,
Action: runLabels,

View File

@ -12,7 +12,8 @@ import (
// CmdLogin represents to login a gitea server.
var CmdLogin = cli.Command{
Name: "login",
Name: "logins",
Aliases: []string{"login"},
Usage: "Log in to a Gitea server",
Description: `Log in to a Gitea server`,
Action: login.RunLoginAddInteractive, // TODO show list if no arg & detail if login as arg

View File

@ -18,6 +18,7 @@ import (
// CmdLoginList represents to login a gitea server.
var CmdLoginList = cli.Command{
Name: "ls",
Aliases: []string{"list"},
Usage: "List Gitea logins",
Description: `List Gitea logins`,
Action: runLoginList,

View File

@ -16,7 +16,7 @@ import (
// CmdMilestones represents to operate repositories milestones.
var CmdMilestones = cli.Command{
Name: "milestones",
Aliases: []string{"ms", "mile"},
Aliases: []string{"milestone", "ms"},
Outdated
Review

I think we can drop mile?

I think we can drop mile?
Usage: "List and create milestones",
Description: `List and create milestones`,
ArgsUsage: "[<milestone name>]",

View File

@ -19,6 +19,7 @@ import (
// CmdMilestonesList represents a sub command of milestones to list milestones
var CmdMilestonesList = cli.Command{
Name: "ls",
Aliases: []string{"list"},
Usage: "List milestones of the repository",
Description: `List milestones of the repository`,
Action: RunMilestonesList,

View File

@ -19,7 +19,7 @@ import (
// CmdNotifications is the main command to operate with notifications
var CmdNotifications = cli.Command{
Name: "notifications",
Aliases: []string{"notif"},
Aliases: []string{"notification", "notif"},
Usage: "Show notifications",
Description: "Show notifications, by default based of the current repo and unread one",
Action: runNotifications,

View File

@ -19,6 +19,7 @@ import (
// CmdPullsList represents a sub command of issues to list pulls
var CmdPullsList = cli.Command{
Name: "ls",
Aliases: []string{"list"},
Usage: "List pull requests of the repository",
Description: `List pull requests of the repository`,
Action: RunPullsList,

View File

@ -14,8 +14,8 @@ import (
// CmdReleases represents to login a gitea server.
// ToDo: ReleaseDetails
var CmdReleases = cli.Command{
Name: "release",
Aliases: []string{"releases"},
Name: "releases",
Aliases: []string{"release"},
Usage: "Manage releases",
Description: "Manage releases",
Action: releases.RunReleasesList,

View File

@ -19,6 +19,7 @@ import (
// CmdReleaseList represents a sub command of Release to list releases
var CmdReleaseList = cli.Command{
Name: "ls",
Aliases: []string{"list"},
Usage: "List Releases",
Description: "List Releases",
Action: RunReleasesList,

View File

@ -18,8 +18,9 @@ import (
// CmdRepos represents to login a gitea server.
var CmdRepos = cli.Command{
Name: "repos",
Usage: "Show repositories details",
Description: "Show repositories details",
Aliases: []string{"repo"},
Usage: "Show repository details",
Description: "Show repository details",
ArgsUsage: "[<repo owner>/<repo name>]",
Action: runRepos,
Subcommands: []*cli.Command{

View File

@ -20,6 +20,7 @@ import (
// CmdReposList represents a sub command of repos to list them
var CmdReposList = cli.Command{
Name: "ls",
Aliases: []string{"list"},
Usage: "List available repositories",
Description: `List available repositories`,
Action: RunReposList,