forked from Wavyzz/dolibarr
Compare commits
67 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0a914f437a | ||
|
|
e486707236 | ||
|
|
cecc1831a2 | ||
|
|
8d96062feb | ||
|
|
1eeee0ab80 | ||
|
|
8df759d0ab | ||
|
|
5d3e2078a6 | ||
|
|
79d223cca4 | ||
|
|
5031572102 | ||
|
|
4f75fb7f8a | ||
|
|
de49d24d1b | ||
|
|
0bca7ac7a4 | ||
|
|
d26fb57e52 | ||
|
|
b18f2f4fda | ||
|
|
a046419145 | ||
|
|
b0d08278f0 | ||
|
|
def8495513 | ||
|
|
b2fce5052f | ||
|
|
b1d57a6bd1 | ||
|
|
16904d12f8 | ||
|
|
1525b9c85e | ||
|
|
ffe07999cf | ||
|
|
24146d89c5 | ||
|
|
0d1fa3cec0 | ||
|
|
57930b3abd | ||
|
|
1dd2cc36e4 | ||
|
|
477d755bbc | ||
|
|
f85b53a4ca | ||
|
|
a6e01fe7b7 | ||
|
|
43c2336683 | ||
|
|
e1b919366e | ||
|
|
40e4a6959f | ||
|
|
84eaa17791 | ||
|
|
07dfde2bf6 | ||
|
|
e9869bb5da | ||
|
|
0ef519f2f6 | ||
|
|
22995dae99 | ||
|
|
52ae202aff | ||
|
|
2ca2fe7f28 | ||
|
|
140310c508 | ||
|
|
64cf2513bd | ||
|
|
6c207f78d8 | ||
|
|
a3969c1d2c | ||
|
|
d9563ac0ed | ||
|
|
bea2f674f0 | ||
|
|
80494870c0 | ||
|
|
d25847602b | ||
|
|
283efbbffe | ||
|
|
2e430a71a3 | ||
|
|
faf2971ff7 | ||
|
|
1bedddf113 | ||
|
|
4d5d72cdb5 | ||
|
|
ed2c5a6e80 | ||
|
|
fe28e36638 | ||
|
|
16c9d4005f | ||
|
|
acf5e30b30 | ||
|
|
76b5540124 | ||
|
|
8bb63c5963 | ||
|
|
ac54639668 | ||
|
|
13be852eac | ||
|
|
c2e6aa3999 | ||
|
|
481572f37a | ||
|
|
7c989f9d74 | ||
|
|
ee0dd8b672 | ||
|
|
0b69ed1612 | ||
|
|
f532f85d8c | ||
|
|
1427895a62 |
@@ -6,6 +6,7 @@ languages:
|
|||||||
engines:
|
engines:
|
||||||
phpcodesniffer: true
|
phpcodesniffer: true
|
||||||
exclude_paths:
|
exclude_paths:
|
||||||
|
- 'build/*'
|
||||||
- 'dev/*'
|
- 'dev/*'
|
||||||
- 'doc/*'
|
- 'doc/*'
|
||||||
- 'test/*'
|
- 'test/*'
|
||||||
|
|||||||
4
.github/CONTRIBUTING.md
vendored
4
.github/CONTRIBUTING.md
vendored
@@ -153,7 +153,7 @@ Long description (Can span across multiple lines).
|
|||||||
Pull Request (PR) process is the process to submit a change (enhancement, bug fix, ...) into the code of the project. There is some rules to know and
|
Pull Request (PR) process is the process to submit a change (enhancement, bug fix, ...) into the code of the project. There is some rules to know and
|
||||||
a process to follow to optimize the chance to have PRs merged efficiently...
|
a process to follow to optimize the chance to have PRs merged efficiently...
|
||||||
|
|
||||||
* A PR must be atomic. It means it must contains the lower possible changes for 1 need (1 bug fix or 1 new feature) without breaking usability of code. If a PR can be split into several PRs, it often means your PR is not atomic. For PR on maintenance versions, the modified code must be as low as possible and only the absolutely necessary changes are allowed (You must have the number of lines modified as low as possible to have the visible bug fixed (no refactoring, no perf, no quality, no renaming must be joined). This allow to reduce to the maximum the number of future conflicts (so the number of regressions) when merging fixes into higher version to reduce the time of any future impact analysis.
|
* A PR must be atomic. It means it must contains the lower possible changes for 1 need (1 bug fix or 1 new feature) without breaking usability of code. If a PR can be split into several PRs, it often means your PR is not atomic.
|
||||||
|
|
||||||
* Your Pull Request (PR) must pass the Continuous Integration checks and code quality checks.
|
* Your Pull Request (PR) must pass the Continuous Integration checks and code quality checks.
|
||||||
|
|
||||||
@@ -185,7 +185,7 @@ A so high ratio is very rare on a so popular project and with the increasing pop
|
|||||||
|
|
||||||
Translations
|
Translations
|
||||||
------------
|
------------
|
||||||
The source language (en_US) is maintained in the repository.
|
The source language (en_US) is maintained in the repository. See the [Code](#code) section above.
|
||||||
|
|
||||||
All other translations are managed online at [Transifex](https://www.transifex.com/dolibarr-association/dolibarr/).
|
All other translations are managed online at [Transifex](https://www.transifex.com/dolibarr-association/dolibarr/).
|
||||||
|
|
||||||
|
|||||||
7
.github/PULL_REQUEST_TEMPLATE.md
vendored
7
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -1,9 +1,8 @@
|
|||||||
# Instructions
|
# Instructions
|
||||||
*This is a template to help you make good pull requests. You may use [Github Markdown](https://help.github.com/articles/getting-started-with-writing-and-formatting-on-github/) syntax to format your issue report.*
|
*This is a template to help you make good pull requests. You may use [Github Markdown](https://help.github.com/articles/getting-started-with-writing-and-formatting-on-github/) syntax to format your issue report.*
|
||||||
*Please:*
|
*Please:*
|
||||||
- *only keep the "FIX", "CLOSE", "NEW", "UIUX", PERF" or "QUAL" section* (use uppercase to have the PR appears into the ChangeLog, lowercase will not appears)
|
- *only keep the "FIX", "CLOSE", "NEW", "PERF" or "QUAL" section* (use uppercase to have the PR appears into the ChangeLog, lowercase will not appears)
|
||||||
- *follow the project [contributing guidelines](/.github/CONTRIBUTING.md)*
|
- *follow the project [contributing guidelines](/.github/CONTRIBUTING.md)*
|
||||||
- ***in particular, in case of a bugfix, please check that you are targetting the branch corresponding to the oldest version in which the bug occurs***
|
|
||||||
- *replace the bracket enclosed texts with meaningful information*
|
- *replace the bracket enclosed texts with meaningful information*
|
||||||
|
|
||||||
|
|
||||||
@@ -19,10 +18,6 @@
|
|||||||
[*Long description*]
|
[*Long description*]
|
||||||
|
|
||||||
|
|
||||||
# UIUX|Uiux [*Short description*]
|
|
||||||
[*Long description*]
|
|
||||||
|
|
||||||
|
|
||||||
# PERF|Perf #[*issue_number Short description*]
|
# PERF|Perf #[*issue_number Short description*]
|
||||||
[*Long description*]
|
[*Long description*]
|
||||||
|
|
||||||
|
|||||||
3
.github/changed-lines-count-labeler.yml
vendored
3
.github/changed-lines-count-labeler.yml
vendored
@@ -1,3 +0,0 @@
|
|||||||
# Add this tag for any changes for more than 1 line
|
|
||||||
"Pending analysis of PR (maintenance team)":
|
|
||||||
min: 1
|
|
||||||
35
.github/workflows/README.md
vendored
35
.github/workflows/README.md
vendored
@@ -1,33 +1,16 @@
|
|||||||
# CI Workflows
|
# Workflow run order
|
||||||
|
|
||||||
The 2 main CI workflows are:
|
To reduce run minutes, the following order is put in place:
|
||||||
----------------------------
|
|
||||||
|
|
||||||
- ci-on-pull_request.yml
|
On PR & Merge, always run:
|
||||||
- ci-on-push.yml
|
|
||||||
|
|
||||||
This run the actions:
|
- pre-commit;
|
||||||
|
- phan.
|
||||||
|
|
||||||
- pre-commit.yml
|
When both succeed, start:
|
||||||
- phan.yml
|
|
||||||
- phpstan.yml
|
- phpstan;
|
||||||
When all succeed, start:
|
|
||||||
- Windows-ci;
|
- Windows-ci;
|
||||||
|
- travis.
|
||||||
|
|
||||||
See https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#running-a-workflow-based-on-the-conclusion-of-another-workflow
|
See https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#running-a-workflow-based-on-the-conclusion-of-another-workflow
|
||||||
|
|
||||||
|
|
||||||
The other worklows are:
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
- stale-issues-safe to autoclose old issues.
|
|
||||||
- phpstan_baseline to update the phpstan baseline file.
|
|
||||||
- cache-clean-pr to clean cache when closing a PR.
|
|
||||||
|
|
||||||
|
|
||||||
Some tests workflows are:
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
- pr-18
|
|
||||||
- pr-18-autolbal
|
|
||||||
- test
|
|
||||||
|
|||||||
3
.github/workflows/cache-clean-pr.yml
vendored
3
.github/workflows/cache-clean-pr.yml
vendored
@@ -1,7 +1,6 @@
|
|||||||
---
|
---
|
||||||
# This clean the caches of a branch when we close the pull request.
|
|
||||||
# See https://github.com/actions/cache/blob/main/tips-and-workarounds.md#force-deletion-of-caches-overriding-default-cache-eviction-policy
|
|
||||||
name: Cleanup caches of a closed branch
|
name: Cleanup caches of a closed branch
|
||||||
|
# See https://github.com/actions/cache/blob/main/tips-and-workarounds.md#force-deletion-of-caches-overriding-default-cache-eviction-policy
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
types: [closed]
|
types: [closed]
|
||||||
|
|||||||
38
.github/workflows/doxygen-gh-pages.yml.disabled
vendored
Normal file
38
.github/workflows/doxygen-gh-pages.yml.disabled
vendored
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# See syntax file on https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions
|
||||||
|
name: Doxygen
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: "0 15 * * *"
|
||||||
|
workflow_dispatch:
|
||||||
|
branches:
|
||||||
|
- develop
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Build
|
||||||
|
uses: DenverCoder1/doxygen-github-pages-action@v1.2.0
|
||||||
|
with:
|
||||||
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
branch: gh-pages
|
||||||
|
folder: build/html
|
||||||
|
config_file: build/doxygen/dolibarr-doxygen.doxyfile
|
||||||
|
|
||||||
|
# - name: Deploy
|
||||||
|
# uses: JamesIves/github-pages-deploy-action@v4
|
||||||
|
# with:
|
||||||
|
# branch: gh-pages
|
||||||
|
# folder: build/html # The folder the action should deploy.
|
||||||
|
# target-folder: docs/html2
|
||||||
|
|
||||||
|
#jobs:
|
||||||
|
# doxygen:
|
||||||
|
# runs-on: ubuntu-latest
|
||||||
|
# steps:
|
||||||
|
# - name: 'Doxygen'
|
||||||
|
# uses: mattnotmitt/doxygen-action@1.9.5
|
||||||
|
# with:
|
||||||
|
# doxyfile-path: build/doxygen
|
||||||
29
.github/workflows/exakat.yml
vendored
Normal file
29
.github/workflows/exakat.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# See syntax file on https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions
|
||||||
|
name: "Exakat analysis"
|
||||||
|
|
||||||
|
on:
|
||||||
|
# execute once a month, the 1st
|
||||||
|
schedule:
|
||||||
|
- cron: "0 20 1 * *"
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
exakat:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 1
|
||||||
|
ref: develop
|
||||||
|
- name: Exakat
|
||||||
|
uses: docker://exakat/exakat-ga
|
||||||
|
with:
|
||||||
|
ignore_rules: 'Classes/UseInstanceof,Constants/ConstantStrangeNames,Performances/PrePostIncrement,Functions/UndefinedFunctions,Functions/WrongNumberOfArguments,Functions/WrongTypeWithCall,Variables/UndefinedVariable,Classes/DontUnsetProperties,Classes/NonPpp,Classes/StaticMethodsCalledFromObject,Classes/UseClassOperator,Functions/UsesDefaultArguments,Php/NoClassInGlobal,Php/ShouldUseCoalesce,Php/WrongTypeForNativeFunction,Structures/AddZero,Structures/DropElseAfterReturn,Structures/IfWithSameConditions,Structures/MergeIfThen,Structures/NestedTernary,Structures/ElseIfElseif,Structures/ExitUsage,Structures/RepeatedPrint,Structures/RepeatedRegex,Structures/SameConditions,Structures/SwitchWithoutDefault,Structures/ShouldMakeTernary,Structures/UselessParenthesis,Structures/UseConstant'
|
||||||
|
ignore_dirs: '/htdocs/includes/,/htdocs/install/doctemplates/,/build/,/dev/,/doc/,/scripts/,/test/'
|
||||||
|
file_extensions: php
|
||||||
|
project_reports: Perfile
|
||||||
@@ -217,7 +217,7 @@ jobs:
|
|||||||
a2query -s
|
a2query -s
|
||||||
a2query -m
|
a2query -m
|
||||||
ls /etc/apache2/sites-available
|
ls /etc/apache2/sites-available
|
||||||
#sudo cp -f $GITHUB_WORKSPACE/dev/build/travis-ci/apache-githubaction.conf /etc/apache2/sites-available/000-default.conf
|
#sudo cp -f $GITHUB_WORKSPACE/build/travis-ci/apache-githubaction.conf /etc/apache2/sites-available/000-default.conf
|
||||||
#sudo sed -e "s?%GITHUB_WORKSPACE%?$(pwd)?g" --in-place /etc/apache2/sites-available/000-default.conf
|
#sudo sed -e "s?%GITHUB_WORKSPACE%?$(pwd)?g" --in-place /etc/apache2/sites-available/000-default.conf
|
||||||
a2ensite 000-default
|
a2ensite 000-default
|
||||||
a2enmod php7.1
|
a2enmod php7.1
|
||||||
@@ -362,3 +362,4 @@ jobs:
|
|||||||
phpunitresult=$?
|
phpunitresult=$?
|
||||||
echo "Phpunit return code = $phpunitresult"
|
echo "Phpunit return code = $phpunitresult"
|
||||||
set +e
|
set +e
|
||||||
|
|
||||||
|
|||||||
@@ -172,7 +172,7 @@ jobs:
|
|||||||
a2query -s
|
a2query -s
|
||||||
a2query -m
|
a2query -m
|
||||||
ls /etc/apache2/sites-available
|
ls /etc/apache2/sites-available
|
||||||
#sudo cp -f $GITHUB_WORKSPACE/dev/build/travis-ci/apache-githubaction.conf /etc/apache2/sites-available/000-default.conf
|
#sudo cp -f $GITHUB_WORKSPACE/build/travis-ci/apache-githubaction.conf /etc/apache2/sites-available/000-default.conf
|
||||||
#sudo sed -e "s?%GITHUB_WORKSPACE%?$(pwd)?g" --in-place /etc/apache2/sites-available/000-default.conf
|
#sudo sed -e "s?%GITHUB_WORKSPACE%?$(pwd)?g" --in-place /etc/apache2/sites-available/000-default.conf
|
||||||
a2ensite 000-default
|
a2ensite 000-default
|
||||||
a2enmod php8.1
|
a2enmod php8.1
|
||||||
@@ -331,3 +331,4 @@ jobs:
|
|||||||
if: github.event_name == 'push'
|
if: github.event_name == 'push'
|
||||||
run: |
|
run: |
|
||||||
htdocs/includes/bin/var-dump-check --extensions php --tracy --exclude htdocs/includes --exclude test/ --exclude htdocs/public/test/ --exclude htdocs/core/lib/functions.lib.php .
|
htdocs/includes/bin/var-dump-check --extensions php --tracy --exclude htdocs/includes --exclude test/ --exclude htdocs/public/test/ --exclude htdocs/core/lib/functions.lib.php .
|
||||||
|
|
||||||
|
|||||||
13
.github/workflows/greetings-pr.yml.disabled
vendored
Normal file
13
.github/workflows/greetings-pr.yml.disabled
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# See syntax file on https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions
|
||||||
|
name: Greetings PR
|
||||||
|
|
||||||
|
on: [pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
greeting:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/first-interaction@v1
|
||||||
|
with:
|
||||||
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
pr-message: 'Welcome to the Dolibarr army. You are on the road to become an Admiral (see https://wiki.dolibarr.org/index.php/Dolibarr_Project)'
|
||||||
32
.github/workflows/phpcs.yml.disabled
vendored
Normal file
32
.github/workflows/phpcs.yml.disabled
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
name: "PHPCS"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- "**.php"
|
||||||
|
- "phpcs.xml"
|
||||||
|
- ".github/workflows/phpcs.yml"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
phpcs:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
# Get git sources
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 50 # important!
|
||||||
|
|
||||||
|
# we may use whatever way to install phpcs, just specify the path on the next step
|
||||||
|
# however, curl seems to be the fastest
|
||||||
|
- name: Install PHP_CodeSniffer
|
||||||
|
run: |
|
||||||
|
curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar
|
||||||
|
php phpcs.phar --version
|
||||||
|
|
||||||
|
- uses: thenabeel/action-phpcs@v8
|
||||||
|
with:
|
||||||
|
files: "**.php" # you may customize glob as needed
|
||||||
|
phpcs_path: php phpcs.phar
|
||||||
|
standard: dev/setup/codesniffer/ruleset.xml
|
||||||
|
fail_on_warnings: false
|
||||||
6
.github/workflows/phpstan.yml
vendored
6
.github/workflows/phpstan.yml
vendored
@@ -43,7 +43,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
php-version: ${{ matrix.php-version }}
|
php-version: ${{ matrix.php-version }}
|
||||||
coverage: none # disable xdebug, pcov
|
coverage: none # disable xdebug, pcov
|
||||||
tools: phpstan:2.1.8, cs2pr
|
tools: phpstan:2.0, cs2pr
|
||||||
extensions: calendar, json, imagick, gd, zip, mbstring, intl, opcache, imap,
|
extensions: calendar, json, imagick, gd, zip, mbstring, intl, opcache, imap,
|
||||||
mysql, pgsql, sqlite3, ldap, xml, mcrypt
|
mysql, pgsql, sqlite3, ldap, xml, mcrypt
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@ jobs:
|
|||||||
- name: Run PHPStan
|
- name: Run PHPStan
|
||||||
id: phpstan
|
id: phpstan
|
||||||
run: |
|
run: |
|
||||||
phpstan -vvv analyse --error-format=checkstyle --memory-limit 7G -a dev/build/phpstan/bootstrap_action.php | tee _stan.xml | cs2pr --graceful-warnings
|
phpstan -vvv analyse --error-format=checkstyle --memory-limit 7G -a build/phpstan/bootstrap_action.php | tee _stan.xml | cs2pr --graceful-warnings
|
||||||
# continue-on-error: true
|
# continue-on-error: true
|
||||||
|
|
||||||
# Save cache
|
# Save cache
|
||||||
@@ -90,4 +90,4 @@ jobs:
|
|||||||
# id: phpstan-baseline
|
# id: phpstan-baseline
|
||||||
# if: ${{ success() }}
|
# if: ${{ success() }}
|
||||||
# run: |
|
# run: |
|
||||||
# phpstan -vv analyse --memory-limit 7G -a dev/build/phpstan/bootstrap_action.php --generate-baseline dev/build/phpstan/phpstan-baseline.neon
|
# phpstan -vv analyse --memory-limit 7G -a build/phpstan/bootstrap_action.php --generate-baseline build/phpstan/phpstan-baseline.neon
|
||||||
|
|||||||
8
.github/workflows/phpstan_baseline.yml
vendored
8
.github/workflows/phpstan_baseline.yml
vendored
@@ -1,5 +1,3 @@
|
|||||||
---
|
|
||||||
# This run the script to update the phpstan baseline file dev/build/phpstan/phpstan-baseline.neon
|
|
||||||
name: 'PHPStan baseline'
|
name: 'PHPStan baseline'
|
||||||
|
|
||||||
on:
|
on:
|
||||||
@@ -39,7 +37,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
php-version: ${{ env.PHP_VERSION }}
|
php-version: ${{ env.PHP_VERSION }}
|
||||||
coverage: none # disable xdebug, pcov
|
coverage: none # disable xdebug, pcov
|
||||||
tools: phpstan:2.1.8, cs2pr
|
tools: phpstan:2.0, cs2pr
|
||||||
extensions: calendar, json, imagick, gd, zip, mbstring, intl, opcache, imap,
|
extensions: calendar, json, imagick, gd, zip, mbstring, intl, opcache, imap,
|
||||||
mysql, pgsql, sqlite3, ldap, xml, mcrypt
|
mysql, pgsql, sqlite3, ldap, xml, mcrypt
|
||||||
env:
|
env:
|
||||||
@@ -62,8 +60,8 @@ jobs:
|
|||||||
github_token: ${{ env.GH_TOKEN }}
|
github_token: ${{ env.GH_TOKEN }}
|
||||||
phpstan_path: phpstan
|
phpstan_path: phpstan
|
||||||
configuration_path: phpstan.neon.dist
|
configuration_path: phpstan.neon.dist
|
||||||
phpstan_additional_arguments: --memory-limit 7G -a dev/build/phpstan/bootstrap_action.php
|
phpstan_additional_arguments: --memory-limit 7G -a build/phpstan/bootstrap_action.php
|
||||||
baseline_path: dev/build/phpstan/phpstan-baseline.neon
|
baseline_path: build/phpstan/phpstan-baseline.neon
|
||||||
commit_name: Dolibot
|
commit_name: Dolibot
|
||||||
commit_email: dolibarr-bot@users.noreply.github.com
|
commit_email: dolibarr-bot@users.noreply.github.com
|
||||||
commit_message: PHPStan > Update baseline
|
commit_message: PHPStan > Update baseline
|
||||||
|
|||||||
32
.github/workflows/pre-commit.yml
vendored
32
.github/workflows/pre-commit.yml
vendored
@@ -23,33 +23,16 @@ jobs:
|
|||||||
RAW_LOG: pre-commit.log
|
RAW_LOG: pre-commit.log
|
||||||
CS_XML: pre-commit.xml
|
CS_XML: pre-commit.xml
|
||||||
steps:
|
steps:
|
||||||
#- name: Install required tools
|
- name: Install required tools
|
||||||
# run: sudo apt-get update && sudo apt-get install cppcheck
|
run: sudo apt-get update && sudo apt-get install cppcheck
|
||||||
# if: false
|
if: false
|
||||||
|
|
||||||
# Checkout git sources to analyze
|
# Checkout git sources to analyze
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
# Try to get the list of modified files into steps.changed-php.outputs.all_changed_files
|
# The next uses the git API because there is no clone yet.
|
||||||
#- name: Get changed files
|
|
||||||
# id: changed-files
|
|
||||||
# uses: actions/github-script@v7
|
|
||||||
# with:
|
|
||||||
# script: |
|
|
||||||
# const base = context.payload.pull_request?.base?.sha;
|
|
||||||
# const head = context.payload.pull_request?.head?.sha;
|
|
||||||
# const response = await github.rest.repos.compareCommits({
|
|
||||||
# owner: context.repo.owner,
|
|
||||||
# repo: context.repo.repo,
|
|
||||||
# base,
|
|
||||||
# head
|
|
||||||
# });
|
|
||||||
#
|
|
||||||
# const changedFiles = response.data.files.map(file => file.filename);
|
|
||||||
# core.setOutput("all_changed_files", changedFiles.join(" "));
|
|
||||||
|
|
||||||
# Another method to get the list of changed files
|
|
||||||
# It sets the variable steps.changed-php.outputs.all_changed_files for other steps
|
# It sets the variable steps.changed-php.outputs.all_changed_files for other steps
|
||||||
|
# This is faster for a big repo.
|
||||||
- name: Get all changed php files (if PR)
|
- name: Get all changed php files (if PR)
|
||||||
id: changed-php
|
id: changed-php
|
||||||
if: env.gh_event == 'pull_request'
|
if: env.gh_event == 'pull_request'
|
||||||
@@ -57,9 +40,6 @@ jobs:
|
|||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
run: ./.github/scripts/get_changed_php.sh
|
run: ./.github/scripts/get_changed_php.sh
|
||||||
|
|
||||||
#- name: Print changed files
|
|
||||||
# run: echo "Changed files are ${{ steps.changed-files.outputs.all_changed_files }}"
|
|
||||||
|
|
||||||
# Action setup-python needs a requirements.txt or pyproject.toml
|
# Action setup-python needs a requirements.txt or pyproject.toml
|
||||||
# This ensures one of them exists.
|
# This ensures one of them exists.
|
||||||
- name: Create requirements.txt if no requirements.txt or pyproject.toml
|
- name: Create requirements.txt if no requirements.txt or pyproject.toml
|
||||||
@@ -151,7 +131,7 @@ jobs:
|
|||||||
ls -l ~/.cache/pre-commit/
|
ls -l ~/.cache/pre-commit/
|
||||||
|
|
||||||
- name: Convert Raw Log to Annotations
|
- name: Convert Raw Log to Annotations
|
||||||
uses: mdeweerd/logToCheckStyle@v2025.1.1
|
uses: mdeweerd/logToCheckStyle@v2024.3.5
|
||||||
if: ${{ failure() }}
|
if: ${{ failure() }}
|
||||||
with:
|
with:
|
||||||
in: ${{ env.RAW_LOG }}
|
in: ${{ env.RAW_LOG }}
|
||||||
|
|||||||
30
.github/workflows/test.yaml
vendored
30
.github/workflows/test.yaml
vendored
@@ -1,30 +0,0 @@
|
|||||||
name: Test github actions
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
pull_request:
|
|
||||||
types: [opened, reopened, synchronize]
|
|
||||||
push:
|
|
||||||
|
|
||||||
env:
|
|
||||||
ENVGHT: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
ENVGHU: ${{ github.token }}
|
|
||||||
TEST_ACCESS_KEY: ${{ secrets.TEST_ACCESS_KEY }}
|
|
||||||
TEST_VAR_REPO: ${{ vars.TEST_VAR_REPO }}
|
|
||||||
TEST_VAR_ORGA: ${{ vars.TEST_VAR_ORGA }}
|
|
||||||
ENVLOCAL: "varenvlocal"
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
testjob:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Log
|
|
||||||
run: |
|
|
||||||
echo "Run action by ${{ github.actor }}"
|
|
||||||
echo "github.token=${{ github.token }}"
|
|
||||||
echo "secrets.GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }}"
|
|
||||||
echo "GITHUB_EVENT_PATH=$GITHUB_EVENT_PATH"
|
|
||||||
echo "repo-token: ${{secrets.GITHUB_TOKEN}}"
|
|
||||||
echo "secret repository TEST_ACCESS_KEY: ${{secrets.TEST_ACCESS_KEY}}"
|
|
||||||
echo "variable repository : ${{vars.TEST_VAR_REPO}}"
|
|
||||||
echo "variable organization : ${{vars.TEST_VAR_ORGA}}"
|
|
||||||
echo "ENVLOCAL: ${{env.ENVLOCAL}}"
|
|
||||||
2
.github/workflows/windows-ci.yml
vendored
2
.github/workflows/windows-ci.yml
vendored
@@ -165,7 +165,7 @@ jobs:
|
|||||||
for /f "tokens=2 delims==" %%A in ('doskey /m:err') do EXIT /B %%A
|
for /f "tokens=2 delims==" %%A in ('doskey /m:err') do EXIT /B %%A
|
||||||
|
|
||||||
- name: Convert Raw Log to Annotations
|
- name: Convert Raw Log to Annotations
|
||||||
uses: mdeweerd/logToCheckStyle@v2025.1.1
|
uses: mdeweerd/logToCheckStyle@v2024.3.5
|
||||||
if: ${{ failure() }}
|
if: ${{ failure() }}
|
||||||
with:
|
with:
|
||||||
in: ${{ env.PHPUNIT_LOG }}
|
in: ${{ env.PHPUNIT_LOG }}
|
||||||
|
|||||||
8
.gitignore
vendored
8
.gitignore
vendored
@@ -47,8 +47,8 @@ htdocs/.well-known/apple-developer-merchantid-domain-association
|
|||||||
/output/
|
/output/
|
||||||
|
|
||||||
# Node Modules
|
# Node Modules
|
||||||
dev/build/yarn-error.log
|
build/yarn-error.log
|
||||||
dev/build/node_modules/
|
build/node_modules/
|
||||||
node_modules/
|
node_modules/
|
||||||
|
|
||||||
vendor/
|
vendor/
|
||||||
@@ -84,8 +84,8 @@ doc/install.lock
|
|||||||
/INI_PHPUNIT
|
/INI_PHPUNIT
|
||||||
|
|
||||||
# ignore cache builds
|
# ignore cache builds
|
||||||
/dev/build/phpstan/phpstan
|
/build/phpstan/phpstan
|
||||||
/dev/build/phpstan/bootstrap_custom.php
|
/build/phpstan/bootstrap_custom.php
|
||||||
phpstan_custom.neon
|
phpstan_custom.neon
|
||||||
/.php-cs-fixer.cache
|
/.php-cs-fixer.cache
|
||||||
/.php_cs.cache
|
/.php_cs.cache
|
||||||
|
|||||||
3
.mailmap
3
.mailmap
@@ -1,9 +1,6 @@
|
|||||||
# This is mapping list between real user name/email and entry into sources files
|
# This is mapping list between real user name/email and entry into sources files
|
||||||
# If you don't want to have your real email appears here, just send a Pull Request to
|
# If you don't want to have your real email appears here, just send a Pull Request to
|
||||||
# replace the second field between <> with <secret>
|
# replace the second field between <> with <secret>
|
||||||
#
|
|
||||||
# This files allows to have several profiles (the second part) matched to the same name/email (the first part).
|
|
||||||
#
|
|
||||||
Laurent Destailleur <eldy@destailleur.fr> Laurent Destailleur <eldy@users.sourceforge.net>
|
Laurent Destailleur <eldy@destailleur.fr> Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
Laurent Destailleur <eldy@destailleur.fr> eldy <eldy@destailleur.fr>
|
Laurent Destailleur <eldy@destailleur.fr> eldy <eldy@destailleur.fr>
|
||||||
Laurent Destailleur <eldy@destailleur.fr> Laurent Destailleur <ldestailleur@teclib.com>
|
Laurent Destailleur <eldy@destailleur.fr> Laurent Destailleur <ldestailleur@teclib.com>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ exclude: (?x)^( htdocs/includes/ckeditor/.*|(\.(?!github/workflows)[^/]*/.*))$
|
|||||||
repos:
|
repos:
|
||||||
# Several miscellaneous checks and fix (on yaml files, end of files fix)
|
# Several miscellaneous checks and fix (on yaml files, end of files fix)
|
||||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
rev: v5.0.0
|
rev: v4.6.0
|
||||||
hooks:
|
hooks:
|
||||||
# This hook tests the name of the branch and return an error if the name is
|
# This hook tests the name of the branch and return an error if the name is
|
||||||
# 'develop' or an official version 'x.y'
|
# 'develop' or an official version 'x.y'
|
||||||
@@ -51,8 +51,8 @@ repos:
|
|||||||
exclude:
|
exclude:
|
||||||
(?x)^( dev/tools/dolibarr-postgres2mysql.php |test/other/test_serialize.php
|
(?x)^( dev/tools/dolibarr-postgres2mysql.php |test/other/test_serialize.php
|
||||||
|test/phpunit/textutf8.txt |test/phpunit/textiso.txt |htdocs/includes/.*
|
|test/phpunit/textutf8.txt |test/phpunit/textiso.txt |htdocs/includes/.*
|
||||||
|htdocs/modulebuilder/template/.* |dev/build/debian/dolibarr.postrm |dev/build/debian/dolibarr.postinst
|
|htdocs/modulebuilder/template/.* |build/debian/dolibarr.postrm |build/debian/dolibarr.postinst
|
||||||
|dev/build/debian/dolibarr.config )$
|
|build/debian/dolibarr.config )$
|
||||||
# Fix the first UTF8 byte
|
# Fix the first UTF8 byte
|
||||||
- id: fix-byte-order-marker
|
- id: fix-byte-order-marker
|
||||||
# Check that there are no files that have are the same when uppercased (conflict on windows)
|
# Check that there are no files that have are the same when uppercased (conflict on windows)
|
||||||
@@ -60,13 +60,13 @@ repos:
|
|||||||
|
|
||||||
# Gitleaks is a SAST tool for detecting and preventing hardcoded secrets like passwords, api keys, and tokens in git repos
|
# Gitleaks is a SAST tool for detecting and preventing hardcoded secrets like passwords, api keys, and tokens in git repos
|
||||||
- repo: https://github.com/gitleaks/gitleaks.git
|
- repo: https://github.com/gitleaks/gitleaks.git
|
||||||
rev: v8.24.0
|
rev: v8.16.1
|
||||||
hooks:
|
hooks:
|
||||||
- id: gitleaks
|
- id: gitleaks
|
||||||
|
|
||||||
# Check github actions
|
# Check github actions
|
||||||
- repo: https://github.com/rhysd/actionlint
|
- repo: https://github.com/rhysd/actionlint
|
||||||
rev: v1.7.7
|
rev: v1.7.3
|
||||||
hooks:
|
hooks:
|
||||||
- id: actionlint
|
- id: actionlint
|
||||||
|
|
||||||
@@ -168,7 +168,7 @@ repos:
|
|||||||
|
|
||||||
# Prettier (format code, only for non common files)
|
# Prettier (format code, only for non common files)
|
||||||
- repo: https://github.com/pre-commit/mirrors-prettier
|
- repo: https://github.com/pre-commit/mirrors-prettier
|
||||||
rev: v3.1.0
|
rev: v3.0.3
|
||||||
hooks:
|
hooks:
|
||||||
- id: prettier
|
- id: prettier
|
||||||
stages: [manual]
|
stages: [manual]
|
||||||
@@ -191,7 +191,7 @@ repos:
|
|||||||
|
|
||||||
# Check format of yaml files
|
# Check format of yaml files
|
||||||
- repo: https://github.com/adrienverge/yamllint.git
|
- repo: https://github.com/adrienverge/yamllint.git
|
||||||
rev: v1.36.2
|
rev: v1.35.1
|
||||||
hooks:
|
hooks:
|
||||||
- id: yamllint
|
- id: yamllint
|
||||||
args:
|
args:
|
||||||
@@ -201,7 +201,7 @@ repos:
|
|||||||
|
|
||||||
# Execute codespell to fix typo errors (setup of codespell into dev/tools/codespell/)
|
# Execute codespell to fix typo errors (setup of codespell into dev/tools/codespell/)
|
||||||
- repo: https://github.com/codespell-project/codespell
|
- repo: https://github.com/codespell-project/codespell
|
||||||
rev: v2.4.1
|
rev: v2.3.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: codespell
|
- id: codespell
|
||||||
# Due to a current limitation of configuration files,
|
# Due to a current limitation of configuration files,
|
||||||
@@ -251,7 +251,7 @@ repos:
|
|||||||
|
|
||||||
# Check sql file syntax
|
# Check sql file syntax
|
||||||
- repo: https://github.com/sqlfluff/sqlfluff
|
- repo: https://github.com/sqlfluff/sqlfluff
|
||||||
rev: 3.3.1
|
rev: 3.1.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: sqlfluff-lint
|
- id: sqlfluff-lint
|
||||||
stages: [pre-commit, manual] # manual needed for ci
|
stages: [pre-commit, manual] # manual needed for ci
|
||||||
|
|||||||
25
.travis.yml
25
.travis.yml
@@ -37,7 +37,7 @@ cache:
|
|||||||
jobs:
|
jobs:
|
||||||
fast_finish: true
|
fast_finish: true
|
||||||
allow_failures:
|
allow_failures:
|
||||||
- php: 'latest'
|
- php: '8.4'
|
||||||
include:
|
include:
|
||||||
- stage: PHP min and max
|
- stage: PHP min and max
|
||||||
if: type = push
|
if: type = push
|
||||||
@@ -47,16 +47,16 @@ jobs:
|
|||||||
- TRAVIS_PHP_VERSION=7.1
|
- TRAVIS_PHP_VERSION=7.1
|
||||||
- stage: PHP min and max
|
- stage: PHP min and max
|
||||||
if: type = pull_request OR type = push
|
if: type = pull_request OR type = push
|
||||||
|
php: '8.3'
|
||||||
|
env:
|
||||||
|
- DB=mysql
|
||||||
|
- TRAVIS_PHP_VERSION=8.3
|
||||||
|
- stage: PHP 8.4
|
||||||
|
if: type = push AND branch = develop
|
||||||
php: '8.4'
|
php: '8.4'
|
||||||
env:
|
env:
|
||||||
- DB=mysql
|
- DB=mysql
|
||||||
- TRAVIS_PHP_VERSION=8.4
|
- TRAVIS_PHP_VERSION=8.4
|
||||||
- stage: PHP latest
|
|
||||||
if: type = push AND branch = develop
|
|
||||||
php: 'latest'
|
|
||||||
env:
|
|
||||||
- DB=mysql
|
|
||||||
- TRAVIS_PHP_VERSION=latest
|
|
||||||
|
|
||||||
notifications:
|
notifications:
|
||||||
email:
|
email:
|
||||||
@@ -97,9 +97,6 @@ before_install:
|
|||||||
if [ "$TRAVIS_PHP_VERSION" = '8.4' ]; then
|
if [ "$TRAVIS_PHP_VERSION" = '8.4' ]; then
|
||||||
sudo apt install unzip apache2 php8.4 php8.4-cli php8.4-curl php8.4-mysql php8.4-pgsql php8.4-gd php8.4-imap php8.4-intl php8.4-ldap php8.4-xml php8.4-mbstring php8.4-xml php8.4-zip libapache2-mod-php8.4
|
sudo apt install unzip apache2 php8.4 php8.4-cli php8.4-curl php8.4-mysql php8.4-pgsql php8.4-gd php8.4-imap php8.4-intl php8.4-ldap php8.4-xml php8.4-mbstring php8.4-xml php8.4-zip libapache2-mod-php8.4
|
||||||
fi
|
fi
|
||||||
if [ "$TRAVIS_PHP_VERSION" = 'latest' ]; then
|
|
||||||
sudo apt install unzip apache2 php8.4 php8.4-cli php8.4-curl php8.4-mysql php8.4-pgsql php8.4-gd php8.4-imap php8.4-intl php8.4-ldap php8.4-xml php8.4-mbstring php8.4-xml php8.4-zip libapache2-mod-php8.4
|
|
||||||
fi
|
|
||||||
|
|
||||||
- |
|
- |
|
||||||
echo Install pgsql if run is for pgsql
|
echo Install pgsql if run is for pgsql
|
||||||
@@ -174,7 +171,7 @@ install:
|
|||||||
squizlabs/php_codesniffer ^3
|
squizlabs/php_codesniffer ^3
|
||||||
fi
|
fi
|
||||||
# phpunit 9 is required for php 8
|
# phpunit 9 is required for php 8
|
||||||
if [ "$TRAVIS_PHP_VERSION" = '8.0' ] || [ "$TRAVIS_PHP_VERSION" = '8.1' ] || [ "$TRAVIS_PHP_VERSION" = '8.2' ] || [ "$TRAVIS_PHP_VERSION" = '8.3' ] || [ "$TRAVIS_PHP_VERSION" = '8.4' ] || [ "$TRAVIS_PHP_VERSION" = 'latest' ]; then
|
if [ "$TRAVIS_PHP_VERSION" = '8.0' ] || [ "$TRAVIS_PHP_VERSION" = '8.1' ] || [ "$TRAVIS_PHP_VERSION" = '8.2' ] || [ "$TRAVIS_PHP_VERSION" = '8.3' ] || [ "$TRAVIS_PHP_VERSION" = '8.4' ] || [ "$TRAVIS_PHP_VERSION" = 'nightly' ]; then
|
||||||
sudo composer self-update 2.4.4
|
sudo composer self-update 2.4.4
|
||||||
composer -n require --ignore-platform-reqs phpunit/phpunit ^8 \
|
composer -n require --ignore-platform-reqs phpunit/phpunit ^8 \
|
||||||
php-parallel-lint/php-parallel-lint ^1.2 \
|
php-parallel-lint/php-parallel-lint ^1.2 \
|
||||||
@@ -277,7 +274,6 @@ before_script:
|
|||||||
#echo '\d llx_c_country' | psql 'postgresql://postgres:postgres@127.0.0.1:5432/travis'
|
#echo '\d llx_c_country' | psql 'postgresql://postgres:postgres@127.0.0.1:5432/travis'
|
||||||
|
|
||||||
# Create pgsql compatibility functions
|
# Create pgsql compatibility functions
|
||||||
echo "Load functions.sql (may generated errors for tables that does not exists yet)"
|
|
||||||
psql 'postgresql://postgres:postgres@127.0.0.1:5432/travis' < htdocs/install/pgsql/functions/functions.sql
|
psql 'postgresql://postgres:postgres@127.0.0.1:5432/travis' < htdocs/install/pgsql/functions/functions.sql
|
||||||
fi
|
fi
|
||||||
echo
|
echo
|
||||||
@@ -321,7 +317,7 @@ before_script:
|
|||||||
- |
|
- |
|
||||||
echo "Setting up Apache"
|
echo "Setting up Apache"
|
||||||
sudo sed -i -e "s,www-data,travis,g" /etc/apache2/envvars
|
sudo sed -i -e "s,www-data,travis,g" /etc/apache2/envvars
|
||||||
sudo cp -f dev/build/travis-ci/apache.conf /etc/apache2/sites-available/000-default.conf
|
sudo cp -f build/travis-ci/apache.conf /etc/apache2/sites-available/000-default.conf
|
||||||
sudo sed -e "s?%TRAVIS_BUILD_DIR%?$(pwd)?g" --in-place /etc/apache2/sites-available/000-default.conf
|
sudo sed -e "s?%TRAVIS_BUILD_DIR%?$(pwd)?g" --in-place /etc/apache2/sites-available/000-default.conf
|
||||||
sudo cat /etc/apache2/sites-available/000-default.conf
|
sudo cat /etc/apache2/sites-available/000-default.conf
|
||||||
sudo service apache2 restart
|
sudo service apache2 restart
|
||||||
@@ -519,9 +515,6 @@ script:
|
|||||||
php upgrade.php 20.0.0 21.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade20002100.log || cat $TRAVIS_BUILD_DIR/upgrade20002100.log
|
php upgrade.php 20.0.0 21.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade20002100.log || cat $TRAVIS_BUILD_DIR/upgrade20002100.log
|
||||||
php upgrade2.php 20.0.0 21.0.0 > $TRAVIS_BUILD_DIR/upgrade20002100-2.log || cat $TRAVIS_BUILD_DIR/upgrade20002100-2.log
|
php upgrade2.php 20.0.0 21.0.0 > $TRAVIS_BUILD_DIR/upgrade20002100-2.log || cat $TRAVIS_BUILD_DIR/upgrade20002100-2.log
|
||||||
php step5.php 20.0.0 21.0.0 > $TRAVIS_BUILD_DIR/upgrade20002100-3.log || cat $TRAVIS_BUILD_DIR/upgrade20002100-3.log
|
php step5.php 20.0.0 21.0.0 > $TRAVIS_BUILD_DIR/upgrade20002100-3.log || cat $TRAVIS_BUILD_DIR/upgrade20002100-3.log
|
||||||
php upgrade.php 21.0.0 22.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade21002200.log || cat $TRAVIS_BUILD_DIR/upgrade21002200.log
|
|
||||||
php upgrade2.php 21.0.0 22.0.0 > $TRAVIS_BUILD_DIR/upgrade21002200-2.log || cat $TRAVIS_BUILD_DIR/upgrade21002200-2.log
|
|
||||||
php step5.php 21.0.0 22.0.0 > $TRAVIS_BUILD_DIR/upgrade21002200-3.log || cat $TRAVIS_BUILD_DIR/upgrade21002200-3.log
|
|
||||||
set +e
|
set +e
|
||||||
echo
|
echo
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ Swift Mailer 5.4.2-DEV MIT License Yes
|
|||||||
Symfony/var-dumper ??? MIT License Yes Library to make var dump (used by DebugBar)
|
Symfony/var-dumper ??? MIT License Yes Library to make var dump (used by DebugBar)
|
||||||
Stripe 10.7.0 MIT Licence Yes Library for Stripe module
|
Stripe 10.7.0 MIT Licence Yes Library for Stripe module
|
||||||
TCPDF 6.7.5 LGPL-3+ Yes PDF generation
|
TCPDF 6.7.5 LGPL-3+ Yes PDF generation
|
||||||
TCPDI 1.1.0 LGPL-3+ / Apache 2.0 Yes FPDI replacement
|
TCPDI 1.0.0 LGPL-3+ / Apache 2.0 Yes FPDI replacement
|
||||||
|
|
||||||
bacon, dasprid, swiss-qr-bill, kmukku, symfony/validator
|
bacon, dasprid, swiss-qr-bill, kmukku, symfony/validator
|
||||||
|
|
||||||
@@ -59,6 +59,7 @@ CKEditor 4.22.1 LGPL-2.1+ Yes
|
|||||||
jQuery 3.6.4 MIT License Yes JS library
|
jQuery 3.6.4 MIT License Yes JS library
|
||||||
jQuery UI 1.13.2 GPL and MIT License Yes JS library plugin UI
|
jQuery UI 1.13.2 GPL and MIT License Yes JS library plugin UI
|
||||||
jQuery select2 4.0.13 GPL and Apache License Yes JS library plugin for sexier multiselect. Warning: 4.0.6+ create troubles without patching css
|
jQuery select2 4.0.13 GPL and Apache License Yes JS library plugin for sexier multiselect. Warning: 4.0.6+ create troubles without patching css
|
||||||
|
jQuery blockUI 2.70.0 GPL and MIT License Yes JS library plugin blockUI (to use ajax popups)
|
||||||
jQuery Colorpicker 1.1 MIT License Yes JS library for color picker for a defined list of colors
|
jQuery Colorpicker 1.1 MIT License Yes JS library for color picker for a defined list of colors
|
||||||
jQuery JCrop 0.9.8 GPL and MIT License Yes JS library plugin Crop (to crop images)
|
jQuery JCrop 0.9.8 GPL and MIT License Yes JS library plugin Crop (to crop images)
|
||||||
jQuery Jeditable 1.7.1 GPL and MIT License Yes JS library plugin jeditable (to edit in place)
|
jQuery Jeditable 1.7.1 GPL and MIT License Yes JS library plugin jeditable (to edit in place)
|
||||||
|
|||||||
231
ChangeLog
231
ChangeLog
@@ -2,229 +2,6 @@
|
|||||||
English Dolibarr ChangeLog
|
English Dolibarr ChangeLog
|
||||||
--------------------------------------------------------------
|
--------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
***** ChangeLog for 22.0.2 compared to 22.0.1 *****
|
|
||||||
|
|
||||||
FIX: ContratLigne::fetch() returns 1 even if the line doesn't exist (#35324)
|
|
||||||
FIX: #34678
|
|
||||||
FIX: #35142 FIX: #35143
|
|
||||||
FIX: #35154 - Massaction createbills in reception list don't mind about order and/or thirdparty currency (#35156)
|
|
||||||
FIX: #35181 Cancelled purchase orders now shown as such in Project Overview (#35186)
|
|
||||||
FIX: #35407 After updating to version 22, local taxes were no longer applied (#35408)
|
|
||||||
FIX: #35425 (#35426)
|
|
||||||
FIX: accountancy general ledger: bad handling of hook return (#34029)
|
|
||||||
FIX: Add security test for show terminal selection if no terminal selected when invoice.php is call (#34717)
|
|
||||||
FIX: allow to create First Sutuation Invoice (#35228)
|
|
||||||
FIX: api orders : forward database error on failure (backpot commit d9e81cb) (#35478)
|
|
||||||
FIX: Can't edit tags of a user.
|
|
||||||
FIX: can't reset intracomm transport mode
|
|
||||||
FIX: can't save setup of odt template for stock
|
|
||||||
FIX: check commande liste validate (#35479)
|
|
||||||
FIX: color of late warning for nb of bank account reconciliation lines
|
|
||||||
FIX: Correct the calculation of the amount of the current period between the period provided (#35083)
|
|
||||||
FIX: Date planned of delivery is not propagated from order to shipment
|
|
||||||
FIX: Edit of email in emailing. Property messtype not set.
|
|
||||||
FIX: extra field list depend on parent list when editing a card (#35165)
|
|
||||||
FIX: fallback of "from" email when sending email in member module
|
|
||||||
FIX: missing token to disable custom group category for compta report (page /htdocs/accountancy/admin/categories_list.php) (#35084)
|
|
||||||
FIX: Generation of member cards (file not found and substitution broken)
|
|
||||||
FIX: invoice not set to closed when we add a credit note to close it
|
|
||||||
FIX: missing check constant PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS (#33277)
|
|
||||||
FIX: missing entity filter (#35461)
|
|
||||||
FIX: missing quick edit for extrafields (baclport commit 4fc66c6) (#35160)
|
|
||||||
FIX: Missing sentence part (#35144)
|
|
||||||
FIX: Remove perms to access commerce tab when the only active permission is fournisseur:lire (#35467)
|
|
||||||
FIX: Restore decimal quantity for stock correction/transfer
|
|
||||||
FIX: save the packaging qty on update buying price (#35234)
|
|
||||||
FIX: set global mysoc and load langs in API access (#35041)
|
|
||||||
FIX: Societe - Problem of date on outstanding opened late (#35266)
|
|
||||||
FIX: vat detection when country of buyer is unknown.
|
|
||||||
FIX: wrong extrafield template in create mode (#35241) (#35470)
|
|
||||||
|
|
||||||
|
|
||||||
***** ChangeLog for 22.0.1 compared to 22.0.0 *****
|
|
||||||
|
|
||||||
FIX: #34843 (#34875)
|
|
||||||
FIX: #34936
|
|
||||||
FIX: a Fatal error when a trigger files is not correctly named.
|
|
||||||
FIX: array for arrayofkeyval is lost in module builder edit of property
|
|
||||||
FIX: asset: could not select invoice in disposal pop-in (#34725)
|
|
||||||
FIX: avoid php warning with "$forceFullTextIndexation" (#34881)
|
|
||||||
FIX: bad consistency on test on permission to disable service
|
|
||||||
FIX: Can edit status of tasks
|
|
||||||
FIX: Create public ticket if email need exist. (#34965)
|
|
||||||
FIX: DA026536: missing <br> in automatic e-mail (#34895)
|
|
||||||
FIX: extrafields of type "int" not displayed on `projet/tasks.php` (#34896)
|
|
||||||
FIX: Filter on the balance of leave
|
|
||||||
FIX: Logo on company is no more visible.
|
|
||||||
FIX: mailing destination list title (#34929)
|
|
||||||
FIX: main checkbox left column was before global conf (#34858)
|
|
||||||
FIX: Missing a column on group permissions
|
|
||||||
FIX: several minor troubles with modulebuilder
|
|
||||||
FIX: Test on mandatory product or thirdparty barcode
|
|
||||||
FIX: trigger mailmanspip when un/linking categories
|
|
||||||
|
|
||||||
|
|
||||||
***** ChangeLog for 22.0.0 compared to 21.0 *****
|
|
||||||
|
|
||||||
For users:
|
|
||||||
----------
|
|
||||||
NEW: Module WebPortal is moved as stable
|
|
||||||
NEW: Subtotal module (#33502) - development
|
|
||||||
NEW: shipment kits with dispatcher v2 (#33750)
|
|
||||||
NEW: ticket : display files linked to actioncomm (#32325)
|
|
||||||
NEW: Support of monthly or weekly recurring events
|
|
||||||
NEW: AI feature to autofill extrafields
|
|
||||||
NEW: Introduce the view "Kanban Grouped By" opportunity status in projects
|
|
||||||
NEW: #32706 - Treasury accountancy (#33701)
|
|
||||||
NEW: #33506 Add a constant to apply a ratio to resize images in ODT templates (#33543)
|
|
||||||
NEW: Accountancy - Add centralized account (SQL & migration part) (#33384) (#33577)
|
|
||||||
NEW: Accountancy - Add filter on chart of accounts (#33656)
|
|
||||||
NEW: Accountancy - Centralized account are highlighted (#33648)
|
|
||||||
NEW: Accountancy - Define fiscal year by default
|
|
||||||
NEW: Accountancy - Show subledger account in thirdparty
|
|
||||||
NEW: Add a delay to be sure that any Stripe action from webhooks are executed after interactive actions
|
|
||||||
NEW: Add also start date fill buttons for salary clone
|
|
||||||
NEW: Add a test mode for AI setup
|
|
||||||
NEW: Add DateMaxPayment option on selectDate (#33601)
|
|
||||||
NEW: Add/enhance the popup for preview of icons
|
|
||||||
NEW: Add field usenewcurrencyrate
|
|
||||||
NEW: Add globale MAIN_DISABLE_PDF_AUTO_DOWNLOAD_AFTER_CONVERT_FROM_ODT to disable the auto download after auto convert odt to pdf (#33511)
|
|
||||||
NEW: add home box mrp (#33549)
|
|
||||||
NEW: Add invoice tags
|
|
||||||
NEW: Add ip into table of website accounts
|
|
||||||
NEW: Add knowledgebase info on box_dolibarr_state_board.php (#33960)
|
|
||||||
NEW: Add link to create shipment on picto
|
|
||||||
NEW: Add link to picto help page on module builder
|
|
||||||
NEW: Add management of date begin/end and discount for a customer price (Code + SQL)
|
|
||||||
NEW: add new permissions to read supplier prices (#33598)
|
|
||||||
NEW: Add option MAIN_ALLOW_DOUBLE_COLON_IN_DOL_EVAL
|
|
||||||
NEW: Add option MAIN_MAIL_EMAIL_FROM_PASSWORDRESET
|
|
||||||
NEW: Add options on intervention clone popup to clone or not contact and notes
|
|
||||||
NEW: Add options PDF_XXX_SHOW_PRICE_INCL_TAX into PDF setup
|
|
||||||
NEW: add option to not prefill qty line at shipment creation
|
|
||||||
NEW: Add page list for categories.
|
|
||||||
NEW: Add parameters for the hook selectProductsListWhere (#33718)
|
|
||||||
NEW: add phone_mobile to export of thirdparty (#33893)
|
|
||||||
NEW: Add public page for donation module (#33978)
|
|
||||||
NEW: add setasnumber for forms (#33845)
|
|
||||||
NEW: Add Shared links on links in attachments (#33459)
|
|
||||||
NEW: Add tags / category on supplier invoice (#33490)
|
|
||||||
NEW: Add the possibility to merge PDF from the product list (#33723)
|
|
||||||
NEW: allow stock management by product (#32326)
|
|
||||||
NEW: attendee status "Showed up" - to ensure that only one attendee gets in on a ticket (#33987)
|
|
||||||
NEW: auto-detect country from code in creation (follow-up)
|
|
||||||
NEW: autofix mysqldump command for backup when path is wrong
|
|
||||||
NEW: Better presentation of list of user approver.
|
|
||||||
NEW: Can define a different PDF for concatenation for proposal, order and invoices
|
|
||||||
NEW: Can filter on field "Refuse emailing" in list of thirdparties.
|
|
||||||
NEW: Can filter on public/private notes in list sale orders thirdparties
|
|
||||||
NEW: Can filter on string with spaces if search criteria is inside quote.
|
|
||||||
NEW: Can force the tooltip before the text on column title.
|
|
||||||
NEW: Can link member subscription/contribution with proposal, order and invoice (#33647)
|
|
||||||
NEW: Can set a specific permission on an extrafields
|
|
||||||
NEW: cash control: add hidden setting to show total including taxed in detail by vat rate
|
|
||||||
NEW: Closing task
|
|
||||||
NEW: CONSTANT: ORDER_TYPE_CONTACT_DEFAULT
|
|
||||||
NEW: const PREVIEW_PICTO_ON_LEFT_OF_NAME for icon to preview documents (#33519)
|
|
||||||
NEW: Dictionary - Manage countries of SEPA Area
|
|
||||||
NEW: Dolibarr#22848 Add order tags
|
|
||||||
NEW: Filter on date creation/date modification in invoice list
|
|
||||||
NEW: fix #33456 (#33458)
|
|
||||||
NEW: force Extrafields values when constants THIRDPARTY_PROPAGATE_EXTRAFIELDS_TO_(ORDER|INVOICE) are set (#33954)
|
|
||||||
NEW: input reason for customer invoice (#33599)
|
|
||||||
NEW: Invoice - Add constant to prevent modification of an invoice (#33455)
|
|
||||||
NEW: Loan - Add total on each payment to see the global amount off the reimbursement
|
|
||||||
NEW: login page: button to toggle the visibility of the password (#33698)
|
|
||||||
NEW: Look and feel - Checkboxes and radio buttons are larger
|
|
||||||
NEW: Allow user to define the number of email sent by batch directly from mailing config page (#32750)
|
|
||||||
NEW: Mass action delete on donation list
|
|
||||||
NEW: Merge surface and volume in one line on product card.
|
|
||||||
NEW: Module external website is deprecated. Replaced with menu editor.
|
|
||||||
NEW: Move right from advance to normal for thirdparty information payment page (#33885)d
|
|
||||||
NEW: delays conf for supplier proposals (#33800)
|
|
||||||
NEW: new option in invoice setup to limit options of deposit invoice (#33468)
|
|
||||||
NEW: No auto open keyboard on smartphone when opening list of columns
|
|
||||||
NEW: On list, see complete ref customer/supplier with constant MAIN_SHOW_GLOBAL_REF_CUSTOMER_SUPPLIER (#33373)
|
|
||||||
NEW: Option MAIN_RESTRICTHTML_ONLY_VALID_HTML and MAIN_RESTRICTHTML_ONLY_VALID_HTML_TIDY are on by default
|
|
||||||
NEW: Option MAIN_SECURITY_MAXFILESIZE_DOWNLOADED become official
|
|
||||||
NEW: Order - Add drag & drop file (#33848)
|
|
||||||
NEW: reopen for interventions API (#33982)
|
|
||||||
NEW: Rounding unit price - line discount before applying quantity - option MAIN_APPLY_DISCOUNT_ON_UNIT_PRICE_THEN_ROUND_BEFORE_MULTIPLICATION_BY_QTY (#33690)
|
|
||||||
NEW: shipment with product in cache
|
|
||||||
NEW: shipment with warehouse in cache
|
|
||||||
NEW: Show code of stripe hooks supported in setup page
|
|
||||||
NEW: Show country flag in list of chart of account
|
|
||||||
NEW: Show IP of previous connection and date of last password change in the "Connection" widget.
|
|
||||||
NEW: Some trans keys to prepare a new website template (#33886)
|
|
||||||
NEW: SUBMIT_FOR_ALL_MARK_RESPAWN (#32101)
|
|
||||||
NEW: Supplier orders - Add tags/categories (#33386)
|
|
||||||
NEW: takepos cash control: add vat taxless total
|
|
||||||
NEW: The closing reason of invoice appear on tooltip of invoice status
|
|
||||||
NEW: The link "In accountancy" is now clickable to reach bookkeeping
|
|
||||||
NEW: The public media browser is now a stable feature
|
|
||||||
NEW: The signature is on the good page even if another module add pages
|
|
||||||
NEW: Toggle Display of Supplier Invoices and Credit Notes on Payment Page (#33856)
|
|
||||||
NEW: Try to set the tooltip as ajax call by default.
|
|
||||||
NEW: Update of currency supports also apilayer (not only currencylayer)
|
|
||||||
NEW: use specific landing page to home menu entry
|
|
||||||
NEW: Use the packaging feature to round the quantities to some given multiples for the sale
|
|
||||||
NEW: Use the PhpZipProxy handler to generate ODT files (avoid corrupted ODT with recent version of Libre Office).
|
|
||||||
NEW: vcard (vcf) download for third party (#31957)
|
|
||||||
NEW: Web pages of websites are protected by the WAF
|
|
||||||
NEW: Add constant to show stock in products combo
|
|
||||||
NEW: Can edit the module_source and pos_source field.
|
|
||||||
NEW: Accountancy - Add actions on entries (Cloning, assigning, returning)
|
|
||||||
NEW: Add conf PDF_HIDE_LINKED_OBJECT_IN_PUBLIC_NOTE to hide linked object in public note of pdf.
|
|
||||||
NEW: Add MULTICURRENCY_SHOW_ALSO_MAIN_CURRENCY_ON_PDF for legal requirement that need both currencies on PDF
|
|
||||||
NEW: Add note public and private on order export
|
|
||||||
NEW: Finish dev for API_ENABLE_COUNT_CALLS (count of API use is visible on user API key field)
|
|
||||||
|
|
||||||
For developers:
|
|
||||||
----------
|
|
||||||
NEW: Add an API endpoint to get properties of a single line of an order (#34045)
|
|
||||||
NEW: add const to not include default CSS in top_htmlhead with DISABLE_CSS_DEFAULT_THEME
|
|
||||||
NEW: add const to not include default lib_head.js in top_htmlhead with DISABLE_LIB_HEAD_JS
|
|
||||||
NEW: add const to not include JQuery UI in top_htmlhead DISABLE_JQUERY_UI
|
|
||||||
NEW: add create category project link via api (#34016)
|
|
||||||
NEW: add creditnotelist var in fetch
|
|
||||||
NEW: add hook 'addMoreInformationsBlock'
|
|
||||||
NEW: Add hook on API call (#33501)
|
|
||||||
NEW: add hooks to modify select_produits_fournisseurs_list sql query
|
|
||||||
NEW: Adding API endpoints for event attendee handling (#33932)
|
|
||||||
NEW: Add internal contact of proposal, order and invoice on api call (#34009)
|
|
||||||
NEW: Add option to create simple shipment of non origin. SQL part (#34071)
|
|
||||||
NEW: add settodraft to the supplier invoice API (#34064)
|
|
||||||
NEW: Can set isMandatory property in generic setup framework
|
|
||||||
NEW: endpoints DELETE event atteendee by ID or REF (#33986)
|
|
||||||
NEW: endpoints GET event attendee by ID or REF (#33984)
|
|
||||||
NEW: endpoints PUT (update) event atteendee by ID or REF (#33985)
|
|
||||||
NEW: hidden conf for api contrat putLine endpoint to only return the line (#33809)
|
|
||||||
NEW: introduce method dolSetCookie
|
|
||||||
NEW: Invoice - Document - Add hook on action
|
|
||||||
NEW: Pagination data for intervention APi
|
|
||||||
NEW: Add experimental Website Template for Association
|
|
||||||
NEW: expense report API deny
|
|
||||||
|
|
||||||
WARNING:
|
|
||||||
--------
|
|
||||||
|
|
||||||
The following changes may create regressions for some external modules, but were necessary to make Dolibarr better:
|
|
||||||
* The use of GETPOST function is not allowed inside extrafields conditions or any strings that contains dynamic code evaluated with dol_eval().
|
|
||||||
* The deprecated variable $trigger_name (duplicate of variable $triggersendname) has been removed. You must use $triggersendname everywhere now.
|
|
||||||
* The behavior of constant STOCK_ALLOW_NEGATIVE_TRANSFER has been reversed. It has been renamed into STOCK_DISALLOW_NEGATIVE_TRANSFER.
|
|
||||||
* Method Categoie->getObjectsInCateg() is deprecated. Try by using instead: getListForItem() or containing().
|
|
||||||
* Global variables $bctag, $conffiletoshowshort, $type2label has been removed.
|
|
||||||
* Deprecatedproperty ->fk_departement that was replaced by ->state_id has been completely removed.
|
|
||||||
* If you setup the API to update multicurrency rate from internet, you may need to re-enter your API key (so API key will be crypted in database).
|
|
||||||
* The signature of API get for intervention has been modified to match other get api on other objects.
|
|
||||||
* The directory /build has been moved into /dev/build.
|
|
||||||
* The API to create a website account /idthirdparty/accounts/site is now POST (instead of PUT) and to update is PUT (instead of PATCH).
|
|
||||||
* Debug v22 - Invert option TICKET_DO_NOT_INCLUDE_LINK_TO_CUSTOMER (that add link to backoffice interface link when it should remain private)
|
|
||||||
into TICKET_INCLUDE_LINK_TO_PUBLIC_INTERFACE_IN_MESSAGE. It also avoid often emails marked as SPAM due to suspicious link.
|
|
||||||
* The property ->price_ht of an object line that was a duplicate of ->subprice has been standardized. Use ->subprice everywhere now.
|
|
||||||
|
|
||||||
|
|
||||||
***** ChangeLog for 21.0.4 compared to 21.0.3 *****
|
***** ChangeLog for 21.0.4 compared to 21.0.3 *****
|
||||||
FIX: #35147 SQL Error on Beluga Export when ExpenseReport is enabled (#35149)
|
FIX: #35147 SQL Error on Beluga Export when ExpenseReport is enabled (#35149)
|
||||||
FIX: error when using a code too large in dictionary
|
FIX: error when using a code too large in dictionary
|
||||||
@@ -257,7 +34,6 @@ FIX: trigger mailmanspip when un/linking categories
|
|||||||
SEC: Remove functions accepting callable params - Reported by phdwg1410 - CVE-2024-40137
|
SEC: Remove functions accepting callable params - Reported by phdwg1410 - CVE-2024-40137
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
***** ChangeLog for 21.0.2 compared to 21.0.1 *****
|
***** ChangeLog for 21.0.2 compared to 21.0.1 *****
|
||||||
|
|
||||||
FIX: 21.0: $height and $width can be ints, but also 'auto' (#34636)
|
FIX: 21.0: $height and $width can be ints, but also 'auto' (#34636)
|
||||||
@@ -697,7 +473,7 @@ FIX: product variants copy: also copy multiprice variations
|
|||||||
FIX: refactorize (maybe broken feature for not received completely)
|
FIX: refactorize (maybe broken feature for not received completely)
|
||||||
FIX: remove debug trace
|
FIX: remove debug trace
|
||||||
FIX: remove socid when cloning a project without third parties
|
FIX: remove socid when cloning a project without third parties
|
||||||
FIX: removes traces of HEAD conflicts following the postponement of branch 13 modifications (#32014)
|
FIX: removes traces of <<<HEAD conflicts following the postponement of branch 13 modifications (#32014)
|
||||||
FIX: remove unused code
|
FIX: remove unused code
|
||||||
FIX: same broken feature for propal and invoice
|
FIX: same broken feature for propal and invoice
|
||||||
FIX: select 2 no record found translate
|
FIX: select 2 no record found translate
|
||||||
@@ -1004,7 +780,7 @@ NEW: fetch object by element for website account card
|
|||||||
NEW: filter on sale representative in contact list
|
NEW: filter on sale representative in contact list
|
||||||
NEW: Filter shipments by selecting multiple shipping methods (#28376)
|
NEW: Filter shipments by selecting multiple shipping methods (#28376)
|
||||||
NEW: Font param Look and Feel (#29302)
|
NEW: Font param Look and Feel (#29302)
|
||||||
NEW: functionality for configuration of post and pre prompt in AI module (#28030)
|
NEW: functionality for stock configuration prompt in AI module (#28030)
|
||||||
NEW: functionality to delete contact of company list
|
NEW: functionality to delete contact of company list
|
||||||
NEW: functionality to display codebar on pdf files (#29623)
|
NEW: functionality to display codebar on pdf files (#29623)
|
||||||
NEW: functionality to list event for user
|
NEW: functionality to list event for user
|
||||||
@@ -1705,6 +1481,7 @@ NEW: updating for display Help title when try to delete Don (issue #25314)
|
|||||||
NEW: Upgrade in module builder in menu section
|
NEW: Upgrade in module builder in menu section
|
||||||
NEW: use account address in sepa mandate (#23642)
|
NEW: use account address in sepa mandate (#23642)
|
||||||
NEW: VAT rate - Add entity
|
NEW: VAT rate - Add entity
|
||||||
|
NEW: Website: Support of js into the Dolibarr server preview
|
||||||
NEW: When an user unset the batch management of products, transformation of each batch stock movement in global stock movement
|
NEW: When an user unset the batch management of products, transformation of each batch stock movement in global stock movement
|
||||||
NEW: PDF Generation for each Human Resource Evaluations.
|
NEW: PDF Generation for each Human Resource Evaluations.
|
||||||
|
|
||||||
@@ -1805,7 +1582,7 @@ The following changes may create regressions for some external modules, but were
|
|||||||
* The delete() method of AdherentType, Contact, Delivery, MultiCurrency, CurrencyRate now need $user as first parameter.
|
* The delete() method of AdherentType, Contact, Delivery, MultiCurrency, CurrencyRate now need $user as first parameter.
|
||||||
* A very high number of class properties (with old name in french) are now deprecated in favor of the property name in english.
|
* A very high number of class properties (with old name in french) are now deprecated in favor of the property name in english.
|
||||||
* The load of hook context productdao has been removed before calling loadvirtualstock. Modules must use the context of main parent page or 'all' for all cases.
|
* The load of hook context productdao has been removed before calling loadvirtualstock. Modules must use the context of main parent page or 'all' for all cases.
|
||||||
* booking.class.php was removed, please have a look at calendar.class.php
|
|
||||||
|
|
||||||
***** ChangeLog for 18.0.8 compared to 18.0.7 *****
|
***** ChangeLog for 18.0.8 compared to 18.0.7 *****
|
||||||
35 files changed, 647 insertions(+), 298 deletions(-)
|
35 files changed, 647 insertions(+), 298 deletions(-)
|
||||||
|
|||||||
195
README-FR.md
Normal file
195
README-FR.md
Normal file
@@ -0,0 +1,195 @@
|
|||||||
|
# DOLIBARR ERP & CRM
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
[](https://php.net/)
|
||||||
|
[](https://github.com/Dolibarr/dolibarr)
|
||||||
|
[](https://bestpractices.coreinfrastructure.org/projects/5521)
|
||||||
|
|
||||||
|
Dolibarr ERP & CRM est un logiciel moderne pour gérer votre activité (société, association, auto-entrepreneurs, artisans).
|
||||||
|
Il est simple d'utilisation et modulaire, vous permettant de n'activez que les fonctions dont vous avez besoin (contacts, fournisseurs, factures, commandes, stocks, agenda, ...).
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
## LICENCE
|
||||||
|
|
||||||
|
Dolibarr est distribué sous les termes de la licence GNU General Public License v3+ ou supérieure.
|
||||||
|
|
||||||
|
|
||||||
|
## INSTALLER DOLIBARR
|
||||||
|
|
||||||
|
### Installation simple
|
||||||
|
|
||||||
|
Si vous avez peu de compétences techniques et que vous souhaitez installer Dolibarr ERP/CRM en quelques clics, vous pouvez utiliser l'une des versions pré-packagées avec les prérequis:
|
||||||
|
|
||||||
|
- DoliWamp pour Windows
|
||||||
|
- DoliDeb pour Debian ou Ubuntu
|
||||||
|
- DoliRpm pour Redhat, Fedora, OpenSuse, Mandriva ou Mageia
|
||||||
|
|
||||||
|
Les packages peuvent être téléchargés à partir de [site web officiel](https://www.dolibarr.org/).
|
||||||
|
|
||||||
|
### Installation recommandée/avancée
|
||||||
|
|
||||||
|
Vous pouvez aussi utiliser un serveur Web et une base de données prise en charge (MariaDB, MySQL ou PostgreSQL) pour installer la version standard.
|
||||||
|
|
||||||
|
- Décompressez l'archive .zip téléchargée pour copier le répertoire "dolibarr/htdocs" et tous ses fichiers à la racine du serveur Web ou récupérez-les directement à partir de GitHub (recommandé si vous connaissez git):
|
||||||
|
|
||||||
|
`git clone https://github.com/dolibarr/dolibarr -b x.y` (où x.y est la version principale comme 3.6, 9.0, ...)
|
||||||
|
|
||||||
|
- Configurez votre serveur Web pour qu'il utilise "*dolibarr/htdocs*" en tant que racine si votre serveur Web ne possède pas déjà de répertoire défini vers lequel pointer.
|
||||||
|
|
||||||
|
- Créez un fichier `htdocs/conf/conf.php` vide et définissez les autorisations d'*écrire* pour l'utilisateur de votre serveur Web (l'autorisation *écrire* sera supprimée une fois l'installation terminée)
|
||||||
|
|
||||||
|
- Depuis votre navigateur, allez à la page "install/" de dolibarr
|
||||||
|
|
||||||
|
L’URL dépendra de la façon dont votre configuration Web a été configurée pour pointer vers votre installation de dolibarr. Cela peut ressembler à:
|
||||||
|
|
||||||
|
`http://localhost/dolibarr/htdocs/install/`
|
||||||
|
|
||||||
|
ou
|
||||||
|
|
||||||
|
`http://localhost/dolibarr/install/`
|
||||||
|
|
||||||
|
ou
|
||||||
|
|
||||||
|
`http://yourdolibarrvirtualhost/install/`
|
||||||
|
|
||||||
|
- Suivez les instructions de l'installateur
|
||||||
|
|
||||||
|
|
||||||
|
## METTRE A JOUR DOLIBARR
|
||||||
|
|
||||||
|
Pour mettre à jour Dolibarr depuis une vieille version vers celle ci:
|
||||||
|
|
||||||
|
- Faites une sauvegarde de votre instance [voir ce tutorial](https://wiki.dolibarr.org/index.php/Installation_-_Upgrade#Upgrade_Dolibarr)
|
||||||
|
|
||||||
|
- Vérifiez que la nouvelle version est compatible avec la version PHP de votre serveur [voir PHP support](https://wiki.dolibarr.org/index.php/Releases).
|
||||||
|
|
||||||
|
- Ecrasez les vieux fichiers dans le vieux répertoire 'dolibarr' par les fichiers
|
||||||
|
fournis dans ce nouveau package.
|
||||||
|
|
||||||
|
- Au prochain accès, Dolibarr proposera la page de "mise à jour" des données (si nécessaire).
|
||||||
|
Si un fichier install.lock existe pour verrouiller le processus de mise à jour, il sera demandé de le supprimer manuellement (vous devriez trouver le fichier install.lock dans le répertoire utilisé pour stocker les documents générés ou transférés sur le serveur. Dans la plupart des cas, c'est le répertoire appelé "documents")
|
||||||
|
|
||||||
|
Note: *Le processus de migration peut être lancé manuellement et plusieurs fois, sans risque, en appelant la page /install/*
|
||||||
|
|
||||||
|
|
||||||
|
## CE QUI EST NOUVEAU
|
||||||
|
|
||||||
|
Voir le fichier [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog).
|
||||||
|
|
||||||
|
|
||||||
|
## CE QUE DOLIBARR PEUT FAIRE
|
||||||
|
|
||||||
|
### Modules principaux (tous optionnels)
|
||||||
|
|
||||||
|
- Annuaires des prospects et/ou client et/ou fournisseurs
|
||||||
|
- Gestion de catalogue de produits et services
|
||||||
|
- Gestion des devis, propositions commerciales
|
||||||
|
- Gestion des commandes
|
||||||
|
- Gestion des factures clients/fournisseurs et paiements
|
||||||
|
- Gestion des virements bancaires SEPA
|
||||||
|
- Gestion des comptes bancaires
|
||||||
|
- Calendrier/Agenda partagé (avec export ical, vcal)
|
||||||
|
- Suivi des opportunités et/ou projets (suivi de rentabilité incluant les factures, notes de frais, temps consommé valorisé, ...)
|
||||||
|
- Gestion de contrats de services
|
||||||
|
- Gestion de stock et inventaires
|
||||||
|
- Gestion des expéditions
|
||||||
|
- Gestion des demandes de congés
|
||||||
|
- Gestion des notes de frais
|
||||||
|
- Gestion de recrutement
|
||||||
|
- GED (Gestion Electronique de Documents)
|
||||||
|
- E-Mailings de masse
|
||||||
|
- Réalisation de sondages
|
||||||
|
- Gestion d'adhérents
|
||||||
|
- Point de vente/Caisse enregistreuse
|
||||||
|
- … (près de 100 modules disponibles en standard, près de 1000 autre sur la place de marché d'extensions)
|
||||||
|
|
||||||
|
### Autres modules
|
||||||
|
|
||||||
|
- Gestion de marque-pages
|
||||||
|
- Gestion des promesses de dons
|
||||||
|
- Rapports
|
||||||
|
- Imports/Exports des données
|
||||||
|
- Support des codes barres
|
||||||
|
- Calcul des marges
|
||||||
|
- Connectivité LDAP
|
||||||
|
- Intégration de ClickToDial
|
||||||
|
- Intégration RSS
|
||||||
|
- Intégration Skype
|
||||||
|
- Intégration de système de paiements (PayPal, Stripe, Paybox...)
|
||||||
|
- …
|
||||||
|
|
||||||
|
### Divers
|
||||||
|
|
||||||
|
- Multi-langue.
|
||||||
|
- Multi-utilisateurs avec différents niveaux de permissions par module.
|
||||||
|
- Multidevise.
|
||||||
|
- Peux être multi-société par ajout du module externe multi-société.
|
||||||
|
- Plusieurs thèmes visuels.
|
||||||
|
- Application simple à utiliser.
|
||||||
|
- Requiert PHP et MariaDb, Mysql ou Postgresql (Voir versions exactes sur [https://wiki.dolibarr.org/index.php/Prérequis](https://wiki.dolibarr.org/index.php/Prérequis)).
|
||||||
|
- Compatible avec toutes les offres Cloud du marché respectant les prérequis de base de données et PHP.
|
||||||
|
- APIs.
|
||||||
|
- Génération PDF et ODT des éléments (factures, propositions commerciales, commandes, bons expéditions, etc...)
|
||||||
|
- Code simple et facilement personnalisable (pas de framework lourd; mécanisme de hook et triggers).
|
||||||
|
- Support natif de nombreuses fonctions spécifiques aux pays comme:
|
||||||
|
- La taxe espagnole TE et ISPF
|
||||||
|
- Gestion de la TVA NPR (non perçue récupérable - pour les utilisateurs français des DOM-TOM)
|
||||||
|
- La loi française Finance 2016 et logiciels de caisse
|
||||||
|
- La double taxe canadienne
|
||||||
|
- Le timbre fiscal tunisien
|
||||||
|
- Numérotation de facture de l'argentines (avec type A,B,C...)
|
||||||
|
- Compatible avec vos processus RGPD
|
||||||
|
- ...
|
||||||
|
- …
|
||||||
|
|
||||||
|
### Extension
|
||||||
|
|
||||||
|
Dolibarr peut aussi être étendu à volonté avec l'ajout de modules/applications externes développées par des développeurs tiers, disponible sur [DoliStore](https://www.dolistore.com).
|
||||||
|
|
||||||
|
|
||||||
|
## CE QUE DOLIBARR NE PEUT PAS (ENCORE) FAIRE
|
||||||
|
|
||||||
|
Voici un liste de fonctionnalités pas encore gérées par Dolibarr:
|
||||||
|
|
||||||
|
- Dolibarr ne contient pas de module de génération de feuille de paie.
|
||||||
|
- Les tâches du module de gestion de projets n'ont pas de dépendances entre elle.
|
||||||
|
- Dolibarr n'embarque pas de Webmail intégré nativement.
|
||||||
|
- Dolibarr ne fait pas le café (pas encore).
|
||||||
|
|
||||||
|
|
||||||
|
## DOCUMENTATION
|
||||||
|
|
||||||
|
La documentation utilisateur, développeur et traducteur est disponible sous forme de ressources de la communauté via le site [Wiki](https://wiki.dolibarr.org).
|
||||||
|
|
||||||
|
|
||||||
|
## CONTRIBUER
|
||||||
|
|
||||||
|
Ce projet existe grâce à ses nombreux contributeurs [[Contribuer](https://github.com/Dolibarr/dolibarr/blob/develop/.github/CONTRIBUTING.md)].
|
||||||
|
|
||||||
|
[](https://github.com/Dolibarr/dolibarr/graphs/contributors)
|
||||||
|
|
||||||
|
|
||||||
|
## CREDITS
|
||||||
|
|
||||||
|
Dolibarr est le résultat du travail de nombreux contributeurs depuis des années et utilise des librairies d'autres contributeurs.
|
||||||
|
|
||||||
|
Voir le fichier [COPYRIGHT](https://github.com/Dolibarr/dolibarr/blob/develop/COPYRIGHT)
|
||||||
|
|
||||||
|
|
||||||
|
## ACTUALITES ET RESEAUX SOCIAUX
|
||||||
|
|
||||||
|
Suivez le projet Dolibarr sur les réseaux francophones
|
||||||
|
|
||||||
|
- [Facebook](https://www.facebook.com/dolibarr.fr)
|
||||||
|
- [X](https://www.twitter.com/dolibarr_france)
|
||||||
|
|
||||||
|
ou sur les réseaux anglophones
|
||||||
|
|
||||||
|
- [Facebook](https://www.facebook.com/dolibarr)
|
||||||
|
- [X](https://www.twitter.com/dolibarr)
|
||||||
|
- [LinkedIn](https://www.linkedin.com/company/association-dolibarr)
|
||||||
|
- [YouTube](https://www.youtube.com/user/DolibarrERPCRM)
|
||||||
|
- [GitHub](https://github.com/Dolibarr/dolibarr)
|
||||||
21
README.md
21
README.md
@@ -34,12 +34,12 @@ There is a lot of different solutions to install Dolibarr.
|
|||||||
|
|
||||||
### Using packages
|
### Using packages
|
||||||
|
|
||||||
If you have low technical skills and you're looking to install Dolibarr ERP/CRM with just few clicks, you can use one of the packaged versions (see next chapter if you have IT knowledge) :
|
If you have low technical skills and you're looking to install Dolibarr ERP/CRM with just a few clicks, you can use one of the packaged versions:
|
||||||
|
|
||||||
- [DoliWamp for Windows](https://wiki.dolibarr.org/index.php/Dolibarr_for_Windows_(DoliWamp))
|
- [DoliWamp for Windows](https://wiki.dolibarr.org/index.php/Dolibarr_for_Windows_(DoliWamp))
|
||||||
- [DoliDeb for Debian, Ubuntu](https://wiki.dolibarr.org/index.php/Dolibarr_for_Ubuntu_or_Debian)
|
- [DoliDeb for Debian](https://wiki.dolibarr.org/index.php/Dolibarr_for_Ubuntu_or_Debian)
|
||||||
- DoliRpm for Red Hat, Fedora, OpenSuse, Mandriva or Mageia
|
- DoliRpm for Red Hat, Fedora, OpenSuse, Mandriva or Mageia
|
||||||
- The Docker image (see chapter "Using Docker")
|
- The Docker image (see next chapter)
|
||||||
|
|
||||||
Releases can be downloaded from [official website](https://www.dolibarr.org/).
|
Releases can be downloaded from [official website](https://www.dolibarr.org/).
|
||||||
|
|
||||||
@@ -116,7 +116,6 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog)
|
|||||||
- Product Variants
|
- Product Variants
|
||||||
- Bill of Materials (BOM)
|
- Bill of Materials (BOM)
|
||||||
- Manufacturing Orders (MO)
|
- Manufacturing Orders (MO)
|
||||||
- Workstations / Workplaces
|
|
||||||
|
|
||||||
Customer/Sales Management
|
Customer/Sales Management
|
||||||
|
|
||||||
@@ -176,13 +175,12 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog)
|
|||||||
- Data export/import
|
- Data export/import
|
||||||
- Barcodes
|
- Barcodes
|
||||||
- LDAP connectivity
|
- LDAP connectivity
|
||||||
- Click-To-Dial integration
|
- ClickToDial integration
|
||||||
- Mass emailing
|
- Mass emailing
|
||||||
- RSS integration
|
- RSS integration
|
||||||
- Social platforms linking
|
- Social platforms linking
|
||||||
- Payment platforms integration (PayPal, Stripe, Paybox...)
|
- Payment platforms integration (PayPal, Stripe, Paybox...)
|
||||||
- Email-Collector
|
- Email-Collector
|
||||||
- AI support via API
|
|
||||||
|
|
||||||
(around 100 modules available by default, 1000+ addons at the official marketplace Dolistore.com)
|
(around 100 modules available by default, 1000+ addons at the official marketplace Dolistore.com)
|
||||||
|
|
||||||
@@ -239,7 +237,7 @@ These are features that Dolibarr does **not** yet fully support:
|
|||||||
Administrator, user, developer and translator's documentation are available along with other community resources in the [Wiki](https://wiki.dolibarr.org).
|
Administrator, user, developer and translator's documentation are available along with other community resources in the [Wiki](https://wiki.dolibarr.org).
|
||||||
|
|
||||||
|
|
||||||
## CONTRIBUTING AND RELEASE PROCESS
|
## CONTRIBUTING
|
||||||
|
|
||||||
This project exists thanks to all the people who contribute.
|
This project exists thanks to all the people who contribute.
|
||||||
Please read the instructions on how to contribute (report a bug/error, a feature request, send code, ...) [[Contributing](https://github.com/Dolibarr/dolibarr/blob/develop/.github/CONTRIBUTING.md)]
|
Please read the instructions on how to contribute (report a bug/error, a feature request, send code, ...) [[Contributing](https://github.com/Dolibarr/dolibarr/blob/develop/.github/CONTRIBUTING.md)]
|
||||||
@@ -248,8 +246,6 @@ A View on Contributors:
|
|||||||
|
|
||||||
[](https://github.com/Dolibarr/dolibarr/graphs/contributors)
|
[](https://github.com/Dolibarr/dolibarr/graphs/contributors)
|
||||||
|
|
||||||
The release process is described into the file dev/build/makepack-howto.md
|
|
||||||
|
|
||||||
|
|
||||||
## CREDITS
|
## CREDITS
|
||||||
|
|
||||||
@@ -262,12 +258,9 @@ See [COPYRIGHT](https://github.com/Dolibarr/dolibarr/blob/develop/COPYRIGHT) fil
|
|||||||
|
|
||||||
Follow Dolibarr project on:
|
Follow Dolibarr project on:
|
||||||
|
|
||||||
- [LinkedIn](https://www.linkedin.com/company/association-dolibarr)
|
|
||||||
- [Mastodon](https://pouet.chapril.org/@dolibarr)
|
|
||||||
- [BlueSky](https://bsky.app/profile/dolibarr.org)
|
|
||||||
- [Threads](https://www.threads.net/@dolibarr)
|
|
||||||
- [X](https://x.com/dolibarr)
|
|
||||||
- [Facebook](https://www.facebook.com/dolibarr)
|
- [Facebook](https://www.facebook.com/dolibarr)
|
||||||
|
- [X](https://x.com/dolibarr)
|
||||||
|
- [LinkedIn](https://www.linkedin.com/company/association-dolibarr)
|
||||||
- [Reddit](https://www.reddit.com/r/Dolibarr_ERP_CRM/)
|
- [Reddit](https://www.reddit.com/r/Dolibarr_ERP_CRM/)
|
||||||
- [YouTube](https://www.youtube.com/user/DolibarrERPCRM)
|
- [YouTube](https://www.youtube.com/user/DolibarrERPCRM)
|
||||||
- [GitHub](https://github.com/Dolibarr/dolibarr)
|
- [GitHub](https://github.com/Dolibarr/dolibarr)
|
||||||
|
|||||||
@@ -24,8 +24,7 @@ To report a vulnerability, for a private report, you can:
|
|||||||
|
|
||||||
We believe that the future of software is online SaaS. This means software are more and more critical and no technology is perfect. Working with skilled security researchers is crucial in identifying weaknesses in our technology.
|
We believe that the future of software is online SaaS. This means software are more and more critical and no technology is perfect. Working with skilled security researchers is crucial in identifying weaknesses in our technology.
|
||||||
|
|
||||||
If you believe you've found a security bug in our service, we are happy to work with you to resolve the issue promptly.
|
If you believe you've found a security bug in our service, we are happy to work with you to resolve the issue promptly and ensure you are fairly rewarded for your discovery.
|
||||||
We plan to re-open our bug bounty program (closed in end of 2024) in the future, but this is not yet available.
|
|
||||||
|
|
||||||
Any type of denial-of-service attack is strictly forbidden, as well as any interference with network equipment and Dolibarr infrastructure.
|
Any type of denial-of-service attack is strictly forbidden, as well as any interference with network equipment and Dolibarr infrastructure.
|
||||||
|
|
||||||
@@ -110,7 +109,8 @@ Scope is the web application (backoffice) and the APIs.
|
|||||||
* Software or libraries versions, private IP disclosure, Stack traces or path disclosure when logged-in user is admin.
|
* Software or libraries versions, private IP disclosure, Stack traces or path disclosure when logged-in user is admin.
|
||||||
* Vulnerabilities affecting outdated browsers or platforms, or vulnerabilities inside browsers themself.
|
* Vulnerabilities affecting outdated browsers or platforms, or vulnerabilities inside browsers themself.
|
||||||
* Brute force attacks on login page, password forgotten page or any public pages (/public/*) are not qualified if the recommended fail2ban rules were not installed.
|
* Brute force attacks on login page, password forgotten page or any public pages (/public/*) are not qualified if the recommended fail2ban rules were not installed.
|
||||||
* SSL/TLS practices (cypher enabled or not)
|
* SSL/TLS best practices
|
||||||
* Invalid or missing SPF (Sender Policy Framework) records (Incomplete or missing SPF/DKIM/DMARC)
|
* Invalid or missing SPF (Sender Policy Framework) records (Incomplete or missing SPF/DKIM/DMARC)
|
||||||
* Physical or social engineering attempts or issues that require physical access to a victim’s computer/device
|
* Physical or social engineering attempts or issues that require physical access to a victim’s computer/device
|
||||||
* Vulnerabilities of type XSS exploited by using javascript into a website page of the website module or by using php code into a website page (being able to set javascript or php code is the expected behaviour in the website module), except if the user does not have the permission to edit page or php code.
|
* Vulnerabilities of type XSS exploited by using javascript into a website page (with permission to edit website pages) or by using php code into a website page
|
||||||
|
using the permission to edit php code are not qualified, except if this allow to get higher privileges (being able to set javascript or php code is the expected behaviour).
|
||||||
|
|||||||
0
dev/build/.gitignore → build/.gitignore
vendored
0
dev/build/.gitignore → build/.gitignore
vendored
@@ -1,6 +1,6 @@
|
|||||||
README (English)
|
README (English)
|
||||||
|
|
||||||
Path: /dolibarr/dev/build/README
|
Path: /dolibarr/build/README
|
||||||
|
|
||||||
##################################################
|
##################################################
|
||||||
Building packages
|
Building packages
|
||||||
@@ -37,3 +37,4 @@ Edit composer.json to change version to "x.y.z"
|
|||||||
|
|
||||||
composer -v update --root-reqs --no-dev --ignore-platform-reqs
|
composer -v update --root-reqs --no-dev --ignore-platform-reqs
|
||||||
composer -v update --root-reqs --no-dev --ignore-platform-reqs [--no-autoloader] [--dry-run] ccampbell/chromephp
|
composer -v update --root-reqs --no-dev --ignore-platform-reqs [--no-autoloader] [--dry-run] ccampbell/chromephp
|
||||||
|
|
||||||
1
build/debian/compat
Normal file
1
build/debian/compat
Normal file
@@ -0,0 +1 @@
|
|||||||
|
10
|
||||||
@@ -235,3 +235,4 @@ $dolibarr_main_prod='0';
|
|||||||
# dolibarr_main_distrib
|
# dolibarr_main_distrib
|
||||||
# A key to identify the distribution used for first installation
|
# A key to identify the distribution used for first installation
|
||||||
$dolibarr_main_distrib = 'debian';
|
$dolibarr_main_distrib = 'debian';
|
||||||
|
|
||||||
0
dev/build/debian/dolibarr.config → build/debian/dolibarr.config
Executable file → Normal file
0
dev/build/debian/dolibarr.config → build/debian/dolibarr.config
Executable file → Normal file
0
dev/build/debian/dolibarr.postinst → build/debian/dolibarr.postinst
Executable file → Normal file
0
dev/build/debian/dolibarr.postinst → build/debian/dolibarr.postinst
Executable file → Normal file
0
dev/build/debian/dolibarr.postrm → build/debian/dolibarr.postrm
Executable file → Normal file
0
dev/build/debian/dolibarr.postrm → build/debian/dolibarr.postrm
Executable file → Normal file
@@ -102,3 +102,4 @@ Description: Delete database ?
|
|||||||
# Delete also all uploaded and generated files (datas related
|
# Delete also all uploaded and generated files (datas related
|
||||||
# to this quetion are all files found into /usr/share/dolibarr/documents,
|
# to this quetion are all files found into /usr/share/dolibarr/documents,
|
||||||
# uploaded or generated when using Dolibarr) ?
|
# uploaded or generated when using Dolibarr) ?
|
||||||
|
|
||||||
1
build/debian/po/POTFILES.in
Normal file
1
build/debian/po/POTFILES.in
Normal file
@@ -0,0 +1 @@
|
|||||||
|
[type: gettext/rfc822deb] dolibarr.templates
|
||||||
@@ -81,16 +81,16 @@ override_dh_install:
|
|||||||
|
|
||||||
rm -fr test
|
rm -fr test
|
||||||
|
|
||||||
rm -fr dev/build/aps
|
rm -fr build/aps
|
||||||
rm -fr dev/build/dmg
|
rm -fr build/dmg
|
||||||
rm -fr dev/build/doap
|
rm -fr build/doap
|
||||||
rm -fr dev/build/exe
|
rm -fr build/exe
|
||||||
rm -fr dev/build/launchpad
|
rm -fr build/launchpad
|
||||||
rm -fr dev/build/live
|
rm -fr build/live
|
||||||
rm -fr dev/build/patch
|
rm -fr build/patch
|
||||||
rm -fr dev/build/perl
|
rm -fr build/perl
|
||||||
rm -fr dev/build/rpm
|
rm -fr build/rpm
|
||||||
rm -fr dev/build/zip
|
rm -fr build/zip
|
||||||
|
|
||||||
# clean from all PHP embedded libraries (we use package dependencies instead)
|
# clean from all PHP embedded libraries (we use package dependencies instead)
|
||||||
# rm -fr htdocs/includes/geoip
|
# rm -fr htdocs/includes/geoip
|
||||||
@@ -128,3 +128,4 @@ override_dh_fixperms:
|
|||||||
# Give rights to the webserver on the upload directory
|
# Give rights to the webserver on the upload directory
|
||||||
chown www-data:www-data debian/dolibarr/var/lib/dolibarr/documents
|
chown www-data:www-data debian/dolibarr/var/lib/dolibarr/documents
|
||||||
chmod 2775 debian/dolibarr/var/lib/dolibarr/documents
|
chmod 2775 debian/dolibarr/var/lib/dolibarr/documents
|
||||||
|
|
||||||
1
build/debian/source/format
Normal file
1
build/debian/source/format
Normal file
@@ -0,0 +1 @@
|
|||||||
|
3.0 (quilt)
|
||||||
@@ -14,3 +14,4 @@ source-is-missing htdocs/includes/restler/framework/Luracast/Restler/explorer/li
|
|||||||
# Those are false positives, the files are their own sources since
|
# Those are false positives, the files are their own sources since
|
||||||
# they are data files
|
# they are data files
|
||||||
source-is-missing htdocs/includes/mobiledetect/mobiledetectlib/Mobile_Detect.json
|
source-is-missing htdocs/includes/mobiledetect/mobiledetectlib/Mobile_Detect.json
|
||||||
|
|
||||||
@@ -23,12 +23,11 @@ RUN apt-get update -y \
|
|||||||
msmtp \
|
msmtp \
|
||||||
msmtp-mta \
|
msmtp-mta \
|
||||||
mailutils \
|
mailutils \
|
||||||
libpq-dev \
|
|
||||||
&& apt-get autoremove -y \
|
&& apt-get autoremove -y \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
|
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
|
||||||
&& docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql pgsql gd soap zip \
|
&& docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \
|
||||||
&& docker-php-ext-configure ldap \
|
&& docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
|
||||||
&& docker-php-ext-install -j$(nproc) ldap && \
|
&& docker-php-ext-install -j$(nproc) ldap && \
|
||||||
mv ${PHP_INI_DIR}/php.ini-development ${PHP_INI_DIR}/php.ini
|
mv ${PHP_INI_DIR}/php.ini-development ${PHP_INI_DIR}/php.ini
|
||||||
|
|
||||||
34
build/docker-dev/README.md
Normal file
34
build/docker-dev/README.md
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
# How to use it ?
|
||||||
|
|
||||||
|
The docker-compose.yml file is a sample of a config file to use to build and run Dolibarr in the current workspace with Docker.
|
||||||
|
This docker image is intended for development usage.
|
||||||
|
For production usage you should consider other contributor reference like https://hub.docker.com/r/dolibarr/dolibarr
|
||||||
|
|
||||||
|
Before build/run, define the variable HOST_USER_ID as following:
|
||||||
|
|
||||||
|
export HOST_USER_ID=$(id -u)
|
||||||
|
|
||||||
|
Go in repository build/docker :
|
||||||
|
|
||||||
|
cd build/docker
|
||||||
|
|
||||||
|
And then, you can run :
|
||||||
|
|
||||||
|
docker-compose up
|
||||||
|
|
||||||
|
This will run 4 containers Docker : Dolibarr, MariaDB, PhpMyAdmin and MailDev.
|
||||||
|
|
||||||
|
The URL to go to the Dolibarr is :
|
||||||
|
|
||||||
|
http://0.0.0.0
|
||||||
|
|
||||||
|
The URL to go to PhpMyAdmin is (login/password is root/root) :
|
||||||
|
|
||||||
|
http://0.0.0.0:8080
|
||||||
|
|
||||||
|
In Dolibarr configuration Email let PHP mail function, To see all mail send by Dolibarr go to maildev
|
||||||
|
|
||||||
|
http://0.0.0.0:8081
|
||||||
|
|
||||||
|
Setup the database connection during the installation process, please use mariadb (name of the database container) as database host.
|
||||||
|
Setup documents folder, during the installation process, to /var/documents
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
---
|
version: '3'
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
internal-pod:
|
internal-pod:
|
||||||
internal: true
|
internal: true
|
||||||
@@ -16,6 +17,19 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- internal-pod
|
- internal-pod
|
||||||
- external-pod
|
- external-pod
|
||||||
|
|
||||||
|
phpmyadmin:
|
||||||
|
image: phpmyadmin/phpmyadmin
|
||||||
|
environment:
|
||||||
|
PMA_HOST: mariadb
|
||||||
|
depends_on:
|
||||||
|
- mariadb
|
||||||
|
ports:
|
||||||
|
- "8080:80"
|
||||||
|
networks:
|
||||||
|
- internal-pod
|
||||||
|
- external-pod
|
||||||
|
|
||||||
web:
|
web:
|
||||||
build: .
|
build: .
|
||||||
environment:
|
environment:
|
||||||
@@ -23,12 +37,13 @@ services:
|
|||||||
PHP_INI_DATE_TIMEZONE: $PHP_INI_DATE_TIMEZONE
|
PHP_INI_DATE_TIMEZONE: $PHP_INI_DATE_TIMEZONE
|
||||||
PHP_INI_MEMORY_LIMIT: $PHP_INI_MEMORY_LIMIT
|
PHP_INI_MEMORY_LIMIT: $PHP_INI_MEMORY_LIMIT
|
||||||
volumes:
|
volumes:
|
||||||
- ../../../htdocs:/var/www/html/
|
- ../../htdocs:/var/www/html/
|
||||||
- ../../../documents:/var/www/documents
|
- ../../documents:/var/documents
|
||||||
ports:
|
ports:
|
||||||
- "80:80"
|
- "80:80"
|
||||||
- "9000:9000"
|
- "9000:9000"
|
||||||
depends_on:
|
depends_on:
|
||||||
|
- mariadb
|
||||||
- mail
|
- mail
|
||||||
networks:
|
networks:
|
||||||
- internal-pod
|
- internal-pod
|
||||||
@@ -1,21 +1,24 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Script used by the Dockerfile.
|
# Script used by the Dockerfile.
|
||||||
# See README.md to know how to create a Dolibarr env with docker
|
# See README.md to know how to create a Dolibarr env with docker
|
||||||
set -ex
|
|
||||||
|
|
||||||
if [ "${HOST_USER_ID}" == "" ]; then
|
|
||||||
echo "Define HOST_USER_ID to your user ID before starting"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
usermod -u "${HOST_USER_ID}" www-data
|
usermod -u "${HOST_USER_ID}" www-data
|
||||||
groupmod -g "${HOST_USER_ID}" www-data
|
groupmod -g "${HOST_USER_ID}" www-data
|
||||||
|
|
||||||
|
chgrp -hR www-data /var/www/html
|
||||||
|
chmod g+rwx /var/www/html/conf
|
||||||
|
|
||||||
|
if [ ! -d /var/documents ]; then
|
||||||
|
echo "[docker-run] => create volume directory /var/documents ..."
|
||||||
|
mkdir -p /var/documents
|
||||||
|
fi
|
||||||
|
echo "[docker-run] => Set Permission to www-data for /var/documents"
|
||||||
|
chown -R www-data:www-data /var/documents
|
||||||
|
|
||||||
echo "[docker-run] => update '${PHP_INI_DIR}/conf.d/dolibarr-php.ini'"
|
echo "[docker-run] => update '${PHP_INI_DIR}/conf.d/dolibarr-php.ini'"
|
||||||
cat <<EOF > "${PHP_INI_DIR}/conf.d/dolibarr-php.ini"
|
cat <<EOF > "${PHP_INI_DIR}/conf.d/dolibarr-php.ini"
|
||||||
date.timezone = ${PHP_INI_DATE_TIMEZONE:-UTC}
|
date.timezone = ${PHP_INI_DATE_TIMEZONE:-UTC}
|
||||||
memory_limit = ${PHP_INI_MEMORY_LIMIT:-256M}
|
memory_limit = ${PHP_INI_MEMORY_LIMIT:-256M}
|
||||||
display_errors = Off
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
exec apache2-foreground
|
exec apache2-foreground
|
||||||
@@ -19,7 +19,7 @@ my $dir = getcwd;
|
|||||||
print "Current dir is: $dir\n";
|
print "Current dir is: $dir\n";
|
||||||
#print "Running dir for doxygen must be: $DIR\n";
|
#print "Running dir for doxygen must be: $DIR\n";
|
||||||
|
|
||||||
if (! -s "dev/build/doxygen/$CONFFILE")
|
if (! -s "build/doxygen/$CONFFILE")
|
||||||
{
|
{
|
||||||
print "Error: current directory for building Dolibarr doxygen documentation is not correct.\n";
|
print "Error: current directory for building Dolibarr doxygen documentation is not correct.\n";
|
||||||
print "\n";
|
print "\n";
|
||||||
@@ -47,8 +47,8 @@ $version=$MAJOR.".".$MINOR.".".$BUILD;
|
|||||||
|
|
||||||
|
|
||||||
print "Running doxygen for version ".$version.", please wait...\n";
|
print "Running doxygen for version ".$version.", please wait...\n";
|
||||||
print "cat dev/build/doxygen/$CONFFILE | sed -e 's/x\.y\.z/".$version."/' | doxygen $OPTIONS - 2>&1\n";
|
print "cat build/doxygen/$CONFFILE | sed -e 's/x\.y\.z/".$version."/' | doxygen $OPTIONS - 2>&1\n";
|
||||||
$result=`cat dev/build/doxygen/$CONFFILE | sed -e 's/x\.y\.z/$version/' | doxygen $OPTIONS - 2>&1`;
|
$result=`cat build/doxygen/$CONFFILE | sed -e 's/x\.y\.z/$version/' | doxygen $OPTIONS - 2>&1`;
|
||||||
|
|
||||||
print $result;
|
print $result;
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ PROJECT_NUMBER = x.y.z
|
|||||||
# If a relative path is entered, it will be relative to the location
|
# If a relative path is entered, it will be relative to the location
|
||||||
# where doxygen was started. If left blank the current directory will be used.
|
# where doxygen was started. If left blank the current directory will be used.
|
||||||
|
|
||||||
OUTPUT_DIRECTORY = dev/build
|
OUTPUT_DIRECTORY = build
|
||||||
|
|
||||||
# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
|
# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
|
||||||
# 4096 sub-directories (in 2 levels) under the output directory of each output
|
# 4096 sub-directories (in 2 levels) under the output directory of each output
|
||||||
@@ -575,7 +575,7 @@ WARN_FORMAT = "$file:$line: $text"
|
|||||||
# and error messages should be written. If left blank the output is written
|
# and error messages should be written. If left blank the output is written
|
||||||
# to stderr.
|
# to stderr.
|
||||||
|
|
||||||
WARN_LOGFILE = dev/build/html/doxygen_warnings.log
|
WARN_LOGFILE = build/html/doxygen_warnings.log
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the input files
|
# configuration options related to the input files
|
||||||
@@ -804,14 +804,14 @@ HTML_FILE_EXTENSION = .html
|
|||||||
# standard header.
|
# standard header.
|
||||||
|
|
||||||
# Does not work with 1.7.3
|
# Does not work with 1.7.3
|
||||||
#HTML_HEADER = dev/build/doxygen/doxygen_header.html
|
#HTML_HEADER = build/doxygen/doxygen_header.html
|
||||||
|
|
||||||
# The HTML_FOOTER tag can be used to specify a personal HTML footer for
|
# The HTML_FOOTER tag can be used to specify a personal HTML footer for
|
||||||
# each generated HTML page. If it is left blank doxygen will generate a
|
# each generated HTML page. If it is left blank doxygen will generate a
|
||||||
# standard footer.
|
# standard footer.
|
||||||
|
|
||||||
# Does not work with 1.7.3
|
# Does not work with 1.7.3
|
||||||
HTML_FOOTER = dev/build/doxygen/doxygen_footer.html
|
HTML_FOOTER = build/doxygen/doxygen_footer.html
|
||||||
|
|
||||||
# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
|
# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
|
||||||
# style sheet that is used by each HTML page. It can be used to
|
# style sheet that is used by each HTML page. It can be used to
|
||||||
@@ -1655,4 +1655,4 @@ DOT_CLEANUP = YES
|
|||||||
|
|
||||||
|
|
||||||
FULL_SIDEBAR = NO
|
FULL_SIDEBAR = NO
|
||||||
HTML_EXTRA_STYLESHEET = dev/build/doxygen/doxygen-awesome.css
|
HTML_EXTRA_STYLESHEET = build/doxygen/doxygen-awesome.css
|
||||||
@@ -48,3 +48,5 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- End doxygen_header.html -->
|
<!-- End doxygen_header.html -->
|
||||||
|
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user