You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -9,7 +9,7 @@ Follows these guidelines precisely to ensure consistency and maintainability of
9
9
10
10
## Stack
11
11
12
-
- Language: Go (Go 1.24+)
12
+
- Language: Go (Go 1.26+)
13
13
- Framework: Go standard library
14
14
- Testing: Go's built-in testing package
15
15
- Build Tool: `make` using the Makefile with all the targets defined to build, test, and run the application
@@ -21,101 +21,6 @@ Follows these guidelines precisely to ensure consistency and maintainability of
21
21
- Database: PostgreSQL
22
22
- Logging: `slog` package from the standard library
23
23
24
-
## Project Structure
25
-
26
-
This project implements a kind of Model-View-Controller (MVC) architecture, the main components are:
27
-
28
-
- Core: located in the `internal/core` package, it contains the business logic of the application.
29
-
- Config: located in the `internal/config` package, it contains the configuration of the application
30
-
- Model: located in the `internal/model` package, it contains the data structures or entities used in the application.
31
-
- Repository: located in the `internal/repository` package, it contains the data access layer for interacting with the database.
32
-
- Identity Provider conversion: located in the `internal/idp/` package, This is the glue between the logic into `internal/core` and the identity provider located at `pkg/google/` package.
33
-
- SCIM conversion: located in the `internal/scim/` package, This is the glue between the logic into `internal/core` and the SCIM API located at `pkg/aws/` package.
@@ -128,14 +33,19 @@ The project structure is organized as follows:
128
33
- Use comments to explain complex logic or decisions.
129
34
- Use dependency injection for services and repositories to facilitate testing and maintainability.
130
35
131
-
## Testing
36
+
## Post-Change Checklist
37
+
38
+
Prefer the Make targets that the repo already defines after making changes:
39
+
40
+
```bash
41
+
go fix ./... # Optional manual step for Go 1.26+ syntax
42
+
make go-fmt # Format code
43
+
make go-betteralign # Align struct fields for optimal memory layout
44
+
golangci-lint run ./... # Run linter (also checks formatting, vet, and other issues)
45
+
make build # Verify build
46
+
make test# Run tests
47
+
```
48
+
49
+
If you are intentionally modernizing syntax or APIs for Go 1.26+, run `go fix ./...` manually as a separate step.
132
50
133
-
- Write unit tests implementing test tables for all functions when applicable.
134
-
- Use the `testing` package for writing tests.
135
-
- Use `go test` to run tests.
136
-
- Use `go test -cover` to check code coverage.
137
-
- Use `go test -race` to check for race conditions.
138
-
- Use `go test -bench` to run benchmarks.
139
-
- Use `go test -v` for verbose output during testing.
140
-
- Use `go test -run` to run specific tests.
141
-
- Use `go test -short` to run short tests.
51
+
Always keep `README.md` and `docs/` updated for any architectural changes, new commands/flags, removed flags, new packages, or changes to the development workflow. This includes command usage examples, flag tables, and CLI reference sections.
0 commit comments