docopslab-dev 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/README.adoc +42 -11
  3. data/docopslab-dev.gemspec +2 -2
  4. data/lib/docopslab/dev/docker_aware.rb +40 -0
  5. data/lib/docopslab/dev/initializer.rb +21 -7
  6. data/lib/docopslab/dev/library.rb +14 -1
  7. data/lib/docopslab/dev/linters.rb +10 -3
  8. data/lib/docopslab/dev/version.rb +1 -1
  9. data/lib/docopslab/dev.rb +2 -1
  10. data/specs/data/default-manifest.yml +8 -0
  11. metadata +4 -38
  12. data/docs/agent/index.md +0 -76
  13. data/docs/agent/misc/bash-styles.md +0 -470
  14. data/docs/agent/missions/conduct-release.md +0 -298
  15. data/docs/agent/missions/setup-new-project.md +0 -344
  16. data/docs/agent/roles/devops-release-engineer.md +0 -195
  17. data/docs/agent/roles/docops-engineer.md +0 -257
  18. data/docs/agent/roles/planner-architect.md +0 -96
  19. data/docs/agent/roles/product-engineer.md +0 -201
  20. data/docs/agent/roles/product-manager.md +0 -163
  21. data/docs/agent/roles/project-manager.md +0 -175
  22. data/docs/agent/roles/qa-testing-engineer.md +0 -149
  23. data/docs/agent/roles/tech-docs-manager.md +0 -189
  24. data/docs/agent/roles/tech-writer.md +0 -217
  25. data/docs/agent/skills/asciidoc.md +0 -436
  26. data/docs/agent/skills/bash-cli-dev.md +0 -135
  27. data/docs/agent/skills/code-commenting.md +0 -384
  28. data/docs/agent/skills/fix-broken-links.md +0 -354
  29. data/docs/agent/skills/fix-jekyll-asciidoc-build-errors.md +0 -14
  30. data/docs/agent/skills/fix-spelling-issues.md +0 -10
  31. data/docs/agent/skills/git.md +0 -205
  32. data/docs/agent/skills/github-issues.md +0 -174
  33. data/docs/agent/skills/product-release-rollback-and-patching.md +0 -71
  34. data/docs/agent/skills/rake-cli-dev.md +0 -57
  35. data/docs/agent/skills/readme-driven-dev.md +0 -14
  36. data/docs/agent/skills/release-history.md +0 -23
  37. data/docs/agent/skills/ruby.md +0 -203
  38. data/docs/agent/skills/schemagraphy-sgyml.md +0 -21
  39. data/docs/agent/skills/tests-running.md +0 -33
  40. data/docs/agent/skills/tests-writing.md +0 -68
  41. data/docs/agent/skills/write-the-docs.md +0 -116
  42. data/docs/agent/topics/common-project-paths.md +0 -169
  43. data/docs/agent/topics/dev-tooling-usage.md +0 -195
  44. data/docs/agent/topics/devops-ci-cd.md +0 -57
  45. data/docs/agent/topics/product-docs-deployment.md +0 -31
  46. data/docs/library-readme.adoc +0 -39
@@ -1,174 +0,0 @@
1
- # GitHub Issues Management for AI Agents
2
-
3
- This document is intended for AI agents operating within a DocOps Lab environment.
4
-
5
- AI agents assisting in DocOps Lab development tasks should use the Issuer and `gh` CLI tools to manage GitHub issues in project repositories.
6
-
7
- Table of Contents
8
-
9
- - Managing GitHub Issues with `gh`
10
- - Bulk-posting Issues with Issuer
11
- - Issue Types
12
- - Issue Labels
13
- - Project-specific Labels
14
- - Standard Documentation Labels
15
- - Admonition Labels
16
- - Other Standard Labels
17
-
18
- ## Managing GitHub Issues with `gh`
19
-
20
- The GitHub CLI tool, `gh`, can be used to manage issues from the command line.
21
-
22
- See [GitHub CLI Manual: gh issue](https://cli.github.com/manual/gh_issue) for details on using `gh` to create, view, edit, and manage issues and issue metadata.
23
-
24
- Some common commands:
25
-
26
- Create a new issue.
27
-
28
- ```
29
- gh issue create --title "Issue Title" --body "Issue description." --label "bug,component:docs" --assignee "username"
30
- ```
31
-
32
- List open issues.
33
-
34
- ```
35
- gh issue list --state open
36
- ```
37
-
38
- View a specific issue.
39
-
40
- ```
41
- gh issue view <issue-number>
42
- ```
43
-
44
- ## Bulk-posting Issues with Issuer
45
-
46
- The `issuer` tool can be used to bulk-post issues to any repository from a YAML file.
47
-
48
- Follow the instructions at [Issuer](https://github.com/DocOps/issuer) to install and use the tool.
49
-
50
- ## Issue Types
51
-
52
- <dl>
53
- <dt class="hdlist1">Task</dt>
54
- <dd>
55
- A specific piece of work that does not directly lead to a change to the product. Used for research, infrastructure management, and other sundry/chore tasks not necessarily associated with repository code changes.
56
- </dd>
57
- <dt class="hdlist1">Bug</dt>
58
- <dd>
59
- Reports describing unexpected behavior or malfunctions in the product. Bug issues are used directly and become bugfixes (no technical type change) once resolved.
60
- </dd>
61
- <dt class="hdlist1">Feature</dt>
62
- <dd>
63
- Requests or ideas for new functionality in the product.
64
- </dd>
65
- <dt class="hdlist1">Improvement</dt>
66
- <dd>
67
- Enhancements of existing features or capabilities.
68
- </dd>
69
- <dt class="hdlist1">Epic</dt>
70
- <dd>
71
- An issue or collection of issues with a common goal that may involve work performed across release versions (“milestones”).
72
- </dd>
73
- </dl>
74
-
75
- ## Issue Labels
76
-
77
- All DocOps Lab projects use a common convention around GitHub issue labels to categorize and manage issues.
78
-
79
- ### Project-specific Labels
80
-
81
- <dl>
82
- <dt class="hdlist1">`component:<part>`</dt>
83
- <dd>
84
- Label prefix for arbitrarily named product aspects, modules, interfaces, or subsystems. Common components include `component:docker`, `component:cli`, and `component:docs` (see next section). These correspond to the `part` property in ReleaseHx change records.
85
- </dd>
86
- </dl>
87
-
88
- ### Standard Documentation Labels
89
-
90
- <dl>
91
- <dt class="hdlist1">`component:docs`</dt>
92
- <dd>
93
- Indicates the issue pertains to documentation infrastructure, layout, deployment, but not core content.
94
- </dd>
95
- <dt class="hdlist1">`documentation`</dt>
96
- <dd>
97
- The issue relates to documentation _content_ updates or improvements.
98
- </dd>
99
- <dt class="hdlist1">`needs:docs`</dt>
100
- <dd>
101
- The issue requires documentation updates as part of its resolution. Documentation updates will likely be in a sub-issue with a `documentation` label.
102
- </dd>
103
- <dt class="hdlist1">`needs:note`</dt>
104
- <dd>
105
- The issue requires a note in the release history when resolved. Release notes are appended to the description body under `## Release Note`.
106
- </dd>
107
- <dt class="hdlist1">`changelog`</dt>
108
- <dd>
109
- The issue summary should be included in the changelog for the next release, even if no release note is included.
110
- </dd>
111
- </dl>
112
-
113
- ### Admonition Labels
114
-
115
- <dl>
116
- <dt class="hdlist1">`REMOVAL`</dt>
117
- <dd>
118
- Removes functionality or features.
119
- </dd>
120
- <dt class="hdlist1">`DEPRECATION`</dt>
121
- <dd>
122
- Announces planned removal of functionality or features in a future release. (Only appropriate for `documentation` issues.)
123
- </dd>
124
- <dt class="hdlist1">`BREAKING`</dt>
125
- <dd>
126
- Includes one or more changes that are not backward-compatible.
127
- </dd>
128
- <dt class="hdlist1">`SECURITY`</dt>
129
- <dd>
130
- Addresses or documents a security vulnerability or risk.
131
- </dd>
132
- </dl>
133
-
134
- ### Other Standard Labels
135
-
136
- <dl>
137
- <dt class="hdlist1">`question`</dt>
138
- <dd>
139
- User or community member inquiries about the product or project.
140
- </dd>
141
- <dt class="hdlist1">`priority:high`</dt>
142
- <dd>
143
- Indicates that the issue is important and should be prioritized for release as soon as possible.
144
- </dd>
145
- <dt class="hdlist1">`priority:low`</dt>
146
- <dd>
147
- The issue is not urgent and can be addressed in a future release.
148
- </dd>
149
- <dt class="hdlist1">`priority:stretch`</dt>
150
- <dd>
151
- Issue is slated for the next release but can be bumped if it’s holding up releasee.
152
- </dd>
153
- <dt class="hdlist1">`wontfix`</dt>
154
- <dd>
155
- The issue will not be addressed. Comment from maintainers should explain why.
156
- </dd>
157
- <dt class="hdlist1">`duplicate`</dt>
158
- <dd>
159
- The issue is a duplicate of another issue, which should be linked in the comments.
160
- </dd>
161
- <dt class="hdlist1">`posted-by-issuer`</dt>
162
- <dd>
163
- Indicates that the issue was created by the Issuer tool.
164
- </dd>
165
- <dt class="hdlist1">`good first issue`</dt>
166
- <dd>
167
- Designates an issue suitable for new contributors to the project.
168
- </dd>
169
- <dt class="hdlist1">`help wanted`</dt>
170
- <dd>
171
- Indicates that maintainers are seeking assistance from the community to resolve the issue.
172
- </dd>
173
- </dl>
174
-
@@ -1,71 +0,0 @@
1
- # Rolling Back and/or Patching a Product Release
2
-
3
- This document is intended for AI agents operating within a DocOps Lab environment.
4
-
5
- As an AI agent, you can assist DocOps Lab developers in executing product-release patching and rolling back.
6
-
7
- Table of Contents
8
-
9
- - Rollback Failsafe
10
- - Standard Patching
11
-
12
- ## Rollback Failsafe
13
-
14
- If a release must be rolled back and retracted, you must revert the changes and “yank” the artifacts.
15
-
16
- ```
17
- git tag -d v<$tok.majmin>.<$tok.patch>
18
- git push origin :refs/tags/v<$tok.majmin>.<$tok.patch>
19
- git revert -m 1 <merge-commit>
20
- git push origin main
21
- ```
22
-
23
- Retract or yank the artifacts (DockerHub, RubyGems, etc) and nullify the GH release.
24
-
25
- ```
26
- gh release delete v<$tok.majmin>.<$tok.patch>
27
- gem yank --version <$tok.majmin>.<$tok.patch> <gemname>
28
- docker rmi <image>:<$tok.majmin>.<$tok.patch>
29
- ```
30
-
31
- Be sure to un-publish any additional artifacts specific to the project.
32
-
33
- ## Standard Patching
34
-
35
- Perform patch work against the earliest affected `release/x.y`. These examples use `1.1`, `1.2`, and `1.2.1` as example versions.
36
-
37
- Patch development procedure
38
-
39
- ```
40
- git checkout release/1.1
41
- git checkout -b fix/parser-typo
42
- # … FIX …
43
- git add .
44
- git commit -m "fix: correct parser typo"
45
- git push origin fix/parser-typo
46
- # … TEST …
47
- git checkout release/1.1
48
- git merge --squash fix/parser-typo
49
- git commit -m "fix: correct parser typo"
50
- git push origin release/1.1
51
- git tag -a v1.2 -m "Patch release 1.2"
52
- git push origin v1.2
53
- ```
54
-
55
- Example forward porting procedure
56
-
57
- ```
58
- git checkout release/1.2
59
- git cherry-pick <commit-hash>
60
- # … TEST …
61
- git push origin release/1.2
62
- git tag -a v1.2.1 -m "Patch release 1.2.1"
63
- git push origin v1.2.1
64
- ```
65
-
66
- > **NOTE:** Be sure to change `1.1`, `1.2`, and `1.2.1` to the actual affected branches and versions.
67
-
68
- Repeat for every affected branch then release the patched versions.
69
-
70
- > **NOTE:** Between minor versions, patch versions may vary due to inconsistent applicability of patches.
71
-
@@ -1,57 +0,0 @@
1
- # Agent Rake CLI Guide
2
-
3
- This document is intended for AI agents operating within a DocOps Lab environment.
4
-
5
- If you need to add or modify Rake tasks for the current project, follow the guidelines in this document.
6
-
7
- Table of Contents
8
-
9
- - Rake CLIs
10
- - Rake CLI Model
11
-
12
- ## Rake CLIs
13
-
14
- We use Rake for internal repo tasks and chores, including build operations, test-suite execution, unconventional testing, code linting and cleanup, etc.
15
-
16
- Users of our released products should never be asked to use `rake` commands during the normal course of daily operations, if ever.
17
-
18
- Rake is less versatile than Thor, but it is simpler for executing straightforward methods and series of methods. It likewise requires (and permits) considerably less application-specific creativity and customization.
19
-
20
- Innovative UIs are not justified for internal tooling. Our developer-facing utilities are fairly robust, but the UI for executing them need not be.
21
-
22
- At DocOps Lab, we save inventive interfaces for domain-optimized operations.
23
-
24
- ### Rake CLI Model
25
-
26
- ```
27
- rake domain:action:target[option1,option2]
28
- ```
29
-
30
- Where both `domain`` and `target` are optional, as of course are arguments that go in the braces.
31
-
32
- Think of the domain as a component “scope” within the codebase or project.
33
-
34
- Domains either indicate a distinct module or component within the codebase or general tasks using upstream dependencies.
35
-
36
- No domain means local, project-specific tasks.
37
-
38
- Example 3-part task with an optional argument
39
-
40
- ```
41
- rake labdev:lint:docs[README.adoc]
42
- ```
43
-
44
- In the above case, the domain is from the `docopslab-dev` library/gem.
45
-
46
- Example 3-part task with a local domain reference
47
-
48
- ```
49
- rake gemdo:build
50
- ```
51
-
52
- The above command has a local domain `gemdo` for referencing commands that affect a gem that happens to be embedded in a larger repo. A code repo containing more than one gem might use:
53
-
54
- ```
55
- rake gemdo:build:gemname
56
- ```
57
-
@@ -1,14 +0,0 @@
1
- # README-driven Development
2
-
3
- This document is intended for AI agents operating within a DocOps Lab environment.
4
-
5
- DocOps Lab practices software development that revolves around `README.adoc` and uses other AsciiDoc and YAML files to radically single source all product and documentation code.
6
-
7
- We will eventually provide detailed documentation of the conventions and protocols involved in this method.
8
-
9
- For now, Agents should:
10
-
11
- - Peruse the local `README.adoc` and `specs/data/*.{yml,yaml}`
12
-
13
- - Prompt their Operators to provide examples from relevant/neighboring projects.
14
-
@@ -1,23 +0,0 @@
1
- # Preparing a Version Release History Document
2
-
3
- This document is intended for AI agents operating within a DocOps Lab environment.
4
-
5
- Original sources for this document include:
6
-
7
- <!-- detect the origin url based on the slug (origin) -->
8
- - [Product Change Tracking and Documentation](/docs/product-change-docs/)
9
-
10
- ReleaseHx automatically generates release notes and changelogs from GitHub Issues and PRs when properly labeled.
11
-
12
- > **NOTE:** Every DocOps Lab project implements ReleaseHx differently as a way of “eating our own dog food”.
13
-
14
- Refer to any given project’s documentation for specific instructions on how to prepare changes for inclusion in release notes and changelogs.
15
-
16
- The general procedure is as follows:
17
-
18
- 1. Generate a draft release history in YAML.
19
-
20
- 2. Edit the generated YAML to ensure clarity and completeness.
21
-
22
- 3. Generate the Markdown version.
23
-
@@ -1,203 +0,0 @@
1
- # Ruby Coding Guide for DocOps Lab AI Agents
2
-
3
- This document is intended for AI agents operating within a DocOps Lab environment.
4
-
5
- ## Conventions
6
-
7
- DocOps Lab largely follows Ruby’s community conventions, with some exceptions. Conventions are either reiterated or clarified here.
8
-
9
- However, conventions are not exhaustively listed, and deviations are rarely pointed out as such.
10
-
11
- ### Naming Conventions
12
-
13
- - Use `snake_case` for variable and method names.
14
-
15
- - Use `CamelCase` for class and module names.
16
-
17
- - Use `SCREAMING_SNAKE_CASE` for constants.
18
-
19
- - Use descriptive names that convey the purpose of the variable, method, or class.
20
-
21
- - Avoid abbreviations unless they are widely understood.
22
-
23
- - Use verbs for method names to indicate actions.
24
-
25
- - Use nouns for class and module names to indicate entities.
26
-
27
- ### Architectural Conventions
28
-
29
- - Use classes and class instance methods for objects that work like _objects_ — they have state and do not act on other objects' state.
30
-
31
- - Use module methods acting on objects or carrying out general operations/utility functions.
32
-
33
- - Use Rake for internal (developer) CLI; use Thor for user-facing CLI
34
-
35
- - Gems may begin life as a module within another gem.
36
-
37
- ### Path Conventions
38
-
39
- - Use `lib/` for main application code.
40
-
41
- - Use `spec/` for specifications and tests.
42
-
43
- - Use `docs/` or `_docs/` for documentation.
44
-
45
- - Use `build/` for pre-runtime artifacts.
46
-
47
- - Use `_build/` as default in applications that generate files at runtime, unless another path is more appropriate (ex: `_site/` in Jekyll-centric apps).
48
-
49
- - Do NOT assume or insist upon perfect alignment with Ruby path conventions:
50
-
51
- ### Syntax Conventions
52
-
53
- - Use 2 spaces for indentation.
54
-
55
- - Limit lines to 120 characters or so when possible.
56
-
57
- - Use parentheses for method calls with arguments, but omit them for methods without arguments.
58
-
59
- - Do not use parentheses in method definitions (`def method_name arg1, arg2`).
60
-
61
- - Use single quotes for strings that do not require interpolation or special symbols.
62
-
63
- - Use double quotes for strings that require interpolation or special symbols.
64
-
65
- ### Commenting Conventions
66
-
67
- See [DocOps Lab Code Commenting Guidance](/docs/code-commenting/) for detailed commenting conventions.
68
-
69
- ## RuboCop Config
70
-
71
- ```
72
- # RuboCop configuration for DocOps Lab projects
73
- # This is the baseline configuration distributed via docopslab-dev
74
-
75
- plugins:
76
- - rubocop-rspec
77
-
78
- AllCops:
79
- TargetRubyVersion: 3.2
80
- NewCops: enable
81
- DisplayCopNames: true
82
- DisplayStyleGuide: true
83
-
84
- Style/MethodDefParentheses:
85
- EnforcedStyle: require_no_parentheses
86
-
87
- Style/MethodCallWithArgsParentheses:
88
- EnforcedStyle: require_parentheses
89
- AllowParenthesesInMultilineCall: true
90
- AllowParenthesesInChaining: true
91
-
92
- # Allow longer lines for documentation
93
- Layout/LineLength:
94
- Max: 120
95
- AllowedPatterns:
96
- - '\A\s*#.*\z' # Comments
97
- - '\A\s*\*.*\z' # Rdoc comments
98
-
99
- Metrics/MethodLength:
100
- Max: 25
101
-
102
- # Allow longer blocks for Rake tasks and RSpec
103
- Metrics/BlockLength:
104
- AllowedMethods:
105
- - describe
106
- - context
107
- - feature
108
- - scenario
109
- - let
110
- - let!
111
- - subject
112
- - task
113
- - namespace
114
- Max: 50
115
-
116
- # Documentation not required for internal tooling
117
- Style/Documentation:
118
- Enabled: false
119
-
120
- # Allow TODO comments
121
- Style/CommentAnnotation:
122
- Keywords:
123
- - TODO
124
- - FIXME
125
- - OPTIMIZE
126
- - HACK
127
- - REVIEW
128
-
129
- Style/CommentedKeyword:
130
- Enabled: false
131
-
132
- Style/StringLiterals:
133
- Enabled: true
134
- EnforcedStyle: single_quotes
135
-
136
- Style/StringLiteralsInInterpolation:
137
- Enabled: true
138
- EnforcedStyle: single_quotes
139
-
140
- Style/FrozenStringLiteralComment:
141
- Enabled: true
142
- EnforcedStyle: always
143
-
144
- Layout/FirstParameterIndentation:
145
- EnforcedStyle: consistent
146
-
147
- Layout/ParameterAlignment:
148
- EnforcedStyle: with_fixed_indentation
149
-
150
- Layout/MultilineMethodCallBraceLayout:
151
- EnforcedStyle: same_line
152
-
153
- Layout/MultilineMethodCallIndentation:
154
- EnforcedStyle: aligned
155
-
156
- Layout/FirstMethodArgumentLineBreak:
157
- Enabled: true
158
-
159
- Layout/TrailingWhitespace:
160
- Enabled: true
161
-
162
- Layout/EmptyLineAfterGuardClause:
163
- Enabled: true
164
-
165
- Layout/HashAlignment:
166
- Enabled: false
167
-
168
- Layout/SpaceAroundOperators:
169
- Enabled: false
170
-
171
- Layout/SpaceAroundEqualsInParameterDefault:
172
- Enabled: false
173
- EnforcedStyle: no_space
174
-
175
- Metrics/AbcSize:
176
- Enabled: false
177
-
178
- Metrics/CyclomaticComplexity:
179
- Enabled: false
180
-
181
- Metrics/PerceivedComplexity:
182
- Enabled: false
183
-
184
- Lint/UnusedMethodArgument:
185
- Enabled: true
186
-
187
- Lint/UselessAssignment:
188
- Enabled: true
189
-
190
- Lint/IneffectiveAccessModifier:
191
- Enabled: true
192
-
193
- Security/YAMLLoad:
194
- Enabled: false # Projects may intentionally use unsafe YAML loading
195
-
196
- Security/Eval:
197
- Enabled: true # Catch and replace with safer alternatives
198
-
199
- # Disable Naming/PredicateMethod - we use generate_, run_, sync_, etc for actions
200
- Naming/PredicateMethod:
201
- Enabled: false
202
- ```
203
-
@@ -1,21 +0,0 @@
1
- # SchemaGraphy/SGYML 101
2
-
3
- This document is intended for AI agents operating within a DocOps Lab environment.
4
-
5
- SGYML stands for SchemaGraphy YAML-based Modeling Language, a format designed, standardized, and maintained by DocOps Lab.
6
-
7
- It is a specialized YAML preprocessing syntax that provides:
8
-
9
- - A human-readable schema model that can define, govern, and parse the structure and contents of complex data objects and text documents alike
10
-
11
- - An extension for YAML documents to incorporate new properties like `$ref` transclusion directives and inheritance/overlay properties
12
-
13
- - A standardization around a base subset of YAML capabilities to constrain the complexity of YAML documents and support thereof
14
-
15
- - Highly semantic data-typing to replace YAML’s clunky model
16
-
17
- SchemaGraphy Schemas and the SGYML and tooling to support them are in a nascent stage, still under development.
18
-
19
- Check [SchemaGraphy](/projects/schemagraphy/) for the latest information on SchemaGraphy and SGYML.
20
-
21
- > **TIP:** If the codebase you are working on uses SGYML or SchemaGraphy Schemas, check for a path `../schemagraphy/` (relative to the project root).
@@ -1,33 +0,0 @@
1
- # Running Tests in DocOps Lab Projects
2
-
3
- This document is intended for AI agents operating within a DocOps Lab environment.
4
-
5
- As an AI agent, you can help DocOps Lab developers run tests effectively using standard Rake tasks.
6
-
7
- All Ruby gem projects with tests should implement these standard Rake tasks in their `Rakefile`:
8
-
9
- <dl>
10
- <dt class="hdlist1">`bundle exec rake rspec`</dt>
11
- <dd>
12
- Run RSpec test suite using the standard pattern matcher.
13
- </dd>
14
- <dt class="hdlist1">`bundle exec rake cli_test`</dt>
15
- <dd>
16
- Validate command-line interface functionality. May test basic CLI loading, help output, version information.
17
- </dd>
18
- <dt class="hdlist1">`bundle exec rake yaml_test`</dt>
19
- <dd>
20
- Validate YAML configuration files and data structures. Should test all project YAML files for syntax correctness.
21
- </dd>
22
- <dt class="hdlist1">`bundle exec rake pr_test`</dt>
23
- <dd>
24
- Comprehensive test suite for pre-commit and pull request validation. Typically includes: RSpec tests, CLI tests, YAML validation.
25
- </dd>
26
- <dt class="hdlist1">`bundle exec rake install_local`</dt>
27
- <dd>
28
- Build and install the project locally for testing.
29
- </dd>
30
- </dl>
31
-
32
- Note that non-gem projects may have some or all of these tasks, as applicable.
33
-
@@ -1,68 +0,0 @@
1
- # Writing Tests for DocOps Lab Projects
2
-
3
- This document is intended for AI agents operating within a DocOps Lab environment.
4
-
5
- As an AI agent, you can help DocOps Lab developers write comprehensive tests following established patterns and categories.
6
-
7
- Tests should be organized into these categories:
8
-
9
- <dl>
10
- <dt class="hdlist1">Unit Tests</dt>
11
- <dd>
12
- - Module loading and initialization
13
-
14
- - Class structure validation
15
-
16
- - Basic functionality verification
17
-
18
- - Individual method testing
19
- </dd>
20
- <dt class="hdlist1">Integration Tests</dt>
21
- <dd>
22
- - Data processing workflows
23
-
24
- - Template rendering operations
25
-
26
- - Configuration loading scenarios
27
-
28
- - API client functionality (where applicable)
29
- </dd>
30
- <dt class="hdlist1">Validation Tests</dt>
31
- <dd>
32
- - File format compliance (YAML, JSON)
33
-
34
- - Configuration schema validation
35
-
36
- - Template syntax verification
37
-
38
- - Command-line option parsing
39
- </dd>
40
- </dl>
41
-
42
- All Ruby gem projects with tests should implement these standard Rake tasks in their `Rakefile`:
43
-
44
- <dl>
45
- <dt class="hdlist1">`bundle exec rake rspec`</dt>
46
- <dd>
47
- Run RSpec test suite using the standard pattern matcher.
48
- </dd>
49
- <dt class="hdlist1">`bundle exec rake cli_test`</dt>
50
- <dd>
51
- Validate command-line interface functionality. May test basic CLI loading, help output, version information.
52
- </dd>
53
- <dt class="hdlist1">`bundle exec rake yaml_test`</dt>
54
- <dd>
55
- Validate YAML configuration files and data structures. Should test all project YAML files for syntax correctness.
56
- </dd>
57
- <dt class="hdlist1">`bundle exec rake pr_test`</dt>
58
- <dd>
59
- Comprehensive test suite for pre-commit and pull request validation. Typically includes: RSpec tests, CLI tests, YAML validation.
60
- </dd>
61
- <dt class="hdlist1">`bundle exec rake install_local`</dt>
62
- <dd>
63
- Build and install the project locally for testing.
64
- </dd>
65
- </dl>
66
-
67
- Note that non-gem projects may have some or all of these tasks, as applicable.
68
-