Skip to content

Commit 8270e04

Browse files
authored
Merge pull request #141 from stiwicourage/develop
Enhance NovaModuleTools with new features and documentation updates
2 parents 76bb0d7 + 46a707b commit 8270e04

451 files changed

Lines changed: 35725 additions & 3367 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.codescene/code-health-rules.json

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
{
2+
"usage": "Persist this file inside your repositories as .codescene/code-health-rules.json Keep the rules you want to override, remove the rest for simplicity and an easy overview.Override the code health rules by changing the default 1.0 value to a lower relative weight. A value of 0.0 disables the rule. A value of 0.5 still implies a code health hit but only at 50% of the default impact. Note that you can specify multiple rule sets and use the matching-content-path to control to which parts or languages the rules apply. This makes it possible to differentiate between test vs application code, or tailor rules to specific languages. In case multiple rule sets match a piece of content, then we prioritize the first mathcing set of rules.",
3+
"rule_sets": [
4+
{
5+
"thresholds": [
6+
{
7+
"name": "constructor_max_arguments",
8+
"value": "4"
9+
},
10+
{
11+
"name": "file_mean_cyclomatic_complexity_warning",
12+
"value": "26"
13+
},
14+
{
15+
"name": "function_complex_conditional_branches_alert",
16+
"value": "11"
17+
},
18+
{
19+
"name": "function_complex_conditional_branches_warning",
20+
"value": "6"
21+
},
22+
{
23+
"name": "function_cyclomatic_complexity_alert",
24+
"value": "11"
25+
},
26+
{
27+
"name": "function_cyclomatic_complexity_warning",
28+
"value": "6"
29+
},
30+
{
31+
"name": "function_duplication_min_lines_of_code_for_check",
32+
"value": "6"
33+
},
34+
{
35+
"name": "function_duplication_min_similarity_percentage",
36+
"value": "89"
37+
},
38+
{
39+
"name": "function_lines_of_code_alert",
40+
"value": "31"
41+
},
42+
{
43+
"name": "function_lines_of_code_warning",
44+
"value": "16"
45+
},
46+
{
47+
"name": "function_max_arguments",
48+
"value": "4"
49+
},
50+
{
51+
"name": "function_nesting_depth_warning",
52+
"value": "6"
53+
}
54+
],
55+
"thresholds_doc": "The thresholds are configured to align CodeScene’s code health analysis with SIG’s recommended software quality principles. This ensures that code quality assessments follow established, research-based standards for maintainability and complexity, and that deviations from these thresholds should only be introduced with strong justification.",
56+
"matching_content_path": "**/src/**",
57+
"matching_content_path_doc": "Specify a glob pattern relative to this repository root. The pattern is intentionally limited to **/src/** so that production code is evaluated according to SIG’s recommended software quality principles, while test code under **/tests/** continues to follow CodeScene’s default thresholds.",
58+
"rules": []
59+
}
60+
],
61+
"rule_sets": [
62+
{
63+
"thresholds": [],
64+
"thresholds_doc": "The thresholds let you redefine the details of the code health issues. For example, specifying what a Complex Method means to you. Be restrictive with overrides.",
65+
"matching_content_path": "**/tests/**",
66+
"matching_content_path_doc": "Specify a glob pattern relative to this repository root.",
67+
"rules": []
68+
}
69+
]
70+
}
Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
name: Bug report
2+
description: Report a reproducible problem in NovaModuleTools or the nova CLI.
3+
title: "[Bug]: "
4+
labels:
5+
- bug
6+
body:
7+
- type: markdown
8+
attributes:
9+
value: |
10+
Thanks for taking the time to report a bug.
11+
12+
Please fill out the sections below so we can reproduce the issue quickly.
13+
14+
- type: textarea
15+
id: summary
16+
attributes:
17+
label: Summary
18+
description: Briefly describe the problem.
19+
placeholder: A short description of the bug.
20+
validations:
21+
required: true
22+
23+
- type: textarea
24+
id: steps
25+
attributes:
26+
label: Steps to reproduce
27+
description: Share the smallest reliable reproduction you have.
28+
placeholder: |
29+
1. Run ...
30+
2. Execute ...
31+
3. Observe ...
32+
validations:
33+
required: true
34+
35+
- type: textarea
36+
id: expected
37+
attributes:
38+
label: Expected behavior
39+
placeholder: What did you expect to happen?
40+
validations:
41+
required: true
42+
43+
- type: textarea
44+
id: actual
45+
attributes:
46+
label: Actual behavior
47+
placeholder: What happened instead?
48+
validations:
49+
required: true
50+
51+
- type: input
52+
id: module-version
53+
attributes:
54+
label: NovaModuleTools version
55+
description: For example `1.9.0`, `2.0.0-prerelease4`, or the output from `nova --version`.
56+
placeholder: 2.0.0-prerelease4
57+
validations:
58+
required: true
59+
60+
- type: dropdown
61+
id: surface
62+
attributes:
63+
label: Where did you hit the issue?
64+
options:
65+
- nova CLI
66+
- PowerShell cmdlet
67+
- Build output
68+
- Publish flow
69+
- Release flow
70+
- Other
71+
validations:
72+
required: true
73+
74+
- type: input
75+
id: command
76+
attributes:
77+
label: Command or cmdlet
78+
description: Share the exact command, cmdlet, or workflow that failed.
79+
placeholder: nova update
80+
validations:
81+
required: true
82+
83+
- type: textarea
84+
id: logs
85+
attributes:
86+
label: Relevant output or logs
87+
description: Paste console output, stack traces, or error details.
88+
render: shell
89+
90+
- type: textarea
91+
id: project-json
92+
attributes:
93+
label: Relevant `project.json` snippet
94+
description: Include only the settings needed to reproduce the issue.
95+
render: json
96+
97+
- type: input
98+
id: os
99+
attributes:
100+
label: Operating system
101+
placeholder: macOS 15.4 / Ubuntu 24.04 / Windows 11
102+
validations:
103+
required: true
104+
105+
- type: input
106+
id: powershell
107+
attributes:
108+
label: PowerShell version
109+
placeholder: 7.4.2
110+
validations:
111+
required: true
112+
113+
- type: input
114+
id: shell
115+
attributes:
116+
label: Shell
117+
placeholder: zsh / bash / pwsh / PowerShell
118+
119+
- type: dropdown
120+
id: install-method
121+
attributes:
122+
label: Installation method
123+
options:
124+
- Install-Module
125+
- Manual import from source or dist
126+
- Installed nova launcher
127+
- Local publish
128+
- Other
129+
validations:
130+
required: true
131+
132+
- type: dropdown
133+
id: regression
134+
attributes:
135+
label: Regression?
136+
description: Did this work in an earlier version?
137+
options:
138+
- "No"
139+
- "Yes"
140+
- Not sure
141+
validations:
142+
required: true
143+
144+
- type: textarea
145+
id: additional-context
146+
attributes:
147+
label: Additional context
148+
description: Add screenshots, workarounds, or anything else that may help.
149+
150+
- type: checkboxes
151+
id: checks
152+
attributes:
153+
label: Pre-submit checklist
154+
options:
155+
- label: I searched existing issues to avoid creating a duplicate.
156+
required: true
157+
- label: I included enough detail for someone else to reproduce the issue.
158+
required: true
159+
- label: This is not a security vulnerability report.
160+
required: true

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Security vulnerability report
4+
url: https://github.com/stiwicourage/NovaModuleTools/security/advisories/new
5+
about: Please use private vulnerability reporting for security issues instead of opening a public bug report.
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
name: Feature request
2+
description: Suggest an improvement for NovaModuleTools or the nova CLI.
3+
title: "[Feature]: "
4+
labels:
5+
- enhancement
6+
body:
7+
- type: markdown
8+
attributes:
9+
value: |
10+
Thanks for sharing an idea.
11+
12+
Please describe the problem and proposed improvement as clearly as you can so we can evaluate it efficiently.
13+
14+
- type: textarea
15+
id: summary
16+
attributes:
17+
label: Summary
18+
description: Briefly describe the feature or improvement you want.
19+
placeholder: A short summary of the request.
20+
validations:
21+
required: true
22+
23+
- type: textarea
24+
id: problem
25+
attributes:
26+
label: Problem or use case
27+
description: What problem are you trying to solve, or what workflow is currently hard?
28+
placeholder: Describe the current pain point, limitation, or missing workflow.
29+
validations:
30+
required: true
31+
32+
- type: textarea
33+
id: proposed-solution
34+
attributes:
35+
label: Proposed solution
36+
description: Describe the behavior, command, or workflow you would like to see.
37+
placeholder: Explain the improvement you want.
38+
validations:
39+
required: true
40+
41+
- type: textarea
42+
id: alternatives
43+
attributes:
44+
label: Alternatives considered
45+
description: Share any workarounds or alternative solutions you have considered.
46+
placeholder: Describe any alternatives, workarounds, or why existing options are not enough.
47+
48+
- type: dropdown
49+
id: surface
50+
attributes:
51+
label: Affected area
52+
options:
53+
- nova CLI
54+
- PowerShell cmdlet
55+
- Scaffolding or init flow
56+
- Build or test flow
57+
- Publish or release flow
58+
- Documentation
59+
- Other
60+
validations:
61+
required: true
62+
63+
- type: input
64+
id: command
65+
attributes:
66+
label: Related command or cmdlet
67+
description: If relevant, share the command, cmdlet, or workflow this request is about.
68+
placeholder: nova init -Example
69+
70+
- type: textarea
71+
id: example
72+
attributes:
73+
label: Example usage
74+
description: If helpful, show what the intended command, output, or workflow could look like.
75+
render: shell
76+
77+
- type: textarea
78+
id: project-json
79+
attributes:
80+
label: Relevant `project.json` context
81+
description: Include only the settings that matter for this request.
82+
render: json
83+
84+
- type: dropdown
85+
id: benefit
86+
attributes:
87+
label: Expected benefit
88+
options:
89+
- Better usability
90+
- Better maintainability
91+
- Better automation or CI/CD
92+
- Better documentation
93+
- Better compatibility
94+
- Other
95+
validations:
96+
required: true
97+
98+
- type: dropdown
99+
id: breaking-change-risk
100+
attributes:
101+
label: Breaking change risk
102+
description: Does this request likely change existing behavior?
103+
options:
104+
- Low
105+
- Medium
106+
- High
107+
- Not sure
108+
validations:
109+
required: true
110+
111+
- type: input
112+
id: version
113+
attributes:
114+
label: Current NovaModuleTools version
115+
description: Optional, but helpful if the request is tied to a specific version.
116+
placeholder: 2.0.0-prerelease4
117+
118+
- type: textarea
119+
id: additional-context
120+
attributes:
121+
label: Additional context
122+
description: Add screenshots, examples from similar tools, or anything else that helps explain the request.
123+
124+
- type: checkboxes
125+
id: checks
126+
attributes:
127+
label: Pre-submit checklist
128+
options:
129+
- label: I searched existing issues to avoid creating a duplicate.
130+
required: true
131+
- label: I explained the problem or use case, not just the desired solution.
132+
required: true
133+
- label: This is not a bug report or security vulnerability report.
134+
required: true

.github/dependabot.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# To get started with Dependabot version updates, you'll need to specify which
2+
# package ecosystems to update and where the package manifests are located.
3+
# Please see the documentation for all configuration options:
4+
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
5+
6+
version: 2
7+
updates:
8+
- package-ecosystem: "npm" # See documentation for possible values
9+
directory: "/" # Location of package manifests
10+
schedule:
11+
interval: "daily"

0 commit comments

Comments
 (0)