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
Copy file name to clipboardExpand all lines: handbook/commit_messages.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ nav_order: 6
6
6
7
7
# Commit Messages Style Guide
8
8
9
-
A commit message is a brief description of the changes made in a commit. It is a way to communicate the purpose of the change to other developers.
9
+
A commit message is a brief description of the changes made in a [commit](https://git-scm.com/docs/git-commit). It is a way to communicate the purpose of the change to other developers.
10
10
A good commit message helps to understand the changes made in the commit and why they were made.
11
11
12
12
All Nethesis projects follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) standard for commit messages.
Copy file name to clipboardExpand all lines: handbook/index.md
+15-16Lines changed: 15 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
layout: default
3
-
title: Development Handbook
3
+
title: Development process
4
4
nav_order: 1
5
5
---
6
6
@@ -41,7 +41,7 @@ There are two communities that contribute significantly:
41
41
42
42
-[NethServer Community](https://community.nethserver.org/): This community consists of users and developers who volunteer their time. The forum is in English and open to everyone. It is the primary place for feature requests, support, and bug reports. Without this community, the project would not exist.
43
43
44
-
-[Nethesis Partner Community](https://partner.nethesis.it/): This community includes partners and customers. The forum is in Italian and focuses on commercial support, feature requests, and support. They provide substantial contributions to the project roadmap as they financially support the project. Access is reserved for partners.
44
+
-[Nethesis Partner Community](https://partner.nethesis.it/): This community includes partners and customers. The forum is in Italian and focuses on commercial support, feature requests and support. They provide substantial contributions to the project roadmap as they financially support the project. Access is reserved for partners.
45
45
46
46
The main tool used is [GitHub](https://github.com), where the code is hosted, and the development process is managed. Repositories are organized into organizations. Nethesis has two organizations:
47
47
@@ -50,26 +50,25 @@ The main tool used is [GitHub](https://github.com), where the code is hosted, an
50
50
51
51
## General workflow
52
52
53
-
The development workflow for Nethesis projects involves several steps to ensure quality and efficiency. Here is a detailed description of the process:
53
+
The development process is heavily based on the use of GitHub and follows the GitHub flow methodology.
54
+
GitHub Flow is a lightweight, branch-based workflow for managing work. It involves creating a branch for each
55
+
feature or bug fix, committing changes to that branch, opening a pull request to discuss and review the changes,
56
+
and merging the branch into the main branch once approved. It emphasizes collaboration, continuous delivery,
57
+
and integration. For more details, visit [GitHub Flow official documentation](https://docs.github.com/en/get-started/using-github/github-flow).
58
+
59
+
The development workflow for NethServer projects involves several steps to ensure quality and efficiency. Here is a detailed description of the process:
54
60
55
-
1.**Bug or Feature Collection**: Issues are collected from internal channels (private chats, helpdesk) or external channels such as community forums.
56
-
2.**Issue Formalization**: The collected issues are formalized into GitHub issues. This task is usually delegated to a developer but can also be performed by other roles such as the project manager. The issue must be added to a project board and can be added to a milestone if it must be planned for a specific release.
57
-
3.**Issue Assignment**: The issue is assigned to a developer who implements the solution in a separate branch and opens a pull request. If the issue requires changes to the user interface, the issue is assigned to a UI/UX designer before starting the development process.
61
+
1.**Bug or Feature Collection**: Issues are collected from public channels such as community forums or internal channels (private chats, helpdesk).
62
+
The [Product Manager (PM)](management/#product-manager) is responsible for collecting and organizing the issues.
63
+
2.**Issue Formalization**: The collected issues are formalized into GitHub [issues](issues). This task is usually delegated to the PM or to a [developer](management/#developer) but can also be performed by other roles such as a support team member. The issue must be added to a project board and can be added to a milestone if it must be planned for a specific release.
64
+
3.**Issue Assignment**: The issue is assigned to a developer who implements the solution in a separate branch and opens a [Pull Request (PR)](pull_requests). If the issue requires changes to the user interface, the issue is assigned to a UI/UX designer before starting the development process.
58
65
4.**Code Review**: The code is subjected to a code review by one or more developers to ensure quality and adherence to coding standards.
59
66
5.**Pull Request Approval and Merge**: Once the pull request is approved, it is merged into the main branch.
60
67
6.**Automated Build and Test Process**: The build and test processes are automatically executed to verify the changes.
61
-
7.**Quality Assurance (QA)**: The output of the build process, whether a module or a package, is subjected to QA testing.
68
+
7.**Quality Assurance (QA)**: The output of the build process, whether a module or a package, is subjected to [Quality Assurance (QA)](management/#qa-team-member-testing) testing.
62
69
8.**Release or Rework**:
63
-
- If the QA process is successful, the module or package is released, and the issue is closed.
70
+
- If the QA process is successful, the [packager](management#packager) can release the module or package, and the issue is closed.
64
71
- If the QA process fails, the issue is returned to the developer for correction, and the process restarts from step 3.
65
-
66
-
## Tools and methodologies
67
-
68
-
The development process is heavily based on the use of Git and GitHub and follows the GitHub flow methodology.
69
-
GitHub Flow is a lightweight, branch-based workflow for managing work on GitHub. It involves creating a branch for each
70
-
feature or bug fix, committing changes to that branch, opening a pull request to discuss and review the changes,
71
-
and merging the branch into the main branch once approved. It emphasizes collaboration, continuous delivery,
72
-
and integration. For more details, visit [GitHub Flow official documentation](https://docs.github.com/en/get-started/using-github/github-flow).
Copy file name to clipboardExpand all lines: handbook/issues.md
+21-45Lines changed: 21 additions & 45 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,7 +30,10 @@ There two main type of issues:
30
30
31
31
Bug and feature issues will always produce some code changes inside one or more Git repositories.
32
32
Usually this type of issue are the parent issue for one or more sub-issues.
33
-
The QA should always test the parent issue, not the sub-issues.
33
+
34
+
The QA of the code should always test the parent issue, not the sub-issues.
35
+
Still, sub-issues of type **Design** can pass to the testing state when the mockup needs to be reviewed. When the mockup is approved, the sub-issue can be
36
+
moved to verified state or directly closed.
34
37
35
38
Sub-issues are tasks that are part of the parent issue. They can be of different types:
36
39
@@ -49,6 +52,14 @@ Sub-issues are tasks that are part of the parent issue. They can be of different
49
52
50
53
An issue can track a feature, a bug, or a task.
51
54
55
+
Issues are not a to-do list. Issues track the status changes of a job, the
56
+
output of the job will be a new container image, in case of NethServer, resolving the issue itself.
57
+
If you are exploring some esoteric paths for new feature or hunting
58
+
something like a [heisenbug](http://en.wikipedia.org/wiki/Heisenbug>),
59
+
please open a discussion with your thoughts.
60
+
Then create a new issue only when you’re ready to write a formal description
61
+
and produce some output object.
62
+
52
63
### Feature
53
64
54
65
A process for a new feature should be something like this:
@@ -58,7 +69,7 @@ A process for a new feature should be something like this:
58
69
- if a feature is planned for the future it is also recorded in a [project
Copy file name to clipboardExpand all lines: handbook/management.md
+8-6Lines changed: 8 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,6 +15,7 @@ nav_order: 2
15
15
### Product Manager
16
16
17
17
The Product Manager oversees the overall development process, ensuring that the product meets the needs of users and stakeholders. They prioritize features and bug fixes, coordinate between different teams, and ensure that the project stays on track and aligns with the strategic goals.
18
+
They are responsible for defining the product vision, creating the roadmap, and communicating with the community.
18
19
19
20
### User
20
21
@@ -37,6 +38,7 @@ Anyone can be a QA Team Member, but usually is one of the following:
37
38
### Packager
38
39
39
40
The Packager is a developer that coordinates the work between developers and QA Team Members. They review and merge code changes, manage release tags, and ensure that documentation is updated and published. They also handle the final steps of closing issues and releasing modules.
41
+
Usually the packager is the same person as the developer, but in some cases, it can be a different person.
40
42
41
43
## Meetings
42
44
@@ -61,11 +63,11 @@ Project boards are used to track the progress of issues and requests. They are d
61
63
62
64
All projects have some common views:
63
65
64
-
-**Current**: it shows the current status of the project, it contains all the issues inside the ongoing milestone; this view uses a kanban board
66
+
-**Current**: it shows the current status of the project, it contains all the issues inside the ongoing [milestone](/milestones); this view uses a kanban board
65
67
66
-
-**Backlog**: it contains all the issues that are not assigned to a milestone yet, or that are not ready to be worked on; this view uses a list of issues
68
+
-**Backlog**: it contains all the issues that are not assigned to a [milestone](/milestones) yet, or that are not ready to be worked on; this view uses a list of [issues](/issues)
67
69
68
-
The team working on a project can decide to add more views if needed, for example, a view for the next milestone, or a view for the next release.
70
+
The team working on a project can decide to add more views if needed, for example, a view for the next milestone, or a view to measure the team load.
69
71
70
72
Each column contains a set of cards, each card represents an issue or a feature request.
71
73
@@ -79,9 +81,9 @@ The project is divided into columns that represent the status of the card.
79
81
A card can be an issue, a feature request, a bug report, or a task.
80
82
The columns are:
81
83
82
-
-**ToDo**: new issues are placed here, the team will evaluate them and assign the right labels and milestone.
83
-
-**In Progress**: issues that are being worked on, they are assigned to a developer or a designer. I
84
-
-**Testing**: issues that are ready for testing. The QA Team Member will verify that the code works as expected and meets the required standards.
84
+
-**ToDo**: new issues are placed here, the team will evaluate them and assign the right [labels](/issues/#issue-labels) and [milestone](/milestones).
85
+
-**In Progress**: issues that are being worked on, they are assigned to a developer or a designer.
86
+
-**Testing**: issues that are ready for testing. The QA Team will verify that the code works as expected and meets the required standards.
85
87
-**Verified**: issues that have passed testing and are verified to be working correctly, this issues are ready to be released by the packager.
86
88
-**Done**: issues that have been completed and closed.
Copy file name to clipboardExpand all lines: handbook/milestones.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,11 +6,11 @@ nav_order: 2
6
6
7
7
# Milestones
8
8
9
-
GitHub milestones are a way to track progress on groups of issues or pull requests in a repository. They help in planning and managing project timelines by setting due dates and associating related tasks.
9
+
[GitHub milestones](https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/about-milestones) are a way to track progress on groups of issues or pull requests in a repository. They help in planning and managing project timelines by setting due dates and associating related tasks.
10
10
11
-
All Nethesis projects use rolling releases, so milestones are used to organize the project and highlight significant goals achieved and upcoming priorities.
11
+
All NethServer projects use rolling releases, so milestones are used to organize the project and highlight significant goals achieved and upcoming priorities.
12
12
A milestone can be closed when all associated issues have been completed.
13
-
Issues can be added while the milestone is in progress, and milestones must contain both bugs and features.
13
+
[Issues](/issues) can be added while the milestone is in progress, and milestones must contain both bugs and features.
14
14
Completed issues are released as they are finished, so updates are rolling; there is no need to wait for the milestone to be completed to release updates.
15
15
16
16
A milestone indicates a general objective and is useful because it concludes with an announcement to the community, informing everyone about what has been accomplished.
@@ -22,7 +22,7 @@ Each open milestone should have:
22
22
- an end date that is the release date, this is usually an estimate and can be changed as needed
23
23
24
24
Please note that only issues can be assigned to a milestone, not pull requests or draft card.
25
-
To overcome this limitation, an issue with type "Draft" can be created to be associated with a milestone.
25
+
To overcome this limitation, an issue with [type "Draft"](/issues/#issue-types) can be created to be associated with a milestone.
26
26
Product managers typically use draft issues to plan work for upcoming milestones.
27
27
A draft issue contains a brief description of the feature, it could not contain a detailed description or acceptance criteria.
28
28
The issue type will be changed once the analysis is complete, and it may also be split into multiple sub-issues if the work requires task separation.
0 commit comments