diff --git a/.copier-answers.yml b/.copier-answers.yml index 2e97aaeaa..fab361b23 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,14 +1,18 @@ # Do NOT update manually; changes here will be overwritten by Copier -_commit: v1.3.6 +_commit: v1.5.2 _src_path: https://github.com/OCA/oca-addons-repo-template.git -ci: Travis -dependency_installation_mode: OCA +ci: GitHub +dependency_installation_mode: PIP generate_requirements_txt: true include_wkhtmltopdf: false odoo_version: 13.0 -rebel_module_groups: [] +org_name: Odoo Community Association (OCA) +org_slug: OCA +rebel_module_groups: +- mail_restrict_follower_selection repo_description: Addons concerning Odoo's social features and messaging in general. repo_name: Social addons for Odoo repo_slug: social +repo_website: https://github.com/OCA/social travis_apt_packages: [] travis_apt_sources: [] diff --git a/.eslintrc.yml b/.eslintrc.yml index d4cc423cc..9429bc688 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -4,7 +4,7 @@ env: # See https://github.com/OCA/odoo-community.org/issues/37#issuecomment-470686449 parserOptions: - ecmaVersion: 2017 + ecmaVersion: 2019 overrides: - files: diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 80ab1a211..5ac3585c3 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -2,7 +2,12 @@ name: pre-commit on: pull_request: + branches: + - "13.0*" push: + branches: + - "13.0" + - "13.0-ocabot-*" jobs: pre-commit: @@ -17,4 +22,21 @@ jobs: # where we are not using black > 21. Older black versions won't work with # Python 3.9.8+, and we can't bump black without reformatting. python-version: "3.9.7" - - uses: pre-commit/action@v2.0.0 + - name: Get python version + run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV + - uses: actions/cache@v1 + with: + path: ~/.cache/pre-commit + key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }} + - name: Install pre-commit + run: pip install pre-commit + - name: Run pre-commit + run: pre-commit run --all-files --show-diff-on-failure --color=always + - name: Check that all files generated by pre-commit are in git + run: | + newfiles="$(git ls-files --others --exclude-from=.gitignore)" + if [ "$newfiles" != "" ] ; then + echo "Please check-in the following files:" + echo "$newfiles" + exit 1 + fi diff --git a/.github/workflows/pre-commit.yml.rej b/.github/workflows/pre-commit.yml.rej new file mode 100644 index 000000000..8cc889c62 --- /dev/null +++ b/.github/workflows/pre-commit.yml.rej @@ -0,0 +1,11 @@ +diff a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml (rejected hunks) +@@ -17,2 +17,9 @@ jobs: + - uses: actions/setup-python@v2 ++ with: ++ # The pylint-odoo version we use here does not support python 3.10 ++ # https://github.com/OCA/oca-addons-repo-template/issues/80 ++ # We also need to pin to an older version of python for older odoo versions ++ # where we are not using black > 21. Older black versions won't work with ++ # Python 3.9.8+, and we can't bump black without reformatting. ++ python-version: "3.9.7" + - name: Get python version diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..fa7d1a4ad --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,81 @@ +name: tests + +on: + pull_request: + branches: + - "13.0*" + push: + branches: + - "13.0" + - "13.0-ocabot-*" + +jobs: + unreleased-deps: + runs-on: ubuntu-latest + name: Detect unreleased dependencies + steps: + - uses: actions/checkout@v2 + - run: | + for reqfile in requirements.txt test-requirements.txt ; do + if [ -f ${reqfile} ] ; then + result=0 + # reject non-comment lines that contain a / (i.e. URLs, relative paths) + grep "^[^#].*/" ${reqfile} || result=$? + if [ $result -eq 0 ] ; then + echo "Unreleased dependencies found in ${reqfile}." + exit 1 + fi + fi + done + test: + runs-on: ubuntu-latest + container: ${{ matrix.container }} + name: ${{ matrix.name }} + strategy: + fail-fast: false + matrix: + include: + - container: ghcr.io/oca/oca-ci/py3.6-odoo13.0:latest + include: "mail_restrict_follower_selection" + makepot: "true" + name: test with Odoo + - container: ghcr.io/oca/oca-ci/py3.6-ocb13.0:latest + include: "mail_restrict_follower_selection" + name: test with OCB + - container: ghcr.io/oca/oca-ci/py3.6-odoo13.0:latest + exclude: "mail_restrict_follower_selection" + makepot: "true" + name: test with Odoo + - container: ghcr.io/oca/oca-ci/py3.6-ocb13.0:latest + exclude: "mail_restrict_follower_selection" + name: test with OCB + services: + postgres: + image: postgres:9.6 + env: + POSTGRES_USER: odoo + POSTGRES_PASSWORD: odoo + POSTGRES_DB: odoo + ports: + - 5432:5432 + env: + INCLUDE: "${{ matrix.include }}" + EXCLUDE: "${{ matrix.exclude }}" + steps: + - uses: actions/checkout@v2 + with: + persist-credentials: false + - name: Install addons and dependencies + run: oca_install_addons + - name: Check licenses + run: manifestoo -d . check-licenses + - name: Check development status + run: manifestoo -d . check-dev-status --default-dev-status=Beta + - name: Initialize test db + run: oca_init_test_database + - name: Run tests + run: oca_run_tests + - uses: codecov/codecov-action@v1 + - name: Update .pot files + run: oca_export_and_push_pot https://x-access-token:${{ secrets.GIT_PUSH_TOKEN }}@github.com/${{ github.repository }} + if: ${{ matrix.makepot == 'true' && github.event_name == 'push' && github.repository_owner == 'OCA' }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0c2102fc5..4970a5c89 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,7 +5,7 @@ exclude: | # Files and folders generated by bots, to avoid loops ^setup/|/static/description/index\.html$| # We don't want to mess with tool-generated files - .svg$|/tests/([^/]+/)?cassettes/|^.copier-answers.yml$| + .svg$|/tests/([^/]+/)?cassettes/|^.copier-answers.yml$|^.github/| # Maybe reactivate this when all README files include prettier ignore tags? ^README\.md$| # Library files can have extraneous formatting (even minimized) @@ -49,6 +49,7 @@ repos: rev: 19.10b0 hooks: - id: black + additional_dependencies: ["click<8.1.0"] - repo: https://github.com/pre-commit/mirrors-prettier rev: v1.19.1 hooks: diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index cc6ca5310..000000000 --- a/.travis.yml +++ /dev/null @@ -1,51 +0,0 @@ -language: python -cache: - directories: - - $HOME/.cache/pip - - $HOME/.cache/pre-commit - -python: - - "3.6" - -addons: - postgresql: "9.6" - apt: - packages: - - expect-dev # provides unbuffer utility - -stages: - - test - -jobs: - include: - # Test separately: mail_restrict_follower_selection - - stage: test - env: - - TESTS=1 ODOO_REPO="odoo/odoo" MAKEPOT=1 - INCLUDE="mail_restrict_follower_selection" - - stage: test - env: - - TESTS=1 ODOO_REPO="OCA/OCB" INCLUDE="mail_restrict_follower_selection" - # Test all other addons together - - stage: test - env: - - TESTS=1 ODOO_REPO="odoo/odoo" MAKEPOT=1 - EXCLUDE="mail_restrict_follower_selection" - - stage: test - env: - - TESTS=1 ODOO_REPO="OCA/OCB" EXCLUDE="mail_restrict_follower_selection" -env: - global: - - VERSION="13.0" TESTS="0" LINT_CHECK="0" MAKEPOT="0" - -install: - - git clone --depth=1 https://github.com/OCA/maintainer-quality-tools.git - ${HOME}/maintainer-quality-tools - - export PATH=${HOME}/maintainer-quality-tools/travis:${PATH} - - travis_install_nightly - -script: - - travis_run_tests - -after_success: - - travis_after_tests_success diff --git a/README.md b/README.md index 12254f4ee..7fbea5cf1 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ -[![Runbot Status](https://runbot.odoo-community.org/runbot/badge/flat/205/13.0.svg)](https://runbot.odoo-community.org/runbot/repo/github-com-oca-social-205) -[![Build Status](https://travis-ci.com/OCA/social.svg?branch=13.0)](https://travis-ci.com/OCA/social) + +[![Runboat](https://img.shields.io/badge/runboat-Try%20me-875A7B.png)](https://runboat.odoo-community.org/builds?repo=OCA/social&target_branch=13.0) +[![Pre-commit Status](https://github.com/OCA/social/actions/workflows/pre-commit.yml/badge.svg?branch=13.0)](https://github.com/OCA/social/actions/workflows/pre-commit.yml?query=branch%3A13.0) +[![Build Status](https://github.com/OCA/social/actions/workflows/test.yml/badge.svg?branch=13.0)](https://github.com/OCA/social/actions/workflows/test.yml?query=branch%3A13.0) [![codecov](https://codecov.io/gh/OCA/social/branch/13.0/graph/badge.svg)](https://codecov.io/gh/OCA/social) [![Translation Status](https://translation.odoo-community.org/widgets/social-13-0/-/svg-badge.svg)](https://translation.odoo-community.org/engage/social-13-0/?utm_source=widget) @@ -63,12 +65,11 @@ addon | version | maintainers | summary This repository is licensed under [AGPL-3.0](LICENSE). -However, each module can have a totally different license, as long as they adhere to OCA +However, each module can have a totally different license, as long as they adhere to Odoo Community Association (OCA) policy. Consult each module's `__manifest__.py` file, which contains a `license` key that explains its license. ---- - OCA, or the [Odoo Community Association](http://odoo-community.org/), is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. diff --git a/test-requirements.txt b/test-requirements.txt new file mode 100644 index 000000000..498862d66 --- /dev/null +++ b/test-requirements.txt @@ -0,0 +1,2 @@ +odoo_test_helper +freezegun