Skip to content

Commit

Permalink
Merge branch 'develop' into pe/update-dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
Strohgelaender authored May 17, 2024
2 parents e8abbca + 4eb01fd commit 021b9a4
Show file tree
Hide file tree
Showing 751 changed files with 8,672 additions and 5,752 deletions.
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: "🐛 Bug report"
name: "🐛 Bug Report"
description: Something on Artemis is not working as expected? Create a report to help us improve.
labels: [bug]
body:
Expand All @@ -8,7 +8,7 @@ body:
- type: textarea
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is.
description: A clear and concise description of what the bug is.
placeholder: What happened? Also tell us, what did you expect to happen?
validations:
required: true
Expand Down
29 changes: 14 additions & 15 deletions .github/ISSUE_TEMPLATE/feature-proposal--developer-.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,40 @@
---
name: Feature Proposal (Developer)
name: 📝 Feature Proposal (Developer)
about: Software Engineering Process for a new feature
title: "[Feature Proposal]"
labels: feature-proposal
assignees: ''

---

> Feature Template Spec Version 0.1
<!-- Feature Proposal Marker -->

# Feature Proposal
> Spec Version 0.2.0
## Context

### Problem
> Describe the problem that is tackled in this issue
### Motivation
> Describe the motivation WHY the problem needs solving. Include the affected users/roles here.
> Describe the motivation WHY the problem needs solving. Specify the affected users/roles.
---
## Requirements Engineering

### Existing (Problematic) Solution / System
> What is the current solution (if there is one)? What is the problem with the current solution?
> You may include a UML Model here
### Proposed System
> How should the perfect solution look like?
> What would the ideal solution look like?
### Requirements
> Describe the Functional and Non-Functional Requirements of the feature. Stick to the INVEST methodology!
> 1. FR: <Title>: <Description>
>
> 1. NFR: <FURPS+ Category>: <Title>: <Description>
---
## Analysis

### Analysis Object Model
Expand All @@ -43,24 +44,22 @@ assignees: ''
> Include dynamic models (Activity Diagram, State Chart Diagram, Communication Diagram) here to outline the dynamic nature of the PROBLEM

---
## System Design
## System Architecture

### Subsystem Decomposition
> Show the involved subsystems and their interfaces. Make sure to describe the APIs that you add/change in detail. Model the DTOs you intend to (re)use or change!
### Persistent Data Management
> Describe the Database changes you intend to make.
> Outline new config options you will add.
> Describe all other data persistency mechanisms you may use.
> Outline new configuration options you plan to introduce
> Describe all other data persistence mechanisms you may use.
### Access Control / Security Aspects
> Describe the access control considerations for your feature
### Other Design Decisions
> Potential candidates to discuss here: Websockets, Test strategy
> Potential topics to discuss here include: WebSockets, testing strategies.
---
## UI / UX
> Describe the user flow (references to dynamic model).
> Screenshots of the final UI mockup
## UI/UX Design
> Screenshots of the final UI mockups (mandatory): Please include screenshots to provide a clear and persistent visual reference of the design.
> Link to the design mockup (optional): Additionally, you may include a link to the live design mockup (e.g., Figma, Sketch) for a more interactive view. Note that this link is supplementary and should not replace the required screenshots.
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/feature-request.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
name: "🚀 Feature request"
name: "🚀 Feature Request"
description: Suggest an idea for this project
labels: [feature]
body:
- type: markdown
attributes:
value: |
Thanks for suggesting new features or pointing our missing functionality.
Thanks for suggesting new features or pointing our missing functionality.
Please describe your request in detail so we can understand your ideas. Feel free to upload additional material such as mockups, diagrams, or sketches
- type: textarea
attributes:
Expand Down
4 changes: 2 additions & 2 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
#### General
<!-- Remove tasks that are not applicable for your PR. Please only put the PR into ready for review, if all relevant tasks are checked! -->
<!-- You only need to choose one of the first two check items: Generally, test on the test servers. -->
<!-- If it's only a small change, testing it locally is acceptable and you may remove the first checkmark. If you are unsure, please test on the test servers. -->
<!-- If it's only a small change, testing it locally is acceptable, and you may remove the first checkmark. If you are unsure, please test on the test servers. -->
- [ ] I tested **all** changes and their related features with **all** corresponding user types on a test server.
- [ ] This is a small issue that I tested locally and was confirmed by another developer on a test server.
- [ ] Language: I followed the [guidelines for inclusive, diversity-sensitive, and appreciative language](https://docs.artemis.cit.tum.de/dev/guidelines/language-guidelines/).
- [ ] I chose a title conforming to the [naming conventions for pull requests](https://docs.artemis.cit.tum.de/dev/development-process/#naming-conventions-for-github-pull-requests).
- [ ] I chose a title conforming to the [naming conventions for pull requests](https://docs.artemis.cit.tum.de/dev/development-process/development-process.html#naming-conventions-for-github-pull-requests).


#### Server
Expand Down
169 changes: 169 additions & 0 deletions .github/workflows/append_feature_proposal.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
name: Append Feature Proposal to Issue Description

on:
issues:
types: [assigned, unassigned, labeled]

jobs:
check-labels:
runs-on: ubuntu-latest
outputs:
status: ${{ steps.feature-proposal-tag-check.outputs.status }}
steps:
- id: feature-proposal-tag-check
name: Check if feature proposal tag added
uses: actions/github-script@v7
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const issueNumber = context.payload.issue.number;
const owner = context.repo.owner;
const repo = context.repo.repo;
const issue = await github.rest.issues.get({
owner,
repo,
issue_number: issueNumber,
});
const hasFeatureProposalLabel = issue.data.labels.some(label => label.name === 'needs-feature-proposal');
if (hasFeatureProposalLabel) {
console.log('Feature Proposal label added. Proceeding...');
core.setOutput('status', 'success');
} else {
console.log('Feature Proposal label not added. Skipping action...');
core.setOutput('status', 'failure');
}
manage-feature-proposal:
needs: check-labels
if: needs.check-labels.outputs.status == 'success'
runs-on: ubuntu-latest
steps:
- name: Check if feature proposal tag added
uses: actions/github-script@v7
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const issueNumber = context.payload.issue.number;
const owner = context.repo.owner;
const repo = context.repo.repo;
const issue = await github.rest.issues.get({
owner,
repo,
issue_number: issueNumber,
});
const hasFeatureProposalLabel = issue.data.labels.some(label => label.name === 'needs-feature-proposal');
if (hasFeatureProposalLabel) {
console.log('Feature Proposal label added. Proceeding...');
} else {
console.log('Feature Proposal label not added. Skipping action...');
process.exit(0);
}
- name: Checkout code
uses: actions/checkout@v4

- name: Append Feature Proposal Template to Issue Description
uses: actions/github-script@v7
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const issueNumber = context.payload.issue.number;
const owner = context.repo.owner;
const repo = context.repo.repo;
const issue = await github.rest.issues.get({
owner,
repo,
issue_number: issueNumber,
});
// Check if the issue has a 'bug' label
const hasBugLabel = issue.data.labels.some(label => label.name === 'bug');
if (hasBugLabel) {
console.log("Issue is labeled as 'bug'. Skipping...");
return; // Exit the script if 'bug' label is found
}
const featureProposalMarker = '<!-- Feature Proposal Marker -->';
if (!issue.data.body.includes(featureProposalMarker)) {
const templateContent = await github.rest.repos.getContent({
owner,
repo,
path: '.github/ISSUE_TEMPLATE/feature-proposal--developer-.md'
});
let templateText = Buffer.from(templateContent.data.content, 'base64').toString();
// Add separator line and remove metadata section
templateText = '---\n' + templateText.split('---').slice(2).join('---').trim();
const updatedBody = issue.data.body + "\n" + templateText;
await github.rest.issues.update({
owner,
repo,
issue_number: issueNumber,
body: updatedBody,
});
}
- name: Update or Post instructions comment
uses: actions/github-script@v7
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const issueNumber = context.payload.issue.number;
const owner = context.repo.owner;
const repo = context.repo.repo;
const issue = await github.rest.issues.get({
owner,
repo,
issue_number: issueNumber,
});
// Check if the issue has any assignees
if (issue.data.assignees.length === 0) {
console.log("No assignees for this issue. Skipping...");
return; // Exit the script if no assignees are found
}
// Check if the issue has a 'bug' label
const hasBugLabel = issue.data.labels.some(label => label.name === 'bug');
if (hasBugLabel) {
console.log("Issue is labeled as 'bug'. Skipping...");
return; // Exit the script if 'bug' label is found
}
const assignees = issue.data.assignees.map(assignee => '@' + assignee.login).join(', ');
const comments = await github.rest.issues.listComments({
owner,
repo,
issue_number: issueNumber,
});
const instructionCommentMarker = '<!-- Instruction Comment Marker -->';
let instructionCommentId = null;
for (const comment of comments.data) {
if (comment.body.includes(instructionCommentMarker)) {
instructionCommentId = comment.id;
break;
}
}
const commentBody = `Hello ${assignees},\n\nThank you for taking on this issue.\n\nTo ensure the Feature Proposal is accurately filled out, we kindly ask you to follow the structure provided.\n\n**For detailed instructions and best practices**, please refer to our **[Development Process Guidelines](https://docs.artemis.cit.tum.de/dev/development-process.html)**.\n\n${instructionCommentMarker}`;
if (instructionCommentId) {
await github.rest.issues.updateComment({
owner,
repo,
comment_id: instructionCommentId,
body: commentBody,
});
} else {
await github.rest.issues.createComment({
owner,
repo,
issue_number: issueNumber,
body: commentBody,
});
}
13 changes: 13 additions & 0 deletions .idea/runConfigurations/Artemis__Server__Jenkins___LocalVC_.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 021b9a4

Please sign in to comment.