Bubulle est un programme de vérification de norme développé pour que les étudiants puissent vérifier le bon respect de la norme EPITECH. La norminette cherche les erreurs de norme d'Epitech dans le code source des fichiers. La norminette est la plus complète à ce jour et a un système de versioning, permettant des mises à jour régulières.
"Le but aussi, c'est d'apprendre à développer à la norme, pas à la corriger à la fin."
- Installation et utilisation
- Vérifications de norme
- Options
- Rapports HTML
- Vérifier vos fautes de norme automatiquement
- Problèmes connus
- Contributeurs
Pour utiliser la norminette Bubulle, vous devez avoir Python 3.x sur votre ordinateur.
Le script d'installation installe automatiquement les dépendances.
- Python
- Pycparser :
python3 -m pip install pycparser pyparsing pycparser-fake-libc --user
La norminette Bubulle utilise un préprocesseur C écrit en Python permettant le fonctionnement de plusieurs tests de norme.
L'installation peut s'effectuer directement avec le script d'installation. Le script supprime l'ancienne version et télécharge la nouvelle. C'est la façon la plus facile d'installer la norminette sous Linux. Fonctionne également sur MacOS.
sudo sh -c "$(curl -fsSL https://raw.githubusercontent.com/aureliancnx/Bubulle-Norminette/master/install_bubulle.sh)"
Ecrivez simplement la commande suivante dans votre terminal, dans le dossier où se situe le code que vous souhaitez vérifier :
bubulle
Exemple de retour :
-h
ou--help
: obtenir des informations sur Bubulle (arguments)-p
ou--path
: lancer la norminette dans un dossier ou fichier précis-r
ou--report
: générer un rapport au format HTML-a
ou--aggressive
: mode agressif (ajoute des vérifications de norme supplémentaires)-f
ou--no-forbidden
: ne pas considérer les fonctions interdites-e
ou--exclude
: ignorer un fichier/dossier-u
ou--update
: mettre à jour la norminette Bubulle-c
ou--config
: afficher/modifier la configuration de Bubulle (expérimental)-verbose
ou--verbose
: verbose, afficher les erreurs de compilation précises-v
ou--version
: afficher la version locale de Bubulle-ic
ou--ignore-compilation
: ignorer les erreurs de compilation-i
ou--ignore
: ignorer des erreurs de norme précises (séparés par une virgule)
Exemple: l1,l2 permet d'ignorer le test L1 et L2-ii
ou--ignore-info
: ignorer les problèmes de norme INFO-imin
ou--ignore-minor
: ignorer les problèmes de norme MINOR-imaj
ou--ignore-major
: ignorer les problèmes de norme MAJOR
Bubulle permet de générer un rapport au format HTML (avec -r
ou --report
) avec des informations visuelles sur le code et les erreurs de norme directement depuis votre navigateur Internet (ne fonctionne pas en TTy).
Github vous permet d'ajouter des tests automatiques lorsque vous effectuez un push. Vous pouvez tester les fautes de norme dans votre repository.
Vous receverez un mail si Bubulle détecte des fautes de norme.
- Créez un dossier
.github/workflows/
à la racine de votre projet. - Créez un fichier nommé
coding_style.yml
dans le dossier.github/workflows/
et placez le contenu suivant à l'intérieur du fichier :
name: Coding style check
on: push
jobs:
codingstyle:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: installing pycparser
run: python -m pip install pycparser
- name: installing coding style
run: sudo sh -c "$(curl -fsSL https://raw.githubusercontent.com/aureliancnx/Bubulle-Norminette/master/install_bubulle.sh)"
- name: check coding style
run: bubulle
- commit, push, et Bubulle se lancera à chaque push!
Bubulle est modifié régulièrement afin de corriger les problèmes qui peuvent être remontés. N'hésitez pas à créer une issue si vous en trouvez un.
- Certaines lib en C (comme la CSFML) empêchent Bubulle de vérifier les fautes de norme sur certains de vos fichiers. Cela va vous informer du problème avec l'erreur "Unable to compile the file".
- aureliancnx : Développeur de la Bubulle
- Payne : idée du nom & soutien moral
- toutes les personnes qui testent la norminette et qui me donnent un feedback pour améliorer Bubulle. <3
Vous souhaitez également participer au développement et à l'amélioration de la norminette ? N'hésitez pas à ouvrir une issue en cas de problème ou à soumettre un pull request pour une idée de modification.
EPITECH norme check developed with the features of the latest update of the EPITECH norme for the 2025 promotion. Available for all students. The norminette looks for Epitech "norme" errors in the source code of the files. The norminette is the most complete to date and has a versioning system, allowing regular updates.
The goal is to keep a complete norminette in less than 3000 lines (assets/excluded).
- Install and usage
- Norme verifications
- Options (en)
- HTML Reports
- Automatically check your norm issues
- Known issues
- Contributors
In order to use Bubulle, you must have Python 3.x installed. The installation script automatically installs the related dependencies.
- Python
- Pycparser :
python3 -m pip install pycparser pyparsing pycparser-fake-libc --user
The Bubble norme check uses a C preprocessor written in Python allowing the operation of several standard tests.
The installation can be done directly with the installation script. The script removes the old version and downloads the new one. This is the easiest way to install the norme checker under Linux. Also works on MacOS.
sudo sh -c "$(curl -fsSL https://raw.githubusercontent.com/aureliancnx/Bubulle-Norminette/master/install_bubulle.sh)"
Simply type the following command in your terminal, in the folder where the code you want to check is located:
bubulle
Output example:
-h
or--help
: get information about Bubble (arguments)-p
or--path
: run the norminette in a specific directory or file-r
or--report
: generate a report in HTML format-f
ou--no-forbidden
: don't take into account forbidden functions-a
ou--aggressive
: aggressive mode (add more norm checks)-e
or--exclude
: ignore a file/folder-u
or--update
: update the Bubble Normette-c
or--config
: display/modify Bubble configuration (experimental)-verbose
or--verbose
: verbose, display compilation errors precise-v
or--version
: display the local version of Bubble-ic
or--ignore-compilation
: ignore compilation errors-i
or--ignore
: ignore specific standard errors (comma-separated)
Example: l1,l2 ignores the L1 and L2 test.-ii
or--ignore-info
: ignore INFO standard problems-imin
or--ignore-minor
: ignore MINOR norme issues-imaj
or--ignore-major
: ignore MAJOR norme issues
Bubble allows you to generate a report in HTML format (with -r
or --report
) with visual information about the code and norme issues directly from your web browser (does not work in TTy).
Github allows you to make automatic tests every time you push. You can test your norm issues in your repository.
You will receive an email every time Bubulle detects a norm issue.
- Create a folder named
.github/workflows/
in the parent folder of your repository. - Create a file named
coding_style.yml
in the following folder:.github/workflows/
. Then, put the following content in the file:
name: Coding style check
on: push
jobs:
codingstyle:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: installing pycparser
run: python -m pip install pycparser
- name: installing coding style
run: sudo sh -c "$(curl -fsSL https://raw.githubusercontent.com/aureliancnx/Bubulle-Norminette/master/install_bubulle.sh)"
- name: check coding style
run: bubulle
- commit, push, and Bubulle will check norm issues on every push!
Bubulle is updated regularly in order to fix issues. Feel free to create a issue if you find one.
- Some C libraries (like CSFML) prevent Bubble from checking for norm issues on some of your files. It will notify you with "Unable to compile the file".
- aureliancnx : Bubble developer
- Payne : name idea & moral support
- everyone who test the norminette and give me feedback to improve Bubble. <3
Would you also like to participate in the development and improvement of Bubulle? Feel free to open a issue in case of problem or to submit a pull request for a modification idea.