From 90273a5af991610468d814a0de802f5cf466220c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Sun, 3 Oct 2021 19:31:17 +0200 Subject: [PATCH] Testing (#9) Add templates --- .github/ISSUE_TEMPLATE.md | 55 +++++++++++++++++++++++ .github/PULL_REQUEST_TEMPLATE.md | 16 +++++++ README.md | 73 +++++++++++++------------------ README_fr.md | 67 +++++++++++----------------- check_process | 8 ++-- doc/DISCLAIMER.md | 11 +++++ doc/DISCLAIMER_fr.md | 11 +++++ doc/screenshots/bootstrap.png | Bin 0 -> 36313 bytes manifest.json | 12 +++-- pull_request_template.md | 16 ------- scripts/restore | 2 - 11 files changed, 160 insertions(+), 111 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100755 doc/DISCLAIMER.md create mode 100755 doc/DISCLAIMER_fr.md create mode 100644 doc/screenshots/bootstrap.png delete mode 100644 pull_request_template.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..2729a6b --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,55 @@ +--- +name: Bug report +about: When creating a bug report, please use the following template to provide all the relevant information and help debugging efficiently. + +--- + +**How to post a meaningful bug report** +1. *Read this whole template first.* +2. *Determine if you are on the right place:* + - *If you were performing an action on the app from the webadmin or the CLI (install, update, backup, restore, change_url...), you are on the right place!* + - *Otherwise, the issue may be due to the app itself. Refer to its documentation or repository for help.* + - *When in doubt, post here and we will figure it out together.* +3. *Delete the italic comments as you write over them below, and remove this guide.* +--- + +### Describe the bug + +*A clear and concise description of what the bug is.* + +### Context + +- Hardware: *VPS bought online / Old laptop or computer / Raspberry Pi at home / Internet Cube with VPN / Other ARM board / ...* +- YunoHost version: x.x.x +- I have access to my server: *Through SSH | through the webadmin | direct access via keyboard / screen | ...* +- Are you in a special context or did you perform some particular tweaking on your YunoHost instance?: *no / yes* + - If yes, please explain: +- Using, or trying to install package version/branch: +- If upgrading, current package version: *can be found in the admin, or with `yunohost app info $app_id`* + +### Steps to reproduce + +- *If you performed a command from the CLI, the command itself is enough. For example:* + ```sh + sudo yunohost app install the_app + ``` +- *If you used the webadmin, please perform the equivalent command from the CLI first.* +- *If the error occurs in your browser, explain what you did:* + 1. *Go to '...'* + 2. *Click on '...'* + 3. *Scroll down to '...'* + 4. *See error* + +### Expected behavior + +*A clear and concise description of what you expected to happen. You can remove this section if the command above is enough to understand your intent.* + +### Logs + +*When an operation fails, YunoHost provides a simple way to share the logs.* +- *In the webadmin, the error message contains a link to the relevant log page. On that page, you will be able to 'Share with Yunopaste'. If you missed it, the logs of previous operations are also available under Tools > Logs.* +- *In command line, the command to share the logs is displayed at the end of the operation and looks like `yunohost log display [log name] --share`. If you missed it, you can find the log ID of a previous operation using `yunohost log list`.* + +*After sharing the log, please copypaste directly the link provided by YunoHost (to help readability, no need to copypaste the entire content of the log here, just the link is enough...)* + +*If applicable and useful, add screenshots to help explain your problem.* diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..ef70e18 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,16 @@ +## Problem + +- *Description of why you made this PR* + +## Solution + +- *And how do you fix that problem* + +## PR Status + +- [ ] Code finished and ready to be reviewed/tested +- [ ] The fix/enhancement were manually tested (if applicable) + +## Automatic tests + +Automatic tests can be triggered on https://ci-apps-dev.yunohost.org/ *after creating the PR*, by commenting "!testme", "!gogogadgetoci" or "By the power of systemd, I invoke The Great App CI to test this Pull Request!". (N.B. : for this to work you need to be a member of the Yunohost-Apps organization) diff --git a/README.md b/README.md index 98e13de..7f70ee5 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,8 @@ + + # PrivateBin for YunoHost [![Integration level](https://dash.yunohost.org/integration/privatebin.svg)](https://dash.yunohost.org/appci/app/privatebin) ![](https://ci-apps.yunohost.org/ci/badges/privatebin.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/privatebin.maintain.svg) @@ -5,65 +10,45 @@ *[Lire ce readme en français.](./README_fr.md)* -> *This package allow you to install PrivateBin quickly and simply on a YunoHost server. -If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to know how to install and enjoy it.* +> *This package allows you to install PrivateBin quickly and simply on a YunoHost server. +If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.* ## Overview -PrivateBin is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. +Minimalist pastebin where the server has zero knowledge of pasted data + +**Shipped version:** 1.3.5~ynh1 + +**Demo:** https://privatebin.net/ + +## Screenshots + +![](./doc/screenshots/bootstrap.png) + +## Disclaimers / important information + +## Additional information Data is encrypted/decrypted in the browser using 256bit AES in Galois Counter mode. This is a fork of ZeroBin, originally developed by Sébastien Sauvage. It was refactored to allow easier and cleaner extensions and has now much more features than the original. It is however still fully compatible to the original ZeroBin 0.19 data storage scheme. Therefore such installations can be upgraded to this fork without loosing any data. -**Shipped version:** 1.3.5 - -## Screenshots - -![](https://privatebin.info/img/1.0/bootstrap.png) - -## Demo - -* [Official demo](https://privatebin.net/) - -## Configuration - -## Documentation - - * Official documentation: https://github.com/PrivateBin/PrivateBin/wiki - * YunoHost documentation: https://yunohost.org/#/app_privatebin - -## YunoHost specific features - -#### Multi-users support - -#### Supported architectures - -* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/privatebin.svg)](https://ci-apps.yunohost.org/ci/apps/privatebin/) -* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/privatebin.svg)](https://ci-apps-arm.yunohost.org/ci/apps/privatebin/) - -## Limitations - -## Additional information - In the [update documentation](https://github.com/PrivateBin/PrivateBin/wiki/Configuration#zerobincompatibility) of ParsteBin, it is specified that: For full compatibility with ZeroBin and to be able to decrypt old pastes, you would enable this option. However this is not recommend for new installations as it weakens the security of your PrivateBin instance. This means that we have decided to delete the directory that allows us to save the data. You can save the 'data' directory, if you want to keep your data. But you should know that this weakens the security of this application. +## Documentation and resources -## Links +* Official app website: https://privatebin.info/ +* Official admin documentation: https://github.com/PrivateBin/PrivateBin/wiki +* Upstream app code repository: https://github.com/PrivateBin/PrivateBin +* YunoHost documentation for this app: https://yunohost.org/app_privatebin +* Report a bug: https://github.com/YunoHost-Apps/privatebin_ynh/issues - * Report a bug: https://github.com/YunoHost-Apps/privatebin_ynh/issues - * PrivateBin website: https://privatebin.info/ - * PrivateBin repository: https://github.com/PrivateBin/PrivateBin - * YunoHost website: https://yunohost.org/ +## Developer info ---- - -## Developers info - -Please do your pull request to the [testing branch](https://github.com/YunoHost-Apps/privatebin_ynh/tree/testing). +Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/privatebin_ynh/tree/testing). To try the testing branch, please proceed like that. ``` @@ -71,3 +56,5 @@ sudo yunohost app install https://github.com/YunoHost-Apps/privatebin_ynh/tree/t or sudo yunohost app upgrade privatebin -u https://github.com/YunoHost-Apps/privatebin_ynh/tree/testing --debug ``` + +**More info regarding app packaging:** https://yunohost.org/packaging_apps \ No newline at end of file diff --git a/README_fr.md b/README_fr.md index 1667977..6f5e4ab 100644 --- a/README_fr.md +++ b/README_fr.md @@ -3,67 +3,48 @@ [![Niveau d'intégration](https://dash.yunohost.org/integration/privatebin.svg)](https://dash.yunohost.org/appci/app/privatebin) ![](https://ci-apps.yunohost.org/ci/badges/privatebin.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/privatebin.maintain.svg) [![Installer PrivateBin avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=privatebin) -*[Read this readme in english.](./README.md)* +*[Read this readme in english.](./README.md)* +*[Lire ce readme en français.](./README_fr.md)* -> *Ce package vous permet d'installer PrivateBin rapidement et simplement sur un serveur YunoHost. +> *Ce package vous permet d'installer PrivateBin rapidement et simplement sur un serveur YunoHost. Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour savoir comment l'installer et en profiter.* ## Vue d'ensemble -PrivateBin est un logiciel libre, minimaliste, qui joue le rôle de pastebin (coller-corbeille) où le serveur n'a aucune connaissance des données qu'il stocke. +Pastebin minimaliste où le serveur n'a aucune connaissance des données copiées + +**Version incluse :** 1.3.5~ynh1 + +**Démo :** https://privatebin.net/ + +## Captures d'écran + +![](./doc/screenshots/bootstrap.png) + +## Avertissements / informations importantes + +## Informations additionnelles Les données sont chiffrées et déchiffrées dans le navigateur en utilisant la technologie AES 256bits en mode Galois Counter (GCM). Ce projet est un fork de ZeroBin, développé à l'origine par Sébastien Sauvage. Il a été ré-écrit pour accepter plus facilement des extensions en rajoutant plus de fonctionnalités. Il reste cependant compatible avec le schéma original de stockage des données Zerobin 0.19. Ainsi toutes les installations peuvent être mises à jour vers ce projet, sans perte de données. -**Version incluse :** 1.3.5 - -## Captures d'écran - -![](https://privatebin.info/img/1.0/bootstrap.png) - -## Démo - -* [Démo Privatebin](https://privatebin.net/) - -## Configuration - -## Documentation - - * Documentation officielle : https://github.com/PrivateBin/PrivateBin/wiki - * Documentation YunoHost : https://yunohost.org/#/app_privatebin_fr - -## Caractéristiques spécifiques YunoHost - -#### Support multi-utilisateurs - -#### Architectures supportées - -* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/privatebin.svg)](https://ci-apps.yunohost.org/ci/apps/privatebin/) -* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/privatebin.svg)](https://ci-apps-arm.yunohost.org/ci/apps/privatebin/) - -## Limitations - -## Informations additionnelles - Dans la [documentation de mise à jour](https://github.com/PrivateBin/PrivateBin/wiki/Configuration#zerobincompatibility) de PrivateBin, il est précisé que : Pour une compatibilité complète avec Zerobin et le déchiffrement de tous les vieux "paste", vous devriez activer cette option. Cependant, ce n'est pas recommandé pour les nouvelles installations car cela affaiblit la sécurité de votre instance PrivateBin. Ceci signifie que nous avons décidé de supprimer ce répertoire pour permettre la sécurisation des données. Vous pouvez sauvegarder le répertoire 'data', si vous voulez conservez vos données. Mais vous devriez savoir que cela réduit la sécurité de votre application. +## Documentations et ressources -## Liens - - * Signaler un bug : https://github.com/YunoHost-Apps/privatebin_ynh/issues - * Site de l'application PrivateBin : https://privatebin.info/ - * Dépot de l'application principale : https://github.com/PrivateBin/PrivateBin - * Site web YunoHost : https://yunohost.org/ - ---- +* Site officiel de l'app : https://privatebin.info/ +* Documentation officielle de l'admin : https://github.com/PrivateBin/PrivateBin/wiki +* Dépôt de code officiel de l'app : https://github.com/PrivateBin/PrivateBin +* Documentation YunoHost pour cette app : https://yunohost.org/app_privatebin +* Signaler un bug : https://github.com/YunoHost-Apps/privatebin_ynh/issues ## Informations pour les développeurs -Merci de faire vos pull request dans la [branche testing](https://github.com/YunoHost-Apps/privatebin_ynh/tree/testing). +Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/privatebin_ynh/tree/testing). Pour essayer la branche testing, procédez comme suit. ``` @@ -71,3 +52,5 @@ sudo yunohost app install https://github.com/YunoHost-Apps/privatebin_ynh/tree/t ou sudo yunohost app upgrade privatebin -u https://github.com/YunoHost-Apps/privatebin_ynh/tree/testing --debug ``` + +**Plus d'infos sur le packaging d'applications :** https://yunohost.org/packaging_apps \ No newline at end of file diff --git a/check_process b/check_process index cd93ce5..7cea352 100644 --- a/check_process +++ b/check_process @@ -1,8 +1,8 @@ ;; Test complet ; Manifest - domain="domain.tld" (DOMAIN) - path="/path" (PATH) - is_public=1 (PUBLIC|public=1|private=0) + domain="domain.tld" + path="/path" + is_public=1 ; Checks pkg_linter=1 setup_sub_dir=1 @@ -14,8 +14,6 @@ upgrade=1 from_commit=8ce6cac57048e5df294269989c2432d67bef4c5c backup_restore=1 multi_instance=1 - incorrect_path=1 - port_already_use=0 change_url=1 ;;; Options Email= diff --git a/doc/DISCLAIMER.md b/doc/DISCLAIMER.md new file mode 100755 index 0000000..3064cfd --- /dev/null +++ b/doc/DISCLAIMER.md @@ -0,0 +1,11 @@ +## Additional information + +Data is encrypted/decrypted in the browser using 256bit AES in Galois Counter mode. + +This is a fork of ZeroBin, originally developed by Sébastien Sauvage. It was refactored to allow easier and cleaner extensions and has now much more features than the original. It is however still fully compatible to the original ZeroBin 0.19 data storage scheme. Therefore such installations can be upgraded to this fork without loosing any data. + +In the [update documentation](https://github.com/PrivateBin/PrivateBin/wiki/Configuration#zerobincompatibility) of ParsteBin, it is specified that: + +For full compatibility with ZeroBin and to be able to decrypt old pastes, you would enable this option. However this is not recommend for new installations as it weakens the security of your PrivateBin instance. + +This means that we have decided to delete the directory that allows us to save the data. You can save the 'data' directory, if you want to keep your data. But you should know that this weakens the security of this application. \ No newline at end of file diff --git a/doc/DISCLAIMER_fr.md b/doc/DISCLAIMER_fr.md new file mode 100755 index 0000000..3158fbb --- /dev/null +++ b/doc/DISCLAIMER_fr.md @@ -0,0 +1,11 @@ +## Informations additionnelles + +Les données sont chiffrées et déchiffrées dans le navigateur en utilisant la technologie AES 256bits en mode Galois Counter (GCM). + +Ce projet est un fork de ZeroBin, développé à l'origine par Sébastien Sauvage. Il a été ré-écrit pour accepter plus facilement des extensions en rajoutant plus de fonctionnalités. Il reste cependant compatible avec le schéma original de stockage des données Zerobin 0.19. Ainsi toutes les installations peuvent être mises à jour vers ce projet, sans perte de données. + +Dans la [documentation de mise à jour](https://github.com/PrivateBin/PrivateBin/wiki/Configuration#zerobincompatibility) de PrivateBin, il est précisé que : + +Pour une compatibilité complète avec Zerobin et le déchiffrement de tous les vieux "paste", vous devriez activer cette option. Cependant, ce n'est pas recommandé pour les nouvelles installations car cela affaiblit la sécurité de votre instance PrivateBin. + +Ceci signifie que nous avons décidé de supprimer ce répertoire pour permettre la sécurisation des données. Vous pouvez sauvegarder le répertoire 'data', si vous voulez conservez vos données. Mais vous devriez savoir que cela réduit la sécurité de votre application. \ No newline at end of file diff --git a/doc/screenshots/bootstrap.png b/doc/screenshots/bootstrap.png new file mode 100644 index 0000000000000000000000000000000000000000..28ebfa2cc363f7615862c992eceae1e26ab30d7b GIT binary patch literal 36313 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 literal 0 HcmV?d00001 diff --git a/manifest.json b/manifest.json index 1245d0f..ff3d165 100644 --- a/manifest.json +++ b/manifest.json @@ -8,13 +8,20 @@ }, "version": "1.3.5~ynh1", "url": "https://github.com/PrivateBin/PrivateBin", + "upstream": { + "license": "Zlib", + "website": "https://privatebin.info/", + "demo": "https://privatebin.net/", + "admindoc": "https://github.com/PrivateBin/PrivateBin/wiki", + "code": "https://github.com/PrivateBin/PrivateBin" + }, "license": "Zlib", "maintainer": { "name": "julien", "email": "julien.malik@paraiso.me" }, "requirements": { - "yunohost": ">= 4.1.7" + "yunohost": ">= 4.2.4" }, "multi_instance": true, "services": [ @@ -25,8 +32,7 @@ "install" : [ { "name": "domain", - "type": "domain", - "example": "domain.org" + "type": "domain" }, { "name": "path", diff --git a/pull_request_template.md b/pull_request_template.md deleted file mode 100644 index 6c28fc5..0000000 --- a/pull_request_template.md +++ /dev/null @@ -1,16 +0,0 @@ -## Problem -- *Description of why you made this PR* - -## Solution -- *And how do you fix that problem* - -## PR Status -- [ ] Code finished. -- [ ] Tested with Package_check. -- [ ] Fix or enhancement tested. -- [ ] Upgrade from last version tested. -- [ ] Can be reviewed and tested. - -## Package_check results ---- -* An automatic package_check will be launch at https://ci-apps-dev.yunohost.org/, when you add a specific comment to your Pull Request: "!testme", "!gogogadgetoci" or "By the power of systemd, I invoke The Great App CI to test this Pull Request!"* diff --git a/scripts/restore b/scripts/restore index ea1dd26..2d21069 100644 --- a/scripts/restore +++ b/scripts/restore @@ -33,8 +33,6 @@ phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) #================================================= ynh_script_progression --message="Validating restoration parameters..." --weight=2 -ynh_webpath_available --domain=$domain --path_url=$path_url \ - || ynh_die --message="Path not available: ${domain}${path_url}" test ! -d $final_path \ || ynh_die --message="There is already a directory: $final_path "