forked from Wavyzz/dolibarr
Compare commits
48 Commits
22.0.2_wav
...
20.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e486707236 | ||
|
|
cecc1831a2 | ||
|
|
8df759d0ab | ||
|
|
5d3e2078a6 | ||
|
|
5031572102 | ||
|
|
4f75fb7f8a | ||
|
|
b18f2f4fda | ||
|
|
b0d08278f0 | ||
|
|
def8495513 | ||
|
|
b2fce5052f | ||
|
|
b1d57a6bd1 | ||
|
|
16904d12f8 | ||
|
|
1525b9c85e | ||
|
|
ffe07999cf | ||
|
|
24146d89c5 | ||
|
|
57930b3abd | ||
|
|
1dd2cc36e4 | ||
|
|
477d755bbc | ||
|
|
f85b53a4ca | ||
|
|
a6e01fe7b7 | ||
|
|
43c2336683 | ||
|
|
e1b919366e | ||
|
|
40e4a6959f | ||
|
|
07dfde2bf6 | ||
|
|
e9869bb5da | ||
|
|
0ef519f2f6 | ||
|
|
22995dae99 | ||
|
|
52ae202aff | ||
|
|
2ca2fe7f28 | ||
|
|
140310c508 | ||
|
|
64cf2513bd | ||
|
|
6c207f78d8 | ||
|
|
a3969c1d2c | ||
|
|
d9563ac0ed | ||
|
|
bea2f674f0 | ||
|
|
80494870c0 | ||
|
|
d25847602b | ||
|
|
283efbbffe | ||
|
|
2e430a71a3 | ||
|
|
faf2971ff7 | ||
|
|
16c9d4005f | ||
|
|
acf5e30b30 | ||
|
|
76b5540124 | ||
|
|
8bb63c5963 | ||
|
|
13be852eac | ||
|
|
c2e6aa3999 | ||
|
|
0b69ed1612 | ||
|
|
f532f85d8c |
@@ -6,6 +6,7 @@ languages:
|
||||
engines:
|
||||
phpcodesniffer: true
|
||||
exclude_paths:
|
||||
- 'build/*'
|
||||
- 'dev/*'
|
||||
- 'doc/*'
|
||||
- 'test/*'
|
||||
|
||||
@@ -26,7 +26,3 @@ trim_trailing_whitespace = false
|
||||
indent_style = tab
|
||||
trim_trailing_whitespace = true
|
||||
indent_size = 4
|
||||
[*.yml]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
102
.github/CONTRIBUTING.md
vendored
102
.github/CONTRIBUTING.md
vendored
@@ -1,90 +1,56 @@
|
||||
How to contribute to Dolibarr
|
||||
=============================
|
||||
|
||||
Submit a Bug report or a Feature request
|
||||
---------------------------------------
|
||||
Bug reports and feature requests
|
||||
--------------------------------
|
||||
|
||||
<a name="not-a-support-forum"></a>*Note*: **GitHub Issues is not a support forum.**
|
||||
If you have questions about Dolibarr or need help on using the software, please use [the forums](https://www.dolibarr.org/forum.php). Forums exist in different languages.
|
||||
<a name="not-a-support-forum"></a>*Note*: **GitHub Issues is not a support forum.** If you have questions about Dolibarr / need help using the software, please use [the forums](https://www.dolibarr.org/forum.php). Forums exist in different languages.
|
||||
|
||||
Issues to inform about a bug or a development trouble and requests for a new feature, are managed on [GitHub](https://github.com/Dolibarr/dolibarr/issues).
|
||||
Default **language here is English**. So please prepare your contributions in English (we recommend using an online translation service if you don't speak English).
|
||||
Issues are managed on [GitHub](https://github.com/Dolibarr/dolibarr/issues).
|
||||
Default **language here is English**. So please prepare your contributions in English.
|
||||
|
||||
1. Please [use the search engine](https://help.github.com/articles/searching-issues) to check if anyone else has already reported your issue.
|
||||
1. Please [use the search engine](https://help.github.com/articles/searching-issues) to check if nobody's already reported your problem.
|
||||
2. [Create an issue](https://help.github.com/articles/creating-an-issue). Choose an appropriate title. Prepend appropriately with Bug or Feature Request.
|
||||
3. Tell us the version you are using! (look at /htdocs/admin/system/dolibarr.php? and check if you are using the latest version)
|
||||
4. Write a report with as much detail as possible (Use [screenshots](https://help.github.com/articles/issue-attachments) or even screencasts and provide logging and debugging information whenever possible).
|
||||
5. Delete unnecessary submissions.
|
||||
6. **Check your Message at Preview before submitting.**
|
||||
6. **Check your Message at Preview before sending.**
|
||||
|
||||
|
||||
|
||||
<a name="code"></a>
|
||||
|
||||
Submit code
|
||||
<a name="code"></a>Submit code
|
||||
---------------------
|
||||
|
||||
This process describes how a Developer can submit code to the project so it can be analyzed and validated by the PR Maintainer (we call this a Pull Request).
|
||||
|
||||
Definition:
|
||||
- Developer: is the human knowing the development language of the application that wants to change some part of the code by modifying the sources of the project.
|
||||
- PR Maintainer: is the human knowing the development language and code who checks that the code submitted for approbation is correct to validate it, in other words, the PR Maintainer is the approbator of commits.
|
||||
- Release Maintainer: is the human that validates that a freeze/beta version is ok to be released officially as a stable version.
|
||||
|
||||
|
||||
### Basic workflow
|
||||
|
||||
As the Developer:
|
||||
|
||||
1. Check you agree with the terms of the [DCO - Developer's Certificate of Origin](https://github.com/Dolibarr/dolibarr/blob/develop/DCO)
|
||||
2. [Fork](https://help.github.com/articles/fork-a-repo) the [GitHub repository](https://github.com/Dolibarr/dolibarr).
|
||||
3. Clone your fork.
|
||||
4. Choose a branch(See the [Branches](#branches) section below).
|
||||
5. Read our developer documentation on the [Dolibarr Wiki](https://wiki.dolibarr.org/index.php?title=Developer_documentation).
|
||||
6. Commit and push your changes.
|
||||
7. [Make a pull request](https://help.github.com/articles/creating-a-pull-request).
|
||||
|
||||
As the PR Maintainer:
|
||||
|
||||
7. The PR Maintainer will check and decide if he approves or not the commits. During this step, the PR Maintainer can modify your own code to make it valid for approbation or ask you to make the change yourself. For this the PR Maintainer may add commits to a PR. Depending on the tools used (can be done from github directly or from an IDE), such commits may be done directly after validating your PR (for example to complete it).
|
||||
|
||||
As the Release Maintainer:
|
||||
|
||||
8. A tag will be added to take a snapshot of the code with all the changes approved by PR Maintainers, when ready to do a release.
|
||||
|
||||
|
||||
Note: Project leader(Master Yoda and BDFL) retains all above roles and can directly commit to the project without a PR. Of course anyone can check commit history and comment!
|
||||
1. [Fork](https://help.github.com/articles/fork-a-repo) the [GitHub repository](https://github.com/Dolibarr/dolibarr).
|
||||
2. Clone your fork.
|
||||
3. Choose a branch(See the [Branches](#branches) section below).
|
||||
4. Read our developer documentation on the [Dolibarr Wiki](https://wiki.dolibarr.org/index.php?title=Developer_documentation).
|
||||
5. Commit and push your changes.
|
||||
6. [Make a pull request](https://help.github.com/articles/creating-a-pull-request).
|
||||
|
||||
|
||||
<span id="branches" name="branches"></span>
|
||||
|
||||
### Branches
|
||||
|
||||
Unless you're fixing a bug, all pull requests should be made against the *develop* branch.
|
||||
|
||||
If you're fixing a bug, it is preferred that you make a pull request against the oldest version affected.
|
||||
If you're fixing a bug, it is preferred that you cook your fix and pull request it against an oldest version affected.
|
||||
|
||||
We recommend to push it into N - 2 where N is the latest version available, if not possible into version N - 1, and finally into develop.
|
||||
|
||||
The rule N - 2 is just a tip if you don't know which version to choose to get the best compromise between ease of correction and number of potential beneficiaries of the correction.
|
||||
|
||||
If you push a bug fix on a very old version it is still going to be merged and propagated into newer versions(choose wisely because old versions depend on old deprecated/unsupported versions of PHP and external libraries).
|
||||
We recommend to push it into N - 2 for N the latest version available, if not possible into version N - 1, and finally into develop.
|
||||
This is just a recommendation, currently, if you push a bug fix on a very old version, it is still merged and propagated into
|
||||
higher versions.
|
||||
|
||||
The rule N - 2 is just a tip if you don't know which version to choose to get the best the best compromise between ease of correction
|
||||
and number of potential beneficiaries of the correction.
|
||||
|
||||
|
||||
### General rules
|
||||
|
||||
- As the Developer, please don't edit the ChangeLog file. This file is generated from all commit messages during the release process by the Project releaser.
|
||||
|
||||
- As the Developer: Do not submit changes into files xx_XX/afile.lang. They are language files and are updated/synced automatically from Transifex. If you need to add a new language file, just add it for the en_US language.
|
||||
|
||||
- As the Release Maintainer: The Release Maintainer will decide to make a new release as soon as the planning of the release is reached and the code in the branch to release reach the status of "No more known serious bugs".
|
||||
Please don't edit the ChangeLog file. This file is generated from all commit messages during release process by the project manager.
|
||||
|
||||
|
||||
<a name="commits"></a>
|
||||
|
||||
### Commits
|
||||
|
||||
### <a name="commits"></a>Commits
|
||||
Use clear commit messages with the following structure:
|
||||
|
||||
```plaintext
|
||||
@@ -140,9 +106,9 @@ FIX|Fix #456 Short description (where #456 is number of bug fix, if it exists. I
|
||||
or
|
||||
CLOSE|Close #456 Short description (where #456 is number of feature request, if it exists. In upper case to appear into ChangeLog)
|
||||
or
|
||||
NEW|New|QUAL|Qual|PERF|Perf Short description (In upper case to appear into ChangeLog, use this if you add a feature not tracked, otherwise use CLOSE #xxx)
|
||||
NEW|New|QUAL|Qual|PERF|Perf Short description (In upper case to appear into ChangeLog, use this if you add a feature not tracked, otherwise use CLOSE #456)
|
||||
or
|
||||
Short description (when the commit is not introducing a feature nor closing a bug)
|
||||
Short description (when the commit is not introducing feature nor closing a bug)
|
||||
|
||||
Long description (Can span across multiple lines).
|
||||
</pre>
|
||||
@@ -153,17 +119,17 @@ 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
|
||||
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.
|
||||
|
||||
* When submitting a pull request, use same rule as [Commits](#commits) for the message. If your pull request only contains 1 commit, GitHub will be smart enough to fill it for you. Otherwise, please be a bit verbose about what you're providing.
|
||||
|
||||
* A screenshot will be always required for any PR of change/addition of a GUI behavior.
|
||||
* A screenshot will be always required for any PR of change/addition of a GUI behaviour.
|
||||
|
||||
Also, some code changes need a prior approbation:
|
||||
|
||||
* if you want to include a new external library (into htdocs/includes directory), please contact the core project manager first (mention @dolibarr-jedi in your issue) to see if such a library can be accepted.
|
||||
* if you want to include a new external library (into htdocs/includes directory), please ask before to the core project manager (mention @dolibarr-jedi in your issue) to see if such a library can be accepted.
|
||||
|
||||
* if you add new tables or fields, you MUST first submit a standalone PR with the data structure changes you plan to add/modify (and only data structure changes). Start development only once this data structure has been accepted.
|
||||
|
||||
@@ -171,12 +137,12 @@ Once a PR has been submitted, you may need to wait for its integration. It is co
|
||||
|
||||
If the label of PR start with "Draft" or "WIP" (Work In Progress), it will not be analyzed for merging until you change the label of the PR (but it can be analyzed for discussion).
|
||||
|
||||
If your PR has errors reported by the Continuous Integration Platform, it means your PR is not valid and nothing will be done with it. It will be kept open to allow developers to fix this, or it may be closed several months later. Don't expect anything on your PR if you have such errors, you MUST first fix the Continuous Integration error to have it taken into consideration.
|
||||
If your PR has errors reported by the Continuous Integration Platform, it means your PR is not valid and nothing will be done with it. It will be kept open to allow developers to fix this, or it may be closed several month later. Don't expect anything on your PR if you have such errors, you MUST first fix the Continuous Integration error to have it taken into consideration.
|
||||
|
||||
If the PR is valid, and is kept open for a long time, a tag will also be added on the PR to describe the status of your PR and why the PR is kept open. By putting your mouse on the tag, you will get a full explanation of the tag/status that explains why your PR has not been integrated yet.
|
||||
In most cases, it gives you information of things you have to do to have the PR taken into consideration (for example a change is requested, a conflict is expected to be solved, some questions were asked). If you have a yellow, red flag of purple flag, don't expect to have your PR validated. You must first provide the answer the tag asks you. The majority of open PRs are waiting an action of the author of the PR.
|
||||
If the PR is valid, and is kept open for a long time, a tag will also be added on the PR to describe the status of your PR and why the PR is kept open. By putting your mouse on the tag, you will get a full explanation of the tag/status that explain why your PR has not been integrated yet.
|
||||
In most cases, it gives you information of things you have to do to have the PR taken into consideration (for example a change is requested, a conflict is expected to be solved, some questions were asked). If you have a yellow, red flag of purple flag, don't expect to have your PR validated. You must first provide the answer the tag ask you. The majority of open PR are waiting an action of the author of the PR.
|
||||
|
||||
Statistics on Dolibarr project shows that 95% of submitted PRs are reviewed and tagged. Average answer delay is also one of the best among Open source projects (just few days before having the Answer Tag set). This is one of the most important ratio of answered PRs in Open Source world for a major project. Don't expect the core team to reach 100%.
|
||||
Statistics on Dolibarr project shows that 95% of submitted PR are reviewed and tagged. Average answer delay is also one of the best among Open source projects (just few days before having the Answer Tag set). This is one of the most important ratio of answered PR in Open Source world for a major project. Don't expect the core team to reach the 100%.
|
||||
A so high ratio is very rare on a so popular project and with the increasing popularity of Dolibarr, this ratio will probably decrease in future to a more common level.
|
||||
|
||||
|
||||
@@ -185,15 +151,15 @@ A so high ratio is very rare on a so popular project and with the increasing pop
|
||||
|
||||
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/).
|
||||
|
||||
Translations done on transifex are available in the next major release.
|
||||
|
||||
Note: Sometimes, the source text (English) is modified. In such a case, the translation is reset. Transifex assumes that if the original source
|
||||
Note: Sometimes, the source text (English) is modified. In such a case, the translation is reset. Transifex assume that if the original source
|
||||
has changed, the translation is surely no more correct so must be done again. But old translation is not lost and you can use the tab "History"
|
||||
to retrieve all old translations of a source text and restore the translation in one click with no need to retranslate it if there is no need to.
|
||||
to retrieve all old translation of a source text, and restore the translation in one click with no need to retranslate it if there is no need to.
|
||||
|
||||
|
||||
### Resources
|
||||
|
||||
7
.github/PULL_REQUEST_TEMPLATE.md
vendored
7
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -1,9 +1,8 @@
|
||||
# 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.*
|
||||
*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)*
|
||||
- ***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*
|
||||
|
||||
|
||||
@@ -19,10 +18,6 @@
|
||||
[*Long description*]
|
||||
|
||||
|
||||
# UIUX|Uiux [*Short description*]
|
||||
[*Long description*]
|
||||
|
||||
|
||||
# PERF|Perf #[*issue_number Short 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
|
||||
4
.github/scripts/get_changed_php.sh
vendored
4
.github/scripts/get_changed_php.sh
vendored
@@ -70,9 +70,9 @@ all_changed_files=$(IFS=" " ; echo "${changed_php_files[*]}")
|
||||
|
||||
# Determine changed files flag
|
||||
if [ -z "$all_changed_files" ]; then
|
||||
any_changed="false"
|
||||
any_changed="false"
|
||||
else
|
||||
any_changed="true"
|
||||
any_changed="true"
|
||||
fi
|
||||
|
||||
# Set outputs for GitHub Actions if GITHUB_OUTPUT is available
|
||||
|
||||
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
|
||||
- ci-on-push.yml
|
||||
On PR & Merge, always run:
|
||||
|
||||
This run the actions:
|
||||
- pre-commit;
|
||||
- phan.
|
||||
|
||||
- pre-commit.yml
|
||||
- phan.yml
|
||||
- phpstan.yml
|
||||
When all succeed, start:
|
||||
When both succeed, start:
|
||||
|
||||
- phpstan;
|
||||
- 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
|
||||
|
||||
|
||||
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
|
||||
|
||||
13
.github/workflows/cache-clean-pr.yml
vendored
13
.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
|
||||
# See https://github.com/actions/cache/blob/main/tips-and-workarounds.md#force-deletion-of-caches-overriding-default-cache-eviction-policy
|
||||
on:
|
||||
pull_request:
|
||||
types: [closed]
|
||||
@@ -20,17 +19,17 @@ jobs:
|
||||
- name: Cleanup
|
||||
run: |
|
||||
gh extension install actions/gh-actions-cache
|
||||
REPO="${{ github.repository }}"
|
||||
BRANCH="refs/pull/${{ github.event.pull_request.number }}/merge"
|
||||
REPO=${{ github.repository }}
|
||||
BRANCH=refs/pull/${{ github.event.pull_request.number }}/merge
|
||||
echo "Fetching list of cache key"
|
||||
cacheKeysForPR=$(gh actions-cache list -R "$REPO" -B "$BRANCH" | cut -f 1 )
|
||||
cacheKeysForPR=$(gh actions-cache list -R $REPO -B $BRANCH | cut -f 1 )
|
||||
|
||||
## Setting this to not fail the workflow while deleting cache keys.
|
||||
## Setting this to not fail the workflow while deleting cache keys.
|
||||
set +e
|
||||
echo "Deleting caches..."
|
||||
for cacheKey in $cacheKeysForPR
|
||||
do
|
||||
gh actions-cache delete "$cacheKey" -R "$REPO" -B "$BRANCH" --confirm
|
||||
gh actions-cache delete $cacheKey -R $REPO -B $BRANCH --confirm
|
||||
done
|
||||
echo "Done"
|
||||
env:
|
||||
|
||||
5
.github/workflows/ci-on-pull_request.yml
vendored
5
.github/workflows/ci-on-pull_request.yml
vendored
@@ -16,7 +16,7 @@ jobs:
|
||||
phpstan:
|
||||
uses: ./.github/workflows/phpstan.yml
|
||||
secrets: inherit
|
||||
needs: [pre-commit]
|
||||
needs: [pre-commit, phan]
|
||||
with:
|
||||
gh_event: ${{ github.event_name }}
|
||||
#windows-ci:
|
||||
@@ -30,12 +30,11 @@ jobs:
|
||||
# needs: [pre-commit, phan]
|
||||
# needs: [windows-ci]
|
||||
secrets: inherit
|
||||
needs: [pre-commit, phan, phpstan]
|
||||
uses: ./.github/workflows/gh-travis.yml
|
||||
with:
|
||||
gh_event: ${{ github.event_name }}
|
||||
|
||||
# Note (not tested, from https://github.com/orgs/community/discussions/38361)
|
||||
# To cancel jobs if one fails, the following action may help
|
||||
# To cancel jobs if one failes, the following action may help
|
||||
# - if: "failure()"
|
||||
# uses: "andymckay/cancel-action@0.3"
|
||||
|
||||
5
.github/workflows/ci-on-push.yml
vendored
5
.github/workflows/ci-on-push.yml
vendored
@@ -16,7 +16,7 @@ jobs:
|
||||
phpstan:
|
||||
uses: ./.github/workflows/phpstan.yml
|
||||
secrets: inherit
|
||||
needs: [pre-commit]
|
||||
needs: [pre-commit, phan]
|
||||
with:
|
||||
gh_event: ${{ github.event_name }}
|
||||
windows-ci:
|
||||
@@ -30,12 +30,11 @@ jobs:
|
||||
# needs: [pre-commit, phan]
|
||||
# needs: [windows-ci]
|
||||
secrets: inherit
|
||||
needs: [pre-commit, phan, phpstan]
|
||||
uses: ./.github/workflows/gh-travis.yml
|
||||
with:
|
||||
gh_event: ${{ github.event_name }}
|
||||
|
||||
# Note (not tested, from https://github.com/orgs/community/discussions/38361)
|
||||
# To cancel jobs if one fails, the following action may help
|
||||
# To cancel jobs if one failes, the following action may help
|
||||
# - if: "failure()"
|
||||
# uses: "andymckay/cancel-action@0.3"
|
||||
|
||||
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
|
||||
27
.github/workflows/exakat.yml
vendored
Normal file
27
.github/workflows/exakat.yml
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
# 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
|
||||
- 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
|
||||
@@ -35,14 +35,14 @@ jobs:
|
||||
--health-timeout 5s
|
||||
--health-retries 5
|
||||
ports:
|
||||
- 5432:5432
|
||||
- 5432:5432
|
||||
|
||||
steps:
|
||||
# git clone dolibarr into GITHUB_WORKSPACE = /home/runner/work/dolibarr/dolibarr
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 1
|
||||
|
||||
|
||||
- name: Version PHP
|
||||
run: |
|
||||
php -i | head -
|
||||
@@ -59,7 +59,7 @@ jobs:
|
||||
sudo apt install apache2 php7.1 php7.1-cli php7.1-curl php7.1-mysql php7.1-pgsql php7.1-gd php7.1-imap php7.1-intl php7.1-ldap php7.1-xml php7.1-mbstring php7.1-xml php7.1-zip libapache2-mod-php7.1
|
||||
sudo update-alternatives --set php /usr/bin/php7.1
|
||||
php -i | head -
|
||||
|
||||
|
||||
cd $GITHUB_WORKSPACE
|
||||
ls $GITHUB_WORKSPACE
|
||||
composer -n require --ignore-platform-reqs phpunit/phpunit ^7.5 \
|
||||
@@ -76,7 +76,7 @@ jobs:
|
||||
sudo rm -fr htdocs/includes/phpunit/php-code-coverage/src/Report/Html
|
||||
|
||||
- name: Adding path of binaries tools installed by composer to the PATH
|
||||
run: |
|
||||
run: |
|
||||
export PATH="$GITHUB_WORKSPACE/htdocs/includes/bin:$PATH"
|
||||
echo $PATH
|
||||
# We must have a directory bin created by the previous composer call
|
||||
@@ -107,32 +107,32 @@ jobs:
|
||||
psql --version
|
||||
echo "Check pgloader version"
|
||||
pgloader --version
|
||||
|
||||
|
||||
- name: Create database
|
||||
run: |
|
||||
pwd
|
||||
echo GITHUB_WORKSPACE = $GITHUB_WORKSPACE
|
||||
echo GITHUB_WORKSPACE = $GITHUB_WORKSPACE
|
||||
sudo apt-get install -y mysql-client
|
||||
mysql --version | head -
|
||||
mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "SELECT VERSION();" | head -
|
||||
mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "SHOW DATABASES"
|
||||
|
||||
|
||||
echo "Drop and create database"
|
||||
mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e 'DROP DATABASE IF EXISTS travis;'
|
||||
mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "CREATE DATABASE IF NOT EXISTS travis CHARACTER SET = 'utf8';"
|
||||
mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "CREATE USER 'travis'@'127.0.0.1' IDENTIFIED BY 'password';"
|
||||
mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e 'GRANT ALL PRIVILEGES ON travis.* TO travis@127.0.0.1;'
|
||||
mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e 'FLUSH PRIVILEGES;'
|
||||
|
||||
mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -D travis < dev/initdemo/mysqldump_dolibarr_3.5.0.sql
|
||||
|
||||
mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -D travis -e "UPDATE llx_const set value = '0666' WHERE name = 'MAIN_UMASK';"
|
||||
|
||||
mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -D travis < dev/initdemo/mysqldump_dolibarr_3.5.0.sql
|
||||
|
||||
mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -D travis -e "UPDATE llx_const set value = '0666' WHERE name = 'MAIN_UMASK';"
|
||||
|
||||
echo "Init postgresql database"
|
||||
echo "Init postgresql database"
|
||||
ps fauxww | grep postgres
|
||||
ls /etc/postgresql/14/main/
|
||||
sudo chmod -R a+rwx /etc/postgresql/14/main/pg_hba.conf
|
||||
|
||||
|
||||
sudo sed -i -e '/local.*peer/s/postgres/all/' -e 's/peer\|md5/trust/g' /etc/postgresql/14/main/pg_hba.conf
|
||||
sudo cat /etc/postgresql/14/main/pg_hba.conf
|
||||
|
||||
@@ -144,7 +144,7 @@ jobs:
|
||||
|
||||
sudo mkdir -p /tmp/pgloader
|
||||
sudo chmod -R a+rwx /tmp/pgloader/
|
||||
|
||||
|
||||
echo sudo pgloader mysql://root:password@127.0.0.1:32574/travis postgresql://postgres:postgres@127.0.0.1:5432/travis
|
||||
sudo pgloader mysql://root:password@127.0.0.1:32574/travis postgresql://postgres:postgres@127.0.0.1:5432/travis
|
||||
echo 'ALTER SEQUENCE llx_accountingaccount_rowid_seq RENAME TO llx_accounting_account_rowid_seq' | psql postgresql://postgres:postgres@127.0.0.1:5432/travis
|
||||
@@ -190,7 +190,7 @@ jobs:
|
||||
echo '$'force_install_mainforcehttps=false';' >> $INSTALL_FORCED_FILE
|
||||
echo '$'force_install_main_data_root=\'/var/www/html\'';' >> $INSTALL_FORCED_FILE
|
||||
cat $INSTALL_FORCED_FILE
|
||||
|
||||
|
||||
- name: Create document directory
|
||||
run: |
|
||||
echo "Create documents directory and set permissions"
|
||||
@@ -199,9 +199,9 @@ jobs:
|
||||
sudo chmod -R a+rwx /var/www/html/documents
|
||||
sudo echo "***** First line of dolibarr.log" > /var/www/html/documents/dolibarr.log
|
||||
sudo chmod a+rwx /var/www/html/documents/dolibarr.log
|
||||
|
||||
|
||||
- name: Copy app into /var/www
|
||||
run: |
|
||||
run: |
|
||||
sudo cp -r $GITHUB_WORKSPACE/htdocs/. /var/www/html
|
||||
sudo mv /var/www/html/index.html /var/www/html/index.disabled.html
|
||||
sudo ln -fs /var/www/html /var/www/htdocs
|
||||
@@ -217,7 +217,7 @@ jobs:
|
||||
a2query -s
|
||||
a2query -m
|
||||
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
|
||||
a2ensite 000-default
|
||||
a2enmod php7.1
|
||||
@@ -245,7 +245,7 @@ jobs:
|
||||
# The wget should return a page with line '<meta name="generator" content="Dolibarr installer">
|
||||
wget -O - --debug http://127.0.0.1 > $GITHUB_WORKSPACE/test.html 2>&1
|
||||
head -n 200 $GITHUB_WORKSPACE/test.html
|
||||
|
||||
|
||||
echo Logs are...
|
||||
#sudo cat /tmp/install.log
|
||||
sudo cat /var/log/apache2/access.log
|
||||
@@ -287,7 +287,7 @@ jobs:
|
||||
php upgrade.php 6.0.0 7.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade600700.log
|
||||
php upgrade2.php 6.0.0 7.0.0 > $GITHUB_WORKSPACE/upgrade600700-2.log
|
||||
php step5.php 6.0.0 7.0.0 > $GITHUB_WORKSPACE/upgrade600700-3.log
|
||||
|
||||
|
||||
echo "\dt llx_c_paiement" | psql 'postgresql://postgres:postgres@127.0.0.1:5432/travis'
|
||||
echo "\dt llx_c_payment_term" | psql 'postgresql://postgres:postgres@127.0.0.1:5432/travis'
|
||||
|
||||
@@ -324,17 +324,17 @@ jobs:
|
||||
php upgrade.php 17.0.0 18.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade17001800.log
|
||||
php upgrade2.php 17.0.0 18.0.0 > $GITHUB_WORKSPACE/upgrade17001800-2.log
|
||||
php step5.php 17.0.0 18.0.0 > $GITHUB_WORKSPACE/upgrade17001800-3.log
|
||||
|
||||
|
||||
- name: Result of migration scripts
|
||||
if: always()
|
||||
run: |
|
||||
ls -alrt $GITHUB_WORKSPACE/
|
||||
|
||||
|
||||
echo Show content of last file
|
||||
cat "$(ls -rt $GITHUB_WORKSPACE/ | tail -n1)"
|
||||
|
||||
- name: Enabling new modules
|
||||
run: |
|
||||
run: |
|
||||
# Enable modules not enabled into original dump
|
||||
set -e
|
||||
cd /var/www/html/install
|
||||
@@ -361,4 +361,5 @@ jobs:
|
||||
includes/bin/phpunit -d memory_limit=-1 -c /var/www/test/phpunit/phpunittest.xml /var/www/test/phpunit/AllTests.php
|
||||
phpunitresult=$?
|
||||
echo "Phpunit return code = $phpunitresult"
|
||||
set +e
|
||||
set +e
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 1
|
||||
|
||||
|
||||
- name: Version PHP
|
||||
run: |
|
||||
php -i | head -
|
||||
@@ -38,14 +38,14 @@ jobs:
|
||||
sudo composer self-update 2.2.18
|
||||
sudo chmod -R a+rwx /home/runner
|
||||
composer -n config -g vendor-dir htdocs/includes
|
||||
|
||||
|
||||
sudo add-apt-repository -y ppa:ondrej/php
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y pgloader memcached
|
||||
sudo apt install apache2 php8.1 php8.1-cli php8.1-curl php8.1-mysql php8.1-pgsql php8.1-gd php8.1-imap php8.1-intl php8.1-ldap php8.1-xml php8.1-mbstring php8.1-xml php8.1-zip libapache2-mod-php8.1
|
||||
sudo update-alternatives --set php /usr/bin/php8.1
|
||||
php -i | head -
|
||||
|
||||
|
||||
cd $GITHUB_WORKSPACE
|
||||
ls $GITHUB_WORKSPACE
|
||||
composer -n require --ignore-platform-reqs phpunit/phpunit ^8 \
|
||||
@@ -56,7 +56,7 @@ jobs:
|
||||
sudo rm -fr htdocs/includes/phpunit/php-code-coverage/src/Report/Html
|
||||
|
||||
- name: Adding path of binaries tools installed by composer to the PATH
|
||||
run: |
|
||||
run: |
|
||||
export PATH="$GITHUB_WORKSPACE/htdocs/includes/bin:$PATH"
|
||||
echo $PATH
|
||||
# We must have a directory bin created by the previous composer call
|
||||
@@ -87,26 +87,26 @@ jobs:
|
||||
psql --version
|
||||
echo "Check pgloader version"
|
||||
pgloader --version
|
||||
|
||||
|
||||
- name: Create database
|
||||
run: |
|
||||
pwd
|
||||
echo GITHUB_WORKSPACE = $GITHUB_WORKSPACE
|
||||
echo GITHUB_WORKSPACE = $GITHUB_WORKSPACE
|
||||
sudo apt-get install -y mysql-client
|
||||
mysql --version | head -
|
||||
mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "SELECT VERSION();" | head -
|
||||
mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "SHOW DATABASES"
|
||||
|
||||
|
||||
echo "Drop and create database"
|
||||
mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e 'DROP DATABASE IF EXISTS travis;'
|
||||
mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "CREATE DATABASE IF NOT EXISTS travis CHARACTER SET = 'utf8';"
|
||||
mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "CREATE USER 'travis'@'127.0.0.1' IDENTIFIED BY 'password';"
|
||||
mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e 'GRANT ALL PRIVILEGES ON travis.* TO travis@127.0.0.1;'
|
||||
mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e 'FLUSH PRIVILEGES;'
|
||||
|
||||
mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -D travis < dev/initdemo/mysqldump_dolibarr_3.5.0.sql
|
||||
|
||||
mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -D travis < dev/initdemo/mysqldump_dolibarr_3.5.0.sql
|
||||
|
||||
mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -D travis -e "UPDATE llx_const set value = '0666' WHERE name = 'MAIN_UMASK';"
|
||||
mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -D travis -e "UPDATE llx_const set value = '0666' WHERE name = 'MAIN_UMASK';"
|
||||
|
||||
- name: Generate Dolibarr conf file
|
||||
run: |
|
||||
@@ -145,7 +145,7 @@ jobs:
|
||||
echo '$'force_install_mainforcehttps=false';' >> $INSTALL_FORCED_FILE
|
||||
echo '$'force_install_main_data_root=\'/var/www/html\'';' >> $INSTALL_FORCED_FILE
|
||||
cat $INSTALL_FORCED_FILE
|
||||
|
||||
|
||||
- name: Create document directory
|
||||
run: |
|
||||
echo "Create documents directory and set permissions"
|
||||
@@ -154,9 +154,9 @@ jobs:
|
||||
sudo chmod -R a+rwx /var/www/html/documents
|
||||
sudo echo "***** First line of dolibarr.log" > /var/www/html/documents/dolibarr.log
|
||||
sudo chmod a+rwx /var/www/html/documents/dolibarr.log
|
||||
|
||||
|
||||
- name: Copy app into /var/www
|
||||
run: |
|
||||
run: |
|
||||
sudo cp -r $GITHUB_WORKSPACE/htdocs/. /var/www/html
|
||||
sudo mv /var/www/html/index.html /var/www/html/index.disabled.html
|
||||
sudo ln -fs /var/www/html /var/www/htdocs
|
||||
@@ -172,7 +172,7 @@ jobs:
|
||||
a2query -s
|
||||
a2query -m
|
||||
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
|
||||
a2ensite 000-default
|
||||
a2enmod php8.1
|
||||
@@ -200,7 +200,7 @@ jobs:
|
||||
# The wget should return a page with line '<meta name="generator" content="Dolibarr installer">
|
||||
wget -O - --debug http://127.0.0.1 > $GITHUB_WORKSPACE/test.html 2>&1
|
||||
head -n 200 $GITHUB_WORKSPACE/test.html
|
||||
|
||||
|
||||
echo Logs are...
|
||||
#sudo cat /tmp/install.log
|
||||
sudo cat /var/log/apache2/access.log
|
||||
@@ -274,17 +274,17 @@ jobs:
|
||||
php upgrade.php 17.0.0 18.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade17001800.log
|
||||
php upgrade2.php 17.0.0 18.0.0 > $GITHUB_WORKSPACE/upgrade17001800-2.log
|
||||
php step5.php 17.0.0 18.0.0 > $GITHUB_WORKSPACE/upgrade17001800-3.log
|
||||
|
||||
|
||||
- name: Result of migration scripts
|
||||
if: always()
|
||||
run: |
|
||||
ls -alrt $GITHUB_WORKSPACE/
|
||||
|
||||
|
||||
echo Show content of last file
|
||||
cat "$(ls -rt $GITHUB_WORKSPACE/ | tail -n1)"
|
||||
|
||||
- name: Enabling new modules
|
||||
run: |
|
||||
run: |
|
||||
# Enable modules not enabled into original dump
|
||||
set -e
|
||||
cd /var/www/html/install
|
||||
@@ -311,7 +311,7 @@ jobs:
|
||||
includes/bin/phpunit -d memory_limit=-1 -c /var/www/test/phpunit/phpunittest.xml /var/www/test/phpunit/AllTests.php
|
||||
phpunitresult=$?
|
||||
echo "Phpunit return code = $phpunitresult"
|
||||
set +e
|
||||
set +e
|
||||
|
||||
- name: Code quality check - Lint
|
||||
if: github.event_name == 'push'
|
||||
@@ -325,9 +325,10 @@ jobs:
|
||||
- name: Code quality check - phpcs
|
||||
if: github.event_name == 'push'
|
||||
run: |
|
||||
htdocs/includes/bin/phpcs -s -p -d memory_limit=-1 --extensions=php --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 --runtime-set ignore_warnings_on_exit true .;
|
||||
htdocs/includes/bin/phpcs -s -p -d memory_limit=-1 --extensions=php --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 --runtime-set ignore_warnings_on_exit true .;
|
||||
|
||||
- name: Code quality check - var-dump-check
|
||||
if: github.event_name == 'push'
|
||||
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 .
|
||||
|
||||
|
||||
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)'
|
||||
6
.github/workflows/phan.yml
vendored
6
.github/workflows/phan.yml
vendored
@@ -14,7 +14,8 @@ concurrency:
|
||||
cancel-in-progress: true
|
||||
env:
|
||||
gh_event: ${{ inputs.gh_event || github.event_name }}
|
||||
PHAN_CONFIG: dev/tools/phan/config.php
|
||||
PHAN_CONFIG: >
|
||||
${{ 'dev/tools/phan/config.php' }}
|
||||
PHAN_BASELINE: dev/tools/phan/baseline.txt
|
||||
PHAN_MIN_PHP: 7.0
|
||||
PHAN_QUICK: ${{ github.event.schedule && '' || '--quick' }}
|
||||
@@ -39,8 +40,7 @@ jobs:
|
||||
tools: cs2pr,phan
|
||||
- name: Run Phan analysis
|
||||
run: |
|
||||
# shellcheck disable=2086
|
||||
phan $PHAN_QUICK -k "$PHAN_CONFIG" -B "$PHAN_BASELINE" --analyze-twice --minimum-target-php-version "$PHAN_MIN_PHP" --output-mode=checkstyle -o _phan.xml
|
||||
phan $PHAN_QUICK -k $PHAN_CONFIG -B $PHAN_BASELINE --analyze-twice --minimum-target-php-version $PHAN_MIN_PHP --output-mode=checkstyle -o _phan.xml
|
||||
- name: Add results to PR
|
||||
if: ${{ always() }}
|
||||
run: |
|
||||
|
||||
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
|
||||
12
.github/workflows/phpstan.yml
vendored
12
.github/workflows/phpstan.yml
vendored
@@ -36,14 +36,14 @@ jobs:
|
||||
steps:
|
||||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
# Get PHP and addons
|
||||
- name: Setup PHP
|
||||
id: setup-php
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: ${{ matrix.php-version }}
|
||||
coverage: none # disable xdebug, pcov
|
||||
tools: phpstan:2.1.8, cs2pr
|
||||
tools: phpstan:1, cs2pr
|
||||
extensions: calendar, json, imagick, gd, zip, mbstring, intl, opcache, imap,
|
||||
mysql, pgsql, sqlite3, ldap, xml, mcrypt
|
||||
|
||||
@@ -67,7 +67,7 @@ jobs:
|
||||
- name: Run PHPStan
|
||||
id: phpstan
|
||||
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
|
||||
|
||||
# Save cache
|
||||
@@ -85,9 +85,3 @@ jobs:
|
||||
name: phpstan-srcrt
|
||||
path: ${{ github.workspace }}/_stan.xml
|
||||
retention-days: 2
|
||||
# Run PHPStan generate baseline
|
||||
# - name: Run PHPStan generate baseline
|
||||
# id: phpstan-baseline
|
||||
# if: ${{ success() }}
|
||||
# run: |
|
||||
# phpstan -vv analyse --memory-limit 7G -a dev/build/phpstan/bootstrap_action.php --generate-baseline dev/build/phpstan/phpstan-baseline.neon
|
||||
|
||||
82
.github/workflows/phpstan_baseline.yml
vendored
82
.github/workflows/phpstan_baseline.yml
vendored
@@ -1,82 +0,0 @@
|
||||
---
|
||||
# This run the script to update the phpstan baseline file dev/build/phpstan/phpstan-baseline.neon
|
||||
name: 'PHPStan baseline'
|
||||
|
||||
on:
|
||||
# Every day we want to refresh the baseline
|
||||
schedule:
|
||||
- cron: '0 12 * * *'
|
||||
|
||||
# We want to be able to manually refresh the baseline too
|
||||
workflow_dispatch:
|
||||
|
||||
workflow_call:
|
||||
inputs:
|
||||
gh_event:
|
||||
required: true
|
||||
type: string
|
||||
# Run PHPStan analyse on pull requests
|
||||
# pull_request:
|
||||
|
||||
permissions: {} # none
|
||||
|
||||
env:
|
||||
PHP_VERSION: '8.2'
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
gh_event: ${{ inputs.gh_event || github.event_name }}
|
||||
CACHE_KEY_PART: ${{ ( inputs.gh_event == 'pull_request' || github.event_name == 'pull_request' ) && format('{0}-{1}', github.base_ref, github.head_ref) || github.ref_name }}
|
||||
jobs:
|
||||
phpstan:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: ${{ env.PHP_VERSION }}
|
||||
coverage: none # disable xdebug, pcov
|
||||
tools: phpstan:2.1.8, cs2pr
|
||||
extensions: calendar, json, imagick, gd, zip, mbstring, intl, opcache, imap,
|
||||
mysql, pgsql, sqlite3, ldap, xml, mcrypt
|
||||
env:
|
||||
fail-fast: true
|
||||
# Restore old cache
|
||||
- name: Restore phpstan cache
|
||||
id: cache
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ./.github/tmp
|
||||
key: phpstan-cache-${{ env.PHP_VERSION }}-${{ env.CACHE_KEY_PART }}-${{
|
||||
github.run_id }}
|
||||
restore-keys: |
|
||||
phpstan-cache-${{ env.PHP_VERSION }}-${{ env.CACHE_KEY_PART }}-
|
||||
phpstan-cache-${{ env.PHP_VERSION }}-${{ github.head_ref }}-
|
||||
phpstan-cache-${{ env.PHP_VERSION }}-${{ github.base_ref }}-
|
||||
phpstan-cache-${{ env.PHP_VERSION }}-
|
||||
- uses: ruudk/phpstan-baseline-refresh-create-pr-action@main
|
||||
with:
|
||||
github_token: ${{ env.GH_TOKEN }}
|
||||
phpstan_path: phpstan
|
||||
configuration_path: phpstan.neon.dist
|
||||
phpstan_additional_arguments: --memory-limit 7G -a dev/build/phpstan/bootstrap_action.php
|
||||
baseline_path: dev/build/phpstan/phpstan-baseline.neon
|
||||
commit_name: Dolibot
|
||||
commit_email: dolibarr-bot@users.noreply.github.com
|
||||
commit_message: PHPStan > Update baseline
|
||||
target_branch: develop
|
||||
# pr_create: ${{ (github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && 1 || 0 }}
|
||||
pr_create: 1
|
||||
pr_title: PHPStan > Update baseline
|
||||
pr_reviewer: eldy
|
||||
pr_body: |
|
||||
This PR is automatically created to cleanup our baseline.
|
||||
|
||||
Since the last refresh of the baseline we have fixed {0} ignored errors.
|
||||
|
||||
Keep it up all! :muscle:
|
||||
|
||||
There are only {1} ignored errors left :sweat_smile:
|
||||
46
.github/workflows/pre-commit.yml
vendored
46
.github/workflows/pre-commit.yml
vendored
@@ -23,33 +23,16 @@ jobs:
|
||||
RAW_LOG: pre-commit.log
|
||||
CS_XML: pre-commit.xml
|
||||
steps:
|
||||
#- name: Install required tools
|
||||
# run: sudo apt-get update && sudo apt-get install cppcheck
|
||||
# if: false
|
||||
- name: Install required tools
|
||||
run: sudo apt-get update && sudo apt-get install cppcheck
|
||||
if: false
|
||||
|
||||
# Checkout git sources to analyze
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
# Try to get the list of modified files into steps.changed-php.outputs.all_changed_files
|
||||
#- 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
|
||||
# The next uses the git API because there is no clone yet.
|
||||
# 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)
|
||||
id: changed-php
|
||||
if: env.gh_event == 'pull_request'
|
||||
@@ -57,9 +40,6 @@ jobs:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
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
|
||||
# This ensures one of them exists.
|
||||
- name: Create requirements.txt if no requirements.txt or pyproject.toml
|
||||
@@ -82,9 +62,8 @@ jobs:
|
||||
- name: Extract PHP version
|
||||
id: extract-php-version
|
||||
run: |
|
||||
# shellcheck disable=SC2016
|
||||
PHP_VERSION=$(sed -n 's/.*\$arrayphpmaxversionwarning\s*=\s*array\s*(\s*\([0-9]\+\)\s*,\s*\([0-9]\+\).*/\1.\2/p' htdocs/install/check.php)
|
||||
echo "PHP_VERSION=$PHP_VERSION" >> "$GITHUB_ENV"
|
||||
echo "PHP_VERSION=$PHP_VERSION" >> $GITHUB_ENV
|
||||
|
||||
- name: Setup PHPCS
|
||||
uses: shivammathur/setup-php@v2
|
||||
@@ -116,12 +95,12 @@ jobs:
|
||||
run: |
|
||||
set -o pipefail
|
||||
pre-commit gc
|
||||
pre-commit run --show-diff-on-failure --color=always --all-files | tee "${RAW_LOG}"
|
||||
pre-commit run --show-diff-on-failure --color=always --all-files | tee ${RAW_LOG}
|
||||
|
||||
# The next uses git, which is slow for a bit repo.
|
||||
# - name: Get all changed php files (if PR)
|
||||
# id: changed-php
|
||||
# uses: tj-actions/changed-files@v45
|
||||
# uses: tj-actions/changed-files@v44
|
||||
# if: env.gh_event == 'pull_request'
|
||||
# with:
|
||||
# files: |
|
||||
@@ -133,8 +112,7 @@ jobs:
|
||||
ALL_CHANGED_FILES: ${{ steps.changed-php.outputs.all_changed_files }}
|
||||
run: |
|
||||
set -o pipefail
|
||||
# shellcheck disable=2086
|
||||
pre-commit run php-cs --files ${ALL_CHANGED_FILES} | tee -a "${RAW_LOG}"
|
||||
pre-commit run php-cs --files ${ALL_CHANGED_FILES} | tee -a ${RAW_LOG}
|
||||
|
||||
- name: Run some pre-commit hooks on all files on push to "main" branches
|
||||
if: |
|
||||
@@ -146,12 +124,12 @@ jobs:
|
||||
run: |
|
||||
set -o pipefail
|
||||
ln -sf ~/.cache .cache # Absolute path in .pre-commit-config.yaml
|
||||
pre-commit run --hook-stage manual -a php-cs-with-cache | tee -a "${RAW_LOG}"
|
||||
pre-commit run --hook-stage manual -a sqlfluff-lint | tee -a "${RAW_LOG}"
|
||||
pre-commit run --hook-stage manual -a php-cs-with-cache | tee -a ${RAW_LOG}
|
||||
pre-commit run --hook-stage manual -a sqlfluff-lint | tee -a ${RAW_LOG}
|
||||
ls -l ~/.cache/pre-commit/
|
||||
|
||||
- name: Convert Raw Log to Annotations
|
||||
uses: mdeweerd/logToCheckStyle@v2025.1.1
|
||||
uses: mdeweerd/logToCheckStyle@v2024.3.5
|
||||
if: ${{ failure() }}
|
||||
with:
|
||||
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}}"
|
||||
17
.github/workflows/windows-ci.yml
vendored
17
.github/workflows/windows-ci.yml
vendored
@@ -61,7 +61,7 @@ jobs:
|
||||
KEY_ROOT: ${{ matrix.os }}-${{ env.ckey }}-${{ matrix.php_version }}
|
||||
with:
|
||||
# See https://github.com/actions/cache/issues/1275#issuecomment-1925217178
|
||||
enableCrossOsArchive: true
|
||||
enableCrossOsArchive: true
|
||||
path: |
|
||||
./db_init.sql
|
||||
./db_init.sql.md5
|
||||
@@ -116,7 +116,6 @@ jobs:
|
||||
# Note this is bash (MSYS) on Windows
|
||||
shell: bash
|
||||
run: |
|
||||
# shellcheck disable=SC2129
|
||||
ECHO "#[group]Directory contents to verify cache files, ..."
|
||||
ls -l
|
||||
ECHO "#[endgroup]"
|
||||
@@ -131,12 +130,10 @@ jobs:
|
||||
ls -l
|
||||
ECHO "#[endgroup]"
|
||||
# Export some tool paths to reuse the from CMD shell.
|
||||
{
|
||||
echo "TAIL=$(cygpath -w "$(which tail)")"
|
||||
echo "GREP=$(cygpath -w "$(which grep)")"
|
||||
echo "TEE=$(cygpath -w "$(which tee)")"
|
||||
echo "BASEDIR=$(realpath .)"
|
||||
} >> "$GITHUB_ENV"
|
||||
echo "TAIL=$(cygpath -w "$(which tail)")" >> "$GITHUB_ENV"
|
||||
echo "GREP=$(cygpath -w "$(which grep)")" >> "$GITHUB_ENV"
|
||||
echo "TEE=$(cygpath -w "$(which tee)")" >> "$GITHUB_ENV"
|
||||
echo "BASEDIR=$(realpath .)" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Run PHPUnit tests
|
||||
# continue-on-error: true
|
||||
@@ -165,7 +162,7 @@ jobs:
|
||||
for /f "tokens=2 delims==" %%A in ('doskey /m:err') do EXIT /B %%A
|
||||
|
||||
- name: Convert Raw Log to Annotations
|
||||
uses: mdeweerd/logToCheckStyle@v2025.1.1
|
||||
uses: mdeweerd/logToCheckStyle@v2024.3.5
|
||||
if: ${{ failure() }}
|
||||
with:
|
||||
in: ${{ env.PHPUNIT_LOG }}
|
||||
@@ -189,7 +186,7 @@ jobs:
|
||||
if: ${{ ! cancelled() }}
|
||||
with:
|
||||
# See https://github.com/actions/cache/issues/1275#issuecomment-1925217178
|
||||
enableCrossOsArchive: true
|
||||
enableCrossOsArchive: true
|
||||
key: ${{ steps.cache.outputs.cache-primary-key }}
|
||||
path: |
|
||||
./db_init.sql
|
||||
|
||||
9
.gitignore
vendored
9
.gitignore
vendored
@@ -41,14 +41,13 @@ htdocs/includes/php-parallel-lint/
|
||||
htdocs/includes/sebastian/
|
||||
htdocs/includes/squizlabs/
|
||||
htdocs/includes/webmozart/
|
||||
htdocs/install/install.forced.php
|
||||
htdocs/.well-known/apple-developer-merchantid-domain-association
|
||||
/factory/
|
||||
/output/
|
||||
|
||||
# Node Modules
|
||||
dev/build/yarn-error.log
|
||||
dev/build/node_modules/
|
||||
build/yarn-error.log
|
||||
build/node_modules/
|
||||
node_modules/
|
||||
|
||||
vendor/
|
||||
@@ -84,8 +83,8 @@ doc/install.lock
|
||||
/INI_PHPUNIT
|
||||
|
||||
# ignore cache builds
|
||||
/dev/build/phpstan/phpstan
|
||||
/dev/build/phpstan/bootstrap_custom.php
|
||||
/build/phpstan/phpstan
|
||||
/build/phpstan/bootstrap_custom.php
|
||||
phpstan_custom.neon
|
||||
/.php-cs-fixer.cache
|
||||
/.php_cs.cache
|
||||
|
||||
7
.mailmap
7
.mailmap
@@ -1,14 +1,11 @@
|
||||
# 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
|
||||
# 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> eldy <eldy@destailleur.fr>
|
||||
Laurent Destailleur <eldy@destailleur.fr> Laurent Destailleur <ldestailleur@teclib.com>
|
||||
Laurent Destailleur <eldy@destailleur.fr> eldy10 <eldy10@master8.(none)>
|
||||
Laurent Destailleur <eldy@destailleur.fr> Laurent Destailleur <eldy@destailleur.fr>
|
||||
Laurent Destailleur <eldy@destailleur.fr> Laurent Destailleur <ephpcsdy@destailleur.fr>
|
||||
Regis Houssin <regis.houssin@inodbox.com> Regis Houssin <regis@dolibarr.fr>
|
||||
Regis Houssin <regis.houssin@inodbox.com> Régis Houssin <regishoussin@device5.home>
|
||||
Juanjo Menent <jmenent@2byte.es> simnandez <jmenent@2byte.es>
|
||||
@@ -97,4 +94,4 @@ Anthony Berton <anthony.berton@bb2a.fr> Berton Anthony <anthony.berton@bb2a.fr>
|
||||
Anthony Berton <anthony.berton@bb2a.fr> BB2A-Anthony <anthony.berton@bb2a.fr>
|
||||
Anthony Berton <anthony.berton@bb2a.fr> Anthony Berton <bertonanthony@gmail.com>
|
||||
Anthony Berton <anthony.berton@bb2a.fr> Berton Anthony <bertonanthony@gmail.com>
|
||||
Anthony Berton <anthony.berton@bb2a.fr> BB2A-Anthony <bertonanthony@gmail.com>
|
||||
Anthony Berton <anthony.berton@bb2a.fr> BB2A-Anthony <bertonanthony@gmail.com>
|
||||
@@ -1,9 +1,9 @@
|
||||
---
|
||||
exclude: (?x)^( htdocs/includes/ckeditor/.*|(\.(?!github/workflows)[^/]*/.*))$
|
||||
exclude: (?x)^( htdocs/includes/ckeditor/.*|(\.[^/]*/.*))$
|
||||
repos:
|
||||
# Several miscellaneous checks and fix (on yaml files, end of files fix)
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v5.0.0
|
||||
rev: v4.5.0
|
||||
hooks:
|
||||
# This hook tests the name of the branch and return an error if the name is
|
||||
# 'develop' or an official version 'x.y'
|
||||
@@ -43,7 +43,7 @@ repos:
|
||||
- id: end-of-file-fixer
|
||||
# Check that there are no completely merged file conflicts
|
||||
- id: check-merge-conflict
|
||||
stages: [pre-rebase, pre-commit, pre-merge-commit]
|
||||
stages: [pre-commit, pre-rebase, pre-commit, pre-merge-commit]
|
||||
# Check that files with shebangs have the executable bit set (in git)
|
||||
- id: check-executables-have-shebangs
|
||||
# Check that shell files are executables
|
||||
@@ -51,25 +51,19 @@ repos:
|
||||
exclude:
|
||||
(?x)^( dev/tools/dolibarr-postgres2mysql.php |test/other/test_serialize.php
|
||||
|test/phpunit/textutf8.txt |test/phpunit/textiso.txt |htdocs/includes/.*
|
||||
|htdocs/modulebuilder/template/.* |dev/build/debian/dolibarr.postrm |dev/build/debian/dolibarr.postinst
|
||||
|dev/build/debian/dolibarr.config )$
|
||||
|htdocs/modulebuilder/template/.* |build/debian/dolibarr.postrm |build/debian/dolibarr.postinst
|
||||
|build/debian/dolibarr.config )$
|
||||
# Fix the first UTF8 byte
|
||||
- id: fix-byte-order-marker
|
||||
# Check that there are no files that have are the same when uppercased (conflict on windows)
|
||||
- id: check-case-conflict
|
||||
|
||||
# Gitleaks is a SAST tool for detecting and preventing hardcoded secrets like passwords, api keys, and tokens in git repos
|
||||
# Beautify shell scripts
|
||||
- repo: https://github.com/gitleaks/gitleaks.git
|
||||
rev: v8.24.0
|
||||
rev: v8.16.1
|
||||
hooks:
|
||||
- id: gitleaks
|
||||
|
||||
# Check github actions
|
||||
- repo: https://github.com/rhysd/actionlint
|
||||
rev: v1.7.7
|
||||
hooks:
|
||||
- id: actionlint
|
||||
|
||||
# Beautify shell scripts
|
||||
- repo: https://github.com/lovesegfault/beautysh.git
|
||||
rev: v6.2.1
|
||||
@@ -168,7 +162,7 @@ repos:
|
||||
|
||||
# Prettier (format code, only for non common files)
|
||||
- repo: https://github.com/pre-commit/mirrors-prettier
|
||||
rev: v3.1.0
|
||||
rev: v3.0.3
|
||||
hooks:
|
||||
- id: prettier
|
||||
stages: [manual]
|
||||
@@ -191,7 +185,7 @@ repos:
|
||||
|
||||
# Check format of yaml files
|
||||
- repo: https://github.com/adrienverge/yamllint.git
|
||||
rev: v1.36.2
|
||||
rev: v1.33.0
|
||||
hooks:
|
||||
- id: yamllint
|
||||
args:
|
||||
@@ -201,7 +195,7 @@ repos:
|
||||
|
||||
# Execute codespell to fix typo errors (setup of codespell into dev/tools/codespell/)
|
||||
- repo: https://github.com/codespell-project/codespell
|
||||
rev: v2.4.1
|
||||
rev: v2.2.6
|
||||
hooks:
|
||||
- id: codespell
|
||||
# Due to a current limitation of configuration files,
|
||||
@@ -218,7 +212,7 @@ repos:
|
||||
- -x
|
||||
- dev/tools/codespell/codespell-lines-ignore.txt
|
||||
exclude_types: [image]
|
||||
exclude: (?x)^(.phan/stubs/.*|phpstan\.neon.*)$
|
||||
exclude: (?x)^(.phan/stubs/.*)$
|
||||
additional_dependencies: [tomli]
|
||||
- alias: codespell-lang-en_US
|
||||
# Only for translations with specialised exceptions
|
||||
@@ -244,31 +238,30 @@ repos:
|
||||
|
||||
# Check some shell scripts
|
||||
- repo: https://github.com/shellcheck-py/shellcheck-py
|
||||
rev: v0.10.0.1
|
||||
rev: v0.9.0.6
|
||||
hooks:
|
||||
- id: shellcheck
|
||||
args: [-W, "100"]
|
||||
|
||||
# Check sql file syntax
|
||||
- repo: https://github.com/sqlfluff/sqlfluff
|
||||
rev: 3.3.1
|
||||
rev: 3.0.4
|
||||
hooks:
|
||||
- id: sqlfluff-lint
|
||||
stages: [pre-commit, manual] # manual needed for ci
|
||||
exclude: (?x)^
|
||||
(dev/initdemo/mysqldump_.*\.sql
|
||||
|htdocs/core/menus/init_menu_auguria\.sql
|
||||
|htdocs/includes/.*
|
||||
(htdocs/includes/.*
|
||||
|htdocs/install/doctemplates/websites/.*_template
|
||||
|htdocs/install/doctemplates/websites/website_template.*\.sql
|
||||
|htdocs/install/mysql/data/llx_20_c_departements\.sql
|
||||
|htdocs/install/mysql/data/llx_accounting_account_.*\.sql
|
||||
|htdocs/install/mysql/migration/3\..*\.sql
|
||||
|htdocs/core/menus/init_menu_auguria\.sql
|
||||
|htdocs/install/doctemplates/websites/website_template-.*\.sql
|
||||
|(htdocs/install/mysql/data/(llx_20_c_departements\.sql
|
||||
|llx_accounting_account_.*\.sql)
|
||||
|(htdocs/install/mysql/migration/3\.[256]\.0-.*\.sql)
|
||||
)
|
||||
|htdocs/install/mysql/migration/(1[0-5]|[456789])\.0\.0-.*\.sql
|
||||
|htdocs/install/mysql/migration/3\.([0134789])\.0-.*\.sql
|
||||
|htdocs/install/mysql/migration/repair\.sql
|
||||
|htdocs/install/mysql/tables/llx_bookcal_availabilities-bookcal\.sql
|
||||
|htdocs/install/mysql/tables/llx_categorie.*\.key\.sql
|
||||
|htdocs/install/mysql/tables/llx_categorie(_(account|actioncomm|contact|fournisseur|knowledgemanagement-knowledgemanagement|member|product|project|societe|ticket-ticket|user|warehouse|website_page-website)?\.key\.sql)
|
||||
|htdocs/install/mysql/tables/llx_rights_def\.key\.sql
|
||||
|htdocs/install/pgsql/functions/functions.*\.sql
|
||||
|htdocs/modulebuilder/template/sql/.*\.sql
|
||||
|htdocs/install/pgsql/functions/functions(-(don|loan|mailing|opensurvey|partnership|recruitment|website))?\.sql
|
||||
)$
|
||||
|
||||
42
.travis.yml
42
.travis.yml
@@ -37,7 +37,7 @@ cache:
|
||||
jobs:
|
||||
fast_finish: true
|
||||
allow_failures:
|
||||
- php: 'latest'
|
||||
- php: '8.3'
|
||||
include:
|
||||
- stage: PHP min and max
|
||||
if: type = push
|
||||
@@ -47,16 +47,16 @@ jobs:
|
||||
- TRAVIS_PHP_VERSION=7.1
|
||||
- stage: PHP min and max
|
||||
if: type = pull_request OR type = push
|
||||
php: '8.4'
|
||||
php: '8.2'
|
||||
env:
|
||||
- DB=mysql
|
||||
- TRAVIS_PHP_VERSION=8.4
|
||||
- stage: PHP latest
|
||||
- TRAVIS_PHP_VERSION=8.2
|
||||
- stage: PHP 8.3
|
||||
if: type = push AND branch = develop
|
||||
php: 'latest'
|
||||
php: '8.3'
|
||||
env:
|
||||
- DB=mysql
|
||||
- TRAVIS_PHP_VERSION=latest
|
||||
- TRAVIS_PHP_VERSION=8.3
|
||||
|
||||
notifications:
|
||||
email:
|
||||
@@ -94,12 +94,6 @@ before_install:
|
||||
if [ "$TRAVIS_PHP_VERSION" = '8.3' ]; then
|
||||
sudo apt install unzip apache2 php8.3 php8.3-cli php8.3-curl php8.3-mysql php8.3-pgsql php8.3-gd php8.3-imap php8.3-intl php8.3-ldap php8.3-xml php8.3-mbstring php8.3-xml php8.3-zip libapache2-mod-php8.3
|
||||
fi
|
||||
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
|
||||
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
|
||||
@@ -174,7 +168,7 @@ install:
|
||||
squizlabs/php_codesniffer ^3
|
||||
fi
|
||||
# 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" = 'nightly' ]; then
|
||||
sudo composer self-update 2.4.4
|
||||
composer -n require --ignore-platform-reqs phpunit/phpunit ^8 \
|
||||
php-parallel-lint/php-parallel-lint ^1.2 \
|
||||
@@ -277,7 +271,6 @@ before_script:
|
||||
#echo '\d llx_c_country' | psql 'postgresql://postgres:postgres@127.0.0.1:5432/travis'
|
||||
|
||||
# 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
|
||||
fi
|
||||
echo
|
||||
@@ -321,7 +314,7 @@ before_script:
|
||||
- |
|
||||
echo "Setting up Apache"
|
||||
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 cat /etc/apache2/sites-available/000-default.conf
|
||||
sudo service apache2 restart
|
||||
@@ -365,13 +358,6 @@ script:
|
||||
--exclude htdocs/includes/mike42/escpos-php/example --exclude htdocs/includes/maximebf \
|
||||
--exclude htdocs/includes/phpunit/ --exclude htdocs/includes/tecnickcom/tcpdf/include/barcodes --exclude htdocs/includes/webmozart --exclude htdocs/includes/webklex --blame .
|
||||
fi
|
||||
if [ "$TRAVIS_PHP_VERSION" = "8.4" ]; then
|
||||
parallel-lint -e php --exclude dev/tools/test/namespacemig --exclude htdocs/includes/composer --exclude htdocs/includes/myclabs --exclude htdocs/includes/phpspec --exclude dev/initdata/dbf/includes \
|
||||
--exclude htdocs/includes/sabre --exclude htdocs/includes/phpoffice/PhpSpreadsheet --exclude htdocs/includes/sebastian \
|
||||
--exclude htdocs/includes/squizlabs/php_codesniffer --exclude htdocs/includes/jakub-onderka --exclude htdocs/includes/php-parallel-lint --exclude htdocs/includes/symfony \
|
||||
--exclude htdocs/includes/mike42/escpos-php/example --exclude htdocs/includes/maximebf \
|
||||
--exclude htdocs/includes/phpunit/ --exclude htdocs/includes/tecnickcom/tcpdf/include/barcodes --exclude htdocs/includes/webmozart --exclude htdocs/includes/webklex --blame .
|
||||
fi
|
||||
set +e
|
||||
echo
|
||||
|
||||
@@ -391,9 +377,6 @@ script:
|
||||
if [ "$TRAVIS_PHP_VERSION" = "8.3" ]; then
|
||||
phpcs -s -p -d memory_limit=-1 --extensions=php --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 --severity=1 ${CACHE_OPT} --runtime-set ignore_warnings_on_exit true .;
|
||||
fi
|
||||
if [ "$TRAVIS_PHP_VERSION" = "8.4" ]; then
|
||||
phpcs -s -p -d memory_limit=-1 --extensions=php --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 --severity=1 ${CACHE_OPT} --runtime-set ignore_warnings_on_exit true .;
|
||||
fi
|
||||
set +e
|
||||
echo
|
||||
|
||||
@@ -412,9 +395,6 @@ script:
|
||||
if [ "$TRAVIS_PHP_VERSION" = "8.3" ]; then
|
||||
var-dump-check --extensions php --tracy --exclude htdocs/includes --exclude test/ --exclude htdocs/public/test/ --exclude htdocs/core/lib/functions.lib.php .
|
||||
fi
|
||||
if [ "$TRAVIS_PHP_VERSION" = "8.4" ]; then
|
||||
var-dump-check --extensions php --tracy --exclude htdocs/includes --exclude test/ --exclude htdocs/public/test/ --exclude htdocs/core/lib/functions.lib.php .
|
||||
fi
|
||||
set +e
|
||||
echo
|
||||
|
||||
@@ -516,12 +496,6 @@ script:
|
||||
php upgrade.php 19.0.0 20.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade19002000.log || cat $TRAVIS_BUILD_DIR/upgrade19002000.log
|
||||
php upgrade2.php 19.0.0 20.0.0 > $TRAVIS_BUILD_DIR/upgrade19002000-2.log || cat $TRAVIS_BUILD_DIR/upgrade19002000-2.log
|
||||
php step5.php 19.0.0 20.0.0 > $TRAVIS_BUILD_DIR/upgrade19002000-3.log || cat $TRAVIS_BUILD_DIR/upgrade19002000-3.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 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
|
||||
echo
|
||||
|
||||
|
||||
@@ -47,8 +47,8 @@ Sabre 4.6.0 BSD Yes
|
||||
Swift Mailer 5.4.2-DEV MIT License Yes Comprehensive mailing tools for PHP
|
||||
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
|
||||
TCPDF 6.7.5 LGPL-3+ Yes PDF generation
|
||||
TCPDI 1.1.0 LGPL-3+ / Apache 2.0 Yes FPDI replacement
|
||||
TCPDF 6.3.2 LGPL-3+ Yes PDF generation
|
||||
TCPDI 1.0.0 LGPL-3+ / Apache 2.0 Yes FPDI replacement
|
||||
|
||||
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 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 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 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)
|
||||
|
||||
653
ChangeLog
653
ChangeLog
@@ -2,627 +2,6 @@
|
||||
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 *****
|
||||
FIX: #35147 SQL Error on Beluga Export when ExpenseReport is enabled (#35149)
|
||||
FIX: error when using a code too large in dictionary
|
||||
FIX: Security when using Advanced Target page of emailing (feature hidden in v21, default in v22+). Possible
|
||||
SQL injection by users with permission to make and send mass emailing.
|
||||
|
||||
|
||||
***** ChangeLog for 21.0.3 compared to 21.0.2 *****
|
||||
FIX: #34843 (#34875)
|
||||
FIX: #34936
|
||||
FIX: #35005
|
||||
FIX: #35006 SQL error when using external user
|
||||
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
|
||||
SEC: Remove functions accepting callable params - Reported by phdwg1410 - CVE-2024-40137
|
||||
|
||||
|
||||
|
||||
***** ChangeLog for 21.0.2 compared to 21.0.1 *****
|
||||
|
||||
FIX: 21.0: $height and $width can be ints, but also 'auto' (#34636)
|
||||
FIX: #33030 (#34460)
|
||||
FIX: #33727 Sec
|
||||
FIX: #33774 #34214
|
||||
FIX: #33854
|
||||
FIX: #34313 Accountancy - Export with sources no longer works (#34324)
|
||||
FIX: (#34448)
|
||||
FIX: #34541 (#34597)
|
||||
FIX: #34564 (#34590)
|
||||
FIX: #34591 FIX: #34692
|
||||
FIX: #34618 (#34621)
|
||||
FIX: #34654
|
||||
FIX: accountancy: bad filter on custom account groups (#34205)
|
||||
FIX: accountancy balance: keep subtotals when sorting (#34001)
|
||||
FIX: accountancy closure: if subledger_label is not found, PHP8.2 throws an error. (#34736)
|
||||
FIX: accountancy: create new french PCG25-DEV accounting system in upgrade (#34036)
|
||||
FIX: accountancy expensereport journal: php 8.1 warning (#34457)
|
||||
FIX: accountancy fec export: remove dol_print_date warning (#34363)
|
||||
FIX: accountancy general ledger: last total not shown if last account group shown has only one entry (#34251)
|
||||
FIX: accountancy lettering: php8.1 warning (#34469)
|
||||
FIX: Accountancy - Problem with constant ACCOUNTANCY_COMBO_FOR_AUX (#34414)
|
||||
FIX: accountancy sales/purchases journal: sql error logged when no invoice in journal (#34339)
|
||||
FIX: accountancy: warning when account not found in plan (#34030)
|
||||
FIX: a comment without after a comma create a sql error (#33752)
|
||||
FIX: Add others allowed tags (table, tr, td) for the prices history table displayed in the link url of the supplier product in supplier product prices list (#34532)
|
||||
FIX: add payment to bank (#34263)
|
||||
FIX: allow double colon and string obfuscation in dol eval for computed extra fields (#34015)
|
||||
FIX: API expense report line comments (v18+) (#34297)
|
||||
FIX: Approver must be able to approve even if user not in hierarchy.
|
||||
FIX: asset depreciation: division by zero (#34218)
|
||||
FIX: asset depreciation: php warnings (#34219)
|
||||
FIX: avoid sql error when a comment is after without comma (#33758)
|
||||
FIX: Backport fix of substitution of thirdparty info in notification
|
||||
FIX: backport of replaceement of thirdparty information on notification
|
||||
FIX: bad value for company ref crashes canvas feature (#34331)
|
||||
FIX: bank payment rejection on SEPA (backport commit 100a657) (#33838)
|
||||
FIX: BankTransfer information in line.php (#34425)
|
||||
FIX: BankTransfer link in list.php (#34513)
|
||||
FIX: BankTransfer link in rejets.php (#34424)
|
||||
FIX: Bug filters (#34546)
|
||||
FIX: Can set default value of the nature of member
|
||||
FIX: Can set the default value of nature of thirdparty
|
||||
FIX: cash control report: php warning (#34358)
|
||||
FIX: common fields: php warning with select input field (#34495)
|
||||
FIX: constant PAYMENTBYBANKTRANSFER_ADDDAYS was never saved (#33799)
|
||||
FIX: creating acredit note from the remain to pay was always 0
|
||||
FIX: DetecHTML on upload file from filemanager fails due to need to lock
|
||||
FIX: Disallow special char in name of oauth entries
|
||||
FIX: do not add a filter on status when doing a global search on project
|
||||
FIX: Do not allow to force amount for online payment of order
|
||||
FIX: do not forget extrafields for BOM in export lines (#34020)
|
||||
FIX: Edition of target of menu entries
|
||||
FIX: element must be visible to set focus on select input when using default values (#34406)
|
||||
FIX: email collector: php 8 warning (#34496)
|
||||
FIX: encoding issues with underscores in mb_convert_encoding functionality (#34411)
|
||||
FIX: ensure dir exists before trying to move something in it (#34211)
|
||||
FIX: event info tab: php 8.1 warning (#34458)
|
||||
FIX: expense report card: mail notifications not sent (#34556)
|
||||
FIX: expensereport payment list: php warning (#34453)
|
||||
FIX: expensereport: php warning when generating pdf with multilangs (#34492)
|
||||
FIX: files lib: multiple php 8.1 warnings (#34462)
|
||||
FIX: filter agenda on user and resource SQL error (#34580)
|
||||
FIX: HTML broken by the trunc.
|
||||
FIX: html title when using custom value
|
||||
FIX: if filter is set on export for Duree type filed, then there is SQL error (#34616)
|
||||
FIX: interventions: sql error when signed_status not set (#34515)
|
||||
FIX: js warning (Backport commit 84d982c) (#34555)
|
||||
FIX: local taxes text in object line view mode (#34103)
|
||||
FIX: local taxes text in PDF (#34343)
|
||||
FIX: mandatory extrafelds on lines are not checked (#34228)
|
||||
FIX: manufacturing orders: php 8.1 warnings on agenda tab (#34475)
|
||||
FIX: mass assignment of sale representative
|
||||
FIX: Missing ol in no escape tags (#34261)
|
||||
FIX: modification de dates de pièces comptables sur plusieurs entités différentes (#34226)
|
||||
FIX: oauth: php 8 warnings (#34027)
|
||||
FIX: online propal sign: double header with logo when custom logo set (#34504)
|
||||
FIX: Order error translation (#33834)
|
||||
FIX: page of bom when only bom module is on
|
||||
FIX: partial result on timespent list (#33855)
|
||||
FIX: pgsql: boolean fields correctly defined in creation but not in migration (#34215)
|
||||
FIX: pgsql: case sensitivity in select queries (#34028)
|
||||
FIX: pgsql: error when creating sequences in migration scripts (#34021)
|
||||
FIX: PHP 8 Error 500 (#34545)
|
||||
FIX: prelevement order list: handle case of use by banktransfer module (#33801)
|
||||
FIX: pre-send mail mass action: keep __EMAIL__ substitution (#34522)
|
||||
FIX: prevent log warning with online signature url (#34361)
|
||||
FIX: Product batch series - Title, help url et picto (#34560)
|
||||
FIX: product multiprices: fatal error on vat update on php 8.2 (#34444)
|
||||
FIX: product suplier tab: last modif date column was wrongly dependent of module barcode (#34170)
|
||||
FIX: product translation: redirect after successful action (#34403)
|
||||
FIX: projects: go back to edit view after cloning (#34221)
|
||||
FIX: receptions: crash from api because of classes not found (#34523)
|
||||
FIX: Remove useless amp; after & (#34288)
|
||||
FIX: select supplier when creating object from project (#33766)
|
||||
FIX: social contribution payment: correct error reporting (#34002)
|
||||
FIX: stock control condition in reception delete (#33952)
|
||||
FIX: Tmparray string not array (#34287)
|
||||
FIX: Too heavy sql query (#34371)
|
||||
FIX: try to fix v18 github action workflow (#34439)
|
||||
FIX: Various payment - List - Can't see payment with subledger account (#34101)
|
||||
FIX: warehouse list: broken status filter (#33667)
|
||||
FIX: warnings when printing start/end date on line tpl (#34359)
|
||||
FIX: wrong multicompany filter (#34714)
|
||||
FIX: ws detection
|
||||
|
||||
|
||||
***** ChangeLog for 21.0.1 compared to 21.0.0 *****
|
||||
|
||||
FIX: #33360
|
||||
FIX: #33365 Global search for single shipment (#33401)
|
||||
FIX: #33404 - to keep the method findNearest an agnostic method.
|
||||
FIX: #33435 Warnings
|
||||
FIX: Accountancy simplified - with multiple entities, amount of the entry is multiplied by the number of entities (#33370)
|
||||
FIX: Add a new email for notification
|
||||
FIX: Bad link to download tax vat document
|
||||
FIX: Blank page on agenda event per user
|
||||
FIX: blank page on smartphone for bank SEPA direct transfer page
|
||||
FIX: close all services on contract will close all lines (#33466)
|
||||
FIX: Count on supplier invoice list does not match count in DB (#33351)
|
||||
FIX: CR on script output
|
||||
FIX: CSS center end CSS in total
|
||||
FIX: Duplicate load of extrafield ->fetch_optionals()
|
||||
FIX: fatal error in notification sending email when error array is empty
|
||||
FIX: Link to country setup on company setup page
|
||||
FIX: Loading of deliveries in shipping card was loading everything
|
||||
FIX: Missing ref_ext in group by in list of product
|
||||
FIX: Must make different redirect in paymentok/ko according to frame or not.
|
||||
FIX: PAIEMENT Wrong field displayed for DateChequeReceived (#33390)
|
||||
FIX: picto for unknown mime type
|
||||
FIX: Replace compromised tj-actions/changed-files (#33481)
|
||||
FIX: Report by custom group was empty
|
||||
FIX: Responsive
|
||||
FIX: shipment dispatch origin line (#33415)
|
||||
FIX: Show the default duration of a membership type.
|
||||
FIX: Sort and search Ref Project column was missing (#33539)
|
||||
FIX: syntax error on list of intervention for external users
|
||||
FIX: text in tooltip on buttons when pb is not a permission problem
|
||||
FIX: Translation of column in list of invoice
|
||||
FIX: warnings (#33423)
|
||||
FIX: Warning when getNomUrl is called before top_httphead
|
||||
FIX: we must retrieve linked order_supplier and no other object (#33602)
|
||||
SEC FIX: Reflected XSS reported by 柏天浩
|
||||
|
||||
|
||||
***** ChangeLog for 21.0.0 compared to 20.0 *****
|
||||
|
||||
For users:
|
||||
----------
|
||||
NEW: NEW Module - help to setup OpenID Connect (#30317)
|
||||
NEW: Module AI moved from experimental to stable
|
||||
NEW: Add hidden option CONTRACT_HIDE_MYCOMPANY_SIGNATURE_SECTION_PDF
|
||||
NEW: Add a tab on recurring invoice card to see the list of invoices generated from this recurring invoice (customer and supplier invoices) (#31463)
|
||||
NEW: #28871 signed_status to commande (#30359)
|
||||
NEW: #30269 linked project in column of last record tables (#30344)
|
||||
NEW: Accountancy - Add general account on thirdparty
|
||||
NEW: Accountancy - Add partial reconcile on subledger (#30027)
|
||||
NEW: Accountancy - Option to select the label of operation (#31200)
|
||||
NEW: Accountancy - Allow grouping taxes with primary line price (#26732)
|
||||
NEW: Activate PHPUnit with tests on permission on $action ==...
|
||||
NEW: Add advice for max size on list for better performance
|
||||
NEW: Add an advanced permission to validate knowledge (#30855)
|
||||
NEW: Add a test mode into the setup of AI module to test the AI prompts.
|
||||
NEW: Add a tool to decrypt data encrypted in database.
|
||||
NEW: Add auto generate document when reception is created (#30688)
|
||||
NEW: Add badge for generate invoice client tab (#31559)
|
||||
NEW: Add caldav on fichinter (#30582)
|
||||
NEW: Add column agenda_id to implement the link between files and event
|
||||
NEW: Add column "comment" in list of payment
|
||||
NEW: Add constant to hide version (#30865)
|
||||
NEW: Add country in search of project
|
||||
NEW: add duration extrafields (#31595)
|
||||
NEW: Add export for thirdparty bank accounts (#30807)
|
||||
NEW: Add export profile to export MO and lines of consumption/production
|
||||
NEW: Add option to store the text content of uploaded files into database (with conversion with pdftotext)
|
||||
NEW: Add Filter Assistance for Filling Filters Field (#31646)
|
||||
NEW: add last stock movement and product nature to StocksWithBatch export (#30578)
|
||||
NEW: Add member title to the labels (#31710)
|
||||
NEW: Add mode Customer price + level price (#31091)
|
||||
NEW: add option to add external billing contact on the supplier_proposal pdf (#30298)
|
||||
NEW: Add option to clone its default BOM when cloning a product (#30088)
|
||||
NEW: Add option to enable PDF frame rounded corners
|
||||
NEW: Add option to round weight and volume on shipment PDF
|
||||
NEW: add pdf regeneration to mass action for shipments (#29970)
|
||||
NEW: Add picto on list of notification email templates
|
||||
NEW: add recurring supplier invoice on supplier tab #30945 #30949
|
||||
NEW: Add sort by ref warehouse/product or ref product/warehouse on inventory product list (#31639)
|
||||
NEW: Add some improvement for ODT Contracts (#31715)
|
||||
NEW: Add terms of sale on documents (#24846)
|
||||
NEW: Add thirdparty state in substitution array (#31549)
|
||||
NEW: Add tooltip on closing accounting setup
|
||||
NEW: add trigger for linking and unlinking invoices (#30182)
|
||||
NEW: Add Unit price on supplier order stat product (#31055)
|
||||
NEW: add warehouseId parameters in select_produit to limit result to existing product in select (#30477)
|
||||
NEW: allow link feature to task (#30235)
|
||||
NEW: Authorize modification of a partially shipped order (#31423)
|
||||
NEW: autogenerate project reference in API (#30638)
|
||||
NEW: automatically change status on answering a ticket (#30556)
|
||||
NEW: Browser notifications use now jnotify (fix browser compatibility)
|
||||
NEW: can add extrafields with dol_move (#30574)
|
||||
NEW: Can change the type of a social contribution if no payment
|
||||
NEW: can delete a category translation (#31396)
|
||||
NEW: Can link an object to another using the ref. Close #31001
|
||||
NEW: Can set a class on the tr lines of form setup lines
|
||||
NEW: Can set border radius of list and tables
|
||||
NEW: Can set date of transmission in 1 click when validating SEPA
|
||||
NEW: Can set parameters with setup type yesno.
|
||||
NEW: Can set the contact type for the autoassigned user that creates a project (#30444)
|
||||
NEW: Can show raw value of oauth token
|
||||
NEW: Can use a specific profile to send email for password forgotten
|
||||
NEW: option to care grandchild (#31314)
|
||||
NEW: Look and feel - checkbox to choose thirdparty nature (#30192)
|
||||
NEW: Color line total and sub total (#26172)
|
||||
NEW: Constant to hide user login times (#29815)
|
||||
NEW: Const ASSET_ROUND_INTEGER_NUMBER_UPWARDS for ASSET Module. Compatibility to migrate from other accounting solutions. (#31615)
|
||||
NEW: Content of tab "attached files" is more compact.
|
||||
NEW: Contract signed status update (#30779)
|
||||
NEW: Create thirdparty notification by action code (#30541)
|
||||
NEW: Customer price and level price together
|
||||
NEW: default configuration for event reminder (#31407)
|
||||
NEW: determine multi-currency price on object line create tpl (#28021)
|
||||
NEW: Display for socialnetworks admin
|
||||
NEW: display mark rates in objectLineCreate (#30872)
|
||||
NEW: due date in accounting bookkeeping list and card (#30061)
|
||||
NEW: enhance the OAUTH2 token manager. Can refresh a token from page.
|
||||
NEW: EPC QR CODE - Use bank owner account name instead of company (#31735)
|
||||
NEW: fichinter list disable details option (#30884)
|
||||
NEW: filter on invoice dates in product margin tab (#29997) and thirdparty margin tab (#29998)
|
||||
NEW: FIX: Display invoice widgets by amount instead of number (#30215)
|
||||
NEW: Add the Clone of company (#29755)
|
||||
NEW: function for Preview In CKeditor products
|
||||
NEW: FY Changed Period handle in Module Asset (#31618)
|
||||
NEW: hidden option MAIN_TE_PRIVATE_FIRST_AND_LASTNAME_TO_UPPER (#31143)
|
||||
NEW: Hide completed items in Link to (#31329)
|
||||
NEW: Iban is saved encrypted
|
||||
NEW: if a user is associated with the expense report, then that user will get an associated credit line ($tabtp) generated.
|
||||
NEW: Implementing Billable tasks on projects using new attribute "billable" (#30092)
|
||||
NEW: Include a protection into check update of module to detect malware
|
||||
NEW: intervention signed status update (#30629)
|
||||
NEW: INTRA VAT ID field optionally mandatory and/or invoice mandatory in thirdparty module setup (#31663)
|
||||
NEW: Invoice - Generate payment information - Structured communication (#31376)
|
||||
NEW: Invoice line import - fk_product can be a ref (#30795)
|
||||
NEW: Look and feel v21 - Can have rounded border on tables
|
||||
NEW: Look and feel v21 - Toolbar for WYSIWYG editor is short on smartphone
|
||||
NEW: Management of extrafields on customer prices, level prices and default prices (#31313)
|
||||
NEW: manage several type of dangerous goods for a same parcel (#30238)
|
||||
NEW: Member - Can upload a file with drag and drop (#30265)
|
||||
NEW: Move the picto in the first tab label always visible
|
||||
NEW: ODTSubsitution for date_start_real / Contracts
|
||||
NEW: Look and feel - Opacity for finished lines (#30219)
|
||||
NEW: option: assign default roles to "individual" third-party contacts (#30499)
|
||||
NEW: option to allow freezing qty in BOM service's line (#29990)
|
||||
NEW: Add a page to list the lines of orderse (#31521)
|
||||
NEW: pagination in product margin tab
|
||||
NEW: payment term and mode on creating supplier (#31166) and third-party (#31067)
|
||||
NEW: PDF Add Customer accountancy code (#31544)
|
||||
NEW: PDF Add discount total if line discount exists (#31483)
|
||||
NEW: PDF Add option to print rounded corner frames (#31172)
|
||||
NEW: PDF Add shipping address in sales orders (#31293)
|
||||
NEW: PDF Add total discount if line discount exists
|
||||
NEW: PDF frame rounded corners
|
||||
NEW: Prelevement - Use structured payment data for Belgium (#31383)
|
||||
NEW: Preview product list when we choose model email layout Commerce (#30185)
|
||||
NEW: Can upload a file with drag and drop: Thirdparty (#30263) - Product/Service (#30250) - Project (#30276) - Propale (#30315)
|
||||
NEW: Public and private note options in thirdparty list (#31062)
|
||||
NEW: redirect to expedition card if global search has unique result (#30108)
|
||||
NEW: replenishment if the warehouse is set to the default selected user (#31229)
|
||||
NEW: retrieve Thirdparty by account (#31283)
|
||||
NEW: Share msg "not found" for widgets and add a button to add new record when none exists (#31309)
|
||||
NEW: shipment signed status update (#30928)
|
||||
NEW: Show detail of each multicurrency amount in popup of price
|
||||
NEW: show holidays at bottom of activity/permonth.php page (#31550)
|
||||
NEW: Show tooltip on number of qualified records
|
||||
NEW: Signature or proposal from the Web portal (#30062)
|
||||
NEW: Star Field Type for Extra Fields (#31348) and for for Module Builder (#31216)
|
||||
NEW: Support option PDF_ADD_POSITION on shipment espadon template
|
||||
NEW: Auto-suspend facture rec when nb gen max is reached (#31623)
|
||||
NEW: The margin section can now be shown/hidden
|
||||
NEW: Deal change in fiscal year period adjustments to shortened or extended periods (e.g., fiscal years of 9 or 15 months)
|
||||
NEW: (ticket, admin): More options entries (#30548)
|
||||
NEW: Update warehouse product list to add another sorting option (#30971)
|
||||
NEW: Can set blacklist of words into answer of AI (#30385)
|
||||
NEW: user list country filter (#30770)
|
||||
NEW: vat rate with department in dict (#31628) (#31627)
|
||||
NEW: When we export data of unlaterable log, we add an unalterable line in logs
|
||||
NEW Add option THEME_STICKY_TOPMENU = 'scrollleftmenu_after_mainpage' (or 'disabled')
|
||||
NEW value for FICHINTER_DISABLE_DETAILS. If FICHINTER_DISABLE_DETAILS is set to '2' details are disabled only on intervention list.
|
||||
SEC: security avoid RCE using -'- sequence to pass --checkpoint-action parameter in tar command.
|
||||
SEC: FIX Security path transversal with modulepart=medias (viewimage.php and download.php)
|
||||
|
||||
PERF: Reduce nb of requests into num_public_holiday
|
||||
PERF: Reduce size for VCF files and virtualcard qrcode
|
||||
PERF: Reduce time to show the page of unalterable logs with high data
|
||||
|
||||
For developers:
|
||||
---------------
|
||||
NEW: translation with action triggers API (#30595)
|
||||
NEW: more complete stock product API call (#30567)
|
||||
NEW: Projet - Add hook formconfirm (#31408)
|
||||
NEW: Can choose the zip handler to build ODT.
|
||||
NEW: Can force ip into log file name using a define('SYSLOG_FILE_ADDIP')
|
||||
NEW: Can force log file name using a define('SYSLOG_FILE_ADDSUFFIX')
|
||||
NEW: Can define the text on tooltip on a yesno check.
|
||||
NEW: Introduce value 'password' for mode of sanitization in GETPOST.
|
||||
NEW: Add getImageFromHtmlContent() method
|
||||
NEW: Add gitleaks into pre-commit
|
||||
NEW: Add hook after the line is processed in the sell journal page (#31439)
|
||||
NEW: add hook dolibarrDelConst (#30672)
|
||||
NEW: Add hook getLoginPageExtraContent, getPasswordResetPageExtraContent
|
||||
NEW: add hook in dolibarr_set_const admin.lib.php (#30605)
|
||||
NEW: Add hook on sell journal page for overwrite the processed journal data after the SQL request (#31033)
|
||||
NEW: force_install_noedit : add value 3 to block all technical parameters excepted main_url (#30080)
|
||||
NEW: Add a new hook on order list (#31315)
|
||||
NEW: Add ID of the line in the trigger context for addLine(), updateLine() and deleteLine() on contract (#30343)
|
||||
NEW: Add more log information
|
||||
NEW: Add pagination data to some api routes (#29895)
|
||||
NEW: Add test to forbidden NOW() SQL function.
|
||||
NEW: API call to re-generate a users password. (#30590)
|
||||
NEW: API close proposal now supports both private and public note (#30659)
|
||||
NEW: API_LOGINS_ALLOWED_FOR_GET_EXTRAFIELD (#30562)
|
||||
NEW: API /setup endpoint for getting action triggers (#30538)
|
||||
NEW: HOOK FORMCONFIRM IN TICKET (#31321)
|
||||
NEW: hook on expensereport added (#31380)
|
||||
QUAL line classes for various business object classes have been moved to individual files.
|
||||
QUAL: #30122 (#30131)
|
||||
QUAL: AccountancySystem: maintenance work to uniformize and clean up (#31391)
|
||||
QUAL: All $conf->global->module->enabled are replaced with isModEnabled()
|
||||
QUAL: bankline category table name (#30419)
|
||||
QUAL: Clean code
|
||||
QUAL: conformity PR for data structure of #29964 (#30014)
|
||||
QUAL: Edition of currency is shared in a common tpl file
|
||||
QUAL: Ergo btn and fix (#30947)
|
||||
QUAL: Move function csvClean into functions2.lib.php
|
||||
QUAL: Move the public css file into the public directory
|
||||
QUAL: Removed inclusion of the file json.lib.php
|
||||
QUAL: simplifying readability of sql
|
||||
QUAL: Standardize name of user cookies
|
||||
QUAL: Suffix table name to have them created on module install
|
||||
QUAL: The property ->domiciliation and ->propio on bank accounts has been
|
||||
QUAL: Update inc.php (#29822)
|
||||
QUAL: Use archiveOrBackupFile for MAIN_MAIL_DEBUG_LOG_WITH_DATE
|
||||
QUAL: Use table_element in sql queries (#31355)
|
||||
QUAL: rename const WORKFLOW_EXPEDITION_CLASSIFY_NEWD_INVOICE to WORKFLOW_RECEPTION_CLASSIFY_NEWD_INVOICE
|
||||
QUAL: This configuration change in phan will report NEW: array types in phpdoc
|
||||
|
||||
|
||||
WARNING:
|
||||
--------
|
||||
|
||||
The following changes may create regressions for some external modules, but were necessary to make Dolibarr better:
|
||||
* Prepare your module for deprecation of triggers code XXX_INSERT to support also XXX_CREATE.
|
||||
* More class properties (with old name in french) are now deprecated in favor of the property name in english.
|
||||
* The json emulator dol_json_encode/decode() is removed. The native json PHP module must be enabled/available (this is the case by default with most PHP installation).
|
||||
* The deprecated GET parameter "&sall=" has been removed, use now the "&search_all=".
|
||||
* The experimental and deprecated module WebserviceClient is completely removed (was never released and use deprecated architecture). It may be replaced with the stable module Webhook.
|
||||
* The dynamic properties ->no_button_delete, ->no_button_edit, ->no_button_copy for $object Product that could be set by an external module must no more be
|
||||
set (not allowed by PHP 8.2). A module can already return an array with key 'no_button_delete', 'no_button_edit', 'no_button_copy' for the same purpose.
|
||||
* The old function dol_bc($var, $moreclass = '') has been removed. If you called it, just stop to call it (the function has no effect since a long time).
|
||||
* The trigger code CATEGORY_LINK and CATEGORY_UNLINK have been replaced with code CATEGORY_MODIFY. You can read ->context['linkto'] or ->context['unlinkoff'] to detect if we want to make a link or unlink.
|
||||
* The property ->domiciliation and ->propio on bank accounts has been deprecated and replaced with property ->address and ->owner_name everywhere.
|
||||
* If you were using the substitution key __MEMBER_CIVILITY__, you must now use __MEMBER_TITLE__
|
||||
* The hidden title of tab that was hidden by the CSS class tabTitleText has been completely removed from HTML content.
|
||||
|
||||
|
||||
***** ChangeLog for 20.0.4 compared to 20.0.3 *****
|
||||
FIX: $this->origin_object can not be instance of CommandeFournisseur if it is already an instanceof CommonObject
|
||||
FIX: 17.0 API endpoints "PUT": prevent overwriting all extrafields if only some are supplied in the request cf. PR #29237
|
||||
@@ -697,7 +76,7 @@ FIX: product variants copy: also copy multiprice variations
|
||||
FIX: refactorize (maybe broken feature for not received completely)
|
||||
FIX: remove debug trace
|
||||
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: same broken feature for propal and invoice
|
||||
FIX: select 2 no record found translate
|
||||
@@ -790,7 +169,7 @@ FIX: wrong trigger name (MODIFY instead UPDATE)
|
||||
FIX: fatal when updating recurring supplier invoice line with php8 ($remise_percent is '' instead of 0) (#31713)
|
||||
FIX: supplier invoice template card: buyer and seller swapped in VAT-related function calls (probably a copy-paste from customer invoice templates) (#31446)
|
||||
FIX: #25853 Thirdparty Massaction (#25868)
|
||||
FIX: #28505 Blank page from third party to projects (#31637)
|
||||
FIX: #28505 Blank page from thirparty to projects (#31637)
|
||||
FIX: #30432 make thirdparty code_client and code_compta modifiable via API (#31668)
|
||||
FIX: #31015
|
||||
FIX: #31360 delete contact when using pgsql.
|
||||
@@ -894,6 +273,7 @@ FIX: when qty is not an integer, apply price() (#31138)
|
||||
FIX: Wrong price for BOM with workstation (#31142)
|
||||
FIX: determine multi-currency price on object line create tpl (#28021)
|
||||
|
||||
|
||||
***** ChangeLog for 20.0.0 compared to 19.0 *****
|
||||
|
||||
For users:
|
||||
@@ -1004,7 +384,7 @@ NEW: fetch object by element for website account card
|
||||
NEW: filter on sale representative in contact list
|
||||
NEW: Filter shipments by selecting multiple shipping methods (#28376)
|
||||
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 display codebar on pdf files (#29623)
|
||||
NEW: functionality to list event for user
|
||||
@@ -1031,7 +411,7 @@ NEW: Module Website: Can link/unlink translation between web pages
|
||||
NEW: Move dir of cache for widgets
|
||||
NEW: multiselect with checkbox in categories/tags search for thirdparty list (#28335)
|
||||
NEW: new consts to redirect from massaction createbills (#29436)
|
||||
NEW: new global string to preselect yes for one bill per third party in orderlist massaction (#29359)
|
||||
NEW: new global string to preselect yes for one bill per thirdparty in orderlist massaction (#29359)
|
||||
NEW: notification action triggers for cancelling orders and invoices
|
||||
NEW: now button when editing an event
|
||||
NEW: online signature of shipments (#29559)
|
||||
@@ -1147,6 +527,7 @@ QUAL: professional identifiers - remove TODO by adding profid.lib.php
|
||||
QUAL: Properties ->date_update and ->date_modification were merged
|
||||
QUAL: removed duplicate language file
|
||||
QUAL: Remove the external js library jstimezonedetect
|
||||
QUAL: Remove use of customurl filter. Must use the USF syntax.
|
||||
QUAL: Rename all input fields "tel" into "phone"
|
||||
QUAL: Rename column fk_origin_line on shipment lines into fk_elementdet to match a generic use. (#28989)
|
||||
QUAL: replace $conf->global with getDolGlobalString()
|
||||
@@ -1167,7 +548,6 @@ The following changes may create regressions for some external modules, but were
|
||||
See https://wiki.dolibarr.org/index.php?title=Universal_Search_Filter_Syntax
|
||||
* The parameter $filter of methods fetchAll() does not accept array of SQL commands but must be a string of an Universal Search Filter syntax.
|
||||
See https://wiki.dolibarr.org/index.php?title=Universal_Search_Filter_Syntax
|
||||
* The use of 'customurl' into $filter has been removed. Must use the USF syntax.
|
||||
* Some API HTTP return code were moved from 401 to 403 to better follow REST specification.
|
||||
* More class properties (with old name in french) are now deprecated in favor of the property name in english.
|
||||
* dolibarrtriggers class VERSION_XXX constants have been deprecated. Please use array dictionary VERSIONS['XXX'].
|
||||
@@ -1186,7 +566,7 @@ The following changes may create regressions for some external modules, but were
|
||||
* Removed trigger BILLREC_CREATEBILL. This trigger was not a CRUD event. If you used it, you can already use the trigger BILL_CREATE and
|
||||
test that ($object->fac_rec > 0) to know if creation trigger is from a recurring invoice or not. Also this old trigger was never enabled
|
||||
into table llx_c_action_trigger.
|
||||
* Renaming into expedition line table and class: fk_origin_line is now fk_elementdet in table and class.
|
||||
* Renamings in expedition line table and class, fk_origin_line is now fk_elementdet in table and class.
|
||||
* The signature of method fetch() of class CompanyBankAccount has been modified to match the signature of method Account->fetch()
|
||||
|
||||
|
||||
@@ -1705,6 +1085,7 @@ NEW: updating for display Help title when try to delete Don (issue #25314)
|
||||
NEW: Upgrade in module builder in menu section
|
||||
NEW: use account address in sepa mandate (#23642)
|
||||
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: PDF Generation for each Human Resource Evaluations.
|
||||
|
||||
@@ -1805,7 +1186,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.
|
||||
* 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.
|
||||
* booking.class.php was removed, please have a look at calendar.class.php
|
||||
|
||||
|
||||
***** ChangeLog for 18.0.8 compared to 18.0.7 *****
|
||||
35 files changed, 647 insertions(+), 298 deletions(-)
|
||||
@@ -2874,7 +2255,7 @@ NEW: Add link to create an element from the category page
|
||||
NEW: add margin infos to takepos invoice lines
|
||||
NEW: Add max size send for "backup and link to mail" option
|
||||
NEW: Add method httponly_accessforbidden()
|
||||
NEW: Add more advice into the Setup security page
|
||||
NEW: Add more advices into the Setup security page
|
||||
NEW: Add new global variable for keeping the previous signature information on proposal (case of reopening a proposal)
|
||||
NEW: Add objectLink on shipment
|
||||
NEW: Add option --force on CLI cron_run_jobs.php
|
||||
@@ -4292,8 +3673,8 @@ NEW: add option in Workflow module to set a shipment as closed
|
||||
|
||||
|
||||
for Admins
|
||||
NEW: Add a security center page with all information and advice related to the security of your instance
|
||||
NEW: Add a performance center page with all information and advice related to the performance of your instance
|
||||
NEW: Add a security center page with all information and advices related to the security of your instance
|
||||
NEW: Add a performance center page with all information and advices related to the performance of your instance
|
||||
|
||||
Modules
|
||||
NEW: Module Recruitment is now stable
|
||||
@@ -4455,7 +3836,7 @@ FIX: fix checkbox displayed according to module project setup parameters - work
|
||||
FIX: inconsistency in margin recording with option "Force to sale price"
|
||||
FIX: invoice PDF generation after payment
|
||||
FIX: mask selector fournisseur if module not activate
|
||||
FIX: merge third party also works for bank URL entry
|
||||
FIX: merge thirdparty also work for bank URL entry
|
||||
FIX: Missing extrafields into export of agenda record
|
||||
FIX: missing parameter in select for POP
|
||||
FIX: missing return edit if update error
|
||||
@@ -8311,7 +7692,7 @@ NEW: Add index and constraints keys on supplier proposal detail table
|
||||
NEW: Add phpunit to check the engine is defined into sql create files.
|
||||
NEW: Add project and Hook to Loan
|
||||
NEW: Add REST API to push a file.
|
||||
NEW: Allow extrafields list select to be dependent on other standard list and not only other extrafields list
|
||||
NEW: Allow extrafields list select to be dependands on other standard list and not only other extrafields list
|
||||
NEW: Architecture to manage search criteria persistence (using save_lastsearch_values=1 on exit links and restore_lastsearch_values=1 in entry links)
|
||||
NEW: data files are now also parsed by phpunit for sql syntax
|
||||
NEW: Hook to allow inserting custom product head #6001
|
||||
@@ -9335,7 +8716,7 @@ NEW: The clicktodial module is now able to provide link "tel:" on phone numbers.
|
||||
NEW: The conditional IF into ODT templates works also on not defined var so we can show data only if defined. Close #3819
|
||||
NEW: The free text in PDF footers can now be a HTML content. So the WYSIWYG editor is on by default to edit it into module setup.
|
||||
NEW: The thirdparties tabs, the contacts tabs and the members tabs are now presented using a new "top banner", saving space and using a same way to show address, status and navigation arrows.
|
||||
NEW: Thumbs for statistics on main page are fully clickable (not only link inside the thumb)
|
||||
NEW: Thumbs for statistics on main page are fully clicable (not only link inside the thumb)
|
||||
NEW: Translate extrafield's labels.
|
||||
NEW: Use new select2 component for juridical status, country and state selection.
|
||||
NEW: When creating order, proposal or invoice from thirdparty card, the project is asked during creation. A link to create project if it does not exists is also available.
|
||||
@@ -9934,7 +9315,7 @@ NEW: [ task #851 ] Add a new field: Commercial name
|
||||
NEW: [ task #977 ] New option to manage product unit Migrated code from GPCSolutions/dolibarr:3.2-units branch and adapted for 3.8 with some improvements
|
||||
NEW: The line where mouse is over can be highlight with option THEME_ELDY_USE_HOVER (on by default)
|
||||
NEW: The notification module accept keyword __SUPERVISOR__ to send notification to supervisor of user.
|
||||
NEW: Thumbs for statistics on main page are fully clickable (not only link inside the thumb)
|
||||
NEW: Thumbs for statistics on main page are fully clicable (not only link inside the thumb)
|
||||
NEW: Title of page project contains project ref and label
|
||||
NEW: update skeleton and class builder
|
||||
NEW: Use new select2 component for juridical status, country and state selection.
|
||||
@@ -11085,7 +10466,7 @@ For users:
|
||||
prices, radio).
|
||||
- New: [ task #798 ] Add range limit date on product/services as it is done on order
|
||||
and invoice.
|
||||
- New: [ task #814 ] Add extrafield feature for projects and tasks.
|
||||
- New: [ task #814 ] Add extrafield feature for projects ands tasks.
|
||||
- New: [ task #770 ] Add ODT document generation for Projects module.
|
||||
- New: [ task #741 ] Add intervention box.
|
||||
- New: [ task #826 ] Optional increase stock when deleting an invoice already validated.
|
||||
|
||||
184
README-FR.md
Normal file
184
README-FR.md
Normal file
@@ -0,0 +1,184 @@
|
||||
# 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
|
||||
|
||||
### Configuration 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/).
|
||||
|
||||
### Configuration 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)
|
||||
53
README.md
53
README.md
@@ -1,12 +1,11 @@
|
||||
# DOLIBARR ERP & CRM
|
||||
|
||||

|
||||

|
||||
[](https://php.net/)
|
||||
[](https://github.com/Dolibarr/dolibarr)
|
||||
[](https://bestpractices.coreinfrastructure.org/projects/5521)
|
||||
|
||||
Dolibarr ERP & CRM is a modern software package that helps manage your organization's activities (contacts, quotes, invoices, orders, stocks, agenda, human resources, ecm, manufacturing…).
|
||||
Dolibarr ERP & CRM is a modern software package that helps manage your organization's activities (contacts, suppliers, invoices, orders, stocks, agenda…).
|
||||
|
||||
It's an Open-Source Software suite (written in PHP with JavaScript enhancements) designed for small, medium or large companies, foundations and freelancers.
|
||||
|
||||
@@ -18,7 +17,6 @@ Dolibarr has a large community ready to help you, free forums and [preferred par
|
||||
|
||||

|
||||
|
||||
|
||||
## LICENSE
|
||||
|
||||
Dolibarr is released under the terms of the GNU General Public License as published by the Free Software Foundation; either Version 3 of the License, or (at your option) any later version (GPL-3+).
|
||||
@@ -27,25 +25,24 @@ See the [COPYING](https://github.com/Dolibarr/dolibarr/blob/develop/COPYING) fil
|
||||
|
||||
Other licenses apply for some included dependencies. See [COPYRIGHT](https://github.com/Dolibarr/dolibarr/blob/develop/COPYRIGHT) for a full list.
|
||||
|
||||
|
||||
## INSTALLING
|
||||
|
||||
There is a lot of different solutions to install Dolibarr.
|
||||
### Simple setup
|
||||
|
||||
### 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))
|
||||
- [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
|
||||
- The Docker image (see chapter "Using Docker")
|
||||
|
||||
Releases can be downloaded from [official website](https://www.dolibarr.org/).
|
||||
|
||||
### Using the generic step by step setup (recommended for IT users)
|
||||
### Recommended setup
|
||||
|
||||
You can use any web server supporting PHP (Apache, Nginx, ...) and a supported database (MariaDB, MySQL or PostgreSQL) to install the standard version:
|
||||
You can use any web server supporting PHP (Apache, Nginx, ...) and a supported database (MariaDB, MySQL or PostgreSQL) to install the standard version.
|
||||
|
||||
|
||||
#### Generic install steps
|
||||
|
||||
- Verify that your installed PHP version is supported [see PHP support](https://wiki.dolibarr.org/index.php/Releases).
|
||||
|
||||
@@ -73,15 +70,10 @@ You can use any web server supporting PHP (Apache, Nginx, ...) and a supported d
|
||||
|
||||
- Follow the installer instructions
|
||||
|
||||
### Using Docker images
|
||||
|
||||
Dolibarr is also available as a [Docker image](https://hub.docker.com/r/dolibarr/dolibarr). Installation instructions are available [here](https://github.com/Dolibarr/dolibarr-docker).
|
||||
|
||||
### Using ready to use SaaS/Cloud offers
|
||||
### SaaS/Cloud Setup
|
||||
|
||||
If you lack the time to install it yourself, consider exploring commercial 'ready-to-use' Cloud offerings (refer to https://saas.dolibarr.org). Keep in mind that this third option comes with associated costs.
|
||||
|
||||
|
||||
## UPGRADING
|
||||
|
||||
Dolibarr supports upgrading, usually without the need for any (commercial) support (depending on if you use any commercial extensions). It supports upgrading all the way from any version after 2.8 without breakage. This is unique in the ERP ecosystem and a benefit our users highly appreciate!
|
||||
@@ -94,12 +86,10 @@ Follow these step-by-step instructions to seamlessly upgrade Dolibarr to the lat
|
||||
- At your next access, Dolibarr will redirect you to the "install/" page to follow the upgrade process.
|
||||
If an `install.lock` file exists to lock any other upgrade process, the application will ask you to remove the file manually (you should find the `install.lock` file in the directory used to store generated and uploaded documents, in most cases, it is the directory called "*documents*").
|
||||
|
||||
|
||||
## WHAT'S NEW
|
||||
|
||||
See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog) file.
|
||||
|
||||
|
||||
## FEATURES
|
||||
|
||||
### Main application/modules (all optional)
|
||||
@@ -116,7 +106,6 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog)
|
||||
- Product Variants
|
||||
- Bill of Materials (BOM)
|
||||
- Manufacturing Orders (MO)
|
||||
- Workstations / Workplaces
|
||||
|
||||
Customer/Sales Management
|
||||
|
||||
@@ -176,13 +165,12 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog)
|
||||
- Data export/import
|
||||
- Barcodes
|
||||
- LDAP connectivity
|
||||
- Click-To-Dial integration
|
||||
- ClickToDial integration
|
||||
- Mass emailing
|
||||
- RSS integration
|
||||
- Social platforms linking
|
||||
- Payment platforms integration (PayPal, Stripe, Paybox...)
|
||||
- Email-Collector
|
||||
- AI support via API
|
||||
|
||||
(around 100 modules available by default, 1000+ addons at the official marketplace Dolistore.com)
|
||||
|
||||
@@ -223,7 +211,6 @@ See exact requirements on the [Wiki](https://wiki.dolibarr.org/index.php/Prerequ
|
||||
|
||||
Dolibarr can be extended with a lot of other external applications or modules from third-party developers available at the [DoliStore](https://www.dolistore.com).
|
||||
|
||||
|
||||
## WHAT DOLIBARR CAN'T DO YET
|
||||
|
||||
These are features that Dolibarr does **not** yet fully support:
|
||||
@@ -233,13 +220,11 @@ These are features that Dolibarr does **not** yet fully support:
|
||||
- Native embedded Webmail, but you can send email to contacts in Dolibarr with e.g. offers, invoices, etc.
|
||||
- Dolibarr can't do coffee (yet)
|
||||
|
||||
|
||||
## DOCUMENTATION
|
||||
|
||||
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.
|
||||
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,31 +233,23 @@ A View on Contributors:
|
||||
|
||||
[](https://github.com/Dolibarr/dolibarr/graphs/contributors)
|
||||
|
||||
The release process is described into the file dev/build/makepack-howto.md
|
||||
|
||||
|
||||
## CREDITS
|
||||
|
||||
Dolibarr is the work of many contributors over the years and uses some fine PHP libraries.
|
||||
|
||||
See [COPYRIGHT](https://github.com/Dolibarr/dolibarr/blob/develop/COPYRIGHT) file.
|
||||
|
||||
|
||||
## NEWS AND SOCIAL NETWORKS
|
||||
|
||||
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)
|
||||
- [X](https://x.com/dolibarr)
|
||||
- [LinkedIn](https://www.linkedin.com/company/association-dolibarr)
|
||||
- [Reddit](https://www.reddit.com/r/Dolibarr_ERP_CRM/)
|
||||
- [YouTube](https://www.youtube.com/user/DolibarrERPCRM)
|
||||
- [GitHub](https://github.com/Dolibarr/dolibarr)
|
||||
|
||||
|
||||
## Sponsors
|
||||
### Sponsors
|
||||
|
||||
Support this project by becoming a sponsor. Your logo will show up here. 🙏 [[Become a sponsor/backer](https://opencollective.com/dolibarr#backer)]
|
||||
|
||||
13
SECURITY.md
13
SECURITY.md
@@ -1,6 +1,6 @@
|
||||
# Security Policy
|
||||
|
||||
This file contains some policies about the security reports on Dolibarr ERP CRM project, a popular Open Source ERP and CRM used by millions of users.
|
||||
This file contains some policies about the security reports on Dolibarr ERP CRM project, one of the most popular Open Source ERP and CRM in the world.
|
||||
|
||||
|
||||
## Supported Versions for security reports
|
||||
@@ -12,9 +12,8 @@ Security report are valid only on current stable version (see https://dolibarr.o
|
||||
|
||||
To report a vulnerability, for a private report, you can:
|
||||
|
||||
- Send your report on Vulnerability Disclosure Program (VDP): Link will be updated soon (recommended for everybody)
|
||||
<!--
|
||||
- Send your report on Vulnerability Disclosure Program (VDP) [https://app.yogosha.com/cvd/dolibarr/10VxeNx6Ui3rSEhAgX63US](https://app.yogosha.com/cvd/dolibarr/10VxeNx6Ui3rSEhAgX63US) (recommended for everybody)
|
||||
<!--
|
||||
- Or if you have permissions, use GitHub security advisory at [https://github.com/Dolibarr/dolibarr/security/advisories/new](https://github.com/Dolibarr/dolibarr/security/advisories/new)
|
||||
-->
|
||||
- Or send an email to security@dolibarr.org with clear textual description of the report along with steps to reproduce the issue, include attachments such as screenshots or proof of concept code as necessary.
|
||||
@@ -24,8 +23,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.
|
||||
|
||||
If you believe you've found a security bug in our service, we are happy to work with you to resolve the issue promptly.
|
||||
We plan to re-open our bug bounty program (closed in end of 2024) in the future, but this is not yet available.
|
||||
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.
|
||||
|
||||
Any type of denial-of-service attack is strictly forbidden, as well as any interference with network equipment and Dolibarr infrastructure.
|
||||
|
||||
@@ -110,7 +108,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.
|
||||
* 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.
|
||||
* 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)
|
||||
* 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,13 +1,13 @@
|
||||
README (English)
|
||||
|
||||
Path: /dolibarr/dev/build/README
|
||||
Path: /dolibarr/build/README
|
||||
|
||||
##################################################
|
||||
Building packages
|
||||
##################################################
|
||||
|
||||
All sub-directories of "build" directory contains files (setup or binary tools) required to build automatically Dolibarr packages.
|
||||
The build directory and all its contents is absolutely not required to make Dolibarr working.
|
||||
The build directory and all its contents is absolutely not required to make Dolibarr working.
|
||||
It is here only to build Dolibarr packages, and those generated packages will not contains this "build" directory.
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ There are several tools:
|
||||
See makepack-howto.txt for prerequisites.
|
||||
|
||||
--------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
- To build a theme package, launch the script
|
||||
> perl makepack-dolibarrtheme.pl
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
update-alternatives --config php
|
||||
|
||||
|
||||
* To list packages
|
||||
* To list packages
|
||||
|
||||
cd htdocs/includes/diroflib
|
||||
composer install
|
||||
@@ -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 [--no-autoloader] [--dry-run] ccampbell/chromephp
|
||||
|
||||
@@ -43,16 +43,16 @@ END
|
||||
|
||||
# Complete .bashrc with DEBEMAIL and DEBFULLNAME
|
||||
Example:
|
||||
export DEBFULLNAME="Laurent Destailleur (eldy)"
|
||||
export DEBFULLNAME="Laurent Destailleur (eldy)"
|
||||
export DEBEMAIL=eldy@users.sourceforge.net
|
||||
Other example:
|
||||
export DEBFULLNAME="Laurent Destailleur"
|
||||
export DEBFULLNAME="Laurent Destailleur"
|
||||
export DEBEMAIL="eldy@destailleur.fr"
|
||||
|
||||
export QUILT_PATCHES=debian/patches
|
||||
|
||||
|
||||
# Note: alioth.debian.org is outdated --> https://alioth-archive.debian.org/ --> https://salsa.debian.org/public
|
||||
# Note: alioth.debian.org is outdated --> https://alioth-archive.debian.org/ --> https://salsa.debian.org/public
|
||||
* Create an account login
|
||||
* Update your ~/.ssh/config file to add:
|
||||
Host svn.debian.org git.debian.org bzr.debian.org hg.debian.org darcs.debian.org arch.debian.org
|
||||
@@ -72,10 +72,10 @@ export QUILT_PATCHES=debian/patches
|
||||
# podebconf-report-po --from email@email.com To send email to ask translations
|
||||
# Edit manually file XX.po and remove all lines "#, fuzzy" when translation is complete
|
||||
# msgfmt -v -c -o /dev/null XX.po To have status of translation for language XX
|
||||
|
||||
|
||||
# To check package integrity
|
||||
# lintian --pedantic -E -I package.deb To test a binary package
|
||||
# lintian --pedantic -E -I package.dsc To test a source package
|
||||
# lintian --pedantic -E -I package.deb To test a binary package
|
||||
# lintian --pedantic -E -I package.dsc To test a source package
|
||||
|
||||
# To manipulate packages
|
||||
# dpkg -l List all packages
|
||||
@@ -84,7 +84,7 @@ export QUILT_PATCHES=debian/patches
|
||||
# dpkg -I package.deb Give information on package
|
||||
# dpkg -i package.deb Install a package
|
||||
# dpkg-reconfigure -plow package Reconfigure package
|
||||
# dpkg -L packagename List content of installed package
|
||||
# dpkg -L packagename List content of installed package
|
||||
# dpkg -r packagename Remove config files and interactive saved answers
|
||||
# dpkg -s packagename Give status of installed package
|
||||
# dpkg --purge Remove config files and interactive saved answers
|
||||
@@ -104,9 +104,9 @@ See page https://www.debian.org/devel/wnpp/#l1 for example of ITP requests conte
|
||||
- Wait until you received bug number.
|
||||
For first ITP submission of Dolibarr, bug id was 634783.
|
||||
|
||||
- Check bug is into database by searching with id on
|
||||
- Check bug is into database by searching with id on
|
||||
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=634783
|
||||
|
||||
|
||||
- Add a line for upstream into file changelog with bug number
|
||||
|
||||
- Call for a mentor on ML debian-mentors to upload packages
|
||||
@@ -129,26 +129,26 @@ To set status of a bug to "pending"
|
||||
> bts --smtp-host=yoursmtpserver tag 999999 +pending
|
||||
|
||||
or replay to email 999999@bugs.debian.org + submitter of bug
|
||||
With a message starting with:
|
||||
With a message starting with:
|
||||
|
||||
Control: tag -1 +pending
|
||||
Thanks. Fixed into git.
|
||||
|
||||
or replay to email control@bugs.debian.org
|
||||
With only message
|
||||
With only message
|
||||
tag 729538 +pending
|
||||
|
||||
|
||||
To remove status of a bug without "moreinfo" (bug can be processed)
|
||||
|
||||
or replay to email 999999@bugs.debian.org + submitter of bug
|
||||
With a message starting with:
|
||||
With a message starting with:
|
||||
|
||||
Control: tag -1 -moreinfo
|
||||
Thanks. Fixed into git.
|
||||
|
||||
or replay to email control@bugs.debian.org
|
||||
With only message
|
||||
With only message
|
||||
tag 729538 -moreinfo
|
||||
|
||||
|
||||
@@ -172,7 +172,7 @@ Pour lister les env chroot
|
||||
or
|
||||
> ls /srv/chroot
|
||||
|
||||
Puis pour se connecter et préparer l'environnement
|
||||
Puis pour se connecter et préparer l'environnement
|
||||
> schroot -c name_of_chroot (example schroot -c unstable-amd64-sbuild)
|
||||
> cat /etc/debian_chroot to check which debian branch we are into
|
||||
> apt-get install vim dialog
|
||||
@@ -212,7 +212,7 @@ or better
|
||||
|
||||
* You can then create a PHP project from Eclipse called tcpdf-debian
|
||||
from git clone dir and make link to git.
|
||||
|
||||
|
||||
* If local branch upstream and pristine-tar does not exists, create it
|
||||
from origin/upstream and origin/pristine.
|
||||
|
||||
@@ -220,7 +220,7 @@ from origin/upstream and origin/pristine.
|
||||
> debian/get-orig-source.sh
|
||||
If script fails with error Bad certificate, you can set "export PERL_LWP_SSL_VERIFY_HOSTNAME=0" to solve this.
|
||||
|
||||
* Some files are removed from archive by the get-orig-source.sh
|
||||
* Some files are removed from archive by the get-orig-source.sh
|
||||
|
||||
* Modify the tag file to replace sRGB.icc with correct free version and rename file into
|
||||
tcpdf_x.y.z+dfsgw.orig.tar.xz
|
||||
@@ -243,14 +243,14 @@ Warning: Date must have format reported by "date -R"
|
||||
Warning: Name and email must match value into debian/control file (Entry added here is used by next step).
|
||||
|
||||
* We try to build package
|
||||
> rm -fr ../build-area;
|
||||
> rm -fr ../build-area;
|
||||
> git-buildpackage -us -uc --git-debian-branch=[master|jessie] --git-upstream-branch=[upstream|upstream-x.y.z]
|
||||
ou
|
||||
> git-buildpackage -us -uc --git-ignore-branch --git-upstream-branch=[upstream|upstream-x.y.z]
|
||||
|
||||
Note: To build an old version, do: git checkout oldtagname -b newbranchname; git-buildpackage -us -uc --git-debian-branch=newbranchname --git-upstream-branch=[upstream|upstream-3.5.x]
|
||||
Note: You can use git-buildpackage -us -uc --git-ignore-new if you want to test build with uncommitted file
|
||||
Note: You can use git-buildpackage -us -uc -d if you want to test build when dependencies does not match
|
||||
Note: You can use git-buildpackage -us -uc -d if you want to test build when dependencies does not match
|
||||
Note: Package is built into directory ../build-area
|
||||
Note: To compare 2 packages: debdiff package1.dsc package2.dsc
|
||||
|
||||
@@ -297,7 +297,7 @@ from origin/upstream and origin/pristine.
|
||||
> debian/get-orig-source.sh
|
||||
If script fails with error Bad certificate, you can set "export PERL_LWP_SSL_VERIFY_HOSTNAME=0" to solve this.
|
||||
|
||||
* Edit orig.tar.gz file to remove
|
||||
* Edit orig.tar.gz file to remove
|
||||
- debian
|
||||
- htdocs/includes/ckeditor
|
||||
- htdocs/includes/jquery/css
|
||||
@@ -311,7 +311,7 @@ If script fails with error Bad certificate, you can set "export PERL_LWP_SSL_VER
|
||||
- htdocs/includes/restler/framework/Luracast/Restler/explorer
|
||||
- htdocs/includes/swiftmailer
|
||||
- htdocs/includes/tcpdf or htdocs/includes/tecnickcom
|
||||
And rename file into
|
||||
And rename file into
|
||||
dolibarr-x.y.z+dfsgw.tgz
|
||||
(x.y.z = version, w start from 1 and is increased for each new git-import-orig already done)
|
||||
|
||||
@@ -343,7 +343,7 @@ To update dolibarr debian package when only files into debian has changed:
|
||||
|
||||
To update dolibarr debian package when only files not into debian has changed:
|
||||
|
||||
* Checkout the branch you want to work on: master of debian/...
|
||||
* Checkout the branch you want to work on: master of debian/...
|
||||
* Manually, add patches into debian/patches and update the file debian/series, or do the 2 steps with "quilt import filepatch.patch"
|
||||
* You can test patching of series with "quilt push" (autant de fois que de patch). Avec "quilt pop -a", on revient a l'état du upstream sans les patch.
|
||||
* Update the debian/changelog to add entry of change.
|
||||
@@ -358,7 +358,7 @@ ou
|
||||
|
||||
Note: To build an old version, do: git checkout oldtagname -b newbranchname; git-buildpackage -us -uc --git-debian-branch=newbranchname --git-upstream-branch=[upstream|upstream-jessie|upstream-3.5.x|3.5.5]
|
||||
Note: You can use git-buildpackage -us -uc --git-ignore-new if you want to test build with uncommitted file
|
||||
Note: You can use git-buildpackage -us -uc -d if you want to test build when dependencies does not match
|
||||
Note: You can use git-buildpackage -us -uc -d if you want to test build when dependencies does not match
|
||||
Note: Package is built into directory ../build-area
|
||||
Note: To compare 2 packages: debdiff package1.dsc package2.dsc
|
||||
|
||||
@@ -382,7 +382,7 @@ Note: If there was errors managed manually, you may need to make a git commit bu
|
||||
|
||||
* Package arrives into FTPmaster taskboard with status NEW (pending upload). You can view it at:
|
||||
http://ftp-master.debian.org/new/
|
||||
|
||||
|
||||
* Once package is validated, you should see it into area unstable at:
|
||||
http://packages.qa.debian.org
|
||||
|
||||
@@ -390,7 +390,7 @@ http://packages.qa.debian.org
|
||||
|
||||
|
||||
|
||||
##### Send an unblock request to make a full update of a stable package
|
||||
##### Send an unblock request to make a full update of a stable package
|
||||
|
||||
Use this to move from unstable to testing.
|
||||
|
||||
@@ -402,7 +402,7 @@ Fill message, for example:
|
||||
"Please unblock package dolibarr
|
||||
A security error CVE-2015-3935 was reported and is fixed into package 3.5.7.
|
||||
Note that package 3.5.7 contains not only fixed for bugs reported to debian. It includes other fixes, but they are all related to stability or security,
|
||||
so it is a better solution to validate this maintenance release than applying a patch of the only CVE-2015-3935.
|
||||
so it is a better solution to validate this maintenance release than applying a patch of the only CVE-2015-3935.
|
||||
After discussion with ..., it appears that security holes are enough to request this unblock request."
|
||||
|
||||
|
||||
@@ -423,14 +423,14 @@ Pro are:
|
||||
- Patches were already tested because deployed and used by several thousands of users.
|
||||
- It is easier for package maintener to include this official set of fixes than applying one patch after one patch for each debian report or backported each patch into a dedicated version.
|
||||
- Debian maintenance version is inline with official project maintenance version (better when all fixes are not related to the way the software is packaged)
|
||||
Cons are:
|
||||
Cons are:
|
||||
- The patch include more than the only one security reported fixes
|
||||
|
||||
So I just need to know if it's ok to push such a version 3.5.7 (fixes for 3.5.* branch) instead of only one fix for only the few (the only) reported debian bugs,
|
||||
since it provides more stability and is for me a more secured process.
|
||||
"
|
||||
|
||||
##### Send an request to ask a simple fix of a stable package
|
||||
##### Send an request to ask a simple fix of a stable package
|
||||
|
||||
Use this to ask to apply patches on a stable version.
|
||||
|
||||
@@ -442,7 +442,7 @@ Fill message, for example:
|
||||
"Please unblock package dolibarr
|
||||
A security error CVE-2015-3935 was reported and is fixed into package 3.5.7.
|
||||
Note that package 3.5.7 contains not only fixed for bugs reported to debian. It includes other fixes, but they are all related to stability or security,
|
||||
so it is a better solution to validate this maintenance release than applying a patch of the only CVE-2015-3935.
|
||||
so it is a better solution to validate this maintenance release than applying a patch of the only CVE-2015-3935.
|
||||
After discussion with ..., it appears that security holes are enough to request this unblock request."
|
||||
|
||||
Note: If there is a response to ask more information, don't forget to remove the tag during answer.
|
||||
@@ -2,5 +2,5 @@ dolibarr (__VERSION__) UNRELEASED; urgency=low
|
||||
|
||||
[ Laurent Destailleur (eldy) ]
|
||||
* New upstream release.
|
||||
|
||||
-- Laurent Destailleur (eldy) <eldy@users.sourceforge.net> Tue, 12 May 2015 12:00:00 +0100
|
||||
|
||||
-- Laurent Destailleur (eldy) <eldy@users.sourceforge.net> Tue, 12 May 2015 12:00:00 +0100
|
||||
1
build/debian/compat
Normal file
1
build/debian/compat
Normal file
@@ -0,0 +1 @@
|
||||
10
|
||||
@@ -137,7 +137,7 @@ $dolibarr_main_db_collation='latin1_swedish_ci';
|
||||
# Default value: dolibarr
|
||||
# Possible values: Any values found in files in htdocs/core/login directory after
|
||||
# the "function_" string and before the ".php" string. You can also separate several
|
||||
# values using a ",". In this case, Dolibarr will check login/pass for each value in
|
||||
# values using a ",". In this case, Dolibarr will check login/pass for each value in
|
||||
# order defined into value. However, note that this can't work with all values.
|
||||
# Examples:
|
||||
# $dolibarr_main_authentication='http';
|
||||
@@ -235,3 +235,4 @@ $dolibarr_main_prod='0';
|
||||
# dolibarr_main_distrib
|
||||
# A key to identify the distribution used for first installation
|
||||
$dolibarr_main_distrib = 'debian';
|
||||
|
||||
@@ -7,7 +7,7 @@ Standards-Version: 3.9.6
|
||||
Homepage: https://www.dolibarr.org
|
||||
Build-Depends: debhelper (>= 9), po-debconf
|
||||
# This package need at least debian 7 or ubuntu 13.04 or any distribution based on this version
|
||||
|
||||
|
||||
Package: dolibarr
|
||||
Architecture: all
|
||||
# For debian 7 or 8 or 9
|
||||
@@ -35,8 +35,8 @@ Recommends: apache2 | lighttpd | httpd,
|
||||
php-xml, php-mbstring, php-intl
|
||||
Suggests: www-browser, php5-geoip
|
||||
Description: Web based software to manage a company or foundation
|
||||
Dolibarr ERP & CRM is an easy to use open source/free software package for
|
||||
companies, foundations or freelances. It includes different
|
||||
Dolibarr ERP & CRM is an easy to use open source/free software package for
|
||||
companies, foundations or freelances. It includes different
|
||||
features for Enterprise Resource Planning (ERP) and Customer Relationship
|
||||
Management (CRM) but also for different other activities.
|
||||
.
|
||||
@@ -38,7 +38,7 @@ Copyright: 2002-2009, Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
2011, Herve Prot <herve.prot@symeos.com>
|
||||
2011, Remy Younes <ryounes@gmail.com>
|
||||
2012-2013, Christophe Battarel <christophe.battarel@altairis.fr>
|
||||
|
||||
|
||||
License: GPL-3+
|
||||
This program is free software; you can redistribute it
|
||||
and/or modify it under the terms of the GNU General Public
|
||||
@@ -147,7 +147,7 @@ Comments:
|
||||
------------------------------------------------------------
|
||||
|
||||
Files: doc/images/*
|
||||
Copyright: Laurent Destailleur
|
||||
Copyright: Laurent Destailleur
|
||||
License: CC-BY-SA-3.0
|
||||
You are free:
|
||||
to Share (to copy, distribute and transmit the work) and
|
||||
@@ -306,7 +306,7 @@ Comment:
|
||||
|
||||
Files: htdocs/includes/odtphp/*
|
||||
Copyright: 2008, Julien Pauli
|
||||
2008, Cyril PIERRE de GEYER
|
||||
2008, Cyril PIERRE de GEYER
|
||||
2010, Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
License: GPL-2+
|
||||
This program is free software; you can redistribute it
|
||||
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
@@ -12,7 +12,7 @@ Comment[es]=Software para gestión de PYMES, profesionales independientes, auto
|
||||
Comment[fr]=L'ERP & CRM simple pour la gestion des PME et associations
|
||||
Comment[it]=Programma gestionale open source e gratuito per piccole e medie imprese, fondazioni e liberi professionisti
|
||||
# Command to open an URL
|
||||
# For Fedora: xdg-open
|
||||
# For Fedora: xdg-open
|
||||
# For Debian/Ubuntu: xdg-open or x-www-browser
|
||||
# (exo-open for xfde, gnome-open for gnome, ...)
|
||||
Exec=xdg-open http://localhost/dolibarr
|
||||
@@ -8,4 +8,4 @@ htdocs usr/share/dolibarr/
|
||||
scripts usr/share/dolibarr/
|
||||
doc/install usr/share/doc/dolibarr/
|
||||
doc/user usr/share/doc/dolibarr/
|
||||
doc/index.html usr/share/doc/dolibarr/
|
||||
doc/index.html usr/share/doc/dolibarr/
|
||||
@@ -7,4 +7,4 @@ dolibarr: apache2-deprecated-auth-config Order
|
||||
dolibarr: apache2-deprecated-auth-config Allow
|
||||
# Ignore warning required for a good install process
|
||||
dolibarr: apache2-reverse-dependency-calls-wrapper-script postinst a2enmod
|
||||
dolibarr: apache2-reverse-dependency-calls-wrapper-script postinst a2enconf
|
||||
dolibarr: apache2-reverse-dependency-calls-wrapper-script postinst a2enconf
|
||||
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
|
||||
# to this quetion are all files found into /usr/share/dolibarr/documents,
|
||||
# uploaded or generated when using Dolibarr) ?
|
||||
|
||||
@@ -27,7 +27,7 @@ $force_install_lockinstall='444';
|
||||
$force_install_distrib='debian';
|
||||
|
||||
// Value to overwrite path to use shared libraries/fonts instead of embedded one.
|
||||
// If during install, we enable/disable declaration to use non embedded libraries, we must also check they are
|
||||
// If during install, we enable/disable declaration to use non embedded libraries, we must also check they are
|
||||
// - not removed from package (see rm in rules file),
|
||||
// - declared into dependencies (see Depends in control file)
|
||||
//$force_dolibarr_lib_TCPDF_PATH='';
|
||||
@@ -1,11 +1,11 @@
|
||||
# Alias for dolibarr directory
|
||||
alias.url += (
|
||||
alias.url += (
|
||||
"/dolibarr" => "/usr/share/dolibarr/htdocs",
|
||||
)
|
||||
|
||||
# Disallow access to libraries
|
||||
#$HTTP["url"] =~ "^/dolibarr/libraries" {
|
||||
# url.access-deny = ( "" )
|
||||
#$HTTP["url"] =~ "^/dolibarr/libraries" {
|
||||
# url.access-deny = ( "" )
|
||||
#}
|
||||
|
||||
# Limit access to setup script
|
||||
@@ -19,8 +19,8 @@ This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
|
||||
-//$conffiletoshow = "/etc/dolibarr/conf.php";
|
||||
+$conffile = "/etc/dolibarr/conf.php";
|
||||
+$conffiletoshow = "/etc/dolibarr/conf.php";
|
||||
|
||||
|
||||
|
||||
|
||||
// Include configuration
|
||||
--- a/htdocs/install/inc.php
|
||||
+++ b/htdocs/install/inc.php
|
||||
@@ -32,6 +32,6 @@ This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
|
||||
-//$conffiletoshow = "/etc/dolibarr/conf.php";
|
||||
+$conffile = "/etc/dolibarr/conf.php";
|
||||
+$conffiletoshow = "/etc/dolibarr/conf.php";
|
||||
|
||||
|
||||
$short_options = "c:h";
|
||||
$long_options = array(
|
||||
1
build/debian/po/POTFILES.in
Normal file
1
build/debian/po/POTFILES.in
Normal file
@@ -0,0 +1 @@
|
||||
[type: gettext/rfc822deb] dolibarr.templates
|
||||
@@ -66,7 +66,7 @@ override_dh_install:
|
||||
rm -fr dev/xdebug
|
||||
rm -f dev/dolibarr_changes.txt
|
||||
rm -f dev/README
|
||||
|
||||
|
||||
rm -f doc/images/dolibarr_screenshot2.png
|
||||
rm -f doc/images/dolibarr_screenshot3.png
|
||||
rm -f doc/images/dolibarr_screenshot4.png
|
||||
@@ -81,17 +81,17 @@ override_dh_install:
|
||||
|
||||
rm -fr test
|
||||
|
||||
rm -fr dev/build/aps
|
||||
rm -fr dev/build/dmg
|
||||
rm -fr dev/build/doap
|
||||
rm -fr dev/build/exe
|
||||
rm -fr dev/build/launchpad
|
||||
rm -fr dev/build/live
|
||||
rm -fr dev/build/patch
|
||||
rm -fr dev/build/perl
|
||||
rm -fr dev/build/rpm
|
||||
rm -fr dev/build/zip
|
||||
|
||||
rm -fr build/aps
|
||||
rm -fr build/dmg
|
||||
rm -fr build/doap
|
||||
rm -fr build/exe
|
||||
rm -fr build/launchpad
|
||||
rm -fr build/live
|
||||
rm -fr build/patch
|
||||
rm -fr build/perl
|
||||
rm -fr build/rpm
|
||||
rm -fr build/zip
|
||||
|
||||
# clean from all PHP embedded libraries (we use package dependencies instead)
|
||||
# rm -fr htdocs/includes/geoip
|
||||
# rm -fr htdocs/includes/nusoap
|
||||
@@ -128,3 +128,4 @@ override_dh_fixperms:
|
||||
# Give rights to the webserver on the upload directory
|
||||
chown www-data:www-data 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
|
||||
# they are data files
|
||||
source-is-missing htdocs/includes/mobiledetect/mobiledetectlib/Mobile_Detect.json
|
||||
|
||||
@@ -4,4 +4,4 @@ DOLIMAMP Package tools
|
||||
##################################################
|
||||
|
||||
This directory contains files and docs used to build
|
||||
a DoliMamp package for Mac OS X.
|
||||
a DoliMamp package for Mac OS X.
|
||||
@@ -23,12 +23,11 @@ RUN apt-get update -y \
|
||||
msmtp \
|
||||
msmtp-mta \
|
||||
mailutils \
|
||||
libpq-dev \
|
||||
&& apt-get autoremove -y \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& 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-configure ldap \
|
||||
&& docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \
|
||||
&& docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
|
||||
&& docker-php-ext-install -j$(nproc) ldap && \
|
||||
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/tuxgasy/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:
|
||||
internal-pod:
|
||||
internal: true
|
||||
@@ -16,6 +17,19 @@ services:
|
||||
networks:
|
||||
- internal-pod
|
||||
- external-pod
|
||||
|
||||
phpmyadmin:
|
||||
image: phpmyadmin/phpmyadmin
|
||||
environment:
|
||||
PMA_HOST: mariadb
|
||||
depends_on:
|
||||
- mariadb
|
||||
ports:
|
||||
- "8080:80"
|
||||
networks:
|
||||
- internal-pod
|
||||
- external-pod
|
||||
|
||||
web:
|
||||
build: .
|
||||
environment:
|
||||
@@ -23,12 +37,13 @@ services:
|
||||
PHP_INI_DATE_TIMEZONE: $PHP_INI_DATE_TIMEZONE
|
||||
PHP_INI_MEMORY_LIMIT: $PHP_INI_MEMORY_LIMIT
|
||||
volumes:
|
||||
- ../../../htdocs:/var/www/html/
|
||||
- ../../../documents:/var/www/documents
|
||||
- ../../htdocs:/var/www/html/
|
||||
- ../../documents:/var/documents
|
||||
ports:
|
||||
- "80:80"
|
||||
- "9000:9000"
|
||||
depends_on:
|
||||
- mariadb
|
||||
- mail
|
||||
networks:
|
||||
- internal-pod
|
||||
@@ -1,21 +1,24 @@
|
||||
#!/bin/bash
|
||||
# Script used by the Dockerfile.
|
||||
# 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
|
||||
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'"
|
||||
cat <<EOF > "${PHP_INI_DIR}/conf.d/dolibarr-php.ini"
|
||||
date.timezone = ${PHP_INI_DATE_TIMEZONE:-UTC}
|
||||
memory_limit = ${PHP_INI_MEMORY_LIMIT:-256M}
|
||||
display_errors = Off
|
||||
EOF
|
||||
|
||||
exec apache2-foreground
|
||||
6
build/docker/README.md
Normal file
6
build/docker/README.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# How to use it ?
|
||||
|
||||
export HOST_USER_ID=$(id -u)
|
||||
export MYSQL_ROOT_PWD=$(tr -dc A-Za-z0-9 </dev/urandom | head -c 13; echo)
|
||||
|
||||
docker-compose up -d
|
||||
38
build/docker/docker-compose.yml
Normal file
38
build/docker/docker-compose.yml
Normal file
@@ -0,0 +1,38 @@
|
||||
# This docker-compose.yml file is used to build and test quickly
|
||||
# a specific version of Dolibarr
|
||||
#
|
||||
# Before build, define the variable DOLI_VERSION as following:
|
||||
# $ export DOLI_VERSION=4.0.4
|
||||
# And then, you can run :
|
||||
# $ docker-compose up
|
||||
#
|
||||
# More information about Docker-compose : https://docs.docker.com/compose/
|
||||
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
mariadb:
|
||||
container_name: dolibarr-mariadb-dev
|
||||
image: mariadb:latest
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PWD
|
||||
MYSQL_DATABASE: "dolibarr-prod"
|
||||
|
||||
web:
|
||||
container_name: dolibarr-web-dev
|
||||
build: .
|
||||
|
||||
volumes:
|
||||
- ../../htdocs:/var/www/html/
|
||||
- ../../documents:/var/www/html/documents
|
||||
|
||||
depends_on:
|
||||
- mariadb
|
||||
environment:
|
||||
WWW_USER_ID: 1000
|
||||
WWW_GROUP_ID: 1000
|
||||
DOLI_ROOT_PASSWORD: $MYSQL_ROOT_PWD
|
||||
DOLI_DATABASE: "dolibarr-prod"
|
||||
DOLI_DB_SERVER: "mariadb"
|
||||
ports:
|
||||
- "8080:80"
|
||||
@@ -2,26 +2,18 @@
|
||||
# Script used by the Dockerfile.
|
||||
# See README.md to know how to create a Dolibarr env with docker
|
||||
|
||||
if [ "${PHP_INI_DIR}" == "" ]; then
|
||||
echo
|
||||
echo This script must not be run directly. It is used by the Dockerfile
|
||||
echo See README.md
|
||||
echo
|
||||
exit
|
||||
fi
|
||||
|
||||
usermod -u "${HOST_USER_ID}" www-data
|
||||
groupmod -g "${HOST_GROUP_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/www/documents ]; then
|
||||
echo "[docker-run] => create volume directory /var/www/documents ..."
|
||||
mkdir -p /var/www/documents
|
||||
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/www/documents"
|
||||
chown -R www-data:www-data /var/www/documents
|
||||
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'"
|
||||
cat <<EOF > "${PHP_INI_DIR}/conf.d/dolibarr-php.ini"
|
||||
@@ -19,7 +19,7 @@ my $dir = getcwd;
|
||||
print "Current dir is: $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 "\n";
|
||||
@@ -27,7 +27,7 @@ if (! -s "dev/build/doxygen/$CONFFILE")
|
||||
print '> perl .\dolibarr-doxygen-build.pl (on Windows)'."\n";
|
||||
print '> perl ../dolibarr-doxygen-build.pl (on Linux or BSD)'."\n";
|
||||
sleep 4;
|
||||
exit 1;
|
||||
exit 1;
|
||||
}
|
||||
|
||||
$SOURCE=".";
|
||||
@@ -47,8 +47,8 @@ $version=$MAJOR.".".$MINOR.".".$BUILD;
|
||||
|
||||
|
||||
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";
|
||||
$result=`cat dev/build/doxygen/$CONFFILE | sed -e 's/x\.y\.z/$version/' | doxygen $OPTIONS - 2>&1`;
|
||||
print "cat build/doxygen/$CONFFILE | sed -e 's/x\.y\.z/".$version."/' | doxygen $OPTIONS - 2>&1\n";
|
||||
$result=`cat build/doxygen/$CONFFILE | sed -e 's/x\.y\.z/$version/' | doxygen $OPTIONS - 2>&1`;
|
||||
|
||||
print $result;
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
# Usage: dolibarr-doxygen-getversion.pl pathtofilefromdolibarrroot
|
||||
|
||||
$file=$ARGV[0];
|
||||
if (! $file)
|
||||
if (! $file)
|
||||
{
|
||||
print "Usage: dolibarr-doxygen-getversion.pl pathtofilefromdolibarrroot\n";
|
||||
exit;
|
||||
@@ -41,7 +41,7 @@ PROJECT_NUMBER = x.y.z
|
||||
# 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.
|
||||
|
||||
OUTPUT_DIRECTORY = dev/build
|
||||
OUTPUT_DIRECTORY = build
|
||||
|
||||
# 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
|
||||
@@ -89,7 +89,7 @@ REPEAT_BRIEF = YES
|
||||
# "The $name file" "is" "provides" "specifies" "contains"
|
||||
# "represents" "a" "an" "the"
|
||||
|
||||
ABBREVIATE_BRIEF =
|
||||
ABBREVIATE_BRIEF =
|
||||
|
||||
# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
|
||||
# Doxygen will generate a detailed section even if there is only a brief
|
||||
@@ -126,7 +126,7 @@ STRIP_FROM_PATH = "/home/dolibarr/doxygen.dolibarr.org/"
|
||||
# definition is used. Otherwise one should specify the include paths that
|
||||
# are normally passed to the compiler using the -I flag.
|
||||
|
||||
STRIP_FROM_INC_PATH =
|
||||
STRIP_FROM_INC_PATH =
|
||||
|
||||
# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
|
||||
# (but less readable) file names. This can be useful is your file systems
|
||||
@@ -182,7 +182,7 @@ TAB_SIZE = 2
|
||||
# will result in a user-defined paragraph with heading "Side Effects:".
|
||||
# You can put \n's in the value part of an alias to insert newlines.
|
||||
|
||||
ALIASES =
|
||||
ALIASES =
|
||||
|
||||
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
|
||||
# sources only. Doxygen will then generate output that is more tailored for C.
|
||||
@@ -469,7 +469,7 @@ GENERATE_DEPRECATEDLIST = YES
|
||||
# The ENABLED_SECTIONS tag can be used to enable conditional
|
||||
# documentation sections, marked by \if sectionname ... \endif.
|
||||
|
||||
ENABLED_SECTIONS =
|
||||
ENABLED_SECTIONS =
|
||||
|
||||
# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
|
||||
# the initial value of a variable or define consists of for it to appear in
|
||||
@@ -515,7 +515,7 @@ SHOW_NAMESPACES = NO
|
||||
# is used as the file version. See the manual for examples.
|
||||
|
||||
#FILE_VERSION_FILTER = dolibarr-doxygen-getversion.pl
|
||||
FILE_VERSION_FILTER =
|
||||
FILE_VERSION_FILTER =
|
||||
|
||||
# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
|
||||
# by doxygen. The layout file controls the global structure of the generated
|
||||
@@ -524,7 +524,7 @@ FILE_VERSION_FILTER =
|
||||
# You can optionally specify a file name after the option, if omitted
|
||||
# DoxygenLayout.xml will be used as the name of the layout file.
|
||||
|
||||
LAYOUT_FILE =
|
||||
LAYOUT_FILE =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to warning and progress messages
|
||||
@@ -575,7 +575,7 @@ WARN_FORMAT = "$file:$line: $text"
|
||||
# and error messages should be written. If left blank the output is written
|
||||
# to stderr.
|
||||
|
||||
WARN_LOGFILE = dev/build/html/doxygen_warnings.log
|
||||
WARN_LOGFILE = build/html/doxygen_warnings.log
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
@@ -638,13 +638,13 @@ EXCLUDE_PATTERNS = */CVS/*
|
||||
# wildcard * is used, a substring. Examples: ANamespace, AClass,
|
||||
# AClass::ANamespace, ANamespace::*Test
|
||||
|
||||
EXCLUDE_SYMBOLS =
|
||||
EXCLUDE_SYMBOLS =
|
||||
|
||||
# The EXAMPLE_PATH tag can be used to specify one or more files or
|
||||
# directories that contain example code fragments that are included (see
|
||||
# the \include command).
|
||||
|
||||
#EXAMPLE_PATH = htdocs/modulebuilder/template
|
||||
#EXAMPLE_PATH = htdocs/modulebuilder/template
|
||||
|
||||
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
|
||||
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
|
||||
@@ -678,7 +678,7 @@ IMAGE_PATH = doc/images
|
||||
# Works on Linux only
|
||||
#INPUT_FILTER = ../dolibarr-doxygen-filter.pl
|
||||
#INPUT_FILTER = "perl ../dolibarr-doxygen-filter.pl"
|
||||
INPUT_FILTER =
|
||||
INPUT_FILTER =
|
||||
|
||||
# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
|
||||
# basis.
|
||||
@@ -689,7 +689,7 @@ INPUT_FILTER =
|
||||
# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
|
||||
# is applied to all files.
|
||||
|
||||
FILTER_PATTERNS =
|
||||
FILTER_PATTERNS =
|
||||
|
||||
# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
|
||||
# INPUT_FILTER) will be used to filter the input files when producing source
|
||||
@@ -774,7 +774,7 @@ ALPHABETICAL_INDEX = YES
|
||||
# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
|
||||
# should be ignored while generating the index headers.
|
||||
|
||||
IGNORE_PREFIX =
|
||||
IGNORE_PREFIX =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the HTML output
|
||||
@@ -804,14 +804,14 @@ HTML_FILE_EXTENSION = .html
|
||||
# standard header.
|
||||
|
||||
# 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
|
||||
# each generated HTML page. If it is left blank doxygen will generate a
|
||||
# standard footer.
|
||||
|
||||
# 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
|
||||
# style sheet that is used by each HTML page. It can be used to
|
||||
@@ -820,7 +820,7 @@ HTML_FOOTER = dev/build/doxygen/doxygen_footer.html
|
||||
# the style sheet file to the HTML output directory, so don't put your own
|
||||
# stylesheet in the HTML output directory as well, or it will be erased!
|
||||
|
||||
HTML_STYLESHEET =
|
||||
HTML_STYLESHEET =
|
||||
|
||||
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
|
||||
# Doxygen will adjust the colors in the stylesheet and background images
|
||||
@@ -927,14 +927,14 @@ GENERATE_HTMLHELP = NO
|
||||
# can add a path in front of the file if the result should not be
|
||||
# written to the html output directory.
|
||||
|
||||
CHM_FILE =
|
||||
CHM_FILE =
|
||||
|
||||
# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
|
||||
# be used to specify the location (absolute path including file name) of
|
||||
# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
|
||||
# the HTML help compiler on the generated index.hhp.
|
||||
|
||||
HHC_LOCATION =
|
||||
HHC_LOCATION =
|
||||
|
||||
# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
|
||||
# controls if a separate .chi index file is generated (YES) or that
|
||||
@@ -946,7 +946,7 @@ GENERATE_CHI = NO
|
||||
# is used to encode HtmlHelp index (hhk), content (hhc) and project file
|
||||
# content.
|
||||
|
||||
CHM_INDEX_ENCODING =
|
||||
CHM_INDEX_ENCODING =
|
||||
|
||||
# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
|
||||
# controls whether a binary table of contents is generated (YES) or a
|
||||
@@ -970,7 +970,7 @@ GENERATE_QHP = NO
|
||||
# be used to specify the file name of the resulting .qch file.
|
||||
# The path specified is relative to the HTML output folder.
|
||||
|
||||
QCH_FILE =
|
||||
QCH_FILE =
|
||||
|
||||
# The QHP_NAMESPACE tag specifies the namespace to use when generating
|
||||
# Qt Help Project output. For more information please see
|
||||
@@ -988,14 +988,14 @@ QHP_VIRTUAL_FOLDER = doc
|
||||
# add. For more information please see
|
||||
# http://doc.trolltech.com/qthelpproject.html#custom-filters
|
||||
|
||||
QHP_CUST_FILTER_NAME =
|
||||
QHP_CUST_FILTER_NAME =
|
||||
|
||||
# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
|
||||
# custom filter to add. For more information please see
|
||||
# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
|
||||
# Qt Help Project / Custom Filters</a>.
|
||||
|
||||
QHP_CUST_FILTER_ATTRS =
|
||||
QHP_CUST_FILTER_ATTRS =
|
||||
|
||||
# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
|
||||
# project's
|
||||
@@ -1003,14 +1003,14 @@ QHP_CUST_FILTER_ATTRS =
|
||||
# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
|
||||
# Qt Help Project / Filter Attributes</a>.
|
||||
|
||||
QHP_SECT_FILTER_ATTRS =
|
||||
QHP_SECT_FILTER_ATTRS =
|
||||
|
||||
# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
|
||||
# be used to specify the location of Qt's qhelpgenerator.
|
||||
# If non-empty doxygen will try to run qhelpgenerator on the generated
|
||||
# .qhp file.
|
||||
|
||||
QHG_LOCATION =
|
||||
QHG_LOCATION =
|
||||
|
||||
# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
|
||||
# will be generated, which together with the HTML files, form an Eclipse help
|
||||
@@ -1146,14 +1146,14 @@ PAPER_TYPE = a4
|
||||
# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
|
||||
# packages that should be included in the LaTeX output.
|
||||
|
||||
EXTRA_PACKAGES =
|
||||
EXTRA_PACKAGES =
|
||||
|
||||
# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
|
||||
# the generated latex document. The header should contain everything until
|
||||
# the first chapter. If it is left blank doxygen will generate a
|
||||
# standard header. Notice: only use this tag if you know what you are doing!
|
||||
|
||||
LATEX_HEADER =
|
||||
LATEX_HEADER =
|
||||
|
||||
# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
|
||||
# is prepared for conversion to pdf (using ps2pdf). The pdf file will
|
||||
@@ -1223,12 +1223,12 @@ RTF_HYPERLINKS = NO
|
||||
# config file, i.e. a series of assignments. You only have to provide
|
||||
# replacements, missing definitions are set to their default value.
|
||||
|
||||
RTF_STYLESHEET_FILE =
|
||||
RTF_STYLESHEET_FILE =
|
||||
|
||||
# Set optional variables used in the generation of an rtf document.
|
||||
# Syntax is similar to doxygen's config file.
|
||||
|
||||
RTF_EXTENSIONS_FILE =
|
||||
RTF_EXTENSIONS_FILE =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the man page output
|
||||
@@ -1278,13 +1278,13 @@ XML_OUTPUT = xml
|
||||
# which can be used by a validating XML parser to check the
|
||||
# syntax of the XML files.
|
||||
|
||||
#XML_SCHEMA =
|
||||
#XML_SCHEMA =
|
||||
|
||||
# The XML_DTD tag can be used to specify an XML DTD,
|
||||
# which can be used by a validating XML parser to check the
|
||||
# syntax of the XML files.
|
||||
|
||||
#XML_DTD =
|
||||
#XML_DTD =
|
||||
|
||||
# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
|
||||
# dump the program listings (including syntax highlighting
|
||||
@@ -1338,7 +1338,7 @@ PERLMOD_PRETTY = YES
|
||||
# This is useful so different doxyrules.make files included by the same
|
||||
# Makefile don't overwrite each other's variables.
|
||||
|
||||
PERLMOD_MAKEVAR_PREFIX =
|
||||
PERLMOD_MAKEVAR_PREFIX =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the preprocessor
|
||||
@@ -1372,14 +1372,14 @@ SEARCH_INCLUDES = YES
|
||||
# contain include files that are not input files but should be processed by
|
||||
# the preprocessor.
|
||||
|
||||
INCLUDE_PATH =
|
||||
INCLUDE_PATH =
|
||||
|
||||
# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
|
||||
# patterns (like *.h and *.hpp) to filter out the header-files in the
|
||||
# directories. If left blank, the patterns specified with FILE_PATTERNS will
|
||||
# be used.
|
||||
|
||||
INCLUDE_FILE_PATTERNS =
|
||||
INCLUDE_FILE_PATTERNS =
|
||||
|
||||
# The PREDEFINED tag can be used to specify one or more macro names that
|
||||
# are defined before the preprocessor is started (similar to the -D option of
|
||||
@@ -1389,14 +1389,14 @@ INCLUDE_FILE_PATTERNS =
|
||||
# undefined via #undef or recursively expanded use the := operator
|
||||
# instead of the = operator.
|
||||
|
||||
PREDEFINED =
|
||||
PREDEFINED =
|
||||
|
||||
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
|
||||
# this tag can be used to specify a list of macro names that should be expanded.
|
||||
# The macro definition that is found in the sources will be used.
|
||||
# Use the PREDEFINED tag if you want to use a different macro definition.
|
||||
|
||||
EXPAND_AS_DEFINED =
|
||||
EXPAND_AS_DEFINED =
|
||||
|
||||
# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
|
||||
# doxygen's preprocessor will remove all function-like macros that are alone
|
||||
@@ -1427,12 +1427,12 @@ SKIP_FUNCTION_MACROS = YES
|
||||
# If a tag file is not located in the directory in which doxygen
|
||||
# is run, you must also specify the path to the tagfile here.
|
||||
|
||||
TAGFILES =
|
||||
TAGFILES =
|
||||
|
||||
# When a file name is specified after GENERATE_TAGFILE, doxygen will create
|
||||
# a tag file that is based on the input files it reads.
|
||||
|
||||
GENERATE_TAGFILE =
|
||||
GENERATE_TAGFILE =
|
||||
|
||||
# If the ALLEXTERNALS tag is set to YES all external classes will be listed
|
||||
# in the class index. If set to NO only the inherited external classes
|
||||
@@ -1471,7 +1471,7 @@ CLASS_DIAGRAMS = NO
|
||||
# the mscgen tool resides. If left empty the tool is assumed to be found in the
|
||||
# default search path.
|
||||
|
||||
#MSCGEN_PATH =
|
||||
#MSCGEN_PATH =
|
||||
|
||||
# If set to YES, the inheritance and collaboration graphs will hide
|
||||
# inheritance and usage relations if the target is undocumented
|
||||
@@ -1515,7 +1515,7 @@ DOT_FONTSIZE = 10
|
||||
# different font using DOT_FONTNAME you can set the path where dot
|
||||
# can find it using this tag.
|
||||
|
||||
DOT_FONTPATH =
|
||||
DOT_FONTPATH =
|
||||
|
||||
# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
|
||||
# will generate a graph for each documented class showing the direct and
|
||||
@@ -1598,13 +1598,13 @@ DOT_IMAGE_FORMAT = png
|
||||
# The tag DOT_PATH can be used to specify the path where the dot tool can be
|
||||
# found. If left blank, it is assumed the dot tool can be found in the path.
|
||||
|
||||
DOT_PATH =
|
||||
DOT_PATH =
|
||||
|
||||
# The DOTFILE_DIRS tag can be used to specify one or more directories that
|
||||
# contain dot files that are included in the documentation (see the
|
||||
# \dotfile command).
|
||||
|
||||
DOTFILE_DIRS =
|
||||
DOTFILE_DIRS =
|
||||
|
||||
# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
|
||||
# nodes that will be shown in the graph. If the number of nodes in a graph
|
||||
@@ -1655,4 +1655,4 @@ DOT_CLEANUP = YES
|
||||
|
||||
|
||||
FULL_SIDEBAR = NO
|
||||
HTML_EXTRA_STYLESHEET = dev/build/doxygen/doxygen-awesome.css
|
||||
HTML_EXTRA_STYLESHEET = build/doxygen/doxygen-awesome.css
|
||||
@@ -204,7 +204,7 @@ html {
|
||||
--code-background: #2a2c2f;
|
||||
|
||||
--tablehead-background: #2a2c2f;
|
||||
|
||||
|
||||
--blockquote-background: #222325;
|
||||
--blockquote-foreground: #7e8c92;
|
||||
|
||||
@@ -884,7 +884,7 @@ div.header {
|
||||
flex-wrap: nowrap;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
|
||||
div.contents .textblock {
|
||||
min-width: 200px;
|
||||
flex-grow: 1;
|
||||
@@ -973,21 +973,21 @@ html.dark-mode div.contents table iframe {
|
||||
h2.groupheader {
|
||||
border-bottom: 0px;
|
||||
color: var(--page-foreground-color);
|
||||
box-shadow:
|
||||
100px 0 var(--page-background-color),
|
||||
box-shadow:
|
||||
100px 0 var(--page-background-color),
|
||||
-100px 0 var(--page-background-color),
|
||||
100px 0.75px var(--separator-color),
|
||||
-100px 0.75px var(--separator-color),
|
||||
500px 0 var(--page-background-color),
|
||||
500px 0 var(--page-background-color),
|
||||
-500px 0 var(--page-background-color),
|
||||
500px 0.75px var(--separator-color),
|
||||
-500px 0.75px var(--separator-color),
|
||||
900px 0 var(--page-background-color),
|
||||
900px 0 var(--page-background-color),
|
||||
-900px 0 var(--page-background-color),
|
||||
900px 0.75px var(--separator-color),
|
||||
-900px 0.75px var(--separator-color),
|
||||
1400px 0 var(--page-background-color),
|
||||
-1400px 0 var(--page-background-color),
|
||||
-1400px 0 var(--page-background-color),
|
||||
1400px 0.75px var(--separator-color),
|
||||
-1400px 0.75px var(--separator-color),
|
||||
1900px 0 var(--page-background-color),
|
||||
@@ -1143,8 +1143,8 @@ div.toc li a.aboveActive {
|
||||
|
||||
div.contents .toc.interactive > h3::before {
|
||||
content: "";
|
||||
width: 0;
|
||||
height: 0;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-left: 4px solid transparent;
|
||||
border-right: 4px solid transparent;
|
||||
border-top: 5px solid var(--primary-color);
|
||||
@@ -1822,8 +1822,8 @@ table.memberdecls img[src="closed.png"],
|
||||
table.memberdecls img[src="open.png"],
|
||||
div.dynheader img[src="open.png"],
|
||||
div.dynheader img[src="closed.png"] {
|
||||
width: 0;
|
||||
height: 0;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-left: 4px solid transparent;
|
||||
border-right: 4px solid transparent;
|
||||
border-top: 5px solid var(--primary-color);
|
||||
@@ -1841,7 +1841,7 @@ table.memberdecls img {
|
||||
table.memberdecls img[src="closed.png"],
|
||||
div.dynheader img[src="closed.png"] {
|
||||
transform: rotate(-90deg);
|
||||
|
||||
|
||||
}
|
||||
|
||||
.compoundTemplParams {
|
||||
@@ -1884,7 +1884,7 @@ div.dynheader img[src="closed.png"] {
|
||||
margin-bottom: calc(0px - var(--page-font-size));
|
||||
}
|
||||
|
||||
table.memberdecls .memItemRight,
|
||||
table.memberdecls .memItemRight,
|
||||
table.memberdecls .mdescRight,
|
||||
table.memberdecls .memTemplItemRight {
|
||||
border-top: 0;
|
||||
@@ -2070,8 +2070,8 @@ html.dark-mode .iconfopen, html.dark-mode .iconfclosed {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
/*
|
||||
Class Index Doxygen 1.8
|
||||
/*
|
||||
Class Index Doxygen 1.8
|
||||
*/
|
||||
|
||||
table.classindex {
|
||||
@@ -2212,7 +2212,7 @@ div.contents .toc::-webkit-scrollbar-thumb {
|
||||
background-color: transparent;
|
||||
border: var(--webkit-scrollbar-padding) solid transparent;
|
||||
border-radius: calc(var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding));
|
||||
background-clip: padding-box;
|
||||
background-clip: padding-box;
|
||||
}
|
||||
|
||||
#nav-tree:hover::-webkit-scrollbar-thumb,
|
||||
@@ -2406,8 +2406,8 @@ h2:hover a.anchorlink, h1:hover a.anchorlink, h3:hover a.anchorlink, h4:hover a.
|
||||
|
||||
|
||||
#MSearchBox .left {
|
||||
background: none !important;
|
||||
background: none !important;
|
||||
}
|
||||
#MSearchBox .right {
|
||||
background: none !important;
|
||||
background: none !important;
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
<!--
|
||||
<!--
|
||||
File added into doxygen generated documentation
|
||||
-->
|
||||
|
||||
@@ -23,4 +23,4 @@ File added into doxygen generated documentation
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
@@ -48,3 +48,5 @@
|
||||
</div>
|
||||
|
||||
<!-- 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