mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2026-03-19 08:33:53 +01:00
Compare commits
20 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e98c441c4c | ||
|
|
638fd27af2 | ||
|
|
f9c6562de9 | ||
|
|
8ede2e75f5 | ||
|
|
86bb0b4cc5 | ||
|
|
4098eafe24 | ||
|
|
a81ba1847d | ||
|
|
209323598a | ||
|
|
88b66741fc | ||
|
|
6505e41b4d | ||
|
|
a4bd180c72 | ||
|
|
2605d33dbc | ||
|
|
9e13496975 | ||
|
|
39f3abec0c | ||
|
|
a9d846dfd6 | ||
|
|
2a3982f2fd | ||
|
|
e77af9c26c | ||
|
|
e0ceff086e | ||
|
|
2f5a74e34c | ||
|
|
f90e121650 |
@@ -6,6 +6,7 @@ languages:
|
||||
engines:
|
||||
phpcodesniffer: true
|
||||
exclude_paths:
|
||||
- 'build/*'
|
||||
- 'dev/*'
|
||||
- 'doc/*'
|
||||
- 'test/*'
|
||||
|
||||
10
.gitattributes
vendored
10
.gitattributes
vendored
@@ -39,20 +39,20 @@
|
||||
|
||||
|
||||
# Export ignores to generate clean production tarballs
|
||||
/build export-ignore
|
||||
/dev export-ignore
|
||||
/doc export-ignore
|
||||
/test export-ignore
|
||||
/.github export-ignore
|
||||
/.phan export-ignore
|
||||
/.tx export-ignore
|
||||
.buildpath export-ignore
|
||||
/build.xml export-ignore
|
||||
.codeclimate.yml export-ignore
|
||||
Dockerfile export-ignore
|
||||
.dockerignore export-ignore
|
||||
.editorconfig export-ignore
|
||||
.gitattributes export-ignore
|
||||
.gitignore export-ignore
|
||||
.mailmap export-ignore
|
||||
.pre-commit-config.yaml export-ignore
|
||||
.scrutinizer.yml export-ignore
|
||||
.settings export-ignore
|
||||
.travis.yml export-ignore
|
||||
Dockerfile export-ignore
|
||||
.tx export-ignore
|
||||
|
||||
8
.github/CONTRIBUTING.md
vendored
8
.github/CONTRIBUTING.md
vendored
@@ -136,9 +136,9 @@ If your PR is a change on interface, you must also paste a screenshot showing th
|
||||
|
||||
#### Examples
|
||||
<pre>
|
||||
FIX|Fix #456 Short description (where #456 is number of bug fix, if an issue ID exists, or #xxx456 with xxx as the name of the VDP platform in lower case for security issues. The "Fix" must be in upper case to appear into ChangeLog)
|
||||
FIX|Fix #456 Short description (where #456 is number of bug fix, if it exists. In upper case to appear into ChangeLog)
|
||||
or
|
||||
CLOSE|Close #456 Short description (where #456 is number of feature request, if it exists. The "Close" must be in upper case to appear into ChangeLog)
|
||||
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)
|
||||
or
|
||||
@@ -153,7 +153,7 @@ Long description (Can span across multiple lines).
|
||||
Pull Request (PR) process is the process to submit a change (enhancement, bug fix, ...) into the code of the project. There is some rules to know and
|
||||
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.
|
||||
|
||||
@@ -185,7 +185,7 @@ 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/).
|
||||
|
||||
|
||||
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*]
|
||||
|
||||
|
||||
13
.github/dependabot.yml
vendored
13
.github/dependabot.yml
vendored
@@ -1,19 +1,6 @@
|
||||
# To get started with Dependabot version updates, you'll need to specify which
|
||||
# package ecosystems to update and where the package manifests are located.
|
||||
# Please see the documentation for all configuration options:
|
||||
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
allow:
|
||||
# Allow production updates only (can do a AND, several entries are doing a OR)
|
||||
- dependency-type: "production"
|
||||
#- dependency-type: "direct"
|
||||
exclude-paths:
|
||||
- 'dev'
|
||||
- 'tests/acceptance'
|
||||
- 'tests/selenium'
|
||||
|
||||
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:
|
||||
-----------------------
|
||||
|
||||
- ci-stale-issues-safe to autoclose old issues.
|
||||
- ci-phpstan_baseline to update the phpstan baseline file.
|
||||
- ci-cache-clean-pr to clean cache when closing a PR.
|
||||
- ci-test to make CI tests
|
||||
|
||||
Some tests workflows are:
|
||||
------------------------
|
||||
|
||||
- pr-18
|
||||
- pr-18-autolbal
|
||||
- test
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
---
|
||||
# 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]
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
jobs:
|
||||
cleanup:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -18,7 +15,7 @@ jobs:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@v4
|
||||
- name: Cleanup
|
||||
run: |
|
||||
gh extension install actions/gh-actions-cache
|
||||
29
.github/workflows/ci-checkfilesetlock.yml
vendored
29
.github/workflows/ci-checkfilesetlock.yml
vendored
@@ -1,29 +0,0 @@
|
||||
---
|
||||
# This is a basic workflow to check the lock on major version (to lock some files on certified versions)
|
||||
name: Check fileset lock
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
concurrency:
|
||||
group: check-${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
checkmajorversion:
|
||||
name: Check lock on fileset unalterable_files with generate_filelist_xml.php
|
||||
runs-on: ubuntu-latest
|
||||
# Do not run schedule on forks
|
||||
if: |
|
||||
github.repository == 'Dolibarr/dolibarr'
|
||||
|| github.event.schedule == false
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: 8.2
|
||||
coverage: none # disable xdebug, pcov
|
||||
- name: Run generate_filelist_xml.php
|
||||
run: |
|
||||
# shellcheck disable=2086
|
||||
dev/build/generate_filelist_xml.php checklock=auto unalterable_files
|
||||
13
.github/workflows/ci-on-pull_request.yml
vendored
13
.github/workflows/ci-on-pull_request.yml
vendored
@@ -1,19 +1,18 @@
|
||||
name: "CI-PULL-REQUEST"
|
||||
|
||||
on: [pull_request]
|
||||
|
||||
jobs:
|
||||
pre-commit:
|
||||
uses: ./.github/workflows/pre-commit.yml
|
||||
secrets: inherit
|
||||
with:
|
||||
gh_event: ${{ github.event_name }}
|
||||
#phan:
|
||||
# uses: ./.github/workflows/phan.yml
|
||||
# secrets: inherit
|
||||
# needs: [pre-commit]
|
||||
# with:
|
||||
# gh_event: ${{ github.event_name }}
|
||||
phan:
|
||||
uses: ./.github/workflows/phan.yml
|
||||
secrets: inherit
|
||||
needs: [pre-commit]
|
||||
with:
|
||||
gh_event: ${{ github.event_name }}
|
||||
phpstan:
|
||||
uses: ./.github/workflows/phpstan.yml
|
||||
secrets: inherit
|
||||
|
||||
31
.github/workflows/ci-on-push.yml
vendored
31
.github/workflows/ci-on-push.yml
vendored
@@ -1,19 +1,18 @@
|
||||
name: "CI-PUSH"
|
||||
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
pre-commit:
|
||||
uses: ./.github/workflows/pre-commit.yml
|
||||
secrets: inherit
|
||||
with:
|
||||
gh_event: ${{ github.event_name }}
|
||||
#phan:
|
||||
# uses: ./.github/workflows/phan.yml
|
||||
# secrets: inherit
|
||||
# needs: [pre-commit]
|
||||
# with:
|
||||
# gh_event: ${{ github.event_name }}
|
||||
phan:
|
||||
uses: ./.github/workflows/phan.yml
|
||||
secrets: inherit
|
||||
needs: [pre-commit]
|
||||
with:
|
||||
gh_event: ${{ github.event_name }}
|
||||
phpstan:
|
||||
uses: ./.github/workflows/phpstan.yml
|
||||
secrets: inherit
|
||||
@@ -26,15 +25,15 @@ jobs:
|
||||
uses: ./.github/workflows/windows-ci.yml
|
||||
with:
|
||||
gh_event: ${{ github.event_name }}
|
||||
# gh-travis: # Runs travis script on github runner (not on travis)
|
||||
# if: false
|
||||
# # 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 }}
|
||||
#gh-travis: # Runs travis script on github runner (not on travis)
|
||||
# if: false
|
||||
# # 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
|
||||
|
||||
45
.github/workflows/ci-pr-devcamp.yaml.disabled
vendored
45
.github/workflows/ci-pr-devcamp.yaml.disabled
vendored
@@ -1,45 +0,0 @@
|
||||
# Action to prepare the github action
|
||||
# Go on Dolibarr Organization - Settings - Developer settings - GitHub App (https://github.com/organizations/Dolibarr/settings/apps)
|
||||
# Create an App: Enter a name + In Home page URL use https://github.com/Dolibarr/dolibarr + Disable webhook
|
||||
# Set Permissions (see other app for list of permissions)
|
||||
# Click on generate the private keys
|
||||
# Click on Install application - choose the repository of the bot
|
||||
# Go on Organisation - Secret and variables and create a secret PR_SECRET_KEY and copy the content of received private key. Choose the repository access to "Repository Dolibarr".
|
||||
# Go on Organisation - Secret and variables and create a variable PR_APP_ID and copy the ID of the previously create ID. Choose the repository access to "Repository Dolibarr".
|
||||
#
|
||||
|
||||
name: Set the tag with devcamp label during the session of a devcamp
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened]
|
||||
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
issues: write
|
||||
|
||||
jobs:
|
||||
add-label-devcamp:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
#- name: Install GitHub CLI
|
||||
# run: sudo apt-get install gh
|
||||
|
||||
- name: Generate a token
|
||||
id: generate-token
|
||||
uses: actions/create-github-app-token@v2
|
||||
with:
|
||||
app-id: ${{ vars.PR_APP_ID }}
|
||||
private-key: ${{ secrets.PR_SECRET_KEY }}
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Assign label
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}
|
||||
url: ${{ github.event.pull_request.html_url }}
|
||||
run: |
|
||||
echo "env.url=${{env.url}}"
|
||||
gh pr edit "${{env.url}}" --add-label "Event: DevCamp 2025 XXX"
|
||||
24
.github/workflows/ci-tag-check.yml.disabled
vendored
24
.github/workflows/ci-tag-check.yml.disabled
vendored
@@ -1,24 +0,0 @@
|
||||
# See syntax file on https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions
|
||||
name: "Check tag branch"
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "18.*"
|
||||
|
||||
jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Verify tag is on main
|
||||
run: |
|
||||
TAG_COMMIT=$(git rev-list -n 1 $GITHUB_REF)
|
||||
if ! git branch --contains $TAG_COMMIT | grep -q "18.0"; then
|
||||
echo "The tag must be on branch 18.0"
|
||||
exit 1
|
||||
fi
|
||||
38
.github/workflows/doxygen-gh-pages.yml.disabled
vendored
Normal file
38
.github/workflows/doxygen-gh-pages.yml.disabled
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
# See syntax file on https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions
|
||||
name: Doxygen
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 15 * * *"
|
||||
workflow_dispatch:
|
||||
branches:
|
||||
- develop
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Build
|
||||
uses: DenverCoder1/doxygen-github-pages-action@v1.2.0
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
branch: gh-pages
|
||||
folder: build/html
|
||||
config_file: build/doxygen/dolibarr-doxygen.doxyfile
|
||||
|
||||
# - name: Deploy
|
||||
# uses: JamesIves/github-pages-deploy-action@v4
|
||||
# with:
|
||||
# branch: gh-pages
|
||||
# folder: build/html # The folder the action should deploy.
|
||||
# target-folder: docs/html2
|
||||
|
||||
#jobs:
|
||||
# doxygen:
|
||||
# runs-on: ubuntu-latest
|
||||
# steps:
|
||||
# - name: 'Doxygen'
|
||||
# uses: mattnotmitt/doxygen-action@1.9.5
|
||||
# with:
|
||||
# doxyfile-path: build/doxygen
|
||||
29
.github/workflows/exakat.yml
vendored
Normal file
29
.github/workflows/exakat.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
# See syntax file on https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions
|
||||
name: "Exakat analysis"
|
||||
|
||||
on:
|
||||
# execute once a month, the 1st
|
||||
schedule:
|
||||
- cron: "0 20 1 * *"
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
|
||||
jobs:
|
||||
exakat:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 1
|
||||
ref: develop
|
||||
- name: Exakat
|
||||
uses: docker://exakat/exakat-ga
|
||||
with:
|
||||
ignore_rules: 'Classes/UseInstanceof,Constants/ConstantStrangeNames,Performances/PrePostIncrement,Functions/UndefinedFunctions,Functions/WrongNumberOfArguments,Functions/WrongTypeWithCall,Variables/UndefinedVariable,Classes/DontUnsetProperties,Classes/NonPpp,Classes/StaticMethodsCalledFromObject,Classes/UseClassOperator,Functions/UsesDefaultArguments,Php/NoClassInGlobal,Php/ShouldUseCoalesce,Php/WrongTypeForNativeFunction,Structures/AddZero,Structures/DropElseAfterReturn,Structures/IfWithSameConditions,Structures/MergeIfThen,Structures/NestedTernary,Structures/ElseIfElseif,Structures/ExitUsage,Structures/RepeatedPrint,Structures/RepeatedRegex,Structures/SameConditions,Structures/SwitchWithoutDefault,Structures/ShouldMakeTernary,Structures/UselessParenthesis,Structures/UseConstant'
|
||||
ignore_dirs: '/htdocs/includes/,/htdocs/install/doctemplates/,/build/,/dev/,/doc/,/scripts/,/test/'
|
||||
file_extensions: php
|
||||
project_reports: Perfile
|
||||
8
.github/workflows/gh-travis.yml.disabled
vendored
8
.github/workflows/gh-travis.yml.disabled
vendored
@@ -27,15 +27,15 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-version:
|
||||
# matrix:
|
||||
# php-version:
|
||||
# # PHPStan requires PHP >= 7.2.
|
||||
# #- "7.2"
|
||||
- "8.2"
|
||||
# - "8.2"
|
||||
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||
steps:
|
||||
- name: Checkout travis file
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v4
|
||||
- name: Run .travis.yml build script
|
||||
uses: ktomk/run-travis-yml@v1
|
||||
with:
|
||||
|
||||
@@ -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)'
|
||||
46
.github/workflows/phan.yml
vendored
46
.github/workflows/phan.yml
vendored
@@ -1,7 +1,4 @@
|
||||
---
|
||||
# This is a basic workflow to check code with PHPSTAN tool
|
||||
name: Phan
|
||||
|
||||
on:
|
||||
# workflow called by the parent workflow ci.yml
|
||||
workflow_call:
|
||||
@@ -13,17 +10,17 @@ on:
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: phan-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
group: phan-${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
gh_event: ${{ inputs.gh_event || github.event_name }}
|
||||
PHAN_CONFIG: dev/tools/phan/config.php
|
||||
PHAN_BASELINE: dev/tools/phan/baseline.txt
|
||||
PHAN_MIN_PHP: 7.2
|
||||
PHAN_MIN_PHP: 7.0
|
||||
PHAN_QUICK: ${{ github.event.schedule && '' || '--quick' }}
|
||||
GITHUB_JSON: ${{ toJSON(github) }} # Helps in debugging Github Action
|
||||
|
||||
name: phan
|
||||
jobs:
|
||||
phan:
|
||||
name: Run phan
|
||||
@@ -33,33 +30,26 @@ jobs:
|
||||
github.repository == 'Dolibarr/dolibarr'
|
||||
|| github.event.schedule == false
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
# Another method to get the list of changed files
|
||||
# It sets the variable steps.changed-php.outputs.all_changed_files for other steps
|
||||
- name: Get all changed php files (if PR)
|
||||
id: changed-php
|
||||
if: env.gh_event == 'pull_request'
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./.github/scripts/get_changed_php.sh
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: 8.2
|
||||
coverage: none # disable xdebug, pcov
|
||||
tools: phan:5.5.2
|
||||
|
||||
tools: cs2pr,phan:5.5.2
|
||||
- name: Run Phan analysis
|
||||
if: "! cancelled() && steps.changed-php.outputs.any_changed == 'true'"
|
||||
env:
|
||||
ALL_CHANGED_FILES: ${{ steps.changed-php.outputs.all_changed_files }}
|
||||
# shellcheck disable=2086
|
||||
run: |
|
||||
# shellcheck disable=2086
|
||||
> /tmp/phpstan-files.txt
|
||||
for f in $ALL_CHANGED_FILES; do echo "$f" >> /tmp/phan-files.txt; done
|
||||
cat /tmp/phan-files.txt
|
||||
echo phan --file-list /tmp/phan-files.txt $PHAN_QUICK -k "$PHAN_CONFIG" -B "$PHAN_BASELINE" --analyze-twice --minimum-target-php-version "$PHAN_MIN_PHP" --output-mode=github
|
||||
phan --file-list /tmp/phan-files.txt $PHAN_QUICK -k "$PHAN_CONFIG" -B "$PHAN_BASELINE" --analyze-twice --minimum-target-php-version "$PHAN_MIN_PHP" --output-mode=github
|
||||
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: |
|
||||
cs2pr --prepend-filename --prepend-source --notices-as-warnings _phan.xml
|
||||
- name: Provide phan log as artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
if: ${{ always() }}
|
||||
with:
|
||||
name: phan-srcrt
|
||||
# path: ${{ github.workspace }}/phan.log
|
||||
path: ${{ github.workspace }}/_phan.xml
|
||||
retention-days: 2
|
||||
|
||||
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
|
||||
48
.github/workflows/phpstan.yml
vendored
48
.github/workflows/phpstan.yml
vendored
@@ -1,7 +1,6 @@
|
||||
---
|
||||
# This is a basic workflow to check code with PHPSTAN tool
|
||||
name: PHPStan
|
||||
|
||||
# Controls when the workflow will run
|
||||
on:
|
||||
# workflow called by the parent workflow ci.yml
|
||||
@@ -14,9 +13,8 @@ on:
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: phpstan-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
group: stan-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
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 }}
|
||||
@@ -37,7 +35,7 @@ jobs:
|
||||
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||
steps:
|
||||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||
- uses: actions/checkout@v6
|
||||
- uses: actions/checkout@v4
|
||||
# Get PHP and addons
|
||||
- name: Setup PHP
|
||||
id: setup-php
|
||||
@@ -45,14 +43,14 @@ jobs:
|
||||
with:
|
||||
php-version: ${{ matrix.php-version }}
|
||||
coverage: none # disable xdebug, pcov
|
||||
tools: phpstan:2.1.12, cs2pr
|
||||
tools: phpstan:2.0, cs2pr
|
||||
extensions: calendar, json, imagick, gd, zip, mbstring, intl, opcache, imap,
|
||||
mysql, pgsql, sqlite3, ldap, xml, mcrypt
|
||||
|
||||
# Restore old cache
|
||||
- name: Restore phpstan cache
|
||||
id: cache
|
||||
uses: actions/cache/restore@v5
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ./.github/tmp
|
||||
key: phpstan-cache-${{ matrix.php-version }}-${{ env.CACHE_KEY_PART }}-${{
|
||||
@@ -62,64 +60,34 @@ jobs:
|
||||
phpstan-cache-${{ matrix.php-version }}-${{ github.head_ref }}-
|
||||
phpstan-cache-${{ matrix.php-version }}-${{ github.base_ref }}-
|
||||
phpstan-cache-${{ matrix.php-version }}-
|
||||
|
||||
- name: Show debug into
|
||||
run: cd ./.github/tmp && ls -al
|
||||
|
||||
# Another method to get the list of changed files
|
||||
# It sets the variable steps.changed-php.outputs.all_changed_files for other steps
|
||||
- name: Get all changed php files (if PR)
|
||||
id: changed-php
|
||||
if: env.gh_event == 'pull_request'
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./.github/scripts/get_changed_php.sh
|
||||
|
||||
#- name: Get changed PHP files
|
||||
# id: files
|
||||
# run: |
|
||||
# git fetch origin ${{ github.base_ref }}
|
||||
# FILES=$(git diff --name-only "origin/${{ github.base_ref }}...HEAD" | grep '\.php$' || true)
|
||||
# {
|
||||
# echo "files<<EOF"
|
||||
# echo "$FILES"
|
||||
# echo "EOF"
|
||||
# } > "$GITHUB_OUTPUT"
|
||||
|
||||
# Run PHPStan
|
||||
- name: Run PHPStan
|
||||
id: phpstan
|
||||
if: "! cancelled() && steps.changed-php.outputs.any_changed == 'true'"
|
||||
env:
|
||||
ALL_CHANGED_FILES: ${{ steps.changed-php.outputs.all_changed_files }}
|
||||
# shellcheck disable=2086
|
||||
run: |
|
||||
# shellcheck disable=2086
|
||||
> /tmp/phpstan-files.txt
|
||||
echo "$ALL_CHANGED_FILES" >> /tmp/phpstan-files.txt
|
||||
cat /tmp/phpstan-files.txt
|
||||
phpstan -vvv analyse --error-format=checkstyle --memory-limit 7G -a dev/build/phpstan/bootstrap_action.php ${ALL_CHANGED_FILES} | 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
|
||||
- name: Save phpstan cache
|
||||
uses: actions/cache/save@v5
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ success() || ( ! cancelled() && steps.cache.outputs.cache-hit != 'true' ) }}
|
||||
with:
|
||||
path: ./.github/tmp
|
||||
key: phpstan-cache-${{ matrix.php-version }}-${{ env.CACHE_KEY_PART }}-${{
|
||||
github.run_id }}
|
||||
- name: Provide phpstan log as artifact
|
||||
uses: actions/upload-artifact@v6
|
||||
uses: actions/upload-artifact@v4
|
||||
if: ${{ always() }}
|
||||
with:
|
||||
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
|
||||
# phpstan -vv analyse --memory-limit 7G -a build/phpstan/bootstrap_action.php --generate-baseline build/phpstan/phpstan-baseline.neon
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
---
|
||||
# This run the script to update the phpstan baseline file dev/build/phpstan/phpstan-baseline.neon
|
||||
name: 'PHPStan baseline'
|
||||
|
||||
on:
|
||||
@@ -33,13 +31,13 @@ jobs:
|
||||
pull-requests: write
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
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.12, cs2pr
|
||||
tools: phpstan:2.0, cs2pr
|
||||
extensions: calendar, json, imagick, gd, zip, mbstring, intl, opcache, imap,
|
||||
mysql, pgsql, sqlite3, ldap, xml, mcrypt
|
||||
env:
|
||||
@@ -47,7 +45,7 @@ jobs:
|
||||
# Restore old cache
|
||||
- name: Restore phpstan cache
|
||||
id: cache
|
||||
uses: actions/cache/restore@v5
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ./.github/tmp
|
||||
key: phpstan-cache-${{ env.PHP_VERSION }}-${{ env.CACHE_KEY_PART }}-${{
|
||||
@@ -62,8 +60,8 @@ jobs:
|
||||
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
|
||||
phpstan_additional_arguments: --memory-limit 7G -a build/phpstan/bootstrap_action.php
|
||||
baseline_path: build/phpstan/phpstan-baseline.neon
|
||||
commit_name: Dolibot
|
||||
commit_email: dolibarr-bot@users.noreply.github.com
|
||||
commit_message: PHPStan > Update baseline
|
||||
53
.github/workflows/pre-commit.yml
vendored
53
.github/workflows/pre-commit.yml
vendored
@@ -1,6 +1,5 @@
|
||||
---
|
||||
name: pre-commit
|
||||
|
||||
on:
|
||||
# workflow called by the parent workflow ci.yml
|
||||
workflow_call:
|
||||
@@ -12,11 +11,11 @@ on:
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: pre-commit-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
group: pre-commit-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref
|
||||
}}
|
||||
cancel-in-progress: true
|
||||
env:
|
||||
gh_event: ${{ inputs.gh_event || github.event_name }}
|
||||
|
||||
jobs:
|
||||
pre-commit:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -24,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@v6
|
||||
- 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'
|
||||
@@ -58,23 +40,20 @@ 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
|
||||
run: |-
|
||||
[ -r requirements.txt ] || [ -r pyproject.toml ] || touch requirements.txt
|
||||
# Install python and pre-commit tool
|
||||
- uses: actions/setup-python@v6
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
cache: pip
|
||||
python-version: "3.11"
|
||||
- run: python -m pip install pre-commit
|
||||
|
||||
# Restore previous cache of precommit
|
||||
- uses: actions/cache/restore@v5
|
||||
- uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ~/.cache/pre-commit/
|
||||
key: pre-commit-4|${{ env.pythonLocation }}|${{ hashFiles('.pre-commit-config.yaml') }}
|
||||
@@ -108,16 +87,12 @@ jobs:
|
||||
coverage: none # disable xdebug, pcov
|
||||
tools: phpcs
|
||||
|
||||
# Install perltidy and perlcritic
|
||||
#- name: Install perltidy and perlcritic
|
||||
# run: sudo apt-get update && sudo apt-get install -y perltidy libperl-critic-perl
|
||||
|
||||
# Run all the precommit tools (defined into pre-commit-config.yaml).
|
||||
# We can force exclusion of some of them here.
|
||||
- name: Run pre-commit hooks
|
||||
env:
|
||||
# SKIP is used by pre-commit to not execute certain hooks
|
||||
SKIP: no-commit-to-branch,php-cs,php-cbf,trailing-whitespace,end-of-file-fixer,shellcheck
|
||||
SKIP: no-commit-to-branch,php-cs,php-cbf,trailing-whitespace,end-of-file-fixer
|
||||
run: |
|
||||
set -o pipefail
|
||||
pre-commit gc
|
||||
@@ -156,20 +131,20 @@ jobs:
|
||||
ls -l ~/.cache/pre-commit/
|
||||
|
||||
- name: Convert Raw Log to Annotations
|
||||
uses: mdeweerd/logToCheckStyle@v2025.11.2
|
||||
uses: mdeweerd/logToCheckStyle@v2024.3.5
|
||||
if: ${{ failure() }}
|
||||
with:
|
||||
in: ${{ env.RAW_LOG }}
|
||||
|
||||
# Save the precommit cache
|
||||
- uses: actions/cache/save@v5
|
||||
- uses: actions/cache/save@v4
|
||||
if: ${{ ! cancelled() }}
|
||||
with:
|
||||
path: ~/.cache/pre-commit/
|
||||
key: pre-commit-4|${{ env.pythonLocation }}|${{ hashFiles('.pre-commit-config.yaml') }}
|
||||
# Upload result log files of precommit into the Artifact shared store
|
||||
- name: Provide log as artifact
|
||||
uses: actions/upload-artifact@v6
|
||||
uses: actions/upload-artifact@v4
|
||||
if: ${{ ! cancelled() }}
|
||||
with:
|
||||
name: precommit-logs
|
||||
|
||||
14
.github/workflows/windows-ci.yml
vendored
14
.github/workflows/windows-ci.yml
vendored
@@ -1,6 +1,5 @@
|
||||
---
|
||||
name: Win CI
|
||||
|
||||
# yamllint disable-line rule:truthy
|
||||
on:
|
||||
# workflow called by the parent workflow ci.yml
|
||||
@@ -26,7 +25,6 @@ env:
|
||||
PHP_INI_SCAN_DIR: C:\myphpini
|
||||
CKEY: win-ci-2
|
||||
GITHUB_JSON: ${{ toJSON(github) }} # Helps in debugging Github Action
|
||||
|
||||
jobs:
|
||||
win-test:
|
||||
strategy:
|
||||
@@ -37,7 +35,7 @@ jobs:
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@v4
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
@@ -57,9 +55,9 @@ jobs:
|
||||
# Restore cache
|
||||
- name: Restore cache
|
||||
id: cache
|
||||
uses: actions/cache/restore@v5
|
||||
uses: actions/cache/restore@v4
|
||||
env:
|
||||
HASH: ${{ hashFiles('htdocs/install/**', 'htdocs/filefunc.inc.php', 'htdocs/version.inc.php') }}
|
||||
HASH: ${{ hashFiles('htdocs/install/**', 'htdocs/filefunc.inc.php') }}
|
||||
KEY_ROOT: ${{ matrix.os }}-${{ env.ckey }}-${{ matrix.php_version }}
|
||||
with:
|
||||
# See https://github.com/actions/cache/issues/1275#issuecomment-1925217178
|
||||
@@ -167,13 +165,13 @@ 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.11.2
|
||||
uses: mdeweerd/logToCheckStyle@v2024.3.5
|
||||
if: ${{ failure() }}
|
||||
with:
|
||||
in: ${{ env.PHPUNIT_LOG }}
|
||||
|
||||
- name: Provide dolibarr and phpunit logs as artifact
|
||||
uses: actions/upload-artifact@v6
|
||||
uses: actions/upload-artifact@v4
|
||||
if: ${{ ! cancelled() }}
|
||||
with:
|
||||
name: win-ci-logs
|
||||
@@ -187,7 +185,7 @@ jobs:
|
||||
|
||||
# Save cache
|
||||
- name: Save cache
|
||||
uses: actions/cache/save@v5
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ ! cancelled() }}
|
||||
with:
|
||||
# See https://github.com/actions/cache/issues/1275#issuecomment-1925217178
|
||||
|
||||
9
.gitignore
vendored
9
.gitignore
vendored
@@ -47,12 +47,11 @@ htdocs/.well-known/apple-developer-merchantid-domain-association
|
||||
/output/
|
||||
|
||||
# Node Modules
|
||||
dev/build/yarn-error.log
|
||||
dev/build/node_modules/
|
||||
build/yarn-error.log
|
||||
build/node_modules/
|
||||
node_modules/
|
||||
|
||||
vendor/
|
||||
php-vendor
|
||||
tmp/
|
||||
|
||||
#yarn
|
||||
@@ -85,8 +84,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
|
||||
|
||||
3
.mailmap
3
.mailmap
@@ -1,9 +1,6 @@
|
||||
# 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>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
---
|
||||
exclude: (?x)^( htdocs/includes/ckeditor/.*|htdocs/public/includes/ckeditor/.*|(\.(?!github/workflows)[^/]*/.*))$
|
||||
exclude: (?x)^( htdocs/includes/ckeditor/.*|(\.(?!github/workflows)[^/]*/.*))$
|
||||
repos:
|
||||
# Several miscellaneous checks and fix (on yaml files, end of files fix)
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v6.0.0
|
||||
rev: v4.6.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'
|
||||
@@ -51,8 +51,8 @@ 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)
|
||||
@@ -60,15 +60,15 @@ repos:
|
||||
|
||||
# Gitleaks is a SAST tool for detecting and preventing hardcoded secrets like passwords, api keys, and tokens in git repos
|
||||
- repo: https://github.com/gitleaks/gitleaks.git
|
||||
rev: v8.29.0
|
||||
rev: v8.16.1
|
||||
hooks:
|
||||
- id: gitleaks
|
||||
|
||||
# Check github actions
|
||||
#- repo: https://github.com/rhysd/actionlint
|
||||
# rev: v1.7.8
|
||||
# hooks:
|
||||
# - id: actionlint
|
||||
- repo: https://github.com/rhysd/actionlint
|
||||
rev: v1.7.3
|
||||
hooks:
|
||||
- id: actionlint
|
||||
|
||||
# Beautify shell scripts
|
||||
#- repo: https://github.com/lovesegfault/beautysh.git
|
||||
@@ -137,8 +137,6 @@ repos:
|
||||
files: \.(php)$
|
||||
args: [--standard=dev/setup/codesniffer/ruleset.xml]
|
||||
- id: php-cs
|
||||
exclude: |
|
||||
(?x)^(htdocs/includes/.*)$
|
||||
files: \.(php)$
|
||||
args:
|
||||
[
|
||||
@@ -170,7 +168,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]
|
||||
@@ -193,7 +191,7 @@ repos:
|
||||
|
||||
# Check format of yaml files
|
||||
- repo: https://github.com/adrienverge/yamllint.git
|
||||
rev: v1.37.1
|
||||
rev: v1.35.1
|
||||
hooks:
|
||||
- id: yamllint
|
||||
args:
|
||||
@@ -203,7 +201,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.3.0
|
||||
hooks:
|
||||
- id: codespell
|
||||
# Due to a current limitation of configuration files,
|
||||
@@ -245,15 +243,15 @@ repos:
|
||||
- ned
|
||||
|
||||
# Check some shell scripts
|
||||
#- repo: https://github.com/shellcheck-py/shellcheck-py
|
||||
# rev: v0.11.0.1
|
||||
# hooks:
|
||||
# - id: shellcheck
|
||||
# args: [-W, "100"]
|
||||
- repo: https://github.com/shellcheck-py/shellcheck-py
|
||||
rev: v0.10.0.1
|
||||
hooks:
|
||||
- id: shellcheck
|
||||
args: [-W, "100"]
|
||||
|
||||
# Check sql file syntax
|
||||
- repo: https://github.com/sqlfluff/sqlfluff
|
||||
rev: 3.3.1
|
||||
rev: 3.1.0
|
||||
hooks:
|
||||
- id: sqlfluff-lint
|
||||
stages: [pre-commit, manual] # manual needed for ci
|
||||
@@ -274,22 +272,3 @@ repos:
|
||||
|htdocs/install/pgsql/functions/functions.*\.sql
|
||||
|htdocs/modulebuilder/template/sql/.*\.sql
|
||||
)$
|
||||
|
||||
#- repo: https://github.com/perltidy/perltidy
|
||||
# rev: '20250105.03'
|
||||
# hooks:
|
||||
# - id: perltidy
|
||||
# # virtualmin excuded - reason https://github.com/Dolibarr/dolibarr/pull/36370#issuecomment-3565101823
|
||||
# exclude: (?x)^
|
||||
# (dev/build/perl/virtualmin/dolibarr.pl
|
||||
# )$
|
||||
# args: [ --tabs, --nola ]
|
||||
|
||||
#- repo: https://github.com/henryykt/pre-commit-perl
|
||||
# rev: v0.0.5
|
||||
# hooks:
|
||||
# - id: perlcritic
|
||||
# # virtualmin excluded - reason https://github.com/Dolibarr/dolibarr/pull/36370#issuecomment-3565101823
|
||||
# exclude: (?x)^
|
||||
# (dev/build/perl/virtualmin/dolibarr.pl
|
||||
# )$
|
||||
|
||||
50
.travis.yml
50
.travis.yml
@@ -37,26 +37,26 @@ cache:
|
||||
jobs:
|
||||
fast_finish: true
|
||||
allow_failures:
|
||||
- php: 'latest'
|
||||
- php: '8.4'
|
||||
include:
|
||||
- stage: PHP min and max
|
||||
if: type = push
|
||||
php: '7.2'
|
||||
php: '7.1'
|
||||
env:
|
||||
- DB=postgresql
|
||||
- TRAVIS_PHP_VERSION=7.2
|
||||
- TRAVIS_PHP_VERSION=7.1
|
||||
- stage: PHP min and max
|
||||
if: type = pull_request OR type = push
|
||||
php: '8.3'
|
||||
env:
|
||||
- DB=mysql
|
||||
- TRAVIS_PHP_VERSION=8.3
|
||||
- stage: PHP 8.4
|
||||
if: type = push AND branch = develop
|
||||
php: '8.4'
|
||||
env:
|
||||
- DB=mysql
|
||||
- TRAVIS_PHP_VERSION=8.4
|
||||
- stage: PHP latest
|
||||
if: type = push AND branch = develop
|
||||
php: 'latest'
|
||||
env:
|
||||
- DB=mysql
|
||||
- TRAVIS_PHP_VERSION=latest
|
||||
|
||||
notifications:
|
||||
email:
|
||||
@@ -85,9 +85,6 @@ before_install:
|
||||
if [ "$TRAVIS_PHP_VERSION" = '7.1' ]; then
|
||||
sudo apt install unzip 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
|
||||
fi
|
||||
if [ "$TRAVIS_PHP_VERSION" = '7.2' ]; then
|
||||
sudo apt install unzip apache2 php7.2 php7.2-cli php7.2-curl php7.2-mysql php7.2-pgsql php7.2-gd php7.2-imap php7.2-intl php7.2-ldap php7.2-xml php7.2-mbstring php7.2-xml php7.2-zip libapache2-mod-php7.2
|
||||
fi
|
||||
if [ "$TRAVIS_PHP_VERSION" = '8.1' ]; then
|
||||
sudo apt install unzip 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
|
||||
fi
|
||||
@@ -100,9 +97,6 @@ before_install:
|
||||
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
|
||||
@@ -112,8 +106,8 @@ before_install:
|
||||
#ps fauxww | grep postgres
|
||||
ls /etc/postgresql/13/main/
|
||||
|
||||
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
|
||||
sudo sed -i -e '/local.*peer/s/postgres/all/' -e 's/peer\|md5/trust/g' /etc/postgresql/13/main/pg_hba.conf
|
||||
sudo cat /etc/postgresql/13/main/pg_hba.conf
|
||||
|
||||
sudo service postgresql restart
|
||||
|
||||
@@ -134,9 +128,6 @@ install:
|
||||
if [ "$TRAVIS_PHP_VERSION" = '7.1' ]; then
|
||||
sudo update-alternatives --set php /usr/bin/php7.1
|
||||
fi
|
||||
if [ "$TRAVIS_PHP_VERSION" = '7.2' ]; then
|
||||
sudo update-alternatives --set php /usr/bin/php7.2
|
||||
fi
|
||||
if [ "$TRAVIS_PHP_VERSION" = '8.1' ]; then
|
||||
sudo update-alternatives --set php /usr/bin/php8.1
|
||||
fi
|
||||
@@ -157,6 +148,7 @@ install:
|
||||
#sudo apt install composer
|
||||
composer -V
|
||||
sudo composer -n config -g vendor-dir htdocs/includes
|
||||
sudo composer -n config audit.block-insecure false
|
||||
sudo chmod -R a+rwx /home/travis/.config/composer
|
||||
echo
|
||||
|
||||
@@ -180,7 +172,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" = '8.4' ] || [ "$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 \
|
||||
@@ -283,7 +275,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
|
||||
@@ -327,7 +318,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
|
||||
@@ -525,19 +516,13 @@ script:
|
||||
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
|
||||
php upgrade.php 22.0.0 23.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade22002300.log || cat $TRAVIS_BUILD_DIR/upgrade22002300.log
|
||||
php upgrade2.php 22.0.0 23.0.0 > $TRAVIS_BUILD_DIR/upgrade22002300-2.log || cat $TRAVIS_BUILD_DIR/upgrade22002300-2.log
|
||||
php step5.php 22.0.0 23.0.0 > $TRAVIS_BUILD_DIR/upgrade22002300-3.log || cat $TRAVIS_BUILD_DIR/upgrade22002300-3.log
|
||||
set +e
|
||||
echo
|
||||
|
||||
- |
|
||||
echo Show some debug info, like table content, or migration log from some versions
|
||||
echo '\d llx_blockedlog' | psql 'postgresql://postgres:postgres@127.0.0.1:5432/travis'
|
||||
cat $TRAVIS_BUILD_DIR/upgrade500600.log
|
||||
echo Show some debug info like table content or log
|
||||
#echo '\d llx_adherent' | psql 'postgresql://postgres:postgres@127.0.0.1:5432/travis'
|
||||
cat $TRAVIS_BUILD_DIR/upgrade18001900.log
|
||||
cat $TRAVIS_BUILD_DIR/upgrade19002000.log
|
||||
echo
|
||||
|
||||
@@ -557,7 +542,6 @@ script:
|
||||
php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_RECEPTION,MAIN_MODULE_RECRUITMENT >> $TRAVIS_BUILD_DIR/enablemodule.log
|
||||
php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_KnowledgeManagement,MAIN_MODULE_EventOrganization,MAIN_MODULE_PARTNERSHIP >> $TRAVIS_BUILD_DIR/enablemodule.log
|
||||
php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_EmailCollector >> $TRAVIS_BUILD_DIR/enablemodule.log
|
||||
php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_BlockedLog >> $TRAVIS_BUILD_DIR/enablemodule.log
|
||||
echo $?
|
||||
cd -
|
||||
set +e
|
||||
|
||||
30
.tx/config
30
.tx/config
@@ -44,6 +44,12 @@ source_file = htdocs/langs/en_US/blockedlog.lang
|
||||
source_lang = en_US
|
||||
type = MOZILLAPROPERTIES
|
||||
|
||||
[o:dolibarr-association:p:dolibarr:r:bookmarks]
|
||||
file_filter = htdocs/langs/<lang>/bookmarks.lang
|
||||
source_file = htdocs/langs/en_US/bookmarks.lang
|
||||
source_lang = en_US
|
||||
type = MOZILLAPROPERTIES
|
||||
|
||||
[o:dolibarr-association:p:dolibarr:r:boxes]
|
||||
file_filter = htdocs/langs/<lang>/boxes.lang
|
||||
source_file = htdocs/langs/en_US/boxes.lang
|
||||
@@ -98,6 +104,12 @@ source_file = htdocs/langs/en_US/datapolicy.lang
|
||||
source_lang = en_US
|
||||
type = MOZILLAPROPERTIES
|
||||
|
||||
[o:dolibarr-association:p:dolibarr:r:deliveries]
|
||||
file_filter = htdocs/langs/<lang>/deliveries.lang
|
||||
source_file = htdocs/langs/en_US/deliveries.lang
|
||||
source_lang = en_US
|
||||
type = MOZILLAPROPERTIES
|
||||
|
||||
[o:dolibarr-association:p:dolibarr:r:dict]
|
||||
file_filter = htdocs/langs/<lang>/dict.lang
|
||||
source_file = htdocs/langs/en_US/dict.lang
|
||||
@@ -134,6 +146,12 @@ source_file = htdocs/langs/en_US/exports.lang
|
||||
source_lang = en_US
|
||||
type = MOZILLAPROPERTIES
|
||||
|
||||
[o:dolibarr-association:p:dolibarr:r:help]
|
||||
file_filter = htdocs/langs/<lang>/help.lang
|
||||
source_file = htdocs/langs/en_US/help.lang
|
||||
source_lang = en_US
|
||||
type = MOZILLAPROPERTIES
|
||||
|
||||
[o:dolibarr-association:p:dolibarr:r:holiday]
|
||||
file_filter = htdocs/langs/<lang>/holiday.lang
|
||||
source_file = htdocs/langs/en_US/holiday.lang
|
||||
@@ -266,6 +284,12 @@ source_file = htdocs/langs/en_US/partnership.lang
|
||||
source_lang = en_US
|
||||
type = MOZILLAPROPERTIES
|
||||
|
||||
[o:dolibarr-association:p:dolibarr:r:paybox]
|
||||
file_filter = htdocs/langs/<lang>/paybox.lang
|
||||
source_file = htdocs/langs/en_US/paybox.lang
|
||||
source_lang = en_US
|
||||
type = MOZILLAPROPERTIES
|
||||
|
||||
[o:dolibarr-association:p:dolibarr:r:paypal]
|
||||
file_filter = htdocs/langs/<lang>/paypal.lang
|
||||
source_file = htdocs/langs/en_US/paypal.lang
|
||||
@@ -356,12 +380,6 @@ source_file = htdocs/langs/en_US/stripe.lang
|
||||
source_lang = en_US
|
||||
type = MOZILLAPROPERTIES
|
||||
|
||||
[o:dolibarr-association:p:dolibarr:r:subtotals]
|
||||
file_filter = htdocs/langs/<lang>/subtotals.lang
|
||||
source_file = htdocs/langs/en_US/subtotals.lang
|
||||
source_lang = en_US
|
||||
type = MOZILLAPROPERTIES
|
||||
|
||||
[o:dolibarr-association:p:dolibarr:r:supplier_proposal]
|
||||
file_filter = htdocs/langs/<lang>/supplier_proposal.lang
|
||||
source_file = htdocs/langs/en_US/supplier_proposal.lang
|
||||
|
||||
15
COPYRIGHT
15
COPYRIGHT
@@ -12,16 +12,11 @@ These dependencies are listed in the bottom of this file.
|
||||
The Dolibarr images resources (available in the doc directory) is distributed under the Creative Commons Attribution 4.0 International license (CC BY 4.0).
|
||||
|
||||
|
||||
Trademark usage
|
||||
---------------
|
||||
|
||||
The name Dolibarr is a trademark initially registered by Laurent Destailleur and ceased to the Dolibarr foundation. You can use the name Dolibarr
|
||||
for your own need as long as you follow the rules defined on the page https://wiki.dolibarr.org/index.php/Rules_to_use_the_brand_name_%22Dolibarr%22
|
||||
The use of the name DoliStore is also restricted to the same rules defined on https://wiki.dolibarr.org/index.php/Rules_to_use_the_brand_name_%22Dolibarr%22
|
||||
|
||||
|
||||
License of third party libraries
|
||||
--------------------------------
|
||||
|
||||
Licence of dependencies of third-party components used by Dolibarr (all compatible with the Licence of Dolibarr):
|
||||
|
||||
@@ -44,6 +39,7 @@ PHP-Iban 4.1.1 LGPL-3+ Yes
|
||||
PHP-Imap 2.7.2 MIT License Yes Library to use IMAP with OAuth
|
||||
PHPoAuthLib 0.8.2 MIT License Yes Library to provide oauth1 and oauth2 to different service
|
||||
PHPPrintIPP 1.3 GPL-2+ Yes Library to send print IPP requests
|
||||
PrestaShop-WS-Lib 94feb5f OSL-3.0 No Library providing API client for Prestashop.
|
||||
PSR/Logs 1.0 MIT License Yes Library for logs (used by DebugBar)
|
||||
PSR/simple-cache ? MIT License Yes Library for cache (used by PHPSpreadSheet)
|
||||
Restler 3.1.1 LGPL-3+ Yes Library to develop REST Web services (+ swagger-ui js lib into dir explorer)
|
||||
@@ -52,17 +48,18 @@ Swift Mailer 5.4.2-DEV MIT License Yes
|
||||
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
|
||||
TCPDI 1.0.0 LGPL-3+ / Apache 2.0 Yes FPDI replacement
|
||||
|
||||
bacon, dasprid, swiss-qr-bill, kmukku, symfony/validator
|
||||
|
||||
JS libraries:
|
||||
Ace 1.43.12 BSD Yes JS library to get code syntaxique coloration in a textarea (Must take src dir into https://github.com/ajaxorg/ace-builds/).
|
||||
Ace 1.4.14 BSD Yes JS library to get code syntaxique coloration in a textarea.
|
||||
ChartJS 3.7.1 MIT License Yes JS library for graph
|
||||
CKEditor 4.22.1 LGPL-2.1+ Yes Editor WYSIWYG
|
||||
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)
|
||||
@@ -71,9 +68,13 @@ jQuery jPicker 1.1.6 GPL and MIT License Yes
|
||||
jQuery jqueryFileTree 1.0.1 GPL and MIT License Yes JS library for filetree
|
||||
jQuery jquerytreeview 1.4.1 MIT License Yes JS library for filetree
|
||||
jQuery TableDnD 0.6 GPL and MIT License Yes JS library plugin TableDnD (to reorder table rows)
|
||||
jQuery Timepicker 1.1.0 GPL and MIT License Yes JS library Timepicker addon for Datepicker
|
||||
jsGanttImproved 2.8.10 BSD License Yes JS library (to build Gantt reports)
|
||||
SwaggerUI 2.2.10 GPL-2+ Yes JS library to offer the REST API explorer
|
||||
|
||||
Image libraries:
|
||||
Octicons 8.1 MIT Yes
|
||||
|
||||
Font libraries:
|
||||
Fontawesome 5.13 Font Awesome Free Licence Yes
|
||||
|
||||
|
||||
661
ChangeLog
661
ChangeLog
@@ -2,660 +2,6 @@
|
||||
English Dolibarr ChangeLog
|
||||
--------------------------------------------------------------
|
||||
|
||||
|
||||
***** ChangeLog for 23.0.1 compared to 23.0.0 *****
|
||||
|
||||
FIX: Removed SQL error on install process.
|
||||
FIX: #37412 Better fix
|
||||
FIX: Added user filtering for displaying leave in the calendar (#37385)
|
||||
FIX: Bad value when entering price with multicurrency included tax.
|
||||
FIX: Better compatibility for module using condition object-> in tabs
|
||||
FIX: CSS
|
||||
FIX: Fetch of lead status
|
||||
FIX: Fix doc preview in comm card
|
||||
FIX: height of confirm popup
|
||||
FIX: option MAIN_USE_TITLE_FOR_USER was on update and not on create
|
||||
FIX: Order API: delete order returns wrong http response in case order could not be deleted (#37472)
|
||||
FIX: Pb with import of agendaevents. Date and import id not visible.
|
||||
FIX: read_supplier_price filter for stock complement (#37417)
|
||||
FIX: Reload page after check holiday for save param (#37410)
|
||||
FIX: Several trouble with demo docker packages. More secured way to use install.force.php file
|
||||
FIX: translation on multiselect with rich label - Fix CSS public ticket
|
||||
FIX: update COPYRIGHT file to reflect removed libraries in v23.0.0
|
||||
|
||||
|
||||
***** ChangeLog for 23.0.0 compared to 22.0 *****
|
||||
|
||||
For users:
|
||||
----------
|
||||
NEW: Need PHP 7.2 as minimum version
|
||||
NEW: Module datapolicy moved as stable (for anonimization features)
|
||||
NEW: #31723 - Improve project overview: Hide paid orders (#35524)
|
||||
NEW: #35700 : Throw an error when validating a propal, order, supplier with a product no more in sale/purchase… (#35709)
|
||||
NEW: Accountancy - Accounting by payment type (#34729)
|
||||
NEW: Accountancy - Add accounting for discounts (#35977)
|
||||
NEW: Accountancy - Add a protection on various payment for auxiliary account on general account not centralized (#35720)
|
||||
NEW: Accountancy - Add field centralized on import/export (#35872)
|
||||
NEW: Accountancy - Add hook on export filename (#35188)
|
||||
NEW: Accountancy - Add reconcile on general accounting account - SQL part (#35994)
|
||||
NEW: Accountancy - Analytical axis (SQL Structure) (#34738)
|
||||
NEW: Accountancy - Manual input - Add script to greyed out subledger_account if general ledger is not centralized (#35855)
|
||||
NEW: Accountancy - Transaction - Add verification on centralized account (#35824)
|
||||
NEW: Accountancy - Various payment - Add script to greyed out subledger_account if general ledger is not centralized (#35842)
|
||||
NEW: Add a boolean for lines in api and $properties (#34293)
|
||||
NEW: Add accounting export mode for ISTEA (#36006)
|
||||
NEW: add a limit to avoid too many answer in agenda view. Add warning if limit has been reached.
|
||||
NEW: Add a page to edit http security headers of application (#34941)
|
||||
NEW: Add auto-reference generation for tasks (like in project) in API (#35981)
|
||||
NEW: Add column ref_ext and note_private for membership
|
||||
NEW: Add column thirdparty ref_customer and ref_supplier in project list
|
||||
NEW: Add column title in emailing and add more filters
|
||||
NEW: add combining characters (accents, cedilla...) codes in dol_string_unaccent() (#35130)
|
||||
NEW: add company date birth (SQL structure) (#34854) (UI) (#34861)
|
||||
NEW: add conditional supplier price display (#35900)
|
||||
NEW: Add configuration for default timesheet menu (#35805)
|
||||
NEW: Add contact tab on product service (#35914)
|
||||
NEW: Add directory navigation to Web Portal Shared Documents (#35443)
|
||||
NEW: Added Messaging and agenda tabs on order and shipments (#34859)
|
||||
NEW: Add event when installing a module in the security event list.
|
||||
NEW: add extrafield option "empty on clone" (#34866)
|
||||
NEW: add fields usage_opportunity, usage_task, usage_bill_time for project import (#35301)
|
||||
NEW: Add filter on agenda event progression on agenda page
|
||||
NEW: add free numbering module for members (#35636)
|
||||
NEW: add global search for resource object (#36043)
|
||||
NEW: add hidden const to get response header in geturlcontent function (#34781) (#34824)
|
||||
NEW: add hook getListOfModels (#34626)
|
||||
NEW: Add hook on calcula_price() and get_default_tva()
|
||||
NEW: Add hooks in webportal (#35326)
|
||||
NEW: add hook when printing new card button on thirdparty list (#36350)
|
||||
NEW: add hourly rate in list of users
|
||||
NEW: Add missing parameters for menus on webportal hook (#35550)
|
||||
NEW: Add option PDF_PURCHASE_INVOICE_HIDE_VAT
|
||||
NEW: Add option PROJECT_CAN_ALWAYS_LINK_TO_ALL_CUSTOMERS
|
||||
NEW: Add option to create simple standalone shipment of non origin (#35651)
|
||||
NEW: Add option to create standalone reception (#36134)
|
||||
NEW: add private and public note on ticket (#35303)
|
||||
NEW: add product_type field on fichinter (preparing subtotal) (#36196)
|
||||
NEW: Add regions for CONGO, THE DEMOCRATIC REPUBLIC OF THE;CD (#36340)
|
||||
NEW: ADD Send mail for reception / Delivery (#34829)
|
||||
NEW: Add setup page to concat natively files on invoice PDF.
|
||||
NEW: add shipping address to propal (#34441)
|
||||
NEW: Add Sign feature on shipments (#34640)
|
||||
NEW: Add sms reminder in reminder of agenda events (#35239)
|
||||
NEW: Add SQL table for expensereport line extrafields support (#36251)
|
||||
NEW: add supplier invoice, order and supplier order tag filter and bulk insert and statistics order and supplier order (#35399)
|
||||
NEW: add supplier payment mail template (#35877)
|
||||
NEW: add tags on proposals and supplier proposals and in statistics (#35553)
|
||||
NEW: Add task categories 1/3 (#35848)
|
||||
NEW: Add tasks card hooks (#35616)
|
||||
NEW: Add the "Dispute status" in list of invoice.
|
||||
NEW: add the option to not synchronize thirdparty <--> member (#36033)
|
||||
NEW: Add the widget funnel of opportunities
|
||||
NEW: Add tpl files for standalone shipment (#35624)
|
||||
NEW: Add tpl loader for discounts.tpl.php (#34798)
|
||||
NEW: Add Transfer Number (#35665)
|
||||
NEW: Add Type, Description columns to Project Overview Expense Reports (#36214)
|
||||
NEW: Add user permission for create/edit/delete supplier prices (#35940)
|
||||
NEW: Allow omission of ODT template name when generating ODT and PDF (#35701)
|
||||
NEW: Better navigation and report into database admin tools
|
||||
NEW: Button to create a proposal and sale order from a contract always on
|
||||
NEW: Can add info of main IT service provider in setup.
|
||||
NEW: can admin payments extrafields (#34822)
|
||||
NEW: Can drag and drop in BOM card
|
||||
NEW: Can force_install_dolibarrpassword for automatic installation (#34537)
|
||||
NEW: Can have a tooltip picto on title of column and keep autotruncation of label. Tooltip is show at begin of text.
|
||||
NEW: Can show both currency code and symbol into the select of currency
|
||||
NEW: Can sort on employee in holiday balance. Add link to go to history.
|
||||
NEW: Can update value of timespent with last task hourly rate (#36018)
|
||||
NEW: Can urlencode substitution variable of constants
|
||||
NEW: Can view/list/edit the dispute status of an invoice
|
||||
NEW: Change the path for the mailing files (#34878)
|
||||
NEW: Constant ORDER_MASS_ACTION_BILLED_LINK_EXPEDITIONS (#34617)
|
||||
NEW: const MENU_HIDE_EMAIL_TEMPLATES to hide email templates setup in Tools menu (#35739)
|
||||
NEW: Create simple shipment of non origin (#35604)
|
||||
NEW: Currency for the Democratic Republic of Congo added. (#36104)
|
||||
NEW: Customized step in duration select (#34652)
|
||||
NEW: Dashboard - Add option in ihm to disable MRP thumb (#36185)
|
||||
NEW: date function related to holiday can accept country id in addition to country code
|
||||
NEW: DEV Can set color of the on/off button.
|
||||
NEW: Disable by default obfuscation methods and function in extrafields evaluable strings. Can re-enable with MAIN_ALLOW_OBFUSCATION_METHODS_IN_DOL_EVAL=1
|
||||
NEW: Discount split more than two parts (#34782)
|
||||
NEW: Display company logo on kanban view (#34520)
|
||||
NEW: dol_sort_array can be used with 2 sorting criteria.
|
||||
NEW: Enhanced layout feature for emailing
|
||||
NEW: Enhance popup for image preview (show size in title, can restore small view, always show the Rotate button).
|
||||
NEW: Enhance the system for warnings on module activation
|
||||
NEW: execute hook addMoreActionsButtons on bank card (#35598)
|
||||
NEW: extrafields: add field to link a field to a module (#34416)
|
||||
NEW: Feature to merge duplicate members (#35308)
|
||||
NEW: generate renewal proposal for contracts (#35120)
|
||||
NEW: Holiday - Allow to specify a specific mail address from (#36184)
|
||||
NEW: hook allowing external modules to replace the behavior of fetchObjectLinked() (#34724)
|
||||
NEW: hooks `showInputExtraField` and `showOutputExtraField` to override ExtraFields::show(Input|Output)Field (#35496)
|
||||
NEW: implement box on product and interventional index page (#34629)
|
||||
NEW: import subscriptions (#35612)
|
||||
NEW: Introduce getCurrency(). $conf is no more allowed into computed formulae.
|
||||
NEW: Invert logic of default date in proposal/order/invoice creation: Need option to NOT autofill instead of the opposite.
|
||||
NEW: line input multicurrency price with tax (#35064)
|
||||
NEW: Major overhaul of DataPolicyCron and add Recruitment policy (#34704)
|
||||
NEW: Make the public contact form with experimental status
|
||||
NEW: Minimal version of PHP is now 7.2
|
||||
NEW: More index for memberships table
|
||||
NEW: More information on the user credential section
|
||||
NEW: More webportal feature - Can add shared files and thirdparty documents (#35391)
|
||||
NEW: New hook mergePdf (#34707)
|
||||
NEW: On invoice, show also nb of credit notes notyet converted for consumption
|
||||
NEW: Option to clone parent categories on variant creation (#35806)
|
||||
NEW: Output of category tag is nicer for long subcategories.
|
||||
NEW: Parent project column in list of projects (#36177)
|
||||
NEW: Paymentok validate invoice if not already done (#35564)
|
||||
NEW: PDF Show customer balance on invoice date (#34800)
|
||||
NEW: possibility to define global entity in user param (#35908)
|
||||
NEW: Add messaging and agenda features to proposals (#34883)
|
||||
NEW: public and private note can be shown on contact list
|
||||
NEW: Public donation page (#35565)
|
||||
NEW: public pages donation, ticket and member use captcha setup (#35913)
|
||||
NEW: Rework of the management of the card and fields on the web portal (#36076)
|
||||
NEW: Save the BAN and RUM for SEPA into database not just file.
|
||||
NEW: search all facture rec (#34563)
|
||||
NEW: Show cron last result and output in info (#36028)
|
||||
NEW: Show full date with seconds in the tooltip of date of event
|
||||
NEW: Show the link to download the zip of a module on module setup
|
||||
NEW: Show warning on banner when an email is not valid
|
||||
NEW: The check file feature can limit check on unalterable files only
|
||||
NEW: The flag "Dispute open" make the status in Red.
|
||||
NEW: The PHP info is in a popup in install page.
|
||||
NEW: update country list (#34865)
|
||||
NEW: Update Incoterms to 2025 standards and add new terms (#36041)
|
||||
NEW: Upgrade ACE editor to 1.43.12
|
||||
NEW: User/Date in the Follow tab are more condensed.
|
||||
NEW: We added a hook to allow us to modify the Prospect Customer drop down… (#25635)
|
||||
NEW: Withholdingtax how VatRefund (#34649)
|
||||
|
||||
|
||||
For developers:
|
||||
---------------
|
||||
NEW: Introducing the TRIGGER_PREFIX property to force developers to use unique triggerkey per business object, to limit code to business CRUD events and report warning when it is not.
|
||||
NEW: add extraparams field in llx_categorie (#35975)
|
||||
NEW: Add prepare() method to DoliDB class (rebuild) (#35249)
|
||||
NEW: Add function to split a discount in 2 by API REST (#34786)
|
||||
NEW: Add a new API "product lots" (#36243)
|
||||
NEW: Add API for Holidays/Leaves
|
||||
NEW: add api for members statistics (#35851)
|
||||
NEW: add api List VAT (#35920)
|
||||
NEW: add api_paiements.class.php (#34756)
|
||||
NEW: document API builddoc product
|
||||
NEW: Add contact management on project Api (#35459)
|
||||
NEW: Add contact support on products in REST API (#35925)
|
||||
NEW: Add country ID resolution from country code for thirdparty api (#36345)
|
||||
NEW: Add getcontacts on api of interventional and proposal (#35589)
|
||||
NEW: Add hook initialization for interventions API (#35203)
|
||||
NEW: Add option API_ENABLE_COUNT_CALLS
|
||||
NEW: Add thirdparty search on api list (#34634)
|
||||
NEW: add timespent API endpoints for projects and tasks add also cascading assignment of contacts to tasks (#35897)
|
||||
NEW: add upload api feature for shipment (#34639)
|
||||
NEW: Allow creating contact via api with ISO code (#36322)
|
||||
NEW: API endpoint for getting products in a warehouse (#35918)
|
||||
NEW: API for getting, adding, deleting and/or modifying email templates (#35853)
|
||||
NEW: API for handling mass mailing targets (#35603)
|
||||
NEW: API GET endpoint for thirdparties types listing (c_typent) (#34751)
|
||||
NEW: Api mass emailing (#35531)
|
||||
NEW: API user/groups/ POST, PUT, DELETE + some hurl tests (#35903)
|
||||
NEW: API User - Remove user from group (#35453)
|
||||
NEW: Implement listTimespent method in api_projects.class.php (#36093)
|
||||
NEW: qual fixes on api contract (#36066)
|
||||
NEW: stock API GET movement (#36193)
|
||||
NEW: action to clone ticket
|
||||
|
||||
|
||||
WARNING:
|
||||
--------
|
||||
The following changes may create regressions for some external modules, but were necessary to make Dolibarr better:
|
||||
* If you were using the website module with PHP page, you must add the following parameter $dolibarr_website_allow_custom_php=2; into your conf.php to continue to be
|
||||
allowed to edit PHP content into the website module.
|
||||
* The deprecated column "egroupware_id" has been dropped from table llx_user.
|
||||
* The property $sumpayed (duplicated of $totalpaid), $sumdeposit (duplicate of $totaldeposits) and $sumcreditnote (duplicate of $totalcreditnotes) has
|
||||
been removed (there are replaced with the property that was a duplication of (same for $sumpayed_multicurrency, $sumdeposit_multicurrency, $sumcreditnote_multicurrency).
|
||||
* Parameters $maxlen and $notooltip of Contract have been inverted to follow the standard. It was breaking the common use of getNomUrl() but if you were
|
||||
using the parameter maxlen (rare) by using the old signature, result may be just a tooltip that is no more visible when mous over the contract ref shown by your module.
|
||||
* Removed array $MAP_ID_TO_CODE that was a duplicate of the array "array_flip($categ->MAP_ID)"
|
||||
* The signature of the Sale order ->cancel() method and shipment ->cancel() has been modified to introduce the $user param like for other methods that modify a status.
|
||||
* Adding new "document generation templates" must be done by adding files into the mymodule/core/modules/xxx/doc directory. Adding files into custom directory with the
|
||||
same path than the core path, without using a "mymodule" directory, is now forbidden.
|
||||
* The directory theme/common/octicons has been removed. No resource was used by Dolibarrfrom this directory.
|
||||
* The library timepicker.js has been removed. Was no more used by Dolibarr since a long time.
|
||||
* Because of the new TRIGGER_PREFIX property, the triggers SUPPLIER_PRODUCT_BUYPRICE_XXX are renamed into PRODUCT_BUYPRICE_XXX.
|
||||
* Function img_pdf() has been removed. Replace it with img_picto('', 'pdf') if you were using it.
|
||||
* The method run_trigger() was deprecated 10+ years ago in favor of runTrigger(). It has been removed. Change your trigger file if you still use it.
|
||||
* Property ->picto of module descriptors or menu entries must contains the image extension if it is not a font awesome tag. Example: $this->picto="mymoduleimg.png";
|
||||
* Stock movement API GET method output variable names has been harmonized with POST input parameter names
|
||||
* Concatenation into computed property of extrafields is off by default. You can enable it from conf.php file by adding dol_concat to list of allowed function in $dolibarr_main_restrict_eval_methods,
|
||||
For example: $dolibarr_main_restrict_eval_methods='getDolGlobalString,getDolGlobalInt,getDolCurrency,fetchNoCompute,hasRight,isModEnabled,isStringVarMatching,abs,min,max,round,dol_now,dol_concat,preg_match';
|
||||
* Old variable $obj and $object are no more allowed into on the fly evaluated strings like computed or conditions on extrafields. Use $objectoffield to get current object
|
||||
Also if you were using temporary variables int a computed extrafields, the nameot temporary variable must match $var123.
|
||||
* The hidden constant MAIN_ALLOW_UNSECURED_SPECIAL_CHARS_IN_DOL_EVAL in database has been replaced with the
|
||||
variable $dolibarr_main_allow_unsecured_special_chars_in_dol_eval into file conf/conf.php
|
||||
* $conf use into "computed formulae" of etrafields is now deprecated (not yet forbidden). You can replace use of $conf->currency by the new method getCurrency() and $conf->global->xxx by getDolGlobalString('xxx').
|
||||
* $user->rights->module->perms is also deprecated. You can use $user->hasRight() instead.
|
||||
* The API endpoint /proposals/{id}/contact/{contactid}/{type}/{source} is now {id}/contact/{contactid}/{type} to match same behaviour than order and invoices.
|
||||
* The API endpoint /interventions/{id}/reopen hase been removed in favor of /interventions/{id}/settodraft
|
||||
* If the module geoipmaxmind is used, you must resubmit the geoip data file as it is now stored differently.
|
||||
|
||||
|
||||
***** ChangeLog for 22.0.4 compared to 22.0.3 *****
|
||||
FIX: $param is the 5th parameter of print_liste_field_titre ($moreparam) (#36250)
|
||||
FIX: 17.0: perweek.php resets task progress to 0% when: (#36401)
|
||||
FIX: 18.0: GETPOSTDATE and buildParamDate assumed HTTP param names 'minute' and 'second' instead of 'min' and 'sec'
|
||||
FIX: 19.0 - attachments upload dir for invoices not always determined correctly (doesn't always take multi-entity into account) (#36302)
|
||||
FIX: #33148 - partial payments are taken into account in EPC QR codes (#36338)
|
||||
FIX: #33899 API Timespent Service Field
|
||||
FIX: #35061
|
||||
FIX: #35096 #36393 Add minimal fields required asthe class is used by
|
||||
FIX: #35141 (#36390)
|
||||
FIX: #35375 Accountancy - SQL error on empty filter account category
|
||||
FIX: #35655 API Contract Creation Fails for Non-Admin Users in Version 22.0.2
|
||||
FIX: #36090 Accountancy - Inconsistent date on various journal
|
||||
FIX: #36149 (#36150)
|
||||
FIX: #36310 Accountancy - Data - Wrong account labels (cache) on write bookkeeping action (#36410)
|
||||
FIX: #36334 - reload invoice data before pdf-creation in process of generating a new member contribution (#36335)
|
||||
FIX: #36347 (#36358)
|
||||
FIX: #36368 - avoid overlaying of EPC-QR Code and payment information (#36369)
|
||||
FIX: #36576 - date creation is empty on import
|
||||
FIX: Accountancy - #36090 Inconsistent date on various journal
|
||||
FIX: Accountancy - No limit on chart of account to define category on account
|
||||
FIX: Accountancy - Not propose to write operation on draft asset
|
||||
FIX: Accountancy - Problem calculating exercises with different tax periods on fixed assets
|
||||
FIX: Accountancy - Problem calculating fiscal year with different periods on fixed assets
|
||||
FIX: Accountancy - Reverse accounting account in depreciation expense entries for fixed assets
|
||||
FIX: Accountancy - Verify fiscal year on last hour to enable the integration of asset entries
|
||||
FIX: allow a situation with credit to be removed from cycle
|
||||
FIX: API task getTimeSpent to actually return data
|
||||
FIX: avoid php warning error (#36330), avoid php warnings (#36301), (#36411)
|
||||
FIX: Can Validated Holidays When Negative Balance
|
||||
FIX: Concat of PDF to invoices (#36329)
|
||||
FIX: create API temp directory in Dolibarr API constructor
|
||||
FIX: DA027383: permissions not checked on HRM evaluation card (#36328) (#36399)
|
||||
FIX: do not force rowid to int (#36412)
|
||||
FIX: Email Collector Module: manage error when imap_fetchstructure return false. Previously it generated warning and fatal error because the returned value was not of type class
|
||||
FIX: empty origin type passed to addline when creating invoices from expeditions using massaction (confirm_createbills) (#36413)
|
||||
FIX: expense report card: do not show bank account if user cannot see them
|
||||
FIX: expense report card: use correct bank module designator for detection
|
||||
FIX: Export of extrafield in organized events
|
||||
FIX: fix #36401 (for v17.0) doesn't work in v18.0+ because of variable renaming
|
||||
FIX: | Fixing addPayment /invoices/id/payments
|
||||
FIX: getEntity use element instead table_element (#36405)
|
||||
FIX: Implementation of multi-company compatibility with inventory/warehouse management
|
||||
FIX: info on supplier payment card on v22 and payment link
|
||||
FIX: keep user who validate proposal on update (#36257)
|
||||
FIX: List is filtered on task status when it should not
|
||||
FIX: Missing AND on fields filter on evaluation class
|
||||
FIX: missing p.default_vat_code in product import profile.
|
||||
FIX: Missing Product ref in Bom stats
|
||||
FIX: Mo::deleteLine() - stock movement correction (#34733)
|
||||
FIX: Multicompany compatibility with "project_task"
|
||||
FIX: not remove value of others extra-fields on update extras action
|
||||
FIX: Object should be cloned here (#36289)
|
||||
FIX: PR#36401 fixed a missing GETPOSTISSET() but the check involves a variable ($taskid) that was renamed ($tmptaskid) in 18.0
|
||||
FIX: (propal): Incorrect HT/TTC recalculation when editing proposal lines #36514
|
||||
FIX: (propal): values lost when editing HT price
|
||||
FIX: propal shipping and availability update (v18+)
|
||||
FIX: re-create API temp dir after purging temp files
|
||||
FIX: remove situation invoice from cycle
|
||||
FIX: remove useless condition to create credit on situation invoice (#35786)
|
||||
FIX: Search all for supplier proposals via object reference
|
||||
FIX: Selection of email when prefilled from a template
|
||||
FIX: SQL error for LIST_OF_QUALIFIED_INVOICES_LIMIT_DEFINED
|
||||
FIX: subtotal feature button availability according setup
|
||||
FIX: TakePOS Missing Thirdparty Id when getting more products (#36341)
|
||||
FIX: (tasks): dates in gantt view
|
||||
FIX: undefined variables on create invoice card from order (backport from v19) or shipment card (backport from v20)
|
||||
FIX: use array_intersect instead in_array
|
||||
FIX: warning on select
|
||||
FIX: wrong $param parameter position (#36265)
|
||||
SEC: 7ed0af2a138a34e7c7005b95c85ffc791976a6cf
|
||||
SEC: empty commit for CI automata
|
||||
SEC: FIX: #36430 permissions not checked on other tabs of HRM evaluation card
|
||||
SEC: fix IDOR attack on employee evaluation. Missing permission test https://github.com/atm-florianm/dolibarr/commit/7ed0af2a138a34e7c7005b95c85ffc791976a6cf
|
||||
SEC: permissions not checked on other tabs of HRM evaluation card
|
||||
|
||||
|
||||
***** ChangeLog for 22.0.3 compared to 22.0.2 *****
|
||||
FIX: 16.0: extrafield of type link to category causes SQL error in selectForFormsList() (#36074)
|
||||
FIX: 20.0 ajax_constantonoff + FormSetup were ignoring custom css class (cssClass / $morecss) (#36039)
|
||||
FIX: #33741 FIX: #35632
|
||||
FIX: #35247 FIX: #35950 Using same option for landing page and home page
|
||||
FIX: #35519 (security) missing check user rights (#35527)
|
||||
FIX: #35520 FIX: #35522
|
||||
FIX: #35568 (#35569)
|
||||
FIX: #35573 FIX: #35241
|
||||
FIX: #35634 (#35912)
|
||||
FIX: #35766: Update buying price INT Float (#35769)
|
||||
FIX: #35780
|
||||
FIX: #35782
|
||||
FIX: #35784
|
||||
FIX: #35922 Lines of orders - Status filter unexpected beahavior (#35924)
|
||||
FIX: #36025 Accountancy - Error when cloning directly from accounting entry (#36034)
|
||||
FIX: #36046 enabling extrafieldmanaged to enable deletion of records from the llx_salay_extrafields table
|
||||
FIX: #36113 (#36116)
|
||||
FIX: access problem when label is used for next/prev (#35933)
|
||||
FIX: Accountancy - Admin personalized report - Remove duplicate button (#35721)
|
||||
FIX: Accountancy - General setup - Missing form on UpdateMask (#35735)
|
||||
FIX: Accountancy - Missing subledger information on mass cloning (#35777)
|
||||
FIX: Accountancy - Printing the subsidiary ledger returns the general ledger (#35719)
|
||||
FIX: Accountancy - Print subledger balance return general balance (#35712)
|
||||
FIX: Accountancy - Problem with general setup (#36067)
|
||||
FIX: Accountancy - Return on wrong page on y/n button (#35978)
|
||||
FIX: Add missing left join to filter by extrafields (#36092)
|
||||
FIX: add possibility to override authoritative dns (#35699)
|
||||
FIX: Allow decimals on services duration (#36031)
|
||||
FIX: avoid link problem with employee list context (#36125)
|
||||
FIX: avoid NULL value (#36126)
|
||||
FIX: avoid php warning (#35756)
|
||||
FIX: avoid php warning (#35953)
|
||||
FIX: avoid php warnings (#35492)
|
||||
FIX: Bad label for column title on multicurency
|
||||
FIX: bad name for target import table (#35615)
|
||||
FIX: broken feature ! (#35906)
|
||||
FIX: Can approve holidays when negative balance (#36144)
|
||||
FIX: categories: sql error in link extrafields targettings categories (#36236)
|
||||
FIX: check if category module is enabled (#35770)
|
||||
FIX: check if service is activated only for api product (#35911)
|
||||
FIX: check if zip file of website exists (#35879)
|
||||
FIX: Clear filter
|
||||
FIX: clone of cron tasks
|
||||
FIX: conflict between $user->id and $object->id (#36225)
|
||||
FIX: create invoice from order using API and multi-entity (#35654)
|
||||
FIX: day of ticket on takePOS. Backport 6abdb6e. (#35745)
|
||||
FIX: Deletion of a donation. Button was disabled.
|
||||
FIX: detection of setup not done with
|
||||
FIX: dol_escape_htmltag in extrafields_view (#36136)
|
||||
FIX: doubled display of PRoduct Stokable checkbox when STOCK_SUPPORTS_SERVICES on service edit card (#36138)
|
||||
FIX: Email template fetching (#35738)
|
||||
FIX: Error 500 on api if cache is on and directory does not exists
|
||||
FIX: extra-field list depend on parent extra-filed list on direct edit (#35803)
|
||||
FIX: filter on note lost when sorting company list
|
||||
FIX: Hide AWP if product has no stock managed
|
||||
FIX: Import/Export - Do not list imports or exports of Builder module backups of module descriptor files (#36192)
|
||||
FIX: In shipment creation process, if product is not manage in stock, Dolibarr should not display a "low stock warning" (#36139)
|
||||
FIX: in shippement creation with SHIPMENT_SUPPORTS_SERVICES and/or STOCK_DISALLOW_NEGATIVE_TRANSFER and/or stockable_product there are inconsistencies (#36140)
|
||||
FIX: Invoice Situation - Octopus - Column offset for amounts greater than 5 digits (#36124)
|
||||
FIX: Invoice Situation - Octopus - Shipping block overlap issue (#36122)
|
||||
FIX: Invoice Situation - Octopus - Show remaintopay at bottom (#36121)
|
||||
FIX: invoices payments on multicurrencies being converted as int (#35622)
|
||||
FIX: Knowledge management - Button ReOpen show in draft mode (#36008)
|
||||
FIX: Label shown when value is empty
|
||||
FIX: late customer orders are not shown on start page (#36200)
|
||||
FIX: link to sort of target email page
|
||||
FIX: MAIN_AUTOFILL_DATE in supplier invoice display 01/01/1970 (#36087)
|
||||
FIX: MAIN_SEE_SUBORDONATES sql request error (#35896)
|
||||
FIX: Missing begin transaction, The status of customer was not
|
||||
FIX: missing check if partership is enabled (#36169)
|
||||
FIX: missing entity field (#36086)
|
||||
FIX: missing entity filter (#35517)
|
||||
FIX: missing entity filter (#35857)
|
||||
FIX: missing entity filters + wrong widget name (#35873)
|
||||
FIX: missing "printFieldListValue" hook (#35990)
|
||||
FIX: missing prospect/customer category translation (#35814)
|
||||
FIX: Must show unit price when price is not for quantity 1
|
||||
FIX: muticompany compatibility (wrong sharing name) (#36013)
|
||||
FIX: my previous fix was incompatible with Thomas' fix from PR#35590 (#35890)
|
||||
FIX: no emails sent when closing a ticket (#35874)
|
||||
FIX: notification email not sent : NOTIFICATION_EMAIL_FROM is replaced with MAIN_MAIL_EMAIL_FROM if it's empty (#35881)
|
||||
FIX: notifications: correctly report email delivery errors (#35864)
|
||||
FIX: not possible to search for billed and not billed supplier orders in the list (#35680)
|
||||
FIX: Perf for bom select (#35871)
|
||||
FIX: Performance Problem on load stats command (#35785)
|
||||
FIX: pgsql: error when calculating depreciations (#34213)
|
||||
FIX: php 8+ warnings when creating deposits (#35582)
|
||||
FIX: prices must be HT in dolistore browser
|
||||
FIX: product stock lists: prevent SQL error when filtering on physical stock (#36038)
|
||||
FIX: resize iban column to support encryption (#36237)
|
||||
FIX: Select correct approver when making a leave request for someone else (#36118)
|
||||
FIX: Situation percent set as 0 when adding line on situation invoices (#35999)
|
||||
Fix: sql error if LIST_OF_QUALIFIED_INVOICES_LIMIT_DEFINED is used (#36135)
|
||||
FIX: sql syntax error (#35588)
|
||||
FIX: Status if thirdparty not synchronized with status WON of
|
||||
FIX: substitutions on subject of the sent email reminder of the event (#35621)
|
||||
FIX: The IBAN into EPC qr code must use the default bank account if not
|
||||
FIX: The order closing date was not filled in during the shipment validation (workflow module). (#36235)
|
||||
FIX: The status of customer was not synchronized with opportunity status
|
||||
FIX: thirdparty was never notified. Passing of contact ID information was not coherent. (#35590)
|
||||
FIX: To have only the sender's entity when sending mail (#31053)
|
||||
FIX: when creating a ticken on backend and adding a linked file, the 'notify thirdparty at creation' chackbox disappears. (#35595)
|
||||
FIX: when display in view mode HTML extrafeilds content doubled (#36127)
|
||||
FIX: Wrong cast on TVA rate when updating supplier order lines (#36106)
|
||||
FIX: wrong check of hook return
|
||||
FIX: wrong entity alias (#35821)
|
||||
FIX: wrong entity filter (#35691)
|
||||
FIX: wrong field name (#35728)
|
||||
FIX: wrong getEntiy element name (#35771)
|
||||
FIX: wrong number of categories by entity (#36111)
|
||||
FIX: wrong socpeople id when multiple assigned + avoid php warnings (#35878)
|
||||
|
||||
|
||||
***** 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 Situation Invoice (#35228)
|
||||
FIX: api orders : forward database error on failure (backport 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 (backport 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
|
||||
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 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
|
||||
@@ -1127,7 +473,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
|
||||
@@ -1434,7 +780,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
|
||||
@@ -2135,6 +1481,7 @@ NEW: updating for display Help title when try to delete Don (issue #25314)
|
||||
NEW: Upgrade in module builder in menu section
|
||||
NEW: 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.
|
||||
|
||||
@@ -2235,7 +1582,7 @@ The following changes may create regressions for some external modules, but were
|
||||
* The delete() method of AdherentType, Contact, Delivery, MultiCurrency, CurrencyRate now need $user as first parameter.
|
||||
* 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(-)
|
||||
|
||||
195
README-FR.md
Normal file
195
README-FR.md
Normal file
@@ -0,0 +1,195 @@
|
||||
# DOLIBARR ERP & CRM
|
||||
|
||||

|
||||

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

|
||||
|
||||
|
||||
## LICENCE
|
||||
|
||||
Dolibarr est distribué sous les termes de la licence GNU General Public License v3+ ou supérieure.
|
||||
|
||||
|
||||
## INSTALLER DOLIBARR
|
||||
|
||||
### Installation simple
|
||||
|
||||
Si vous avez peu de compétences techniques et que vous souhaitez installer Dolibarr ERP/CRM en quelques clics, vous pouvez utiliser l'une des versions pré-packagées avec les prérequis:
|
||||
|
||||
- DoliWamp pour Windows
|
||||
- DoliDeb pour Debian ou Ubuntu
|
||||
- DoliRpm pour Redhat, Fedora, OpenSuse, Mandriva ou Mageia
|
||||
|
||||
Les packages peuvent être téléchargés à partir de [site web officiel](https://www.dolibarr.org/).
|
||||
|
||||
### Installation recommandée/avancée
|
||||
|
||||
Vous pouvez aussi utiliser un serveur Web et une base de données prise en charge (MariaDB, MySQL ou PostgreSQL) pour installer la version standard.
|
||||
|
||||
- Décompressez l'archive .zip téléchargée pour copier le répertoire "dolibarr/htdocs" et tous ses fichiers à la racine du serveur Web ou récupérez-les directement à partir de GitHub (recommandé si vous connaissez git):
|
||||
|
||||
`git clone https://github.com/dolibarr/dolibarr -b x.y` (où x.y est la version principale comme 3.6, 9.0, ...)
|
||||
|
||||
- Configurez votre serveur Web pour qu'il utilise "*dolibarr/htdocs*" en tant que racine si votre serveur Web ne possède pas déjà de répertoire défini vers lequel pointer.
|
||||
|
||||
- Créez un fichier `htdocs/conf/conf.php` vide et définissez les autorisations d'*écrire* pour l'utilisateur de votre serveur Web (l'autorisation *écrire* sera supprimée une fois l'installation terminée)
|
||||
|
||||
- Depuis votre navigateur, allez à la page "install/" de dolibarr
|
||||
|
||||
L’URL dépendra de la façon dont votre configuration Web a été configurée pour pointer vers votre installation de dolibarr. Cela peut ressembler à:
|
||||
|
||||
`http://localhost/dolibarr/htdocs/install/`
|
||||
|
||||
ou
|
||||
|
||||
`http://localhost/dolibarr/install/`
|
||||
|
||||
ou
|
||||
|
||||
`http://yourdolibarrvirtualhost/install/`
|
||||
|
||||
- Suivez les instructions de l'installateur
|
||||
|
||||
|
||||
## METTRE A JOUR DOLIBARR
|
||||
|
||||
Pour mettre à jour Dolibarr depuis une vieille version vers celle ci:
|
||||
|
||||
- Faites une sauvegarde de votre instance [voir ce tutorial](https://wiki.dolibarr.org/index.php/Installation_-_Upgrade#Upgrade_Dolibarr)
|
||||
|
||||
- Vérifiez que la nouvelle version est compatible avec la version PHP de votre serveur [voir PHP support](https://wiki.dolibarr.org/index.php/Releases).
|
||||
|
||||
- Ecrasez les vieux fichiers dans le vieux répertoire 'dolibarr' par les fichiers
|
||||
fournis dans ce nouveau package.
|
||||
|
||||
- Au prochain accès, Dolibarr proposera la page de "mise à jour" des données (si nécessaire).
|
||||
Si un fichier install.lock existe pour verrouiller le processus de mise à jour, il sera demandé de le supprimer manuellement (vous devriez trouver le fichier install.lock dans le répertoire utilisé pour stocker les documents générés ou transférés sur le serveur. Dans la plupart des cas, c'est le répertoire appelé "documents")
|
||||
|
||||
Note: *Le processus de migration peut être lancé manuellement et plusieurs fois, sans risque, en appelant la page /install/*
|
||||
|
||||
|
||||
## CE QUI EST NOUVEAU
|
||||
|
||||
Voir le fichier [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog).
|
||||
|
||||
|
||||
## CE QUE DOLIBARR PEUT FAIRE
|
||||
|
||||
### Modules principaux (tous optionnels)
|
||||
|
||||
- Annuaires des prospects et/ou client et/ou fournisseurs
|
||||
- Gestion de catalogue de produits et services
|
||||
- Gestion des devis, propositions commerciales
|
||||
- Gestion des commandes
|
||||
- Gestion des factures clients/fournisseurs et paiements
|
||||
- Gestion des virements bancaires SEPA
|
||||
- Gestion des comptes bancaires
|
||||
- Calendrier/Agenda partagé (avec export ical, vcal)
|
||||
- Suivi des opportunités et/ou projets (suivi de rentabilité incluant les factures, notes de frais, temps consommé valorisé, ...)
|
||||
- Gestion de contrats de services
|
||||
- Gestion de stock et inventaires
|
||||
- Gestion des expéditions
|
||||
- Gestion des demandes de congés
|
||||
- Gestion des notes de frais
|
||||
- Gestion de recrutement
|
||||
- GED (Gestion Electronique de Documents)
|
||||
- E-Mailings de masse
|
||||
- Réalisation de sondages
|
||||
- Gestion d'adhérents
|
||||
- Point de vente/Caisse enregistreuse
|
||||
- … (près de 100 modules disponibles en standard, près de 1000 autre sur la place de marché d'extensions)
|
||||
|
||||
### Autres modules
|
||||
|
||||
- Gestion de marque-pages
|
||||
- Gestion des promesses de dons
|
||||
- Rapports
|
||||
- Imports/Exports des données
|
||||
- Support des codes barres
|
||||
- Calcul des marges
|
||||
- Connectivité LDAP
|
||||
- Intégration de ClickToDial
|
||||
- Intégration RSS
|
||||
- Intégration Skype
|
||||
- Intégration de système de paiements (PayPal, Stripe, Paybox...)
|
||||
- …
|
||||
|
||||
### Divers
|
||||
|
||||
- Multi-langue.
|
||||
- Multi-utilisateurs avec différents niveaux de permissions par module.
|
||||
- Multidevise.
|
||||
- Peux être multi-société par ajout du module externe multi-société.
|
||||
- Plusieurs thèmes visuels.
|
||||
- Application simple à utiliser.
|
||||
- Requiert PHP et MariaDb, Mysql ou Postgresql (Voir versions exactes sur [https://wiki.dolibarr.org/index.php/Prérequis](https://wiki.dolibarr.org/index.php/Prérequis)).
|
||||
- Compatible avec toutes les offres Cloud du marché respectant les prérequis de base de données et PHP.
|
||||
- APIs.
|
||||
- Génération PDF et ODT des éléments (factures, propositions commerciales, commandes, bons expéditions, etc...)
|
||||
- Code simple et facilement personnalisable (pas de framework lourd; mécanisme de hook et triggers).
|
||||
- Support natif de nombreuses fonctions spécifiques aux pays comme:
|
||||
- La taxe espagnole TE et ISPF
|
||||
- Gestion de la TVA NPR (non perçue récupérable - pour les utilisateurs français des DOM-TOM)
|
||||
- La loi française Finance 2016 et logiciels de caisse
|
||||
- La double taxe canadienne
|
||||
- Le timbre fiscal tunisien
|
||||
- Numérotation de facture de l'argentines (avec type A,B,C...)
|
||||
- Compatible avec vos processus RGPD
|
||||
- ...
|
||||
- …
|
||||
|
||||
### Extension
|
||||
|
||||
Dolibarr peut aussi être étendu à volonté avec l'ajout de modules/applications externes développées par des développeurs tiers, disponible sur [DoliStore](https://www.dolistore.com).
|
||||
|
||||
|
||||
## CE QUE DOLIBARR NE PEUT PAS (ENCORE) FAIRE
|
||||
|
||||
Voici un liste de fonctionnalités pas encore gérées par Dolibarr:
|
||||
|
||||
- Dolibarr ne contient pas de module de génération de feuille de paie.
|
||||
- Les tâches du module de gestion de projets n'ont pas de dépendances entre elle.
|
||||
- Dolibarr n'embarque pas de Webmail intégré nativement.
|
||||
- Dolibarr ne fait pas le café (pas encore).
|
||||
|
||||
|
||||
## DOCUMENTATION
|
||||
|
||||
La documentation utilisateur, développeur et traducteur est disponible sous forme de ressources de la communauté via le site [Wiki](https://wiki.dolibarr.org).
|
||||
|
||||
|
||||
## CONTRIBUER
|
||||
|
||||
Ce projet existe grâce à ses nombreux contributeurs [[Contribuer](https://github.com/Dolibarr/dolibarr/blob/develop/.github/CONTRIBUTING.md)].
|
||||
|
||||
[](https://github.com/Dolibarr/dolibarr/graphs/contributors)
|
||||
|
||||
|
||||
## CREDITS
|
||||
|
||||
Dolibarr est le résultat du travail de nombreux contributeurs depuis des années et utilise des librairies d'autres contributeurs.
|
||||
|
||||
Voir le fichier [COPYRIGHT](https://github.com/Dolibarr/dolibarr/blob/develop/COPYRIGHT)
|
||||
|
||||
|
||||
## ACTUALITES ET RESEAUX SOCIAUX
|
||||
|
||||
Suivez le projet Dolibarr sur les réseaux francophones
|
||||
|
||||
- [Facebook](https://www.facebook.com/dolibarr.fr)
|
||||
- [X](https://www.twitter.com/dolibarr_france)
|
||||
|
||||
ou sur les réseaux anglophones
|
||||
|
||||
- [Facebook](https://www.facebook.com/dolibarr)
|
||||
- [X](https://www.twitter.com/dolibarr)
|
||||
- [LinkedIn](https://www.linkedin.com/company/association-dolibarr)
|
||||
- [YouTube](https://www.youtube.com/user/DolibarrERPCRM)
|
||||
- [GitHub](https://github.com/Dolibarr/dolibarr)
|
||||
23
README.md
23
README.md
@@ -2,7 +2,7 @@
|
||||
|
||||

|
||||

|
||||
[](https://php.net/)
|
||||
[](https://php.net/)
|
||||
[](https://github.com/Dolibarr/dolibarr)
|
||||
[](https://bestpractices.coreinfrastructure.org/projects/5521)
|
||||
|
||||
@@ -34,12 +34,12 @@ There is a lot of different solutions to install Dolibarr.
|
||||
|
||||
### 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")
|
||||
- The Docker image (see next chapter)
|
||||
|
||||
Releases can be downloaded from [official website](https://www.dolibarr.org/).
|
||||
|
||||
@@ -116,7 +116,6 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog)
|
||||
- Product Variants
|
||||
- Bill of Materials (BOM)
|
||||
- Manufacturing Orders (MO)
|
||||
- Workstations / Workplaces
|
||||
|
||||
Customer/Sales Management
|
||||
|
||||
@@ -176,13 +175,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)
|
||||
|
||||
@@ -239,7 +237,7 @@ These are features that Dolibarr does **not** yet fully support:
|
||||
Administrator, user, developer and translator's documentation are available along with other community resources in the [Wiki](https://wiki.dolibarr.org).
|
||||
|
||||
|
||||
## 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,8 +246,6 @@ 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
|
||||
|
||||
@@ -262,12 +258,9 @@ See [COPYRIGHT](https://github.com/Dolibarr/dolibarr/blob/develop/COPYRIGHT) fil
|
||||
|
||||
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)
|
||||
|
||||
19
SECURITY.md
19
SECURITY.md
@@ -5,27 +5,26 @@ This file contains some policies about the security reports on Dolibarr ERP CRM
|
||||
|
||||
## Supported Versions for security reports
|
||||
|
||||
Security report are valid only on any current stable version for the last 5 major versions (see https://dolibarr.org web site to get current stable version) or on development version (branch "develop" on https://github.com/Dolibarr/dolibarr).
|
||||
Security report are valid only on current stable version (see https://dolibarr.org web site to get current stable version) or on development version (branch "develop" on https://github.com/Dolibarr/dolibarr).
|
||||
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
To report a vulnerability, for a private report, you can:
|
||||
|
||||
- Send your report as an issue on https://github.com/Dolibarr/dolibarr/issues or on GitHub Vulnerability Disclosure Program tool (VDP): https://github.com/Dolibarr/dolibarr/security/advisories (recommended)
|
||||
- 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 (in such a case, the issue may be created by the developer that will fix the vulnerability or the Release Manager).
|
||||
- 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.
|
||||
|
||||
|
||||
## Hunting vulnerabilities on Dolibarr
|
||||
|
||||
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,12 +109,8 @@ Scope is the web application (backoffice) and the APIs.
|
||||
* Software or libraries versions, private IP disclosure, Stack traces or path disclosure when logged-in user is admin.
|
||||
* 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.
|
||||
|
||||
|
||||
## Be informed of a new vulnerability
|
||||
|
||||
You can get more information on how to be informed on a new vulnerability on the page https://wiki.dolibarr.org/index.php/Security_information
|
||||
* 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).
|
||||
|
||||
1
dev/build/.gitignore → build/.gitignore
vendored
1
dev/build/.gitignore → build/.gitignore
vendored
@@ -7,4 +7,3 @@
|
||||
/dolibarr-*.zip
|
||||
/*.exe
|
||||
/html
|
||||
/*.bak
|
||||
@@ -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)
|
||||
@@ -1,6 +1,5 @@
|
||||
# Remove warning, we want to keep both standard and minified sources.
|
||||
dolibarr: source-contains-prebuilt-javascript-object htdocs/includes/jquery/*
|
||||
dolibarr: source-contains-prebuilt-javascript-object htdocs/public/includes/jquery/*
|
||||
dolibarr: source-contains-prebuilt-javascript-object htdocs/includes/jsgantt/*
|
||||
dolibarr: source-contains-prebuilt-javascript-object htdocs/includes/jstz/*
|
||||
# Those are false positives, the files are their own sources since
|
||||
@@ -11,13 +10,8 @@ source-is-missing htdocs/includes/ckeditor/ckeditor/lang/*.js
|
||||
source-is-missing htdocs/includes/ckeditor/ckeditor/plugins/*/dialogs/*.js
|
||||
source-is-missing htdocs/includes/ckeditor/ckeditor/plugins/*/filter/*.js
|
||||
source-is-missing htdocs/includes/ckeditor/ckeditor/plugins/templates/templates/default.js
|
||||
source-is-missing htdocs/public/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/*.js
|
||||
source-is-missing htdocs/public/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/*.js
|
||||
source-is-missing htdocs/public/includes/ckeditor/ckeditor/lang/*.js
|
||||
source-is-missing htdocs/public/includes/ckeditor/ckeditor/plugins/*/dialogs/*.js
|
||||
source-is-missing htdocs/public/includes/ckeditor/ckeditor/plugins/*/filter/*.js
|
||||
source-is-missing htdocs/public/includes/ckeditor/ckeditor/plugins/templates/templates/default.js
|
||||
source-is-missing htdocs/includes/restler/framework/Luracast/Restler/explorer/lib/*.js
|
||||
# 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/dolibarr/dolibarr
|
||||
|
||||
Before build/run, define the variable HOST_USER_ID as following:
|
||||
|
||||
export HOST_USER_ID=$(id -u)
|
||||
|
||||
Go in repository build/docker :
|
||||
|
||||
cd build/docker
|
||||
|
||||
And then, you can run :
|
||||
|
||||
docker-compose up
|
||||
|
||||
This will run 4 containers Docker : Dolibarr, MariaDB, PhpMyAdmin and MailDev.
|
||||
|
||||
The URL to go to the Dolibarr is :
|
||||
|
||||
http://0.0.0.0
|
||||
|
||||
The URL to go to PhpMyAdmin is (login/password is root/root) :
|
||||
|
||||
http://0.0.0.0:8080
|
||||
|
||||
In Dolibarr configuration Email let PHP mail function, To see all mail send by Dolibarr go to maildev
|
||||
|
||||
http://0.0.0.0:8081
|
||||
|
||||
Setup the database connection during the installation process, please use mariadb (name of the database container) as database host.
|
||||
Setup documents folder, during the installation process, to /var/documents
|
||||
@@ -1,4 +1,5 @@
|
||||
---
|
||||
version: '3'
|
||||
|
||||
networks:
|
||||
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
|
||||
24
build/docker-dev/docker-run.sh
Executable file
24
build/docker-dev/docker-run.sh
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
# Script used by the Dockerfile.
|
||||
# See README.md to know how to create a Dolibarr env with docker
|
||||
|
||||
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}
|
||||
EOF
|
||||
|
||||
exec apache2-foreground
|
||||
23
build/docker/README.md
Normal file
23
build/docker/README.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# How to use run Dolibarr with docker ?
|
||||
|
||||
|
||||
## For a fast run of a demo of the local version, you can build the docker image from this current repository by running
|
||||
|
||||
|
||||
sudo docker-compose build
|
||||
|
||||
sudo -s
|
||||
|
||||
export HOST_USER_ID=$(id -u)
|
||||
export HOST_GROUP_ID=$(id -g)
|
||||
export MYSQL_ROOT_PWD=$(tr -dc A-Za-z0-9 </dev/urandom | head -c 13; echo)
|
||||
|
||||
docker-compose up -d
|
||||
|
||||
|
||||
Warning: There is no persistency of data. This process is for dev purpose only.
|
||||
|
||||
|
||||
## For a more robust or a production usage
|
||||
|
||||
If you want to execute an official Docker package, you can find it and read the doc on ihttps://hub.docker.com/r/dolibarr/dolibarr
|
||||
28
build/docker/docker-compose.yml
Normal file
28
build/docker/docker-compose.yml
Normal file
@@ -0,0 +1,28 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
mariadb-prod:
|
||||
container_name: dolibarr-mariadb-prod
|
||||
image: mariadb:latest
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PWD
|
||||
MYSQL_DATABASE: "dolibarr-prod"
|
||||
|
||||
web:
|
||||
container_name: dolibarr-web-prod
|
||||
build: .
|
||||
|
||||
volumes:
|
||||
- ../../htdocs:/var/www/html/
|
||||
- ../../documents:/var/www/html/documents
|
||||
|
||||
depends_on:
|
||||
- mariadb-prod
|
||||
environment:
|
||||
HOST_USER_ID: $HOST_USER_ID
|
||||
HOST_GROUP_ID: $HOST_GROUP_ID
|
||||
DOLI_ROOT_PASSWORD: $MYSQL_ROOT_PWD
|
||||
DOLI_DATABASE: "dolibarr-prod"
|
||||
DOLI_DB_SERVER: "mariadb-prod"
|
||||
ports:
|
||||
- "8080:80"
|
||||
@@ -10,16 +10,6 @@ if [ "${PHP_INI_DIR}" == "" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ "${HOST_USER_ID}" == "" ]; then
|
||||
echo "Define HOST_USER_ID to your user ID before starting (example: www-data)"
|
||||
exit 1
|
||||
fi
|
||||
if [ "${HOST_GROUP_ID}" == "" ]; then
|
||||
echo "Define HOST_GROUP_ID to your group ID before starting (example: www-data)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
usermod -u "${HOST_USER_ID}" www-data
|
||||
groupmod -g "${HOST_GROUP_ID}" www-data
|
||||
|
||||
@@ -39,7 +29,6 @@ date.timezone = ${PHP_INI_DATE_TIMEZONE:-UTC}
|
||||
memory_limit = ${PHP_INI_MEMORY_LIMIT:-256M}
|
||||
EOF
|
||||
|
||||
echo cp /var/www/html/install/install.forced.sample.php /var/www/html/install/install.forced.php
|
||||
cp /var/www/html/install/install.forced.sample.php /var/www/html/install/install.forced.php
|
||||
cp /var/www/html/install/install.forced.docker.php /var/www/html/install/install.forced.php
|
||||
|
||||
exec apache2-foreground
|
||||
55
build/doxygen/dolibarr-doxygen-build.pl
Executable file
55
build/doxygen/dolibarr-doxygen-build.pl
Executable file
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/perl
|
||||
#--------------------------------------------------------------------
|
||||
# Start the generation of the development documentation with doxygen
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
# Determine the patho of this script
|
||||
($DIR=$0) =~ s/([^\/\\]+)$//;
|
||||
$DIR||='.';
|
||||
$DIR =~ s/([^\/\\])[\\\/]+$/$1/;
|
||||
|
||||
$OPTIONS="";
|
||||
#$OPTIONS="-d Preprocessor";
|
||||
|
||||
$CONFFILE="dolibarr-doxygen.doxyfile";
|
||||
|
||||
use Cwd;
|
||||
my $dir = getcwd;
|
||||
|
||||
print "Current dir is: $dir\n";
|
||||
#print "Running dir for doxygen must be: $DIR\n";
|
||||
|
||||
if (! -s "build/doxygen/$CONFFILE")
|
||||
{
|
||||
print "Error: current directory for building Dolibarr doxygen documentation is not correct.\n";
|
||||
print "\n";
|
||||
print "Change your current directory then, to launch the script, run:\n";
|
||||
print '> perl .\dolibarr-doxygen-build.pl (on Windows)'."\n";
|
||||
print '> perl ../dolibarr-doxygen-build.pl (on Linux or BSD)'."\n";
|
||||
sleep 4;
|
||||
exit 1;
|
||||
}
|
||||
|
||||
$SOURCE=".";
|
||||
|
||||
# Get version $MAJOR, $MINOR and $BUILD
|
||||
$result = open( IN, "< " . $SOURCE . "/htdocs/filefunc.inc.php" );
|
||||
if ( !$result ) { die "Error: Can't open descriptor file " . $SOURCE . "/htdocs/filefunc.inc.php\n"; }
|
||||
while (<IN>) {
|
||||
if ( $_ =~ /define\('DOL_VERSION', '([\d\.a-z\-]+)'\)/ ) { $PROJVERSION = $1; break; }
|
||||
}
|
||||
close IN;
|
||||
($MAJOR,$MINOR,$BUILD)=split(/\./,$PROJVERSION,3);
|
||||
if ($MINOR eq '') { die "Error can't detect version into ".$SOURCE . "/htdocs/filefunc.inc.php"; }
|
||||
|
||||
|
||||
$version=$MAJOR.".".$MINOR.".".$BUILD;
|
||||
|
||||
|
||||
print "Running doxygen for version ".$version.", please wait...\n";
|
||||
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;
|
||||
|
||||
0;
|
||||
88
build/doxygen/dolibarr-doxygen-filter.pl
Executable file
88
build/doxygen/dolibarr-doxygen-filter.pl
Executable file
@@ -0,0 +1,88 @@
|
||||
#!/usr/bin/perl
|
||||
#--------------------------------------------------------------------
|
||||
# \brief This script is a preprocessor for PHP files to be used
|
||||
# on PHP source files before running Doxygen.
|
||||
# \author Laurent Destailleur
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
# Usage: dolibarr-doxygen-filter.pl pathtofilefromdolibarrroot
|
||||
|
||||
$file=$ARGV[0];
|
||||
if (! $file)
|
||||
{
|
||||
print "Usage: dolibarr-doxygen-filter.pl pathtofilefromdolibarrroot\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
open(FILE,$file) || die "Failed to open file $file";
|
||||
while (<FILE>)
|
||||
{
|
||||
if ($_ =~ /\\version\s/i)
|
||||
{
|
||||
$_ =~ s/\$Id://i;
|
||||
$_ =~ s/(Exp|)\s\$$//i;
|
||||
$_ =~ s/(\\version\s+)[^\s]+\s/$1/i;
|
||||
$_ =~ s/(\w)\s(\w)/$1_$2/g;
|
||||
}
|
||||
$_ =~ s/exit\s*;/exit(0);/i;
|
||||
$i=0;
|
||||
$len=length($_);
|
||||
$s="";
|
||||
$insidequote=0;
|
||||
$insidedquote=0;
|
||||
$ignore="";
|
||||
while ($i < $len)
|
||||
{
|
||||
$c=substr($_,$i,1);
|
||||
if ($c eq "\\")
|
||||
{
|
||||
if ($insidequote) { $ignore="'"; };
|
||||
if ($insidedquote) { $ignore="\""; };
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($c eq "'")
|
||||
{
|
||||
if (! $insidedquote)
|
||||
{
|
||||
$c="\"";
|
||||
#print "X".$ignore;
|
||||
if ($ignore ne "'")
|
||||
{
|
||||
#print "Z".$ignore;
|
||||
$insidequote++;
|
||||
if ($insidequote == 2)
|
||||
{
|
||||
$insidequote=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
#print "X".$insidequote;
|
||||
}
|
||||
elsif ($c eq "\"")
|
||||
{
|
||||
#print "Y".$insidequote;
|
||||
if ($insidequote)
|
||||
{
|
||||
$c="'";
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($ignore ne "\"")
|
||||
{
|
||||
$insidedquote++;
|
||||
if ($insidedquote == 2)
|
||||
{
|
||||
$insidedquote=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$ignore="";
|
||||
}
|
||||
$s.=$c;
|
||||
$i++;
|
||||
}
|
||||
print $s;
|
||||
}
|
||||
close(FILE);
|
||||
@@ -1,7 +1,4 @@
|
||||
#!/usr/bin/perl
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Script to get version of a source file
|
||||
# Does not work with cygwin cvs command on Windows.
|
||||
@@ -10,18 +7,15 @@ use warnings;
|
||||
|
||||
# Usage: dolibarr-doxygen-getversion.pl pathtofilefromdolibarrroot
|
||||
|
||||
$file = $ARGV[0];
|
||||
if ( !$file ) {
|
||||
$file=$ARGV[0];
|
||||
if (! $file)
|
||||
{
|
||||
print "Usage: dolibarr-doxygen-getversion.pl pathtofilefromdolibarrroot\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
$commande =
|
||||
'cvs status "'
|
||||
. $file
|
||||
. '" | sed -n \'s/^[ \]*Working revision:[ \t]*\([0-9][0-9\.]*\).*/\1/p\'';
|
||||
|
||||
$commande='cvs status "'.$file.'" | sed -n \'s/^[ \]*Working revision:[ \t]*\([0-9][0-9\.]*\).*/\1/p\'';
|
||||
#print $commande;
|
||||
$result = `$commande 2>&1`;
|
||||
$result=`$commande 2>&1`;
|
||||
|
||||
print $result;
|
||||
@@ -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