mirror of
				https://github.com/go-task/task.git
				synced 2025-10-30 23:58:01 +02:00 
			
		
		
		
	feat: formatting with golangci-lint and gci
This commit is contained in:
		| @@ -5,8 +5,10 @@ formatters: | ||||
|     - gofmt | ||||
|     - gofumpt | ||||
|     - goimports | ||||
|     - gci | ||||
|   settings: | ||||
|     gofmt: | ||||
|       simplify: true | ||||
|       rewrite-rules: | ||||
|         - pattern: interface{} | ||||
|           replacement: any | ||||
| @@ -15,6 +17,12 @@ formatters: | ||||
|     goimports: | ||||
|       local-prefixes: | ||||
|         - github.com/go-task | ||||
|     gci: | ||||
|       sections: | ||||
|         - standard | ||||
|         - default | ||||
|         - prefix(github.com/go-task) | ||||
|         - localmodule | ||||
|   exclusions: | ||||
|     generated: lax | ||||
|     paths: | ||||
|   | ||||
| @@ -98,6 +98,15 @@ tasks: | ||||
|     cmds: | ||||
|       - golangci-lint run --fix | ||||
|  | ||||
|   format: | ||||
|     desc: Runs golangci-lint and formats any Go files | ||||
|     aliases: [fmt, f] | ||||
|     sources: | ||||
|       - './**/*.go' | ||||
|       - .golangci.yml | ||||
|     cmds: | ||||
|       - golangci-lint fmt | ||||
|  | ||||
|   sleepit:build: | ||||
|     desc: Builds the sleepit test helper | ||||
|     sources: | ||||
|   | ||||
| @@ -6,9 +6,10 @@ import ( | ||||
| 	"maps" | ||||
| 	"strings" | ||||
|  | ||||
| 	"github.com/go-task/template" | ||||
|  | ||||
| 	"github.com/go-task/task/v3/internal/deepcopy" | ||||
| 	"github.com/go-task/task/v3/taskfile/ast" | ||||
| 	"github.com/go-task/template" | ||||
| ) | ||||
|  | ||||
| // Cache is a help struct that allow us to call "replaceX" funcs multiple | ||||
|   | ||||
							
								
								
									
										6
									
								
								task.go
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								task.go
									
									
									
									
									
								
							| @@ -8,6 +8,9 @@ import ( | ||||
| 	"slices" | ||||
| 	"sync/atomic" | ||||
|  | ||||
| 	"golang.org/x/sync/errgroup" | ||||
| 	"mvdan.cc/sh/v3/interp" | ||||
|  | ||||
| 	"github.com/go-task/task/v3/errors" | ||||
| 	"github.com/go-task/task/v3/internal/env" | ||||
| 	"github.com/go-task/task/v3/internal/execext" | ||||
| @@ -19,9 +22,6 @@ import ( | ||||
| 	"github.com/go-task/task/v3/internal/summary" | ||||
| 	"github.com/go-task/task/v3/internal/templater" | ||||
| 	"github.com/go-task/task/v3/taskfile/ast" | ||||
|  | ||||
| 	"golang.org/x/sync/errgroup" | ||||
| 	"mvdan.cc/sh/v3/interp" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
|   | ||||
| @@ -933,6 +933,7 @@ func TestIncludesHttp(t *testing.T) { | ||||
|  | ||||
| 					for _, tc := range tcs { | ||||
| 						t.Run(tc.name, func(t *testing.T) { | ||||
| 							t.Parallel() | ||||
| 							task, err := e.CompiledTask(&task.Call{Task: tc.name}) | ||||
| 							require.NoError(t, err) | ||||
| 							assert.Equal(t, tc.dir, task.Dir) | ||||
|   | ||||
| @@ -49,10 +49,10 @@ task: task "default" finished running | ||||
| 	dirPath := filepathext.SmartJoin(dir, "src") | ||||
| 	filePath := filepathext.SmartJoin(dirPath, "a") | ||||
|  | ||||
| 	err := os.MkdirAll(dirPath, 0755) | ||||
| 	err := os.MkdirAll(dirPath, 0o755) | ||||
| 	require.NoError(t, err) | ||||
|  | ||||
| 	err = os.WriteFile(filePath, []byte("test"), 0644) | ||||
| 	err = os.WriteFile(filePath, []byte("test"), 0o644) | ||||
| 	require.NoError(t, err) | ||||
|  | ||||
| 	ctx, cancel := context.WithCancel(context.Background()) | ||||
| @@ -72,7 +72,7 @@ task: task "default" finished running | ||||
| 	}() | ||||
|  | ||||
| 	time.Sleep(10 * time.Millisecond) | ||||
| 	err = os.WriteFile(filePath, []byte("test updated"), 0644) | ||||
| 	err = os.WriteFile(filePath, []byte("test updated"), 0o644) | ||||
| 	require.NoError(t, err) | ||||
|  | ||||
| 	time.Sleep(150 * time.Millisecond) | ||||
|   | ||||
| @@ -43,12 +43,16 @@ Studio Code][vscode-task]. | ||||
| ## 2. Making changes | ||||
|  | ||||
| - **Code style** - Try to maintain the existing code style where possible. Go | ||||
|   code should be formatted by [`gofumpt`][gofumpt] and linted using | ||||
|   [`golangci-lint`][golangci-lint]. Any Markdown or TypeScript files should be | ||||
|   formatted and linted by [Prettier][prettier]. This style is enforced by our CI | ||||
|   to ensure that we have a consistent style across the project. You can use the | ||||
|   `task lint` command to lint the code locally and the `task lint:fix` command | ||||
|   to automatically fix any issues that are found. | ||||
|   code should be formatted and linted by [`golangci-lint`][golangci-lint]. This | ||||
|   wraps the [`gofumpt`][gofumpt] and [`gci`][gci] formatters and a number of | ||||
|   linters. We recommend that you take a look at the [golangci-lint | ||||
|   docs][golangci-lint-docs] for a guide on how to setup your editor to | ||||
|   auto-format your code. Any Markdown or TypeScript files should be formatted | ||||
|   and linted by [Prettier][prettier]. This style is enforced by our CI to ensure | ||||
|   that we have a consistent style across the project. You can use the `task | ||||
|   lint` command to lint the code locally and the `task lint:fix` command to try | ||||
|   to automatically fix any issues that are found. You can also use the `task | ||||
|   fmt` command to auto-format the files if your editor doesn't do it for you. | ||||
| - **Documentation** - Ensure that you add/update any relevant documentation. See | ||||
|   the [updating documentation](#updating-documentation) section below. | ||||
| - **Tests** - Ensure that you add/update any relevant tests and that all tests | ||||
| @@ -73,8 +77,9 @@ install the extension. | ||||
| Task uses [Docusaurus][docusaurus] to host a documentation server. The code for | ||||
| this is located in the core Task repository. This can be setup and run locally | ||||
| by using `task website` (requires `nodejs` & `yarn`). All content is written in | ||||
| Markdown and is located in the `website/docs` directory. All Markdown documents | ||||
| should have an 80 character line wrap limit (enforced by Prettier). | ||||
| [MDX][mdx] (an extension of Markdown) and is located in the `website/docs` | ||||
| directory. All Markdown documents should have an 80 character line wrap limit | ||||
| (enforced by Prettier). | ||||
|  | ||||
| When making a change, consider whether a change to the [Usage Guide](/usage) is | ||||
| necessary. This document contains descriptions and examples of how to use Task | ||||
| @@ -154,7 +159,9 @@ If you have questions, feel free to ask them in the `#help` forum channel on our | ||||
| [vscode-task]: https://github.com/go-task/vscode-task | ||||
| [go]: https://go.dev | ||||
| [gofumpt]: https://github.com/mvdan/gofumpt | ||||
| [gci]: https://github.com/daixiang0/gci | ||||
| [golangci-lint]: https://golangci-lint.run | ||||
| [golangci-lint-docs]: https://golangci-lint.run/welcome/integrations/ | ||||
| [prettier]: https://prettier.io | ||||
| [nodejs]: https://nodejs.org/en/ | ||||
| [yarn]: https://yarnpkg.com/ | ||||
| @@ -166,4 +173,5 @@ If you have questions, feel free to ask them in the `#help` forum channel on our | ||||
| [discord-server]: https://discord.gg/6TY36E39UK | ||||
| [discussion]: https://github.com/go-task/task/discussions | ||||
| [conventional-commits]: https://www.conventionalcommits.org | ||||
| [mdx]: https://mdxjs.com/ | ||||
| {/* prettier-ignore-end */} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user