Skip to content

Commit

Permalink
Update main (#4)
Browse files Browse the repository at this point in the history
Co-authored-by: David DE CARVALHO <[email protected]>
Co-authored-by: Maxime Malgorn <[email protected]>
Co-authored-by: utarwyn <[email protected]>
Co-authored-by: jycr <[email protected]>
  • Loading branch information
5 people authored Oct 30, 2023
1 parent c7696cb commit a3cbce5
Show file tree
Hide file tree
Showing 218 changed files with 4,678 additions and 419 deletions.
118 changes: 118 additions & 0 deletions .github/ISSUE_TEMPLATE/new_rule_suggestion.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
---
name: New rule suggestion
about: Suggest an new rule idea for this project
title: ''
labels: 'rule'
assignees: ''

---

# {Category: RuleTitle (Variant)}

## Platform

| OS | OS version | Langage |
|---------------|--------------|------------|
| {Android/IOS} | {OS version} | {Language} |

## Main caracteristics

| ID | Title | Category | Sub-category |
|----------|----------------------|-------------|----------------|
| {id} | {title} | {Category} | {SubCategory} |

## Severity / Remediation Cost

- **Case 1**:
| Severity | Remediation Cost |
|------------|---------------------|
| {Severity} | {Remediation_Cost} |
- **Case 2**:
| Severity | Remediation Cost |
|------------|---------------------|
| {Severity} | {Remediation_Cost} |

## Rule short description

- **Case 1**: {short description}
- **Case 2**: {short description}

## Rule complete description

## Text

{big description}

## HTML

```html
{html code}
```

## Implementation principle

- {Implementation principe}
- {Implementation principe}
17 h 17
voici le template
17 h 17
et voici un example :
17 h 17

# Optimized API: List Shallow Copy - Module copy

## Platform

| OS | OS version | Langage |
|----------|------------|-----------|
| - | - | Python |

## Main caracteristics

| ID | Title | Category | Sub-category |
|---------|----------------------------------|-------------|----------------|
| EOPT001 | List Shallow Copy - Module copy | Environment | Optimized API |

## Severity / Remediation Cost

| Severity | Remediation Cost |
|----------|------------------|
| Minor | Minor |

## Rule short description

Using `copy.copy(x)` of `module copy` to perform a shallow copy of a list is not energy efficient.

## Rule complete description

### Text

Using `copy.copy(x)` of `module copy` to perform a shallow copy of a list is not energy efficient.
Prefer the usage of `list.copy()` which is more energy friendly.

### HTML

```html
<p>Using <code>copy.copy(x)</code> of <code>module copy</code> to perform a shallow
copy of a list is not energy efficient.</p>
<p>Prefer the usage of <code>list.copy()</code> which is more energy friendly.</p>
<h2>Noncompliant Code Example</h2>
<pre>
import copy
my_list = [1, 2, [3, 4], 5]
list_copy = copy.copy(my_list)
</pre>
<h2>Compliant Solution</h2>
<pre>
my_list = [1, 2, [3, 4], 5]
list_copy = my_list.copy()
</pre>
```

## Implementation principle

- Inspect the import node to find `copy` import
- Inspect the ARG_LIST node
- If the direct parent is CALL_EXPR tree and the function is `copy.copy()`
- If the function is present, check the first argument
- If it is a list, report the line
40 changes: 28 additions & 12 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: Build and Tests

on:
push:
branches:
Expand All @@ -9,7 +10,8 @@ on:
tags:
- '[0-9]+.[0-9]+.[0-9]+'
pull_request:
types: [opened, synchronize, reopened]
types: [ opened, synchronize, reopened ]

jobs:
build:
name: Build
Expand All @@ -18,27 +20,41 @@ jobs:
pull-requests: read # allows SonarCloud to decorate PRs with analysis results
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis

- name: Set up JDK 11
uses: actions/setup-java@v1
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 11
- name: Cache SonarCloud packages
uses: actions/cache@v1
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar

- name: Cache Maven packages
uses: actions/cache@v1
uses: actions/cache@v3
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Build and analyze

- name: Verify
run: mvn -e -B verify

- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 17

- name: Cache SonarQube packages
uses: actions/cache@v3
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar

- name: SonarQube Scan
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: mvn -e -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=green-code-initiative_ecoCode -Dsonar.exclusions=**/*.groovy,**/*.dummy
run: mvn -e -B org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=green-code-initiative_ecoCode
11 changes: 9 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added

### Changed

- [ios#3](https://github.com/green-code-initiative/ecoCode-ios/issues/3) Move iOS rules into centralized rules repository
- [android#67](https://github.com/green-code-initiative/ecoCode-android/issues/67) Move Android rules into centralized rules repository
- [#216](https://github.com/green-code-initiative/ecoCode/issues/216) Upgrade rule EC2 for Java : Multiple if-else statement improvment
- [#106](https://github.com/green-code-initiative/ecoCode/issues/106) Upgrade RULES.md : rule EC67 not relevant neither for Python nor Rust
- [#225](https://github.com/green-code-initiative/ecoCode/pull/225) Upgrade licence system and licence headers of Java files
- [#140](https://github.com/green-code-initiative/ecoCode/issues/140) Upgrade rule EC3 for Python : no implementation possible for python
- [#136](https://github.com/green-code-initiative/ecoCode/issues/136) Upgrade rule EC53 for Python : no implementation possible for python
- [#128](https://github.com/green-code-initiative/ecoCode/pull/128) Adding EC35 rule for Python and PHP : EC35 rule replaces EC34 with a specific use case ("file not found" sepcific)

### Deleted

## [1.4.0] - 2023-08-08
Expand Down
25 changes: 14 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ refer to the contribution section.

- [Java](java-plugin/)
- [JavaScript](https://github.com/green-code-initiative/ecoCode-javascript)
- [PHP](php-plugin/)
- [PHP](https://github.com/green-code-initiative/ecoCode-php)
- [Python](https://github.com/green-code-initiative/ecoCode-python)

![Screenshot](docs/resources/screenshot.PNG)
Expand Down Expand Up @@ -78,24 +78,26 @@ Ready to use binaries are available [from GitHub](https://github.com/green-code-

| Plugins Version | SonarQube version |
|------------------|-----------------------------|
| 0.1.+ | SonarQube 8.9.+ LTS to 9.3 |
| 0.2.+ | SonarQube 9.4.+ LTS to 9.9 |
| 1.0.+ | SonarQube 9.4.+ LTS to 9.9 |
| 1.1.+ | SonarQube 9.4.+ LTS to 9.9 |
| 1.2.+ | SonarQube 9.4.+ LTS to 10.0 |
| 1.4.+ | SonarQube 9.4.+ LTS to 10.1 |
| 1.3.+ | SonarQube 9.4.+ LTS to 10.0 |
| 1.2.+ | SonarQube 9.4.+ LTS to 10.0 |
| 1.1.+ | SonarQube 9.4.+ LTS to 9.9 |
| 1.0.+ | SonarQube 9.4.+ LTS to 9.9 |
| 0.2.+ | SonarQube 9.4.+ LTS to 9.9 |
| 0.1.+ | SonarQube 8.9.+ LTS to 9.3 |

☕ Plugin Java part compatibility
------------------

| Plugins Version | Java version |
|------------------|--------------|
| 0.1.+ | 11 / 17 |
| 0.2.+ | 11 / 17 |
| 1.0.+ | 11 / 17 |
| 1.1.+ | 11 / 17 |
| 1.2.+ | 11 / 17 |
| 1.4.+ | 11 / 17 |
| 1.3.+ | 11 / 17 |
| 1.2.+ | 11 / 17 |
| 1.1.+ | 11 / 17 |
| 1.0.+ | 11 / 17 |
| 0.2.+ | 11 / 17 |
| 0.1.+ | 11 / 17 |

🤝 Contribution
---------------
Expand Down Expand Up @@ -126,6 +128,7 @@ Then, if no answer, contact ...
- [Olivier Le Goaër](https://olegoaer.perso.univ-pau.fr)
- [Maxime DUBOIS](https://www.linkedin.com/in/maxime-dubois-%F0%9F%8C%B1-649a3a3/)
- [David DE CARVALHO](https://www.linkedin.com/in/david%E2%80%8E-de-carvalho-8b395284/)
- [Maxime MALGORN](https://www.linkedin.com/in/maximemalgorn/)

🧐 Core Team Emeriti
--------------------
Expand Down
Loading

0 comments on commit a3cbce5

Please sign in to comment.