[IMP] support change odoo and python version
- Makefile show version, switch version and install different version - erplibre_version with odoo_version, poetry_version and python_version - support multiple docker version - support odoo 12, odoo 14, odoo 16 - bullseye, bookworm debian - update latest version - script update_env_version to detect actual version and refactor it - adapt file path to support multiple version - poetry with verbose by default, ignore python keyring - python script to generate image db with parallel for all odoo version - check_addons_exist before generate all image - support delay to change queue parallel - fix odoo 12 product configurator - can show demo website - swith odoo - force create addons if missing - update manifest, because gen config break with wrong manifest
This commit is contained in:
parent
4989c1edbf
commit
d91c3c2e95
62 changed files with 25704 additions and 1695 deletions
17
.gitignore
vendored
17
.gitignore
vendored
|
|
@ -3,7 +3,7 @@
|
|||
*.tmp
|
||||
*.bak
|
||||
.idea
|
||||
.venv
|
||||
.venv*
|
||||
*.log
|
||||
config.conf
|
||||
*.DS_Store
|
||||
|
|
@ -12,9 +12,12 @@ config.conf
|
|||
coverage*
|
||||
|
||||
.repo
|
||||
addons
|
||||
!addons/
|
||||
addons/*
|
||||
addons*/*
|
||||
!script/addons
|
||||
addons.*
|
||||
doc/itpp*
|
||||
doc/odoo*
|
||||
script/OCA*
|
||||
|
|
@ -26,3 +29,15 @@ wkhtmltox*
|
|||
cache
|
||||
node_modules
|
||||
docker-compose.override.yml
|
||||
|
||||
# Generated by ERPLibre
|
||||
manifest/default.dev.xml
|
||||
poetry.lock
|
||||
pyproject.toml
|
||||
.erplibre-semver-version
|
||||
.erplibre-version
|
||||
.odoo-version
|
||||
.poetry-version
|
||||
.python-version
|
||||
requirements.txt
|
||||
requirement/ignore_requirements.txt
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
3.7.16
|
||||
352
Makefile
352
Makefile
|
|
@ -67,6 +67,13 @@ run_parallel_cg_template:
|
|||
run_parallel_cg_migrator:
|
||||
parallel < ./conf/list_cg_migrator_test.txt
|
||||
|
||||
############
|
||||
# VERSION #
|
||||
############
|
||||
.PHONY: version
|
||||
version:
|
||||
./script/version/update_env_version.py
|
||||
|
||||
#############
|
||||
# INSTALL #
|
||||
#############
|
||||
|
|
@ -75,12 +82,64 @@ install:install_os install_dev
|
|||
|
||||
.PHONY: install_dev
|
||||
install_dev:
|
||||
./script/install/install_locally_dev.sh
|
||||
# ./script/version/update_env_version.py
|
||||
# ./script/install/install_locally_dev.sh
|
||||
./script/version/update_env_version.py --install_dev
|
||||
|
||||
.PHONY: install_odoo_16
|
||||
install_odoo_16:
|
||||
./script/version/update_env_version.py --erplibre_version odoo16.0_python3.10.14 --install_dev
|
||||
|
||||
.PHONY: switch_odoo_16
|
||||
switch_odoo_16:
|
||||
./script/version/update_env_version.py --erplibre_version odoo16.0_python3.10.14 --switch
|
||||
./script/make.sh config_gen_all
|
||||
|
||||
.PHONY: install_odoo_14
|
||||
install_odoo_14:
|
||||
./script/version/update_env_version.py --erplibre_version odoo14.0_python3.8.20 --install_dev
|
||||
|
||||
.PHONY: switch_odoo_14
|
||||
switch_odoo_14:
|
||||
./script/version/update_env_version.py --erplibre_version odoo14.0_python3.8.20 --switch
|
||||
./script/make.sh config_gen_all
|
||||
|
||||
.PHONY: install_odoo_12
|
||||
install_odoo_12:
|
||||
./script/version/update_env_version.py --erplibre_version odoo12.0_python3.7.17 --install_dev
|
||||
|
||||
.PHONY: switch_odoo_12
|
||||
switch_odoo_12:
|
||||
./script/version/update_env_version.py --erplibre_version odoo12.0_python3.7.17 --switch
|
||||
./script/make.sh config_gen_all
|
||||
|
||||
.PHONY: install_odoo_all_version
|
||||
install_odoo_all_version:
|
||||
./script/make.sh install_odoo_12
|
||||
./script/make.sh install_odoo_14
|
||||
./script/make.sh install_odoo_16
|
||||
|
||||
.PHONY: install_odoo_all_version_dev
|
||||
install_odoo_all_version_dev:
|
||||
echo "Open Pycharm, close it before install Odoo and reopen at the end"
|
||||
pycharm .
|
||||
./script/make.sh install_odoo_12
|
||||
./script/make.sh install_odoo_14
|
||||
./script/make.sh install_odoo_16
|
||||
|
||||
#.PHONY: install_update_odoo
|
||||
#install_update_odoo:
|
||||
# ./script/version/update_env_version.py --install_dev --update_addons
|
||||
|
||||
.PHONY: install_show_version
|
||||
install_show_version:
|
||||
./script/version/update_env_version.py -l
|
||||
|
||||
# Install this for the first time of dev environment
|
||||
.PHONY: install_os
|
||||
install_os:
|
||||
./script/install/install_dev.sh
|
||||
#./script/install/install_dev.sh
|
||||
./script/version/update_env_version.py --install
|
||||
|
||||
.PHONY: install_production
|
||||
install_production:
|
||||
|
|
@ -95,6 +154,13 @@ install_docker_debian:
|
|||
install_docker_ubuntu:
|
||||
./script/install/install_ubuntu_docker.sh
|
||||
|
||||
###################
|
||||
# Environnement #
|
||||
###################
|
||||
.PHONY: pyenv_update
|
||||
pyenv_update:
|
||||
~/.pyenv/bin/pyenv update
|
||||
|
||||
#####################
|
||||
# DB installation #
|
||||
#####################
|
||||
|
|
@ -161,14 +227,6 @@ db_restore_prod_client:
|
|||
db_restore_erplibre_base_db_test_image_test:
|
||||
./script/database/db_restore.py --database test --image test
|
||||
|
||||
.PHONY: db_restore_erplibre_base_db_test2
|
||||
db_restore_erplibre_base_db_test2:
|
||||
./script/database/db_restore.py --database test2
|
||||
|
||||
.PHONY: db_restore_erplibre_base_db_test3
|
||||
db_restore_erplibre_base_db_test3:
|
||||
./script/database/db_restore.py --database test3
|
||||
|
||||
.PHONY: db_restore_erplibre_website_db_test
|
||||
db_restore_erplibre_website_db_test:
|
||||
./script/database/db_restore.py --database test --image erplibre_website
|
||||
|
|
@ -217,52 +275,6 @@ db_test_re_export_website_attachments:
|
|||
########################
|
||||
# Image installation #
|
||||
########################
|
||||
.PHONY: image_db_create_erplibre_base
|
||||
image_db_create_erplibre_base:
|
||||
.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_base
|
||||
.venv/bin/python3 ./odoo/odoo-bin db --create --database image_creation_erplibre_base
|
||||
./script/addons/install_addons_from_file.sh image_creation_erplibre_base ./conf/module_list_image_erplibre_base.txt
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_base --restore_image erplibre_base
|
||||
|
||||
.PHONY: image_db_create_erplibre_website
|
||||
image_db_create_erplibre_website:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_website
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_website
|
||||
|
||||
./script/addons/install_addons.sh image_creation_erplibre_website website,erplibre_website_snippets_basic_html,erplibre_website_snippets_cards,erplibre_website_snippets_structures,erplibre_website_snippets_timelines,website_form_builder,muk_website_branding,website_snippet_anchor,website_anchor_smooth_scroll,website_snippet_all
|
||||
./script/addons/install_addons_theme.sh image_creation_erplibre_website theme_default
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_website --restore_image erplibre_website
|
||||
|
||||
./script/addons/install_addons.sh image_creation_erplibre_website crm,website_crm,crm_team_quebec
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_website --restore_image erplibre_website_crm
|
||||
|
||||
./script/addons/install_addons.sh image_creation_erplibre_website website_livechat
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_website --restore_image erplibre_website_chat_crm
|
||||
|
||||
./script/addons/install_addons.sh image_creation_erplibre_website website_sale,erplibre_base_quebec,website_snippet_product_category,website_snippet_carousel_product
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_website --restore_image erplibre_ecommerce_base
|
||||
|
||||
./script/addons/install_addons.sh image_creation_erplibre_website stock,purchase,website_sale_management
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_website --restore_image erplibre_ecommerce_advance
|
||||
|
||||
./script/addons/install_addons.sh image_creation_erplibre_website project
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_website --restore_image erplibre_ecommerce_project
|
||||
|
||||
./script/addons/install_addons.sh image_creation_erplibre_website pos_sale,muk_pos_branding
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_website --restore_image erplibre_ecommerce_pos
|
||||
|
||||
./script/addons/install_addons.sh image_creation_erplibre_website hr
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_website --restore_image erplibre_ecommerce_pos_hr
|
||||
|
||||
.PHONY: image_db_create_erplibre_demo
|
||||
image_db_create_erplibre_demo:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_demo
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --create --database image_creation_demo --demo
|
||||
./script/addons/install_addons_from_file.sh image_creation_demo ./conf/module_list_image_erplibre_base.txt
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_demo --restore_image erplibre_demo_base
|
||||
./script/addons/install_addons.sh image_creation_demo website,erplibre_website_snippets_basic_html,erplibre_website_snippets_cards,erplibre_website_snippets_structures,erplibre_website_snippets_timelines,website_form_builder,muk_website_branding,website_snippet_anchor,website_anchor_smooth_scroll,website_snippet_all,crm,website_crm,crm_team_quebec,website_livechat,website_sale,erplibre_base_quebec,website_snippet_product_category,website_snippet_carousel_product,stock,purchase,website_sale_management,project,pos_sale,muk_pos_branding,hr
|
||||
./script/addons/install_addons_theme.sh image_creation_demo theme_default
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_demo --restore_image erplibre_demo_full
|
||||
|
||||
.PHONY: image_db_create_erplibre_code_generator
|
||||
image_db_create_erplibre_code_generator:
|
||||
|
|
@ -273,175 +285,25 @@ image_db_create_erplibre_code_generator:
|
|||
./script/make.sh addons_install_code_generator_full
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database code_generator --restore_image erplibre_code_generator_full
|
||||
|
||||
.PHONY: image_db_create_erplibre_package_accounting
|
||||
image_db_create_erplibre_package_accounting:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_accounting
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_accounting
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_accounting erplibre_base_quebec
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_accounting account_fiscal_year_closing,account_export_csv,account_financial_report,account_tax_balance,mis_builder_cash_flow,partner_statement,account_bank_statement_import_camt_oca,account_bank_statement_import_move_line,account_bank_statement_import_ofx,account_bank_statement_import_online,account_bank_statement_import_online_paypal,account_bank_statement_import_online_transferwise,account_bank_statement_import_paypal,account_bank_statement_import_split,account_bank_statement_import_txt_xlsx,accounting_pdf_reports,om_account_accountant,om_account_asset,om_account_budget
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_accounting --restore_image erplibre_package_accounting
|
||||
|
||||
.PHONY: image_db_create_erplibre_package_business_requirements
|
||||
image_db_create_erplibre_package_business_requirements:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_business_requirements
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_business_requirements
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_business_requirements crm_team_quebec
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_business_requirements business_requirement,business_requirement_crm,business_requirement_deliverable,business_requirement_sale,business_requirement_sale_timesheet
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_business_requirements --restore_image erplibre_package_business_requirements
|
||||
|
||||
.PHONY: image_db_create_erplibre_package_contract
|
||||
image_db_create_erplibre_package_contract:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_contract
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_contract
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_contract agreement,agreement_account,agreement_legal,agreement_legal_sale,agreement_project,agreement_sale,agreement_serviceprofile,agreement_stock,contract,contract_forecast,contract_invoice_start_end_dates,contract_layout_category_hide_detail,contract_mandate,contract_payment_mode,contract_sale,contract_sale_invoicing,contract_sale_mandate,contract_sale_payment_mode,contract_transmit_method,contract_variable_qty_prorated,contract_variable_qty_timesheet,contract_variable_quantity,product_contract,product_contract_variable_quantity
|
||||
# ./script/addons/install_addons.sh image_creation agreement_legal_sale_fieldservice,agreement_maintenance,agreement_mrp,agreement_repair
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_contract --restore_image erplibre_package_contract
|
||||
|
||||
.PHONY: image_db_create_erplibre_package_crm
|
||||
image_db_create_erplibre_package_crm:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_crm
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_crm
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_crm erplibre_base_quebec,crm_team_quebec,crm,crm_livechat,crm_phone_validation,crm_project,crm_reveal
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_crm --restore_image erplibre_package_crm
|
||||
|
||||
.PHONY: image_db_create_erplibre_package_e_commerce
|
||||
image_db_create_erplibre_package_e_commerce:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_e_commerce
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_e_commerce
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_e_commerce erplibre_base_quebec
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_e_commerce website_sale,website_sale_comparison,website_sale_delivery,website_sale_digital,website_sale_link_tracker,website_sale_management,website_sale_stock,website_sale_wishlist,website_sale_attribute_filter_category,website_sale_attribute_filter_order,website_sale_attribute_filter_price,website_sale_cart_selectable,website_sale_category_description,website_sale_checkout_skip_payment,website_sale_exception,website_sale_hide_empty_category,website_sale_hide_price,website_sale_product_attachment,website_sale_product_attribute_filter_visibility,website_sale_product_attribute_value_filter_existing,website_sale_product_detail_attribute_image,website_sale_product_detail_attribute_value_image,website_sale_product_minimal_price,website_sale_product_reference_displayed,website_sale_product_sort,website_sale_product_style_badge,website_sale_require_legal,website_sale_require_login,website_sale_secondary_unit,website_sale_show_company_data,website_sale_stock_available,website_sale_stock_available_display,website_sale_stock_force_block,website_sale_suggest_create_account,website_sale_wishlist_keep,website_snippet_carousel_product,website_snippet_product_category,product_rating_review,product_configurator,product_configurator_mrp,product_configurator_purchase,product_configurator_sale,product_configurator_stock,website_product_configurator
|
||||
./script/addons/install_addons_theme.sh image_creation_erplibre_package_e_commerce theme_default
|
||||
# ./script/addons/install_addons.sh image_creation website_sale_product_brand,website_sale_tax_toggle,website_sale_vat_required,product_configurator_sale_mrp,product_configurator_stock_lots,product_configurator_subconfig,website_product_configurator_mrp
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_e_commerce --restore_image erplibre_package_e_commerce
|
||||
|
||||
.PHONY: image_db_create_erplibre_package_field_service
|
||||
image_db_create_erplibre_package_field_service:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_field_service
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_field_service
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_field_service erplibre_base_quebec,crm_team_quebec
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_field_service fieldservice,fieldservice_account,fieldservice_account_analytic,fieldservice_account_payment,fieldservice_activity,fieldservice_agreement,fieldservice_change_management,fieldservice_crm,fieldservice_delivery,fieldservice_distribution,fieldservice_fleet,fieldservice_geoengine,fieldservice_isp_account,fieldservice_isp_flow,fieldservice_location_builder,fieldservice_maintenance,fieldservice_partner_multi_relation,fieldservice_project,fieldservice_purchase,fieldservice_recurring,fieldservice_repair,fieldservice_route,fieldservice_route_account,fieldservice_route_stock,fieldservice_route_vehicle,fieldservice_sale,fieldservice_sale_recurring,fieldservice_sale_stock,fieldservice_size,fieldservice_skill,fieldservice_stage_server_action,fieldservice_stage_validation,fieldservice_stock,fieldservice_stock_account,fieldservice_stock_account_analytic,fieldservice_substatus,fieldservice_vehicle,fieldservice_vehicle_stock
|
||||
# ./script/addons/install_addons.sh image_creation fieldservice_google_map,fieldservice_google_marker_icon_picker
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_field_service --restore_image erplibre_package_field_service
|
||||
|
||||
.PHONY: image_db_create_erplibre_package_helpdesk
|
||||
image_db_create_erplibre_package_helpdesk:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_helpdesk
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_helpdesk
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_helpdesk helpdesk_mgmt,helpdesk_mgmt_project,helpdesk_motive,helpdesk_type,helpdesk_mgmt_timesheet,helpdesk_mgmt_timesheet_time_control,helpdesk_mgmt_partner_sequence,helpdesk_mgmt_sla
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_helpdesk --restore_image erplibre_package_helpdesk
|
||||
|
||||
.PHONY: image_db_create_erplibre_package_hr
|
||||
image_db_create_erplibre_package_hr:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_hr
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_hr
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_hr erplibre_base_quebec
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_hr hr,hr_expense_associate_with_customer,hr_expense_tip,res_partner_fix_group_by_company,hr_attendance,hr_contract,hr_expense,hr_expense_check,hr_gamification,hr_holidays,hr_maintenance,hr_org_chart,hr_payroll,hr_payroll_account,hr_recruitment,hr_recruitment_survey,hr_timesheet,hr_timesheet_attendance,hr_attendance_autoclose,hr_attendance_geolocation,hr_attendance_modification_tracking,hr_attendance_reason,hr_attendance_report_theoretical_time,hr_attendance_rfid,hr_calendar_rest_time,hr_contract_currency,hr_contract_document,hr_contract_multi_job,hr_contract_rate,hr_course,hr_employee_age,hr_employee_birth_name,hr_employee_calendar_planning,hr_employee_display_own_info,hr_employee_document,hr_employee_emergency_contact,hr_employee_firstname,hr_employee_health,hr_employee_id,hr_employee_language,hr_employee_medical_examination,hr_employee_partner_external,hr_employee_phone_extension,hr_employee_relative,hr_employee_service,hr_employee_service_contract,hr_employee_social_media,hr_employee_ssn,hr_expense_advance_clearing,hr_expense_cancel,hr_expense_invoice,hr_expense_payment_difference,hr_expense_petty_cash,hr_expense_sequence,hr_expense_tier_validation,hr_experience,hr_holidays_accrual_advanced,hr_holidays_credit,hr_holidays_hour,hr_holidays_leave_auto_approve,hr_holidays_leave_repeated,hr_holidays_leave_request_wizard,hr_holidays_length_validation,hr_holidays_notify_employee_manager,hr_holidays_public,hr_holidays_settings,hr_holidays_validity_date,hr_job_category,hr_payroll_cancel,hr_payslip_change_state,hr_period,hr_skill,hr_worked_days_from_timesheet,resource_hook,hr_contract_single_open,hr_contract_wage_type,hr_employee_private_wizard,hr_employee_type,hr_employee_type_private_wizard,hr_event,hr_expense_same_month,hr_working_space,muk_hr_utils
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_hr --restore_image erplibre_package_hr
|
||||
|
||||
.PHONY: image_db_create_erplibre_package_project
|
||||
image_db_create_erplibre_package_project:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_project
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_project
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_project erplibre_base_quebec
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_project project,project_chatter,project_default_task_stage,project_form_with_dates,project_hide_create_sale_order,project_iteration,project_iteration_parent_only,project_iteration_parent_type_required,project_portal_hide_timesheets,project_portal_parent_task,project_remaining_hours_update,project_stage,project_stage_allow_timesheet,project_stage_no_quick_create,project_task_date_planned,project_task_deadline_from_project,project_task_full_text_search,project_task_id_in_display_name,project_task_link,project_task_reference,project_task_resource_type,project_task_search_parent_subtask,project_task_stage_external_mail,project_task_subtask_same_project,project_task_type,project_template,project_template_numigi,project_template_timesheet,project_type,project_time_budget,project_time_range
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_project --restore_image erplibre_package_project
|
||||
|
||||
.PHONY: image_db_create_erplibre_package_purchase
|
||||
image_db_create_erplibre_package_purchase:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_purchase
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_purchase
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_purchase erplibre_base_quebec
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_purchase purchase,purchase_mrp,purchase_requisition,purchase_stock,product_supplier_info_helpers,purchase_consignment,purchase_consignment_delivery_expense,purchase_consignment_inventory,purchase_consignment_inventory_line_domain,purchase_estimated_time_arrival,purchase_invoice_empty_lines,purchase_invoice_from_picking,purchase_partner_products,purchase_warning_minimum_amount
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_purchase --restore_image erplibre_package_purchase
|
||||
|
||||
.PHONY: image_db_create_erplibre_package_sale
|
||||
image_db_create_erplibre_package_sale:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_sale
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_sale
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_sale erplibre_base_quebec,crm_team_quebec
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_sale sale,sale_crm,sale_expense,sale_management,sale_margin,sale_mrp,sale_purchase,sale_quotation_builder,sale_stock,sale_timesheet,sales_team,product_create_group,product_dimension,product_dimension_numigi,product_extra_views,product_extra_views_purchase,product_extra_views_sale,product_extra_views_stock,product_kit,product_panel_shortcut,product_reference,product_reference_list_view,product_variant_button_complete_form,sale_order_line_limit,sale_degroup_tax,payment,payment_transfer,purchase,stock
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_sale --restore_image erplibre_package_sale
|
||||
|
||||
.PHONY: image_db_create_erplibre_package_scrummer
|
||||
image_db_create_erplibre_package_scrummer:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_scrummer
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_scrummer
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_scrummer erplibre_base_quebec
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_scrummer scrummer,scrummer_git,scrummer_kanban,scrummer_scrum,scrummer_timesheet_category,scrummer_workflow_security,scrummer_workflow_transition_by_project,scrummer_workflow_transitions_by_task_type,web_diagram_position,web_syncer,web_widget_image_url,project_agile_sale_timesheet,project_agile_analytic,project_agile_scrum,project_git_github,project_git_gitlab,project_portal
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_scrummer --restore_image erplibre_package_scrummer
|
||||
|
||||
.PHONY: image_db_create_erplibre_package_stock
|
||||
image_db_create_erplibre_package_stock:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_stock
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_stock
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_stock stock,stock_account,stock_dropshipping,stock_landed_costs,stock_picking_batch,purchase_warehouse_access,stock_component,stock_component_account,stock_inventory_accounting_date_editable,stock_inventory_category_domain,stock_inventory_internal_location,stock_inventory_line_domain,stock_location_position_alphanum,stock_picking_change_destination,stock_serial_single_quant,stock_theorical_quantity_access,stock_turnover_rate,stock_warehouse_access,stock_warehouse_distance
|
||||
# ./script/addons/install_addons.sh image_creation_erplibre_package_stock stock_zebra,stock_inventory_line_domain_barcode
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_stock --restore_image erplibre_package_stock
|
||||
|
||||
.PHONY: image_db_create_erplibre_package_timesheet
|
||||
image_db_create_erplibre_package_timesheet:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_timesheet
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_timesheet
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_timesheet payroll_code_on_task_type,payroll_period,payroll_preparation,payroll_preparation_export_wizard,payroll_preparation_from_timesheet,project_timesheet_time_control_enhanced,timesheet_edit_only_today,timesheet_list_description_after_task,timesheet_list_employee,timesheet_multi_line_wizard,timesheet_multi_line_wizard_security,timesheet_payroll_period,timesheet_validation_status
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_timesheet --restore_image erplibre_package_timesheet
|
||||
|
||||
.PHONY: image_db_create_erplibre_package_website
|
||||
image_db_create_erplibre_package_website:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_website
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_website
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_website portal,website,website_blog,website_crm,website_crm_partner_assign,website_crm_phone_validation,website_customer,website_event,website_event_questions,website_event_sale,website_event_track,website_form,website_form_project,website_forum,website_google_map,website_hr,website_hr_recruitment,website_links,website_livechat,website_mail,website_mail_channel,website_mass_mailing,website_membership,website_partner,website_payment,website_rating,website_slides,website_survey,website_theme_install,website_twitter,website_adv_image_optimization,website_anchor_smooth_scroll,website_blog_excerpt_img,website_breadcrumb,website_canonical_url,website_cookie_notice,website_crm_privacy_policy,website_crm_quick_answer,website_crm_recaptcha,website_form_builder,website_form_recaptcha,website_google_tag_manager,website_img_dimension,website_js_below_the_fold,website_lazy_load_image,website_legal_page,website_logo,website_media_size,website_megamenu,website_odoo_debranding,website_portal_address,website_portal_contact,website_snippet_anchor,website_snippet_big_button,website_snippet_country_dropdown,website_snippet_marginless_gallery,smile_website_login_as,website_snippet_all
|
||||
./script/addons/install_addons_theme.sh image_creation_erplibre_package_website theme_default
|
||||
# ./script/addons/install_addons.sh image_creation_erplibre_package_website website_no_crawler
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_website --restore_image erplibre_package_website
|
||||
|
||||
.PHONY: image_db_create_erplibre_package_wiki
|
||||
image_db_create_erplibre_package_wiki:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_wiki
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_wiki
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_wiki document_page,document_page_approval,document_page_group,document_page_project,document_page_reference,document_page_tag,document_url,knowledge,attachment_preview,document_page_procedure,document_page_quality_manual,document_page_work_instruction,mgmtsystem,mgmtsystem_action,mgmtsystem_audit,mgmtsystem_hazard,mgmtsystem_manual,mgmtsystem_nonconformity,mgmtsystem_nonconformity_hr,mgmtsystem_nonconformity_product,mgmtsystem_nonconformity_project,mgmtsystem_quality,mgmtsystem_review,mgmtsystem_survey
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_wiki --restore_image erplibre_package_wiki
|
||||
|
||||
.PHONY: image_db_create_erplibre_package_dms
|
||||
image_db_create_erplibre_package_dms:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_dms
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_dms
|
||||
./script/addons/install_addons.sh image_creation_erplibre_package_dms muk_dms,muk_dms_access,muk_dms_view,muk_web_preview,muk_web_preview_audio,muk_web_preview_csv,muk_web_preview_image,muk_web_preview_markdown,muk_web_preview_msoffice,muk_web_preview_opendocument,muk_web_preview_rst,muk_web_preview_text,muk_web_preview_video
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_dms --restore_image erplibre_package_dms
|
||||
|
||||
.PHONY: image_db_create_all
|
||||
image_db_create_all:
|
||||
# TODO remove modules from addons/addons
|
||||
#./script/make.sh config_gen_image_db
|
||||
./script/database/db_restore.py --clean_cache
|
||||
./script/make.sh image_db_create_erplibre_base
|
||||
./script/make.sh image_db_create_erplibre_website
|
||||
./script/make.sh image_db_create_erplibre_code_generator
|
||||
./script/make.sh image_db_create_erplibre_demo
|
||||
./script/make.sh image_db_create_erplibre_package_accounting
|
||||
./script/make.sh image_db_create_erplibre_package_business_requirements
|
||||
./script/make.sh image_db_create_erplibre_package_contract
|
||||
./script/make.sh image_db_create_erplibre_package_crm
|
||||
./script/make.sh image_db_create_erplibre_package_e_commerce
|
||||
./script/make.sh image_db_create_erplibre_package_field_service
|
||||
./script/make.sh image_db_create_erplibre_package_helpdesk
|
||||
./script/make.sh image_db_create_erplibre_package_hr
|
||||
./script/make.sh image_db_create_erplibre_package_project
|
||||
./script/make.sh image_db_create_erplibre_package_purchase
|
||||
./script/make.sh image_db_create_erplibre_package_sale
|
||||
./script/make.sh image_db_create_erplibre_package_scrummer
|
||||
./script/make.sh image_db_create_erplibre_package_stock
|
||||
./script/make.sh image_db_create_erplibre_package_timesheet
|
||||
./script/make.sh image_db_create_erplibre_package_website
|
||||
./script/make.sh image_db_create_erplibre_package_wiki
|
||||
./script/make.sh image_db_create_erplibre_package_dms
|
||||
./script/make.sh image_db_create_test_website_attachments
|
||||
#./script/make.sh config_gen_all
|
||||
|
||||
.PHONY: image_db_create_all_parallel
|
||||
image_db_create_all_parallel:
|
||||
./script/database/db_restore.py --clean_cache
|
||||
./script/make.sh image_db_create_erplibre_base
|
||||
parallel < ./conf/image_db_create.txt
|
||||
echo "Search in-existing module"
|
||||
./.venv/bin/python3 ./script/database/image_db.py --check_addons_exist
|
||||
echo "Create Image DB"
|
||||
./.venv/bin/python3 ./script/database/image_db.py --generate_bash_cmd_parallel | bash
|
||||
./script/database/db_restore.py --clean_cache
|
||||
#./script/make.sh image_db_create_test_website_attachments
|
||||
|
||||
.PHONY: image_db_list_data
|
||||
image_db_list_data:
|
||||
./.venv/bin/python3 ./script/database/image_db.py --generate_bash_cmd_parallel
|
||||
#./.venv/bin/python3 ./script/database/image_db.py --generate_bash_cmd_parallel --odoo_version 12.0
|
||||
|
||||
.PHONY: image_db_list
|
||||
image_db_list:
|
||||
./.venv/bin/python3 ./script/database/image_db.py --show_list_only
|
||||
#./.venv/bin/python3 ./script/database/image_db.py --generate_bash_cmd_parallel --odoo_version 12.0
|
||||
|
||||
.PHONY: image_db_create_test_website_attachments
|
||||
image_db_create_test_website_attachments:
|
||||
|
|
@ -452,8 +314,8 @@ image_db_create_test_website_attachments:
|
|||
|
||||
.PHONY: image_diff_base_website
|
||||
image_diff_base_website:
|
||||
#./script/manifest/compare_backup.py --backup_file_1 ./image_db/erplibre_base.zip --backup_file_2 ./image_db/erplibre_website.zip
|
||||
./script/manifest/compare_backup.py --backup_1 erplibre_base --backup_2 erplibre_website
|
||||
#./script/database/compare_backup.py --backup_file_1 ./image_db/erplibre_base.zip --backup_file_2 ./image_db/erplibre_website.zip
|
||||
./script/database/compare_backup.py --backup_1 odoo12.0_base --backup_2 odoo12.0_website
|
||||
|
||||
#########################
|
||||
# Addons installation #
|
||||
|
|
@ -918,6 +780,13 @@ format_script_isort_only:
|
|||
log_show_test:
|
||||
vim ${LOG_FILE}
|
||||
|
||||
##########
|
||||
# poetry #
|
||||
##########
|
||||
.PHONY: poetry_update
|
||||
poetry_update:
|
||||
./script/poetry/poetry_update.py
|
||||
|
||||
###########
|
||||
# clean #
|
||||
###########
|
||||
|
|
@ -979,9 +848,17 @@ docker_exec_erplibre_repo_show_status:
|
|||
./script/docker/docker_repo_show_status.sh
|
||||
|
||||
# build docker
|
||||
.PHONY: docker_build
|
||||
docker_build:
|
||||
./script/docker/docker_build.sh
|
||||
.PHONY: docker_build_odoo_16
|
||||
docker_build_odoo_16:
|
||||
./script/docker/docker_build.sh --odoo_16
|
||||
|
||||
.PHONY: docker_build_odoo_14
|
||||
docker_build_odoo_14:
|
||||
./script/docker/docker_build.sh --odoo_14
|
||||
|
||||
.PHONY: docker_build_odoo_12
|
||||
docker_build_odoo_12:
|
||||
./script/docker/docker_build.sh --odoo_12
|
||||
|
||||
# build docker release
|
||||
.PHONY: docker_build_release
|
||||
|
|
@ -1059,9 +936,30 @@ repo_use_all_https:
|
|||
config_install:
|
||||
./script/generate_config.sh
|
||||
|
||||
.PHONY: config_update
|
||||
config_update:
|
||||
./run.sh -c config.conf -s --stop-after-init
|
||||
|
||||
.PHONY: config_update_over_proxy
|
||||
config_update_over_proxy:
|
||||
./run.sh -c config.conf -s --stop-after-init --max-cron-threads 2 --workers 2 --xmlrpc-interface 127.0.0.1 --proxy-mode
|
||||
|
||||
.PHONY: config_update_dev
|
||||
config_update_dev:
|
||||
./run.sh -c config.conf -s --stop-after-init --max-cron-threads 4 --workers 4
|
||||
|
||||
.PHONY: config_update_dev_mono
|
||||
config_update_dev_mono:
|
||||
./run.sh -c config.conf -s --stop-after-init --workers 0
|
||||
|
||||
.PHONY: config_clear
|
||||
config_clear:
|
||||
rm -f ./config.conf
|
||||
|
||||
# generate config all repo
|
||||
.PHONY: config_gen_all
|
||||
config_gen_all:
|
||||
echo "config_gen_all"
|
||||
./script/git/git_repo_update_group.py
|
||||
./script/generate_config.sh
|
||||
|
||||
|
|
|
|||
12
README.md
12
README.md
|
|
@ -18,7 +18,7 @@ Into Ubuntu, minimal dependency:
|
|||
sudo apt install make git curl
|
||||
```
|
||||
|
||||
Into Ubuntu, developper dependency:
|
||||
Into Ubuntu, developer dependency:
|
||||
|
||||
```bash
|
||||
sudo apt install make build-essential libssl-dev zlib1g-dev libreadline-dev libsqlite3-dev curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev liblzma-dev libbz2-dev libldap2-dev libsasl2-dev
|
||||
|
|
@ -31,10 +31,10 @@ git clone https://github.com/ERPLibre/ERPLibre.git
|
|||
cd ERPLibre
|
||||
```
|
||||
|
||||
Support Ubuntu 18.04, 20.04 and OSX. The installation duration is more than 30 minutes.
|
||||
Support Ubuntu 20.04, 22.04, 24.04 and OSX. The installation duration is more than 30 minutes.
|
||||
|
||||
```bash
|
||||
make install
|
||||
make install_odoo_16
|
||||
```
|
||||
|
||||
Update your configuration if you need to run from another interface than 127.0.0.1, file `config.conf`
|
||||
|
|
@ -43,6 +43,12 @@ Update your configuration if you need to run from another interface than 127.0.0
|
|||
xmlrpc_interface = 0.0.0.0
|
||||
```
|
||||
|
||||
Show version :
|
||||
|
||||
```bash
|
||||
make version
|
||||
```
|
||||
|
||||
Ready to execute:
|
||||
|
||||
```bash
|
||||
|
|
|
|||
|
|
@ -1,21 +0,0 @@
|
|||
./script/make.sh image_db_create_erplibre_package_contract
|
||||
./script/make.sh image_db_create_erplibre_package_crm
|
||||
./script/make.sh image_db_create_erplibre_package_e_commerce
|
||||
./script/make.sh image_db_create_erplibre_package_field_service
|
||||
./script/make.sh image_db_create_erplibre_package_helpdesk
|
||||
./script/make.sh image_db_create_erplibre_package_hr
|
||||
./script/make.sh image_db_create_erplibre_package_project
|
||||
./script/make.sh image_db_create_erplibre_package_purchase
|
||||
./script/make.sh image_db_create_erplibre_package_sale
|
||||
./script/make.sh image_db_create_erplibre_package_scrummer
|
||||
./script/make.sh image_db_create_erplibre_package_stock
|
||||
./script/make.sh image_db_create_erplibre_package_timesheet
|
||||
./script/make.sh image_db_create_erplibre_package_website
|
||||
./script/make.sh image_db_create_erplibre_package_wiki
|
||||
./script/make.sh image_db_create_erplibre_package_dms
|
||||
./script/make.sh image_db_create_erplibre_package_accounting
|
||||
./script/make.sh image_db_create_erplibre_package_business_requirements
|
||||
./script/make.sh image_db_create_erplibre_website
|
||||
./script/make.sh image_db_create_test_website_attachments
|
||||
./script/make.sh image_db_create_erplibre_code_generator
|
||||
./script/make.sh image_db_create_erplibre_demo
|
||||
603
conf/module_list_image_db_odoo.json
Normal file
603
conf/module_list_image_db_odoo.json
Normal file
|
|
@ -0,0 +1,603 @@
|
|||
{
|
||||
"odoo12.0_base": {
|
||||
"base": "",
|
||||
"disable": false,
|
||||
"image_list": [
|
||||
{
|
||||
"module": [
|
||||
"auth_user_case_insensitive",
|
||||
"auto_backup",
|
||||
"disable_odoo_online",
|
||||
"erplibre_info",
|
||||
"fetchmail_notify_error_to_sender",
|
||||
"fetchmail_thread_default",
|
||||
"mail_debrand",
|
||||
"mail_history",
|
||||
"muk_branding",
|
||||
"muk_mail_branding",
|
||||
"muk_utils",
|
||||
"muk_web_branding",
|
||||
"muk_web_theme",
|
||||
"muk_web_theme_mail",
|
||||
"muk_web_utils",
|
||||
"partner_no_vat",
|
||||
"partner_quebec_tz",
|
||||
"remove_odoo_enterprise",
|
||||
"web_diagram_position",
|
||||
"web_responsive",
|
||||
"web_timeline"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"odoo12.0_website": {
|
||||
"base": "odoo12.0_base",
|
||||
"disable": false,
|
||||
"image_list": [
|
||||
{
|
||||
"module": [
|
||||
"erplibre_website_snippets_basic_html",
|
||||
"erplibre_website_snippets_cards",
|
||||
"erplibre_website_snippets_structures",
|
||||
"erplibre_website_snippets_timelines",
|
||||
"muk_website_branding",
|
||||
"website",
|
||||
"website_anchor_smooth_scroll",
|
||||
"website_form_builder",
|
||||
"website_odoo_debranding",
|
||||
"website_snippet_all",
|
||||
"website_snippet_anchor"
|
||||
],
|
||||
"theme": "theme_default"
|
||||
}
|
||||
]
|
||||
},
|
||||
"odoo12.0_website_crm": {
|
||||
"base": "odoo12.0_website",
|
||||
"disable": false,
|
||||
"image_list": [
|
||||
{
|
||||
"module": [
|
||||
"crm",
|
||||
"crm_team_quebec",
|
||||
"website_crm"
|
||||
]
|
||||
},
|
||||
{
|
||||
"pkg_name": "chat",
|
||||
"module": [
|
||||
"website_livechat"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"odoo12.0_website_ecommerce": {
|
||||
"base": "odoo12.0_website",
|
||||
"disable": false,
|
||||
"delay": 1,
|
||||
"image_list": [
|
||||
{
|
||||
"module": [
|
||||
"configure_quebec_tax",
|
||||
"l10n_ca",
|
||||
"website_sale"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"odoo12.0_base_demo": {
|
||||
"base": "",
|
||||
"disable": false,
|
||||
"with_demo": true,
|
||||
"image_list": [
|
||||
{
|
||||
"module": [
|
||||
"auth_user_case_insensitive",
|
||||
"auto_backup",
|
||||
"disable_odoo_online",
|
||||
"erplibre_info",
|
||||
"fetchmail_notify_error_to_sender",
|
||||
"fetchmail_thread_default",
|
||||
"mail_debrand",
|
||||
"mail_history",
|
||||
"muk_branding",
|
||||
"muk_mail_branding",
|
||||
"muk_utils",
|
||||
"muk_web_branding",
|
||||
"muk_web_theme",
|
||||
"muk_web_theme_mail",
|
||||
"muk_web_utils",
|
||||
"partner_no_vat",
|
||||
"partner_quebec_tz",
|
||||
"remove_odoo_enterprise",
|
||||
"web_diagram_position",
|
||||
"web_responsive",
|
||||
"web_timeline"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"odoo12.0_base_demo_adv": {
|
||||
"base": "odoo12.0_base_demo",
|
||||
"disable": false,
|
||||
"with_demo": true,
|
||||
"image_list": [
|
||||
{
|
||||
"pkg_name": "website_ecommerce",
|
||||
"theme": "theme_default",
|
||||
"module": [
|
||||
"configure_quebec_tax",
|
||||
"crm",
|
||||
"crm_team_quebec",
|
||||
"l10n_ca",
|
||||
"purchase",
|
||||
"stock",
|
||||
"website_crm",
|
||||
"website_livechat",
|
||||
"website_sale",
|
||||
"website_sale_management",
|
||||
"website_snippet_carousel_product",
|
||||
"website_snippet_product_category"
|
||||
]
|
||||
},
|
||||
{
|
||||
"pkg_name": "full",
|
||||
"module": [
|
||||
"account_financial_report",
|
||||
"account_fiscal_year_closing",
|
||||
"account_tax_balance",
|
||||
"accounting_pdf_reports",
|
||||
"agreement",
|
||||
"agreement_legal",
|
||||
"business_requirement",
|
||||
"document_page",
|
||||
"fieldservice",
|
||||
"fleet",
|
||||
"geoengine_partner",
|
||||
"helpdesk_mgmt",
|
||||
"hr_attendance",
|
||||
"hr_timesheet",
|
||||
"maintenance",
|
||||
"mgmtsystem",
|
||||
"mis_builder_cash_flow",
|
||||
"mrp",
|
||||
"muk_dms",
|
||||
"muk_dms_access",
|
||||
"muk_dms_view",
|
||||
"muk_pos_branding",
|
||||
"muk_web_preview",
|
||||
"muk_web_preview_audio",
|
||||
"muk_web_preview_csv",
|
||||
"muk_web_preview_image",
|
||||
"muk_web_preview_markdown",
|
||||
"muk_web_preview_msoffice",
|
||||
"muk_web_preview_opendocument",
|
||||
"muk_web_preview_rst",
|
||||
"muk_web_preview_text",
|
||||
"muk_web_preview_video",
|
||||
"note",
|
||||
"om_account_accountant",
|
||||
"om_account_asset",
|
||||
"om_account_budget",
|
||||
"partner_statement",
|
||||
"payment",
|
||||
"payment_transfer",
|
||||
"plm",
|
||||
"portal",
|
||||
"pos_sale",
|
||||
"product_configurator",
|
||||
"product_extra_views",
|
||||
"product_extra_views_purchase",
|
||||
"product_extra_views_sale",
|
||||
"product_extra_views_stock",
|
||||
"product_supplier_info_helpers",
|
||||
"product_variant_button_complete_form",
|
||||
"project",
|
||||
"purchase_estimated_time_arrival",
|
||||
"purchase_mrp",
|
||||
"purchase_requisition",
|
||||
"purchase_stock",
|
||||
"repair",
|
||||
"rma",
|
||||
"sale",
|
||||
"sale_crm",
|
||||
"sale_expense",
|
||||
"sale_management",
|
||||
"sale_margin",
|
||||
"sale_mrp",
|
||||
"sale_purchase",
|
||||
"sale_quotation_builder",
|
||||
"sale_stock",
|
||||
"sale_timesheet",
|
||||
"sales_team",
|
||||
"survey",
|
||||
"website_blog",
|
||||
"website_crm_privacy_policy",
|
||||
"website_event",
|
||||
"website_event_questions",
|
||||
"website_event_sale",
|
||||
"website_event_track",
|
||||
"website_form",
|
||||
"website_form_project",
|
||||
"website_forum",
|
||||
"website_hr_recruitment",
|
||||
"website_legal_page",
|
||||
"website_links",
|
||||
"website_livechat",
|
||||
"website_mail",
|
||||
"website_mail_channel",
|
||||
"website_mass_mailing",
|
||||
"website_membership",
|
||||
"website_odoo_debranding",
|
||||
"website_partner",
|
||||
"website_payment",
|
||||
"website_product_configurator",
|
||||
"website_slides",
|
||||
"website_snippet_country_dropdown",
|
||||
"wms"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"odoo14.0_base": {
|
||||
"base": "",
|
||||
"disable": false,
|
||||
"image_list": [
|
||||
{
|
||||
"module": [
|
||||
"auth_user_case_insensitive",
|
||||
"auto_backup",
|
||||
"disable_odoo_online",
|
||||
"fetchmail_notify_error_to_sender",
|
||||
"mail_debrand",
|
||||
"partner_no_vat",
|
||||
"remove_odoo_enterprise",
|
||||
"smile_many2many_tags_clickable",
|
||||
"web_responsive",
|
||||
"web_timeline"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"odoo14.0_website": {
|
||||
"base": "odoo14.0_base",
|
||||
"disable": false,
|
||||
"image_list": [
|
||||
{
|
||||
"module": [
|
||||
"website",
|
||||
"website_odoo_debranding"
|
||||
],
|
||||
"theme": "theme_default"
|
||||
}
|
||||
]
|
||||
},
|
||||
"odoo14.0_website_crm": {
|
||||
"base": "odoo14.0_website",
|
||||
"disable": false,
|
||||
"image_list": [
|
||||
{
|
||||
"module": [
|
||||
"crm",
|
||||
"website_crm"
|
||||
]
|
||||
},
|
||||
{
|
||||
"pkg_name": "chat",
|
||||
"module": [
|
||||
"website_livechat"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"odoo14.0_website_ecommerce": {
|
||||
"base": "odoo14.0_website",
|
||||
"disable": false,
|
||||
"delay": 1,
|
||||
"image_list": [
|
||||
{
|
||||
"module": [
|
||||
"l10n_ca",
|
||||
"website_sale"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"odoo14.0_base_demo": {
|
||||
"base": "",
|
||||
"disable": false,
|
||||
"with_demo": true,
|
||||
"image_list": [
|
||||
{
|
||||
"module": [
|
||||
"auth_user_case_insensitive",
|
||||
"auto_backup",
|
||||
"disable_odoo_online",
|
||||
"fetchmail_notify_error_to_sender",
|
||||
"mail_debrand",
|
||||
"partner_no_vat",
|
||||
"remove_odoo_enterprise",
|
||||
"smile_many2many_tags_clickable",
|
||||
"web_responsive",
|
||||
"web_timeline"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"odoo14.0_base_demo_adv": {
|
||||
"base": "odoo14.0_base_demo",
|
||||
"disable": false,
|
||||
"with_demo": true,
|
||||
"image_list": [
|
||||
{
|
||||
"pkg_name": "website_ecommerce",
|
||||
"theme": "theme_default",
|
||||
"module": [
|
||||
"crm",
|
||||
"l10n_ca",
|
||||
"purchase",
|
||||
"stock",
|
||||
"website_crm",
|
||||
"website_livechat",
|
||||
"website_sale",
|
||||
"website_sale_management"
|
||||
]
|
||||
},
|
||||
{
|
||||
"pkg_name": "full",
|
||||
"module": [
|
||||
"account_financial_report",
|
||||
"account_fiscal_year_closing",
|
||||
"account_tax_balance",
|
||||
"accounting_pdf_reports",
|
||||
"agreement_legal",
|
||||
"document_page",
|
||||
"fieldservice",
|
||||
"helpdesk_mgmt",
|
||||
"hr_attendance",
|
||||
"hr_holidays",
|
||||
"hr_payroll_community",
|
||||
"hr_timesheet",
|
||||
"hr_skills",
|
||||
"fleet",
|
||||
"maintenance",
|
||||
"mis_builder_cash_flow",
|
||||
"mgmtsystem",
|
||||
"mrp",
|
||||
"note",
|
||||
"om_account_accountant",
|
||||
"om_account_asset",
|
||||
"om_account_budget",
|
||||
"partner_statement",
|
||||
"payment",
|
||||
"payment_transfer",
|
||||
"plm",
|
||||
"portal",
|
||||
"pos_sale",
|
||||
"product_extra_views",
|
||||
"product_extra_views_purchase",
|
||||
"product_extra_views_sale",
|
||||
"product_extra_views_stock",
|
||||
"product_supplier_info_helpers",
|
||||
"product_variant_button_complete_form",
|
||||
"project",
|
||||
"purchase_estimated_time_arrival",
|
||||
"purchase_mrp",
|
||||
"purchase_requisition",
|
||||
"purchase_stock",
|
||||
"rma",
|
||||
"sale",
|
||||
"sale_crm",
|
||||
"sale_expense",
|
||||
"sale_management",
|
||||
"sale_margin",
|
||||
"sale_mrp",
|
||||
"sale_purchase",
|
||||
"sale_quotation_builder",
|
||||
"sale_stock",
|
||||
"sale_timesheet",
|
||||
"sales_team",
|
||||
"survey",
|
||||
"repair",
|
||||
"web_pwa_oca",
|
||||
"website_blog",
|
||||
"website_crm_privacy_policy",
|
||||
"website_event",
|
||||
"website_event_questions",
|
||||
"website_event_sale",
|
||||
"website_event_track",
|
||||
"website_form",
|
||||
"website_form_project",
|
||||
"website_forum",
|
||||
"website_google_tag_manager",
|
||||
"website_hr_recruitment",
|
||||
"website_legal_page",
|
||||
"website_links",
|
||||
"website_livechat",
|
||||
"website_mail",
|
||||
"website_mail_channel",
|
||||
"website_mass_mailing",
|
||||
"website_membership",
|
||||
"website_odoo_debranding",
|
||||
"website_partner",
|
||||
"website_payment",
|
||||
"website_slides",
|
||||
"website_snippet_country_dropdown"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"odoo16.0_base": {
|
||||
"base": "",
|
||||
"disable": false,
|
||||
"image_list": [
|
||||
{
|
||||
"module": [
|
||||
"auth_user_case_insensitive",
|
||||
"auto_backup",
|
||||
"disable_odoo_online",
|
||||
"mail_debrand",
|
||||
"remove_odoo_enterprise",
|
||||
"web_responsive",
|
||||
"web_timeline"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"odoo16.0_website": {
|
||||
"base": "odoo16.0_base",
|
||||
"disable": false,
|
||||
"image_list": [
|
||||
{
|
||||
"module": [
|
||||
"website",
|
||||
"website_odoo_debranding"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"odoo16.0_website_crm": {
|
||||
"base": "odoo16.0_website",
|
||||
"disable": false,
|
||||
"image_list": [
|
||||
{
|
||||
"module": [
|
||||
"crm",
|
||||
"website_crm"
|
||||
]
|
||||
},
|
||||
{
|
||||
"pkg_name": "chat",
|
||||
"module": [
|
||||
"website_livechat"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"odoo16.0_website_ecommerce": {
|
||||
"base": "odoo16.0_website",
|
||||
"disable": false,
|
||||
"delay": 1,
|
||||
"image_list": [
|
||||
{
|
||||
"module": [
|
||||
"l10n_ca",
|
||||
"website_sale"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"odoo16.0_base_demo": {
|
||||
"base": "",
|
||||
"disable": false,
|
||||
"with_demo": true,
|
||||
"image_list": [
|
||||
{
|
||||
"module": [
|
||||
"auth_user_case_insensitive",
|
||||
"auto_backup",
|
||||
"disable_odoo_online",
|
||||
"mail_debrand",
|
||||
"remove_odoo_enterprise",
|
||||
"web_responsive",
|
||||
"web_timeline"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"odoo16.0_base_demo_adv_broke": {
|
||||
"base": "odoo16.0_base_demo",
|
||||
"disable": true,
|
||||
"with_demo": true,
|
||||
"image_list": [
|
||||
{
|
||||
"module": [
|
||||
"project_mrp",
|
||||
"mrp",
|
||||
"purchase_mrp",
|
||||
"hr_payroll_community",
|
||||
"sale_mrp"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"odoo16.0_base_demo_adv": {
|
||||
"base": "odoo16.0_base_demo",
|
||||
"disable": false,
|
||||
"with_demo": true,
|
||||
"image_list": [
|
||||
{
|
||||
"pkg_name": "full",
|
||||
"module": [
|
||||
"crm",
|
||||
"l10n_ca",
|
||||
"purchase",
|
||||
"stock",
|
||||
"website_crm",
|
||||
"website_sale",
|
||||
"account_financial_report",
|
||||
"account_tax_balance",
|
||||
"accounting_pdf_reports",
|
||||
"document_page",
|
||||
"fieldservice",
|
||||
"helpdesk_mgmt",
|
||||
"hr_attendance",
|
||||
"hr_holidays",
|
||||
"hr_timesheet",
|
||||
"hr_skills",
|
||||
"fleet",
|
||||
"maintenance",
|
||||
"mis_builder_cash_flow",
|
||||
"mgmtsystem",
|
||||
"note",
|
||||
"om_account_accountant",
|
||||
"om_account_asset",
|
||||
"om_account_budget",
|
||||
"partner_statement",
|
||||
"payment",
|
||||
"plm",
|
||||
"portal",
|
||||
"pos_sale",
|
||||
"project",
|
||||
"purchase_requisition",
|
||||
"purchase_stock",
|
||||
"rma",
|
||||
"sale",
|
||||
"sale_crm",
|
||||
"sale_expense",
|
||||
"sale_management",
|
||||
"sale_margin",
|
||||
"sale_purchase",
|
||||
"sale_quotation_builder",
|
||||
"sale_stock",
|
||||
"sale_timesheet",
|
||||
"sales_team",
|
||||
"survey",
|
||||
"repair",
|
||||
"web_pwa_oca",
|
||||
"website_blog",
|
||||
"website_crm_privacy_policy",
|
||||
"website_event",
|
||||
"website_event_questions",
|
||||
"website_event_sale",
|
||||
"website_event_track",
|
||||
"website_form_project",
|
||||
"website_forum",
|
||||
"website_google_tag_manager",
|
||||
"website_hr_recruitment",
|
||||
"website_legal_page",
|
||||
"website_links",
|
||||
"website_livechat",
|
||||
"website_mail",
|
||||
"website_mass_mailing",
|
||||
"website_membership",
|
||||
"website_odoo_debranding",
|
||||
"website_partner",
|
||||
"website_payment",
|
||||
"website_slides",
|
||||
"website_snippet_country_dropdown"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
web_responsive,disable_odoo_online,remove_odoo_enterprise,auth_user_case_insensitive,muk_web_theme,muk_utils,muk_branding,muk_mail_branding,muk_web_branding,muk_web_theme_mail,muk_web_utils,fetchmail_notify_error_to_sender,mail_debrand,partner_quebec_tz,erplibre_info,web_timeline,web_diagram_position,auto_backup,partner_no_vat,fetchmail_thread_default,mail_history
|
||||
|
|
@ -1,4 +1,3 @@
|
|||
.venv
|
||||
.repo
|
||||
script/OCA_maintainer-tools
|
||||
script/OCA_odoo-module-migrator
|
||||
|
|
|
|||
19
conf/supported_version_erplibre.json
Normal file
19
conf/supported_version_erplibre.json
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"odoo12.0_python3.7.17": {
|
||||
"odoo_version": "12.0",
|
||||
"python_version": "3.7.17",
|
||||
"poetry_version": "1.5.0",
|
||||
"default": true,
|
||||
"note": "Official support ERPLibre 1.5.0"
|
||||
},
|
||||
"odoo14.0_python3.8.20": {
|
||||
"odoo_version": "14.0",
|
||||
"python_version": "3.8.20",
|
||||
"poetry_version": "1.5.0"
|
||||
},
|
||||
"odoo16.0_python3.10.14": {
|
||||
"odoo_version": "16.0",
|
||||
"python_version": "3.10.14",
|
||||
"poetry_version": "1.8.3"
|
||||
}
|
||||
}
|
||||
|
|
@ -53,7 +53,7 @@ make doc_markdown
|
|||
To generate a docker, run:
|
||||
|
||||
```bash
|
||||
make docker_build
|
||||
make docker_build_odoo_16
|
||||
```
|
||||
|
||||
### Rename old version to new version
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ RUN apt-get update \
|
|||
python3-watchdog \
|
||||
python3-xlrd \
|
||||
python3-xlwt \
|
||||
cython \
|
||||
xz-utils \
|
||||
git \
|
||||
iproute2 \
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
FROM python:3.7.17-slim-bullseye
|
||||
MAINTAINER TechnoLibre <docker@technolibre.ca>
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
ARG PYTHON_VERSION=3.10.14
|
||||
ARG DEBIAN_NAME=bookworm
|
||||
FROM python:${PYTHON_VERSION}-slim-${DEBIAN_NAME}
|
||||
#MAINTAINER TechnoLibre <docker@technolibre.ca>
|
||||
|
||||
SHELL ["/bin/bash", "-xo", "pipefail", "-c"]
|
||||
|
||||
|
|
@ -15,6 +19,9 @@ ENV LANG="C.UTF-8" \
|
|||
ENV ODOO_PREFIX /ERPLibre
|
||||
ENV ODOO_EXEC_BIN $ODOO_PREFIX/odoo/odoo-bin
|
||||
|
||||
ARG URL_WKHTMLTOX=github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb
|
||||
ARG SHA1SUM_WKTHMLTOX=e9f95436298c77cc9406bd4bbd242f4771d0a4b2
|
||||
|
||||
# Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
|
|
@ -65,14 +72,17 @@ RUN apt-get update \
|
|||
libncursesw5-dev \
|
||||
libffi-dev \
|
||||
uuid-dev \
|
||||
portaudio19-dev \
|
||||
swig \
|
||||
&& curl -o wkhtmltox.deb -sSL https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.buster_amd64.deb \
|
||||
&& echo 'd9f259a67e05e1c221d48b504453645e6c491fab wkhtmltox.deb' | sha1sum -c - \
|
||||
&& curl -o wkhtmltox.deb -sSL https://${URL_WKHTMLTOX}/ \
|
||||
&& echo "${SHA1SUM_WKTHMLTOX} wkhtmltox.deb" | sha1sum -c - \
|
||||
&& apt-get install -y --no-install-recommends ./wkhtmltox.deb \
|
||||
&& rm -rf /var/lib/apt/lists/* wkhtmltox.deb
|
||||
|
||||
ARG DEBIAN_NAME=bookworm
|
||||
|
||||
# Install latest postgresql-client
|
||||
RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main' > /etc/apt/sources.list.d/pgdg.list \
|
||||
RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ ${DEBIAN_NAME}-pgdg main" > /etc/apt/sources.list.d/pgdg.list \
|
||||
&& GNUPGHOME="$(mktemp -d)" \
|
||||
&& export GNUPGHOME \
|
||||
&& repokey='B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8' \
|
||||
|
|
@ -88,19 +98,6 @@ RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main' > /etc/
|
|||
RUN npm install -g rtlcss less prettier @prettier/plugin-xml \
|
||||
&& ln -fs /usr/local/bin/lessc /usr/bin/lessc
|
||||
|
||||
# Install python with pyenv
|
||||
# Reference https://github.com/bopen/docker-ubuntu-pyenv
|
||||
#COPY pyenv-version.txt python-versions.txt /
|
||||
|
||||
#RUN git clone -b `cat /pyenv-version.txt` --single-branch --depth 1 https://github.com/pyenv/pyenv.git $PYENV_ROOT \
|
||||
# && for version in `cat /python-versions.txt`; do pyenv install $version; done \
|
||||
# && pyenv global `cat /python-versions.txt` \
|
||||
# && find $PYENV_ROOT/versions -type d '(' -name '__pycache__' -o -name 'test' -o -name 'tests' ')' -exec rm -rf '{}' + \
|
||||
# && find $PYENV_ROOT/versions -type f '(' -name '*.pyo' -o -name '*.exe' ')' -exec rm -f '{}' + \
|
||||
# && rm -rf /tmp/* \
|
||||
# && python --version \
|
||||
# && python3 --version
|
||||
|
||||
# Install git-repo
|
||||
RUN cd ; mkdir -p .bin/ && \
|
||||
git config --global color.ui false && \
|
||||
|
|
|
|||
|
|
@ -1,37 +0,0 @@
|
|||
FROM technolibre/erplibre-base:12.0
|
||||
|
||||
USER root
|
||||
|
||||
RUN apt update && \
|
||||
apt install -y -y --no-install-recommends \
|
||||
build-essential \
|
||||
wget \
|
||||
python3-dev \
|
||||
python3-venv \
|
||||
python3-wheel \
|
||||
libxslt-dev \
|
||||
libzip-dev \
|
||||
libldap2-dev \
|
||||
libsasl2-dev \
|
||||
python3-setuptools \
|
||||
libpng16-16 \
|
||||
gdebi \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& npm install -g rtlcss
|
||||
|
||||
# RUN pip3 install -r https://raw.githubusercontent.com/odoo/odoo/12.0/requirements.txt --ignore-installed psycopg2 && pip3a cache purge
|
||||
|
||||
ENV ADDONS_BASE_DIR /ERPLibre
|
||||
ENV ENV=dev
|
||||
|
||||
# Copy entrypoint script and Odoo configuration file
|
||||
COPY ./entrypoint.sh /
|
||||
RUN chmod +x /entrypoint.sh
|
||||
|
||||
COPY repo_manifest_gen_org_prefix_path.py /usr/bin/
|
||||
RUN chmod +x /usr/bin/repo_manifest_gen_org_prefix_path.py
|
||||
|
||||
USER odoo
|
||||
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
CMD ["odoo"]
|
||||
|
|
@ -1,10 +1,17 @@
|
|||
FROM technolibre/erplibre-base:1.5.0
|
||||
ARG ERPLIBRE_IMAGE_NAME=1.5.0
|
||||
|
||||
FROM technolibre/erplibre-base:${ERPLIBRE_IMAGE_NAME}
|
||||
|
||||
ARG ERPLIBRE_VERSION=odoo16.0_python3.10.14
|
||||
ARG ODOO_VERSION=16.0
|
||||
ARG POETRY_VERSION=1.8.3
|
||||
ENV REPO_MANIFEST_URL https://github.com/ERPLibre/ERPLibre
|
||||
ARG WORKING_BRANCH
|
||||
ARG WORKING_HASH
|
||||
ENV BRANCH_ERPLIBRE $WORKING_BRANCH
|
||||
ENV COMMIT_ERPLIBRE $WORKING_HASH
|
||||
ENV COMMIT_ERPLIBRE $WORKING_HASH
|
||||
ENV DOCKER_BUILD=true
|
||||
|
||||
RUN cat /etc/os-release
|
||||
|
||||
|
|
@ -27,27 +34,48 @@ RUN cd ; mkdir -p .bin/ && \
|
|||
git checkout $COMMIT_ERPLIBRE
|
||||
|
||||
RUN cd $ODOO_PREFIX && \
|
||||
ls -lha /ERPLibre && \
|
||||
python -m venv .venv
|
||||
|
||||
RUN cd $ODOO_PREFIX && \
|
||||
ls -lha /ERPLibre && \
|
||||
curl https://storage.googleapis.com/git-repo-downloads/repo > ./.venv/repo && \
|
||||
chmod +x ./.venv/repo
|
||||
|
||||
RUN cd $ODOO_PREFIX && \
|
||||
./script/manifest/update_manifest_dev.sh
|
||||
ls -lha /ERPLibre && \
|
||||
echo "${ERPLIBRE_VERSION}" && \
|
||||
./script/version/update_env_version.py --erplibre_version "${ERPLIBRE_VERSION}"
|
||||
|
||||
RUN cd $ODOO_PREFIX && ls ./manifest -la && \
|
||||
ls -lha /ERPLibre && \
|
||||
./script/manifest/update_manifest_local_dev.sh
|
||||
|
||||
RUN apt update && \
|
||||
apt install -y libgirepository1.0-dev && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Poetry
|
||||
RUN cd $ODOO_PREFIX && \
|
||||
./.venv/bin/pip install --upgrade pip && \
|
||||
./.venv/bin/pip install poetry==1.3.1 && \
|
||||
ls -lha /ERPLibre && \
|
||||
echo "${ERPLIBRE_VERSION}" && \
|
||||
./.venv/bin/pip install --upgrade pip && git branch && ls . -lha && \
|
||||
./.venv/bin/pip install "poetry==${POETRY_VERSION}" && \
|
||||
./.venv/bin/poetry --version && \
|
||||
./.venv/bin/poetry install
|
||||
|
||||
# Install local npm
|
||||
RUN cd $ODOO_PREFIX && \
|
||||
ls -lha /ERPLibre && \
|
||||
npm install
|
||||
|
||||
# Create link to addons
|
||||
RUN cd $ODOO_PREFIX && \
|
||||
ls -lha /ERPLibre && \
|
||||
ln -s "addons.odoo${ODOO_VERSION}" addons
|
||||
|
||||
RUN cd $ODOO_PREFIX && \
|
||||
ls -lha /ERPLibre && \
|
||||
head /etc/odoo/odoo.conf && \
|
||||
./docker/repo_manifest_gen_org_prefix_path.py $ODOO_PREFIX/addons /etc/odoo/odoo.conf /etc/odoo/odoo.conf && \
|
||||
head /etc/odoo/odoo.conf
|
||||
|
|
|
|||
|
|
@ -1,41 +0,0 @@
|
|||
FROM technolibre/erplibre-base:12.0
|
||||
|
||||
# TODO
|
||||
|
||||
|
||||
# ENV REPO_MANIFEST_URL https://github.com/agileops/ERPLibre.git
|
||||
# RUN cat /etc/os-release
|
||||
|
||||
# USER root
|
||||
|
||||
# # Install Odoo
|
||||
# ENV ODOO_VERSION 12.0
|
||||
# ARG ODOO_RELEASE=20200417
|
||||
# ARG ODOO_SHA=ca4a7485b0b75850ffe1458a8f3266839400a501
|
||||
# RUN curl -o odoo.deb -sSL http://nightly.odoo.com/${ODOO_VERSION}/nightly/deb/odoo_${ODOO_VERSION}.${ODOO_RELEASE}_all.deb \
|
||||
# && echo "${ODOO_SHA} odoo.deb" | sha1sum -c - \
|
||||
# && apt-get update \
|
||||
# && apt-get -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confnew install --no-install-recommends ./odoo.deb \
|
||||
# && rm -rf /var/lib/apt/lists/* odoo.deb
|
||||
|
||||
|
||||
# RUN mkdir ~/.ssh/ && echo "StrictHostKeyChecking no" >> ~/.ssh/config && apt update && apt install ssh-client git -y --no-install-recommends && \
|
||||
# rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# RUN cd ; mkdir -p .bin/ && \
|
||||
# git config --global color.ui false && \
|
||||
# git config --global user.email "foo@bar.io" && \
|
||||
# git config --global user.name "Foo Bar" && \
|
||||
# mkdir -p $ODOO_PREFIX && cd $ODOO_PREFIX && \
|
||||
# repo init -u $REPO_MANIFEST_URL -b 12.0_repo && \
|
||||
# repo sync -j 4 -c
|
||||
|
||||
# ADD repo_manifest_gen_org_prefix_path.py /root/.bin/
|
||||
# RUN chmod +x ~/.bin/repo_manifest_gen_org_prefix_path.py
|
||||
|
||||
# RUN head /etc/odoo/odoo.conf && /root/.bin/repo_manifest_gen_org_prefix_path.py $ODOO_PREFIX/addons /etc/odoo/odoo.conf /etc/odoo/odoo.conf && head /etc/odoo/odoo.conf
|
||||
|
||||
# user odoo
|
||||
|
||||
# ENTRYPOINT ["/entrypoint.sh"]
|
||||
# CMD ["odoo"]
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
Those images are prepared to permit better portability and reproducibility of ERPLibre release.
|
||||
|
||||
Due the the growing code of ERPLibre, it could also simplify development.
|
||||
Due the growing code of ERPLibre, it could also simplify development.
|
||||
|
||||
NOTE: Those Dockerfiles themselves are in heavy development for now. Incompatibilities between releases are normal until the interface is stabilized.
|
||||
|
||||
|
|
@ -114,7 +114,7 @@ And restart docker service. You can delete or move all older locations of docker
|
|||
|
||||
# Update docker
|
||||
When building your docker with script
|
||||
> make docker_build
|
||||
> make docker_build_odoo_16
|
||||
|
||||
List your docker version
|
||||
> docker images
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ case "$1" in
|
|||
if [[ "${STOP_BEFORE_INIT}" == "True" ]] ; then
|
||||
sleep 999999
|
||||
fi
|
||||
./docker/wait-for-psql.py ${DB_ARGS[@]} --timeout=30
|
||||
/ERPLibre/.venv/bin/python ./docker/wait-for-psql.py ${DB_ARGS[@]} --timeout=30
|
||||
if [[ "${UPDATE_ALL_DB}" == "True" ]] ; then
|
||||
# --stop-after-init
|
||||
exec ./.venv/bin/python $ODOO_EXEC_BIN "$@" "${DB_ARGS[@]}" -c /etc/odoo/odoo.conf -u all -d "${DB_NAME}"
|
||||
|
|
@ -93,7 +93,7 @@ case "$1" in
|
|||
if [[ "${STOP_BEFORE_INIT}" == "True" ]] ; then
|
||||
sleep 999999
|
||||
fi
|
||||
./docker/wait-for-psql.py ${DB_ARGS[@]} --timeout=30
|
||||
/ERPLibre/.venv/bin/python ./docker/wait-for-psql.py ${DB_ARGS[@]} --timeout=30
|
||||
if [[ "${UPDATE_ALL_DB}" == "True" ]] ; then
|
||||
exec ./.venv/bin/python $ODOO_EXEC_BIN "$@" "${DB_ARGS[@]}" -c /etc/odoo/odoo.conf -u all -d "${DB_NAME}"
|
||||
else
|
||||
|
|
|
|||
|
|
@ -1,32 +0,0 @@
|
|||
FROM technolibre/erplibre-base:12.0
|
||||
|
||||
ENV REPO_MANIFEST_URL https://github.com/agileops/ERPLibre.git
|
||||
RUN cat /etc/os-release
|
||||
|
||||
ENV ADDONS_BASE_DIR /odoo
|
||||
|
||||
USER root
|
||||
|
||||
RUN mkdir ~/.ssh/ && echo "StrictHostKeyChecking no" >> ~/.ssh/config && apt update && apt install ssh-client git -y --no-install-recommends && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN cd ; mkdir -p .bin/ && \
|
||||
git config --global color.ui false && \
|
||||
git config --global user.email "foo@bar.io" && \
|
||||
git config --global user.name "Foo Bar" && \
|
||||
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo && \
|
||||
chmod +x ~/.bin/repo && sed -i '1 s/python$/python3/' ~/.bin/repo && head ~/.bin/repo && \
|
||||
export PATH="${HOME}/.bin:${PATH}" && \
|
||||
mkdir -p $ADDONS_BASE_DIR && cd $ADDONS_BASE_DIR && \
|
||||
repo init -u $REPO_MANIFEST_URL -b 12.0_repo && \
|
||||
repo sync -j 4 -c
|
||||
|
||||
ADD repo_manifest_gen_org_prefix_path.py /root/.bin/ RUN chmod +x
|
||||
~/.bin/repo_manifest_gen_org_prefix_path.py
|
||||
|
||||
RUN head /etc/odoo/odoo.conf && /root/.bin/repo_manifest_gen_org_prefix_path.py $ADDONS_BASE_DIR/addons /etc/odoo/odoo.conf /etc/odoo/odoo.conf && head /etc/odoo/odoo.conf
|
||||
|
||||
user odoo
|
||||
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
CMD ["odoo"]
|
||||
|
|
@ -1 +0,0 @@
|
|||
v1.2.20
|
||||
|
|
@ -1 +0,0 @@
|
|||
3.7.16
|
||||
|
|
@ -6,6 +6,10 @@ EL_USER="erplibre"
|
|||
EL_HOME="/${EL_USER}"
|
||||
EL_HOME_ERPLIBRE="${EL_HOME}/erplibre"
|
||||
EL_HOME_ODOO="${EL_HOME_ERPLIBRE}/odoo"
|
||||
EL_ODOO_VERSION=$(cat ".odoo-version" | xargs)
|
||||
EL_POETRY_VERSION=$(cat ".poetry-version" | xargs)
|
||||
EL_PYTHON_VERSION=$(cat ".python-version" | xargs)
|
||||
EL_ERPLIBRE_VERSION=$(cat ".erplibre-version" | xargs)
|
||||
# The default port where this Odoo instance will run under (provided you use the command -c in the terminal)
|
||||
# Set to true if you want to install it, false if you don't need it or have it already installed.
|
||||
EL_INSTALL_WKHTMLTOPDF="True"
|
||||
|
|
|
|||
167
manifest/default.dev.odoo12.0.xml
Normal file
167
manifest/default.dev.odoo12.0.xml
Normal file
|
|
@ -0,0 +1,167 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<manifest>
|
||||
<remote name="CybroOdoo" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="ERPLibre" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="MathBenTech" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="Numigi" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="OCA" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="OmniaGit" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="Smile-SA" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="TechnoLibre" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="ajepe" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="camptocamp" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="dhongu" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="it-projects-llc" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="itpp-labs" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="JayVora-SerpentCS" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="kinjal-sorathiya" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="muk-it" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="novacode-nl" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="obayit" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="odoo" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="odooaktiv" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="odoomates" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="openeducat" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="pledra" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="tegin" fetch="https://github.com/ERPLibre/"/>
|
||||
|
||||
<default remote="ERPLibre" revision="12.0" sync-j="4" sync-c="true"/>
|
||||
|
||||
<project name="ERPLibre_image_db.git" path="image_db" remote="ERPLibre" clone-depth="1" revision="main" groups="base"/>
|
||||
<project name="OpenHRMS.git" path="addons.odoo12.0/CybroOdoo_OpenHRMS" remote="CybroOdoo" revision="dev_12.0" groups="addons"/>
|
||||
<project name="Property-Management_odoo.git" path="addons.odoo12.0/kinjal-sorathiya_Property-Management_odoo" remote="kinjal-sorathiya" revision="master" groups="addons"/>
|
||||
<project name="QuotationRevision.git" path="addons.odoo12.0/MathBenTech_QuotationRevision" remote="MathBenTech" groups="addons"/>
|
||||
<project name="access-addons.git" path="addons.odoo12.0/itpp-labs_access-addons" remote="itpp-labs" revision="12.0_dev" groups="addons"/>
|
||||
<project name="account-analytic.git" path="addons.odoo12.0/OCA_account-analytic" remote="OCA" revision="12.0_dev" groups="addons"/>
|
||||
<project name="account-budgeting.git" path="addons.odoo12.0/OCA_account-budgeting" remote="OCA" groups="addons"/>
|
||||
<project name="account-closing.git" path="addons.odoo12.0/OCA_account-closing" remote="OCA" groups="addons"/>
|
||||
<project name="account-consolidation.git" path="addons.odoo12.0/OCA_account-consolidation" remote="OCA" groups="addons"/>
|
||||
<project name="account-financial-reporting.git" path="addons.odoo12.0/OCA_account-financial-reporting" remote="OCA" groups="addons"/>
|
||||
<project name="account-financial-tools.git" path="addons.odoo12.0/OCA_account-financial-tools" remote="OCA" revision="12.0_dev" groups="addons"/>
|
||||
<project name="account-fiscal-rule.git" path="addons.odoo12.0/OCA_account-fiscal-rule" remote="OCA" groups="addons"/>
|
||||
<project name="account-invoice-reporting.git" path="addons.odoo12.0/OCA_account-invoice-reporting" remote="OCA" groups="addons"/>
|
||||
<project name="account-invoicing.git" path="addons.odoo12.0/OCA_account-invoicing" remote="OCA" groups="addons"/>
|
||||
<project name="account-payment.git" path="addons.odoo12.0/OCA_account-payment" remote="OCA" groups="addons"/>
|
||||
<project name="account-reconcile.git" path="addons.odoo12.0/OCA_account-reconcile" remote="OCA" groups="addons"/>
|
||||
<project name="apps-store.git" path="addons.odoo12.0/OCA_apps-store" remote="OCA" groups="addons"/>
|
||||
<project name="bank-payment.git" path="addons.odoo12.0/OCA_bank-payment" remote="OCA" groups="addons"/>
|
||||
<project name="bank-statement-import.git" path="addons.odoo12.0/OCA_bank-statement-import" remote="OCA" groups="addons"/>
|
||||
<project name="brand.git" path="addons.odoo12.0/OCA_brand" remote="OCA" groups="addons"/>
|
||||
<project name="business-requirement.git" path="addons.odoo12.0/OCA_business-requirement" remote="OCA" groups="addons"/>
|
||||
<project name="commission.git" path="addons.odoo12.0/OCA_commission" remote="OCA" groups="addons"/>
|
||||
<project name="community-data-files.git" path="addons.odoo12.0/OCA_community-data-files" remote="OCA" groups="addons"/>
|
||||
<project name="connector-ecommerce.git" path="addons.odoo12.0/OCA_connector-ecommerce" remote="OCA" groups="addons"/>
|
||||
<project name="connector-interfaces.git" path="addons.odoo12.0/OCA_connector-interfaces" remote="OCA" groups="addons"/>
|
||||
<project name="connector-jira.git" path="addons.odoo12.0/OCA_connector-jira" remote="OCA" groups="addons"/>
|
||||
<project name="connector-telephony.git" path="addons.odoo12.0/OCA_connector-telephony" remote="OCA" groups="addons"/>
|
||||
<project name="connector.git" path="addons.odoo12.0/OCA_connector" remote="OCA" groups="addons"/>
|
||||
<project name="contract.git" path="addons.odoo12.0/OCA_contract" remote="OCA" groups="addons,code_generator,image_db"/>
|
||||
<project name="credit-control.git" path="addons.odoo12.0/OCA_credit-control" remote="OCA" groups="addons"/>
|
||||
<project name="crm.git" path="addons.odoo12.0/OCA_crm" remote="OCA" groups="addons"/>
|
||||
<project name="currency.git" path="addons.odoo12.0/OCA_currency" remote="OCA" groups="addons"/>
|
||||
<project name="data-protection.git" path="addons.odoo12.0/OCA_data-protection" remote="OCA" groups="addons"/>
|
||||
<project name="ddmrp.git" path="addons.odoo12.0/OCA_ddmrp" remote="OCA" groups="addons"/>
|
||||
<project name="delivery-carrier.git" path="addons.odoo12.0/OCA_delivery-carrier" remote="OCA" groups="addons"/>
|
||||
<project name="deltatech.git" path="addons.odoo12.0/dhongu_deltatech" remote="dhongu" groups="addons"/>
|
||||
<project name="design-themes.git" path="addons.odoo12.0/odoo_design-themes" remote="odoo" groups="addons,code_generator,image_db"/>
|
||||
<project name="development.git" path="addons.odoo12.0/MathBenTech_development" remote="MathBenTech" groups="addons,base"/>
|
||||
<project name="documentation-user.git" path="doc/odoo_documentation-user" remote="odoo" groups="odoo"/>
|
||||
<project name="donation.git" path="addons.odoo12.0/OCA_donation" remote="OCA" revision="12.0_module_donation_website" groups="addons"/>
|
||||
<project name="e-commerce.git" path="addons.odoo12.0/OCA_e-commerce" remote="OCA" groups="addons"/>
|
||||
<project name="edi.git" path="addons.odoo12.0/OCA_edi" remote="OCA" groups="addons"/>
|
||||
<project name="erplibre-3D-printing-addons.git" path="addons.odoo12.0/ERPLibre_erplibre-3D-printing-addons" remote="ERPLibre" groups="addons"/>
|
||||
<project name="erplibre-family-management.git" path="addons.odoo12.0/MathBenTech_erplibre-family-management" remote="MathBenTech" groups="addons,code_generator"/>
|
||||
<project name="erplibre_addons.git" path="addons.odoo12.0/ERPLibre_erplibre_addons" remote="ERPLibre" revision="12.0_erplibre_devops" groups="addons,base"/>
|
||||
<project name="erplibre_theme_addons.git" path="addons.odoo12.0/ERPLibre_erplibre_theme_addons" remote="ERPLibre" groups="addons,code_generator,image_db"/>
|
||||
<project name="event.git" path="addons.odoo12.0/OCA_event" remote="OCA" groups="addons"/>
|
||||
<project name="field-service.git" path="addons.odoo12.0/OCA_field-service" remote="OCA" groups="addons"/>
|
||||
<project name="fleet.git" path="addons.odoo12.0/OCA_fleet" remote="OCA" groups="addons"/>
|
||||
<project name="geospatial.git" path="addons.odoo12.0/OCA_geospatial" remote="OCA" groups="addons,code_generator,image_db"/>
|
||||
<project name="helpdesk.git" path="addons.odoo12.0/OCA_helpdesk" remote="OCA" revision="12.0_dev" groups="addons,code_generator,image_db"/>
|
||||
<project name="hr.git" path="addons.odoo12.0/OCA_hr" remote="OCA" groups="addons"/>
|
||||
<project name="interface-github.git" path="addons.odoo12.0/OCA_interface-github" remote="OCA" groups="addons"/>
|
||||
<project name="knowledge.git" path="addons.odoo12.0/OCA_knowledge" remote="OCA" groups="addons"/>
|
||||
<project name="l10n-canada.git" path="addons.odoo12.0/OCA_l10n-canada" remote="OCA" groups="addons"/>
|
||||
<project name="maintainer-tools.git" path="script/OCA_maintainer-tools" remote="OCA" revision="master" groups="odoo,code_generator"/>
|
||||
<project name="maintenance.git" path="addons.odoo12.0/OCA_maintenance" remote="OCA" groups="addons"/>
|
||||
<project name="management-system.git" path="addons.odoo12.0/OCA_management-system" remote="OCA" groups="addons"/>
|
||||
<project name="manufacture.git" path="addons.odoo12.0/OCA_manufacture" remote="OCA" groups="addons"/>
|
||||
<project name="margin-analysis.git" path="addons.odoo12.0/OCA_margin-analysis" remote="OCA" revision="12.0_sale_margin_editor" groups="addons"/>
|
||||
<project name="medical-fhir.git" path="addons.odoo12.0/tegin_medical-fhir" remote="tegin" groups="addons"/>
|
||||
<project name="mis-builder.git" path="addons.odoo12.0/OCA_mis-builder" remote="OCA" groups="addons"/>
|
||||
<project name="muk_base.git" path="addons.odoo12.0/muk-it_muk_base" remote="muk-it" revision="12.0_dev" groups="addons,base"/>
|
||||
<project name="muk_dms.git" path="addons.odoo12.0/muk-it_muk_dms" remote="muk-it" groups="addons"/>
|
||||
<project name="muk_docs.git" path="addons.odoo12.0/muk-it_muk_docs" remote="muk-it" groups="addons"/>
|
||||
<project name="muk_misc.git" path="addons.odoo12.0/muk-it_muk_misc" remote="muk-it" revision="12.0_dev" groups="addons,base"/>
|
||||
<project name="muk_quality.git" path="addons.odoo12.0/muk-it_muk_quality" remote="muk-it" groups="addons"/>
|
||||
<project name="muk_web.git" path="addons.odoo12.0/muk-it_muk_web" remote="muk-it" revision="12.0_dev" groups="addons,base,code_generator"/>
|
||||
<project name="muk_website.git" path="addons.odoo12.0/muk-it_muk_website" remote="muk-it" revision="12.0_remove_autoinstall" groups="addons,base"/>
|
||||
<project name="multi-company.git" path="addons.odoo12.0/OCA_multi-company" remote="OCA" groups="addons"/>
|
||||
<project name="odoo-addons.git" path="addons.odoo12.0/ajepe_odoo-addons" remote="ajepe" revision="12.0_dev" groups="addons,base"/>
|
||||
<project name="odoo-base-addons.git" path="addons.odoo12.0/Numigi_odoo-base-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||
<project name="odoo-business-spending-management-quebec-canada.git" path="addons.odoo12.0/MathBenTech_odoo-business-spending-management-quebec-canada" remote="MathBenTech" groups="addons,base"/>
|
||||
<project name="odoo-cloud-platform.git" path="addons.odoo12.0/camptocamp_odoo-cloud-platform" remote="camptocamp" revision="12.0_dev" groups="addons"/>
|
||||
<project name="odoo-code-generator-template.git" path="addons.odoo12.0/TechnoLibre_odoo-code-generator-template" revision="12.0_new_format" remote="TechnoLibre" groups="addons,code_generator,image_db"/>
|
||||
<project name="odoo-code-generator.git" path="addons.odoo12.0/TechnoLibre_odoo-code-generator" remote="TechnoLibre" revision="12.0_support_wizard" groups="addons,code_generator,image_db"/>
|
||||
<project name="odoo-development.git" path="doc/itpp-labs_odoo-development" remote="itpp-labs" revision="12.0_dev" groups="odoo"/>
|
||||
<project name="odoo-entertainment-addons.git" path="addons.odoo12.0/Numigi_odoo-entertainment-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||
<project name="odoo-git-addons.git" path="addons.odoo12.0/Numigi_odoo-git-addons" remote="Numigi" groups="addons"/>
|
||||
<project name="odoo-formio.git" path="addons.odoo12.0/novacode-nl_odoo-formio" remote="novacode-nl" groups="addons"/>
|
||||
<project name="odoo-hr-addons.git" path="addons.odoo12.0/Numigi_odoo-hr-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||
<project name="odoo-module-migrator.git" path="script/OCA_odoo-module-migrator" remote="OCA" revision="master" groups="odoo"/>
|
||||
<project name="odoo-partner-addons.git" path="addons.odoo12.0/Numigi_odoo-partner-addons" remote="Numigi" revision="12.0_dev" groups="addons,base,image_db"/>
|
||||
<project name="odoo-product-addons.git" path="addons.odoo12.0/Numigi_odoo-product-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||
<project name="odoo-port-docs.git" path="doc/itpp-labs_odoo-port-docs" remote="itpp-labs" revision="master" groups="odoo"/>
|
||||
<project name="odoo-product-configurator.git" path="addons.odoo12.0/pledra_odoo-product-configurator" remote="pledra" revision="12.0_dev" groups="addons"/>
|
||||
<project name="odoo-project-addons.git" path="addons.odoo12.0/Numigi_odoo-project-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||
<project name="odoo-purchase-addons.git" path="addons.odoo12.0/Numigi_odoo-purchase-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||
<project name="odoo-stock-addons.git" path="addons.odoo12.0/Numigi_odoo-stock-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||
<project name="odoo-survey-addons.git" path="addons.odoo12.0/Numigi_odoo-survey-addons" remote="Numigi" groups="addons"/>
|
||||
<project name="odoo-test-docs.git" path="doc/itpp-labs_odoo-test-docs" remote="itpp-labs" revision="master" groups="odoo"/>
|
||||
<project name="odoo-timesheet-addons.git" path="addons.odoo12.0/Numigi_odoo-timesheet-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||
<project name="odoo-web-addons.git" path="addons.odoo12.0/Numigi_odoo-web-addons" remote="Numigi" groups="addons,base"/>
|
||||
<project name="odoo.git" path="odoo" remote="odoo" revision="ERPLibre/12.0" clone-depth="10" groups="odoo,base"/>
|
||||
<project name="odoo_addons.git" path="addons.odoo12.0/Smile-SA_odoo_addons" remote="Smile-SA" revision="12.0_remote_autoinstall" groups="addons"/>
|
||||
<project name="odoo_dhtmlxgantt.git" path="addons.odoo12.0/obayit_odoo_dhtmlxgantt" remote="obayit" groups="addons"/>
|
||||
<project name="odooapps.git" path="addons.odoo12.0/odoomates_odooapps" remote="odoomates" groups="addons"/>
|
||||
<project name="odooplm.git" path="addons.odoo12.0/OmniaGit_odooplm" remote="OmniaGit" groups="addons"/>
|
||||
<project name="openeducat_erp.git" path="addons.odoo12.0/openeducat_openeducat_erp" remote="openeducat" groups="addons"/>
|
||||
<project name="operating-unit.git" path="addons.odoo12.0/OCA_operating-unit" remote="OCA" groups="addons"/>
|
||||
<project name="partner-contact.git" path="addons.odoo12.0/OCA_partner-contact" remote="OCA" groups="addons"/>
|
||||
<project name="pos-addons.git" path="addons.odoo12.0/itpp-labs_pos-addons" remote="itpp-labs" groups="addons"/>
|
||||
<project name="pos.git" path="addons.odoo12.0/OCA_pos" remote="OCA" groups="addons"/>
|
||||
<project name="product-attribute.git" path="addons.odoo12.0/OCA_product-attribute" remote="OCA" groups="addons"/>
|
||||
<project name="product-pack.git" path="addons.odoo12.0/OCA_product-pack" remote="OCA" groups="addons"/>
|
||||
<project name="product-variant.git" path="addons.odoo12.0/OCA_product-variant" remote="OCA" groups="addons"/>
|
||||
<project name="product_rating_app.git" path="addons.odoo12.0/odooaktiv_product_rating_app" remote="odooaktiv" groups="addons"/>
|
||||
<project name="project-reporting.git" path="addons.odoo12.0/OCA_project-reporting" remote="OCA" groups="addons"/>
|
||||
<project name="project.git" path="addons.odoo12.0/OCA_project" remote="OCA" revision="12.0_fix_conflict_project_key" groups="addons"/>
|
||||
<project name="purchase-workflow.git" path="addons.odoo12.0/OCA_purchase-workflow" remote="OCA" groups="addons"/>
|
||||
<project name="queue.git" path="addons.odoo12.0/OCA_queue" remote="OCA" groups="addons"/>
|
||||
<project name="reporting-engine.git" path="addons.odoo12.0/OCA_reporting-engine" remote="OCA" groups="addons"/>
|
||||
<project name="rma.git" path="addons.odoo12.0/OCA_rma" remote="OCA" groups="addons"/>
|
||||
<project name="saas-addons.git" path="addons.odoo12.0/it-projects-llc_saas-addons" remote="it-projects-llc" groups="addons"/>
|
||||
<project name="sale-reporting.git" path="addons.odoo12.0/OCA_sale-reporting" remote="OCA" groups="addons"/>
|
||||
<project name="sale-workflow.git" path="addons.odoo12.0/OCA_sale-workflow" remote="OCA" revision="12.0_modules_sale_order_line" groups="addons"/>
|
||||
<project name="scrummer.git" path="addons.odoo12.0/MathBenTech_scrummer" remote="MathBenTech" revision="12.0_dev" groups="addons,base"/>
|
||||
<project name="SerpentCS_Contributions.git" path="addons.odoo12.0/JayVora-SerpentCS_SerpentCS_Contributions" remote="JayVora-SerpentCS" groups="addons,code_generator,base"/>
|
||||
<project name="server-auth.git" path="addons.odoo12.0/OCA_server-auth" remote="OCA" groups="addons,base,image_db"/>
|
||||
<project name="server-backend.git" path="addons.odoo12.0/OCA_server-backend" remote="OCA" revision="12.0_dev" groups="addons"/>
|
||||
<project name="server-brand.git" path="addons.odoo12.0/OCA_server-brand" remote="OCA" groups="addons,base"/>
|
||||
<project name="server-env.git" path="addons.odoo12.0/OCA_server-env" remote="OCA" groups="addons"/>
|
||||
<project name="server-tools.git" path="addons.odoo12.0/OCA_server-tools" remote="OCA" revision="12.0_dev" groups="addons,base"/>
|
||||
<project name="server-ux.git" path="addons.odoo12.0/OCA_server-ux" remote="OCA" groups="addons,base"/>
|
||||
<project name="social.git" path="addons.odoo12.0/OCA_social" remote="OCA" groups="addons,base"/>
|
||||
<project name="stock-logistics-warehouse.git" path="addons.odoo12.0/OCA_stock-logistics-warehouse" remote="OCA" revision="12.0_dev" groups="addons"/>
|
||||
<project name="storage.git" path="addons.odoo12.0/OCA_storage" remote="OCA" groups="addons"/>
|
||||
<project name="timesheet.git" path="addons.odoo12.0/OCA_timesheet" remote="OCA" revision="12.0_support_project_agile_timesheet" groups="addons"/>
|
||||
<project name="vertical-association.git" path="addons.odoo12.0/OCA_vertical-association" remote="OCA" groups="addons"/>
|
||||
<project name="vertical-hotel.git" path="addons.odoo12.0/OCA_vertical-hotel" remote="OCA" groups="addons"/>
|
||||
<project name="vertical-isp.git" path="addons.odoo12.0/OCA_vertical-isp" remote="OCA" groups="addons"/>
|
||||
<project name="vertical-travel.git" path="addons.odoo12.0/OCA_vertical-travel" remote="OCA" groups="addons"/>
|
||||
<project name="web.git" path="addons.odoo12.0/OCA_web" remote="OCA" revision="12.0_dev" groups="addons,base"/>
|
||||
<project name="website-addons.git" path="addons.odoo12.0/itpp-labs_website-addons" remote="itpp-labs" revision="12.0_dev" groups="addons"/>
|
||||
<project name="website-cms.git" path="addons.odoo12.0/OCA_website-cms" remote="OCA" groups="addons"/>
|
||||
<project name="website.git" path="addons.odoo12.0/OCA_website" remote="OCA" revision="12.0_dev" groups="addons,code_generator,image_db"/>
|
||||
<project name="wms.git" path="addons.odoo12.0/OCA_wms" remote="OCA" groups="addons"/>
|
||||
</manifest>
|
||||
148
manifest/default.dev.odoo14.0.xml
Normal file
148
manifest/default.dev.odoo14.0.xml
Normal file
|
|
@ -0,0 +1,148 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<manifest>
|
||||
<remote name="CybroOdoo" fetch="https://github.com/CybroOdoo/"/>
|
||||
<remote name="ERPLibre" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="MathBenTech" fetch="https://github.com/MathBenTech/"/>
|
||||
<remote name="Numigi" fetch="https://github.com/Numigi/"/>
|
||||
<remote name="OCA" fetch="https://github.com/OCA/"/>
|
||||
<remote name="OmniaGit" fetch="https://github.com/OmniaGit/"/>
|
||||
<remote name="Smile-SA" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="TechnoLibre" fetch="https://github.com/TechnoLibre/"/>
|
||||
<remote name="ajepe" fetch="https://github.com/ajepe/"/>
|
||||
<remote name="camptocamp" fetch="https://github.com/camptocamp/"/>
|
||||
<remote name="dhongu" fetch="https://github.com/dhongu/"/>
|
||||
<remote name="it-projects-llc" fetch="https://github.com/it-projects-llc/"/>
|
||||
<remote name="itpp-labs" fetch="https://github.com/itpp-labs/"/>
|
||||
<remote name="kinjal-sorathiya" fetch="https://github.com/kinjal-sorathiya/"/>
|
||||
<remote name="muk-it" fetch="https://github.com/muk-it/"/>
|
||||
<remote name="novacode-nl" fetch="https://github.com/novacode-nl/"/>
|
||||
<remote name="obayit" fetch="https://github.com/obayit/"/>
|
||||
<remote name="odoo" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="odooaktiv" fetch="https://github.com/odooaktiv/"/>
|
||||
<remote name="odoomates" fetch="https://github.com/odoomates/"/>
|
||||
<remote name="openeducat" fetch="https://github.com/openeducat/"/>
|
||||
<remote name="pledra" fetch="https://github.com/pledra/"/>
|
||||
<remote name="tegin" fetch="https://github.com/tegin/"/>
|
||||
|
||||
<default remote="ERPLibre" revision="14.0" sync-j="4" sync-c="true"/>
|
||||
|
||||
<project name="ERPLibre_image_db.git" path="image_db" remote="ERPLibre" clone-depth="1" revision="main" groups="base"/>
|
||||
<project name="OpenHRMS.git" path="addons.odoo14.0/CybroOdoo_OpenHRMS" remote="CybroOdoo" groups="addons"/>
|
||||
<project name="access-addons.git" path="addons.odoo14.0/itpp-labs_access-addons" remote="itpp-labs" groups="addons"/>
|
||||
<project name="account-analytic.git" path="addons.odoo14.0/OCA_account-analytic" remote="OCA" groups="addons"/>
|
||||
<project name="account-budgeting.git" path="addons.odoo14.0/OCA_account-budgeting" remote="OCA" groups="addons"/>
|
||||
<project name="account-closing.git" path="addons.odoo14.0/OCA_account-closing" remote="OCA" groups="addons"/>
|
||||
<project name="account-consolidation.git" path="addons.odoo14.0/OCA_account-consolidation" remote="OCA" groups="addons"/>
|
||||
<project name="account-financial-reporting.git" path="addons.odoo14.0/OCA_account-financial-reporting" remote="OCA" groups="addons"/>
|
||||
<project name="account-financial-tools.git" path="addons.odoo14.0/OCA_account-financial-tools" remote="OCA" groups="addons"/>
|
||||
<project name="account-fiscal-rule.git" path="addons.odoo14.0/OCA_account-fiscal-rule" remote="OCA" groups="addons"/>
|
||||
<project name="account-invoice-reporting.git" path="addons.odoo14.0/OCA_account-invoice-reporting" remote="OCA" groups="addons"/>
|
||||
<project name="account-invoicing.git" path="addons.odoo14.0/OCA_account-invoicing" remote="OCA" groups="addons"/>
|
||||
<project name="account-payment.git" path="addons.odoo14.0/OCA_account-payment" remote="OCA" groups="addons"/>
|
||||
<project name="account-reconcile.git" path="addons.odoo14.0/OCA_account-reconcile" remote="OCA" groups="addons"/>
|
||||
<project name="apps-store.git" path="addons.odoo14.0/OCA_apps-store" remote="OCA" groups="addons"/>
|
||||
<project name="bank-payment.git" path="addons.odoo14.0/OCA_bank-payment" remote="OCA" groups="addons"/>
|
||||
<project name="bank-statement-import.git" path="addons.odoo14.0/OCA_bank-statement-import" remote="OCA" groups="addons"/>
|
||||
<project name="brand.git" path="addons.odoo14.0/OCA_brand" remote="OCA" groups="addons"/>
|
||||
<project name="business-requirement.git" path="addons.odoo14.0/OCA_business-requirement" remote="OCA" groups="addons"/>
|
||||
<project name="commission.git" path="addons.odoo14.0/OCA_commission" remote="OCA" groups="addons"/>
|
||||
<project name="community-data-files.git" path="addons.odoo14.0/OCA_community-data-files" remote="OCA" groups="addons"/>
|
||||
<project name="connector-ecommerce.git" path="addons.odoo14.0/OCA_connector-ecommerce" remote="OCA" groups="addons"/>
|
||||
<project name="connector-interfaces.git" path="addons.odoo14.0/OCA_connector-interfaces" remote="OCA" groups="addons"/>
|
||||
<project name="connector-jira.git" path="addons.odoo14.0/OCA_connector-jira" remote="OCA" groups="addons"/>
|
||||
<project name="connector-telephony.git" path="addons.odoo14.0/OCA_connector-telephony" remote="OCA" groups="addons"/>
|
||||
<project name="connector.git" path="addons.odoo14.0/OCA_connector" remote="OCA" groups="addons"/>
|
||||
<project name="contract.git" path="addons.odoo14.0/OCA_contract" remote="OCA" groups="addons"/>
|
||||
<project name="credit-control.git" path="addons.odoo14.0/OCA_credit-control" remote="OCA" groups="addons"/>
|
||||
<project name="crm.git" path="addons.odoo14.0/OCA_crm" remote="OCA" groups="addons"/>
|
||||
<project name="currency.git" path="addons.odoo14.0/OCA_currency" remote="OCA" groups="addons"/>
|
||||
<project name="data-protection.git" path="addons.odoo14.0/OCA_data-protection" remote="OCA" groups="addons"/>
|
||||
<project name="ddmrp.git" path="addons.odoo14.0/OCA_ddmrp" remote="OCA" groups="addons"/>
|
||||
<project name="delivery-carrier.git" path="addons.odoo14.0/OCA_delivery-carrier" remote="OCA" groups="addons"/>
|
||||
<project name="deltatech.git" path="addons.odoo14.0/dhongu_deltatech" remote="dhongu" groups="addons"/>
|
||||
<project name="design-themes.git" path="addons.odoo14.0/odoo_design-themes" remote="odoo" groups="addons"/>
|
||||
<project name="donation.git" path="addons.odoo14.0/OCA_donation" remote="OCA" groups="addons"/>
|
||||
<project name="e-commerce.git" path="addons.odoo14.0/OCA_e-commerce" remote="OCA" groups="addons"/>
|
||||
<project name="edi.git" path="addons.odoo14.0/OCA_edi" remote="OCA" groups="addons"/>
|
||||
<project name="event.git" path="addons.odoo14.0/OCA_event" remote="OCA" groups="addons"/>
|
||||
<project name="field-service.git" path="addons.odoo14.0/OCA_field-service" remote="OCA" groups="addons"/>
|
||||
<project name="fleet.git" path="addons.odoo14.0/OCA_fleet" remote="OCA" groups="addons"/>
|
||||
<project name="geospatial.git" path="addons.odoo14.0/OCA_geospatial" remote="OCA" groups="addons"/>
|
||||
<project name="helpdesk.git" path="addons.odoo14.0/OCA_helpdesk" remote="ERPLibre" revision="14.0_dev" groups="addons"/>
|
||||
<project name="hr.git" path="addons.odoo14.0/OCA_hr" remote="OCA" groups="addons"/>
|
||||
<project name="interface-github.git" path="addons.odoo14.0/OCA_interface-github" remote="OCA" groups="addons"/>
|
||||
<project name="knowledge.git" path="addons.odoo14.0/OCA_knowledge" remote="OCA" groups="addons"/>
|
||||
<project name="l10n-canada.git" path="addons.odoo14.0/OCA_l10n-canada" remote="OCA" groups="addons"/>
|
||||
<project name="maintainer-tools.git" path="script/OCA_maintainer-tools" remote="OCA" revision="master" groups="odoo"/>
|
||||
<project name="maintenance.git" path="addons.odoo14.0/OCA_maintenance" remote="OCA" groups="addons"/>
|
||||
<project name="management-system.git" path="addons.odoo14.0/OCA_management-system" remote="OCA" groups="addons"/>
|
||||
<project name="manufacture.git" path="addons.odoo14.0/OCA_manufacture" remote="OCA" groups="addons"/>
|
||||
<project name="margin-analysis.git" path="addons.odoo14.0/OCA_margin-analysis" remote="OCA" groups="addons"/>
|
||||
<project name="medical-fhir.git" path="addons.odoo14.0/tegin_medical-fhir" remote="tegin" groups="addons"/>
|
||||
<project name="mis-builder.git" path="addons.odoo14.0/OCA_mis-builder" remote="OCA" groups="addons"/>
|
||||
<project name="multi-company.git" path="addons.odoo14.0/OCA_multi-company" remote="OCA" groups="addons"/>
|
||||
<project name="muk_web.git" path="addons.odoo14.0/muk-it_muk_web" remote="muk-it" groups="addons"/>
|
||||
<project name="odoo-addons.git" path="addons.odoo14.0/ajepe_odoo-addons" remote="ajepe" groups="addons"/>
|
||||
<project name="odoo-base-addons.git" path="addons.odoo14.0/Numigi_odoo-base-addons" remote="Numigi" groups="addons"/>
|
||||
<project name="odoo-cloud-platform.git" path="addons.odoo14.0/camptocamp_odoo-cloud-platform" remote="camptocamp" groups="addons"/>
|
||||
<project name="odoo-development.git" path="doc/itpp-labs_odoo-development" remote="itpp-labs" revision="master" groups="odoo"/>
|
||||
<project name="odoo-entertainment-addons.git" path="addons.odoo14.0/Numigi_odoo-entertainment-addons" remote="Numigi" groups="addons"/>
|
||||
<project name="odoo-formio.git" path="addons.odoo14.0/novacode-nl_odoo-formio" remote="novacode-nl" groups="addons"/>
|
||||
<project name="odoo-git-addons.git" path="addons.odoo14.0/Numigi_odoo-git-addons" remote="Numigi" groups="addons"/>
|
||||
<project name="odoo-hr-addons.git" path="addons.odoo14.0/Numigi_odoo-hr-addons" remote="Numigi" groups="addons"/>
|
||||
<project name="odoo-module-migrator.git" path="script/OCA_odoo-module-migrator" remote="OCA" revision="master" groups="odoo"/>
|
||||
<project name="odoo-partner-addons.git" path="addons.odoo14.0/Numigi_odoo-partner-addons" remote="Numigi" groups="addons"/>
|
||||
<project name="odoo-port-docs.git" path="doc/itpp-labs_odoo-port-docs" remote="itpp-labs" revision="master" groups="odoo"/>
|
||||
<project name="odoo-product-addons.git" path="addons.odoo14.0/Numigi_odoo-product-addons" remote="Numigi" groups="addons"/>
|
||||
<project name="odoo-project-addons.git" path="addons.odoo14.0/Numigi_odoo-project-addons" remote="Numigi" groups="addons"/>
|
||||
<project name="odoo-purchase-addons.git" path="addons.odoo14.0/Numigi_odoo-purchase-addons" remote="Numigi" groups="addons"/>
|
||||
<project name="odoo-stock-addons.git" path="addons.odoo14.0/Numigi_odoo-stock-addons" remote="Numigi" groups="addons"/>
|
||||
<project name="odoo-survey-addons.git" path="addons.odoo14.0/Numigi_odoo-survey-addons" remote="Numigi" groups="addons"/>
|
||||
<project name="odoo-test-docs.git" path="doc/itpp-labs_odoo-test-docs" remote="itpp-labs" revision="master" groups="odoo"/>
|
||||
<project name="odoo-timesheet-addons.git" path="addons.odoo14.0/Numigi_odoo-timesheet-addons" remote="Numigi" groups="addons"/>
|
||||
<project name="odoo-web-addons.git" path="addons.odoo14.0/Numigi_odoo-web-addons" remote="Numigi" groups="addons"/>
|
||||
<project name="odoo.git" path="odoo" remote="odoo" clone-depth="10" revision="ERPLibre/14.0" groups="odoo"/>
|
||||
<project name="odoo_addons.git" path="addons.odoo14.0/Smile-SA_odoo_addons" remote="Smile-SA" revision="14.0_dev" groups="addons"/>
|
||||
<project name="odoo_dhtmlxgantt.git" path="addons.odoo14.0/obayit_odoo_dhtmlxgantt" remote="obayit" groups="addons"/>
|
||||
<project name="odooapps.git" path="addons.odoo14.0/odoomates_odooapps" remote="odoomates" groups="addons"/>
|
||||
<project name="odooplm.git" path="addons.odoo14.0/OmniaGit_odooplm" remote="OmniaGit" groups="addons"/>
|
||||
<project name="openeducat_erp.git" path="addons.odoo14.0/openeducat_openeducat_erp" remote="openeducat" groups="addons"/>
|
||||
<project name="OpenUpgrade.git" path="script/OCA_OpenUpgrade" remote="OCA" clone-depth="10" groups="migration"/>
|
||||
<project name="operating-unit.git" path="addons.odoo14.0/OCA_operating-unit" remote="OCA" groups="addons"/>
|
||||
<project name="partner-contact.git" path="addons.odoo14.0/OCA_partner-contact" remote="OCA" groups="addons"/>
|
||||
<project name="pos-addons.git" path="addons.odoo14.0/itpp-labs_pos-addons" remote="itpp-labs" groups="addons"/>
|
||||
<project name="pos.git" path="addons.odoo14.0/OCA_pos" remote="OCA" groups="addons"/>
|
||||
<project name="product-attribute.git" path="addons.odoo14.0/OCA_product-attribute" remote="OCA" groups="addons"/>
|
||||
<project name="product-configurator.git" path="addons.odoo14.0/OCA_product-configurator" remote="OCA" groups="addons"/>
|
||||
<project name="product-pack.git" path="addons.odoo14.0/OCA_product-pack" remote="OCA" groups="addons"/>
|
||||
<project name="product-variant.git" path="addons.odoo14.0/OCA_product-variant" remote="OCA" groups="addons"/>
|
||||
<project name="project-reporting.git" path="addons.odoo14.0/OCA_project-reporting" remote="OCA" groups="addons"/>
|
||||
<project name="project-agile.git" path="addons.odoo14.0/OCA_project-agile" remote="OCA" groups="addons"/>
|
||||
<project name="project.git" path="addons.odoo14.0/OCA_project" remote="OCA" groups="addons"/>
|
||||
<project name="purchase-workflow.git" path="addons.odoo14.0/OCA_purchase-workflow" remote="OCA" groups="addons"/>
|
||||
<project name="queue.git" path="addons.odoo14.0/OCA_queue" remote="OCA" groups="addons"/>
|
||||
<project name="reporting-engine.git" path="addons.odoo14.0/OCA_reporting-engine" remote="OCA" groups="addons"/>
|
||||
<project name="rma.git" path="addons.odoo14.0/OCA_rma" remote="OCA" groups="addons"/>
|
||||
<project name="saas-addons.git" path="addons.odoo14.0/it-projects-llc_saas-addons" remote="it-projects-llc" groups="addons"/>
|
||||
<project name="sale-reporting.git" path="addons.odoo14.0/OCA_sale-reporting" remote="OCA" groups="addons"/>
|
||||
<project name="sale-workflow.git" path="addons.odoo14.0/OCA_sale-workflow" remote="OCA" groups="addons"/>
|
||||
<project name="server-auth.git" path="addons.odoo14.0/OCA_server-auth" remote="OCA" groups="addons"/>
|
||||
<project name="server-backend.git" path="addons.odoo14.0/OCA_server-backend" remote="OCA" groups="addons"/>
|
||||
<project name="server-brand.git" path="addons.odoo14.0/OCA_server-brand" remote="OCA" groups="addons"/>
|
||||
<project name="server-env.git" path="addons.odoo14.0/OCA_server-env" remote="OCA" groups="addons"/>
|
||||
<project name="server-tools.git" path="addons.odoo14.0/OCA_server-tools" remote="ERPLibre" revision="14.0_dev" groups="addons"/>
|
||||
<project name="server-ux.git" path="addons.odoo14.0/OCA_server-ux" remote="OCA" groups="addons"/>
|
||||
<project name="social.git" path="addons.odoo14.0/OCA_social" remote="ERPLibre" revision="14.0_dev" groups="addons"/>
|
||||
<project name="stock-logistics-warehouse.git" path="addons.odoo14.0/OCA_stock-logistics-warehouse" remote="OCA" groups="addons"/>
|
||||
<project name="storage.git" path="addons.odoo14.0/OCA_storage" remote="OCA" groups="addons"/>
|
||||
<project name="timesheet.git" path="addons.odoo14.0/OCA_timesheet" remote="OCA" groups="addons"/>
|
||||
<project name="vertical-association.git" path="addons.odoo14.0/OCA_vertical-association" remote="OCA" groups="addons"/>
|
||||
<project name="vertical-hotel.git" path="addons.odoo14.0/OCA_vertical-hotel" remote="OCA" groups="addons"/>
|
||||
<project name="vertical-isp.git" path="addons.odoo14.0/OCA_vertical-isp" remote="OCA" groups="addons"/>
|
||||
<project name="vertical-travel.git" path="addons.odoo14.0/OCA_vertical-travel" remote="OCA" groups="addons"/>
|
||||
<project name="web.git" path="addons.odoo14.0/OCA_web" remote="OCA" groups="addons"/>
|
||||
<project name="website-addons.git" path="addons.odoo14.0/itpp-labs_website-addons" remote="itpp-labs" groups="addons"/>
|
||||
<project name="website-cms.git" path="addons.odoo14.0/OCA_website-cms" remote="OCA" groups="addons"/>
|
||||
<project name="website.git" path="addons.odoo14.0/OCA_website" remote="OCA" groups="addons"/>
|
||||
<project name="wms.git" path="addons.odoo14.0/OCA_wms" remote="OCA" groups="addons"/>
|
||||
</manifest>
|
||||
129
manifest/default.dev.odoo16.0.xml
Normal file
129
manifest/default.dev.odoo16.0.xml
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<manifest>
|
||||
<remote name="CybroOdoo" fetch="https://github.com/CybroOdoo/"/>
|
||||
<remote name="ERPLibre" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="MathBenTech" fetch="https://github.com/MathBenTech/"/>
|
||||
<remote name="Numigi" fetch="https://github.com/Numigi/"/>
|
||||
<remote name="OCA" fetch="https://github.com/OCA/"/>
|
||||
<remote name="OmniaGit" fetch="https://github.com/OmniaGit/"/>
|
||||
<remote name="Smile-SA" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="TechnoLibre" fetch="https://github.com/TechnoLibre/"/>
|
||||
<remote name="ajepe" fetch="https://github.com/ajepe/"/>
|
||||
<remote name="camptocamp" fetch="https://github.com/camptocamp/"/>
|
||||
<remote name="dhongu" fetch="https://github.com/dhongu/"/>
|
||||
<remote name="it-projects-llc" fetch="https://github.com/it-projects-llc/"/>
|
||||
<remote name="itpp-labs" fetch="https://github.com/itpp-labs/"/>
|
||||
<remote name="kinjal-sorathiya" fetch="https://github.com/kinjal-sorathiya/"/>
|
||||
<remote name="muk-it" fetch="https://github.com/muk-it/"/>
|
||||
<remote name="novacode-nl" fetch="https://github.com/novacode-nl/"/>
|
||||
<remote name="obayit" fetch="https://github.com/obayit/"/>
|
||||
<remote name="odoo" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="odooaktiv" fetch="https://github.com/odooaktiv/"/>
|
||||
<remote name="odoomates" fetch="https://github.com/odoomates/"/>
|
||||
<remote name="openeducat" fetch="https://github.com/openeducat/"/>
|
||||
<remote name="pledra" fetch="https://github.com/pledra/"/>
|
||||
<remote name="tegin" fetch="https://github.com/tegin/"/>
|
||||
|
||||
<default remote="ERPLibre" revision="16.0" sync-j="4" sync-c="true"/>
|
||||
|
||||
<project name="ERPLibre_image_db.git" path="image_db" remote="ERPLibre" clone-depth="1" revision="main" groups="base"/>
|
||||
<project name="OpenHRMS.git" path="addons.odoo16.0/CybroOdoo_OpenHRMS" remote="CybroOdoo" groups="addons"/>
|
||||
<project name="CybroAddons.git" path="addons.odoo16.0/CybroOdoo_CybroAddons" remote="ERPLibre" revision="16.0_dev" groups="addons"/>
|
||||
<project name="account-analytic.git" path="addons.odoo16.0/OCA_account-analytic" remote="OCA" groups="addons"/>
|
||||
<project name="account-budgeting.git" path="addons.odoo16.0/OCA_account-budgeting" remote="OCA" groups="addons"/>
|
||||
<project name="account-closing.git" path="addons.odoo16.0/OCA_account-closing" remote="OCA" groups="addons"/>
|
||||
<project name="account-consolidation.git" path="addons.odoo16.0/OCA_account-consolidation" remote="OCA" groups="addons"/>
|
||||
<project name="account-financial-reporting.git" path="addons.odoo16.0/OCA_account-financial-reporting" remote="OCA" groups="addons"/>
|
||||
<project name="account-financial-tools.git" path="addons.odoo16.0/OCA_account-financial-tools" remote="OCA" groups="addons"/>
|
||||
<project name="account-fiscal-rule.git" path="addons.odoo16.0/OCA_account-fiscal-rule" remote="OCA" groups="addons"/>
|
||||
<project name="account-invoice-reporting.git" path="addons.odoo16.0/OCA_account-invoice-reporting" remote="OCA" groups="addons"/>
|
||||
<project name="account-invoicing.git" path="addons.odoo16.0/OCA_account-invoicing" remote="OCA" groups="addons"/>
|
||||
<project name="account-payment.git" path="addons.odoo16.0/OCA_account-payment" remote="OCA" groups="addons"/>
|
||||
<project name="account-reconcile.git" path="addons.odoo16.0/OCA_account-reconcile" remote="OCA" groups="addons"/>
|
||||
<project name="apps-store.git" path="addons.odoo16.0/OCA_apps-store" remote="OCA" groups="addons"/>
|
||||
<project name="bank-payment.git" path="addons.odoo16.0/OCA_bank-payment" remote="OCA" groups="addons"/>
|
||||
<project name="bank-statement-import.git" path="addons.odoo16.0/OCA_bank-statement-import" remote="OCA" groups="addons"/>
|
||||
<project name="brand.git" path="addons.odoo16.0/OCA_brand" remote="OCA" groups="addons"/>
|
||||
<project name="business-requirement.git" path="addons.odoo16.0/OCA_business-requirement" remote="OCA" groups="addons"/>
|
||||
<project name="commission.git" path="addons.odoo16.0/OCA_commission" remote="OCA" groups="addons"/>
|
||||
<project name="community-data-files.git" path="addons.odoo16.0/OCA_community-data-files" remote="OCA" groups="addons"/>
|
||||
<project name="connector-ecommerce.git" path="addons.odoo16.0/OCA_connector-ecommerce" remote="OCA" groups="addons"/>
|
||||
<project name="connector-interfaces.git" path="addons.odoo16.0/OCA_connector-interfaces" remote="OCA" groups="addons"/>
|
||||
<project name="connector-jira.git" path="addons.odoo16.0/OCA_connector-jira" remote="OCA" groups="addons"/>
|
||||
<project name="connector-telephony.git" path="addons.odoo16.0/OCA_connector-telephony" remote="OCA" groups="addons"/>
|
||||
<project name="connector.git" path="addons.odoo16.0/OCA_connector" remote="OCA" groups="addons"/>
|
||||
<project name="contract.git" path="addons.odoo16.0/OCA_contract" remote="OCA" groups="addons"/>
|
||||
<project name="credit-control.git" path="addons.odoo16.0/OCA_credit-control" remote="OCA" groups="addons"/>
|
||||
<project name="crm.git" path="addons.odoo16.0/OCA_crm" remote="OCA" groups="addons"/>
|
||||
<project name="currency.git" path="addons.odoo16.0/OCA_currency" remote="OCA" groups="addons"/>
|
||||
<project name="data-protection.git" path="addons.odoo16.0/OCA_data-protection" remote="OCA" groups="addons"/>
|
||||
<project name="ddmrp.git" path="addons.odoo16.0/OCA_ddmrp" remote="OCA" groups="addons"/>
|
||||
<project name="delivery-carrier.git" path="addons.odoo16.0/OCA_delivery-carrier" remote="OCA" groups="addons"/>
|
||||
<project name="deltatech.git" path="addons.odoo16.0/dhongu_deltatech" remote="dhongu" groups="addons"/>
|
||||
<project name="donation.git" path="addons.odoo16.0/OCA_donation" remote="OCA" groups="addons"/>
|
||||
<project name="e-commerce.git" path="addons.odoo16.0/OCA_e-commerce" remote="OCA" groups="addons"/>
|
||||
<project name="edi.git" path="addons.odoo16.0/OCA_edi" remote="OCA" groups="addons"/>
|
||||
<project name="erplibre_addons.git" path="addons.odoo16.0/ERPLibre_erplibre_addons" remote="ERPLibre" groups="addons,base"/>
|
||||
<project name="event.git" path="addons.odoo16.0/OCA_event" remote="OCA" groups="addons"/>
|
||||
<project name="field-service.git" path="addons.odoo16.0/OCA_field-service" remote="OCA" groups="addons"/>
|
||||
<project name="fleet.git" path="addons.odoo16.0/OCA_fleet" remote="OCA" groups="addons"/>
|
||||
<project name="geospatial.git" path="addons.odoo16.0/OCA_geospatial" remote="OCA" groups="addons"/>
|
||||
<project name="helpdesk.git" path="addons.odoo16.0/OCA_helpdesk" remote="OCA" groups="addons"/>
|
||||
<project name="hr.git" path="addons.odoo16.0/OCA_hr" remote="OCA" groups="addons"/>
|
||||
<project name="interface-github.git" path="addons.odoo16.0/OCA_interface-github" remote="OCA" groups="addons"/>
|
||||
<project name="knowledge.git" path="addons.odoo16.0/OCA_knowledge" remote="OCA" groups="addons"/>
|
||||
<project name="l10n-canada.git" path="addons.odoo16.0/OCA_l10n-canada" remote="OCA" groups="addons"/>
|
||||
<project name="maintainer-tools.git" path="script/OCA_maintainer-tools" remote="OCA" revision="master" groups="odoo"/>
|
||||
<project name="maintenance.git" path="addons.odoo16.0/OCA_maintenance" remote="OCA" groups="addons"/>
|
||||
<project name="management-system.git" path="addons.odoo16.0/OCA_management-system" remote="OCA" groups="addons"/>
|
||||
<project name="manufacture.git" path="addons.odoo16.0/OCA_manufacture" remote="OCA" groups="addons"/>
|
||||
<project name="margin-analysis.git" path="addons.odoo16.0/OCA_margin-analysis" remote="OCA" groups="addons"/>
|
||||
<project name="medical-fhir.git" path="addons.odoo16.0/tegin_medical-fhir" remote="tegin" groups="addons"/>
|
||||
<project name="mis-builder.git" path="addons.odoo16.0/OCA_mis-builder" remote="OCA" groups="addons"/>
|
||||
<project name="multi-company.git" path="addons.odoo16.0/OCA_multi-company" remote="OCA" groups="addons"/>
|
||||
<project name="muk_web.git" path="addons.odoo16.0/muk-it_muk_web" remote="muk-it" groups="addons"/>
|
||||
<project name="odoo-cloud-platform.git" path="addons.odoo16.0/camptocamp_odoo-cloud-platform" remote="camptocamp" groups="addons"/>
|
||||
<project name="odoo-formio.git" path="addons.odoo16.0/novacode-nl_odoo-formio" remote="novacode-nl" groups="addons"/>
|
||||
<project name="odoo-module-migrator.git" path="script/OCA_odoo-module-migrator" remote="OCA" revision="master" groups="odoo"/>
|
||||
<project name="odoo.git" path="odoo" remote="odoo" clone-depth="10" revision="ERPLibre/16.0" groups="odoo"/>
|
||||
<project name="odooapps.git" path="addons.odoo16.0/odoomates_odooapps" remote="odoomates" groups="addons"/>
|
||||
<project name="odooplm.git" path="addons.odoo16.0/OmniaGit_odooplm" remote="OmniaGit" groups="addons"/>
|
||||
<project name="openeducat_erp.git" path="addons.odoo16.0/openeducat_openeducat_erp" remote="openeducat" groups="addons"/>
|
||||
<project name="OpenUpgrade.git" path="script/OCA_OpenUpgrade" remote="OCA" clone-depth="10" groups="migration"/>
|
||||
<project name="operating-unit.git" path="addons.odoo16.0/OCA_operating-unit" remote="OCA" groups="addons"/>
|
||||
<project name="partner-contact.git" path="addons.odoo16.0/OCA_partner-contact" remote="OCA" groups="addons"/>
|
||||
<project name="pos.git" path="addons.odoo16.0/OCA_pos" remote="OCA" groups="addons"/>
|
||||
<project name="product-attribute.git" path="addons.odoo16.0/OCA_product-attribute" remote="OCA" groups="addons"/>
|
||||
<project name="product-configurator.git" path="addons.odoo16.0/OCA_product-configurator" remote="OCA" groups="addons"/>
|
||||
<project name="product-pack.git" path="addons.odoo16.0/OCA_product-pack" remote="OCA" groups="addons"/>
|
||||
<project name="product-variant.git" path="addons.odoo16.0/OCA_product-variant" remote="OCA" groups="addons"/>
|
||||
<project name="project-reporting.git" path="addons.odoo16.0/OCA_project-reporting" remote="OCA" groups="addons"/>
|
||||
<project name="project-agile.git" path="addons.odoo16.0/OCA_project-agile" remote="OCA" groups="addons"/>
|
||||
<project name="project.git" path="addons.odoo16.0/OCA_project" remote="OCA" groups="addons"/>
|
||||
<project name="purchase-workflow.git" path="addons.odoo16.0/OCA_purchase-workflow" remote="OCA" groups="addons"/>
|
||||
<project name="queue.git" path="addons.odoo16.0/OCA_queue" remote="OCA" groups="addons"/>
|
||||
<project name="reporting-engine.git" path="addons.odoo16.0/OCA_reporting-engine" remote="OCA" groups="addons"/>
|
||||
<project name="rma.git" path="addons.odoo16.0/OCA_rma" remote="OCA" groups="addons"/>
|
||||
<project name="saas-addons.git" path="addons.odoo16.0/it-projects-llc_saas-addons" remote="it-projects-llc" groups="addons"/>
|
||||
<project name="sale-reporting.git" path="addons.odoo16.0/OCA_sale-reporting" remote="OCA" groups="addons"/>
|
||||
<project name="sale-workflow.git" path="addons.odoo16.0/OCA_sale-workflow" remote="OCA" groups="addons"/>
|
||||
<project name="server-auth.git" path="addons.odoo16.0/OCA_server-auth" remote="OCA" groups="addons"/>
|
||||
<project name="server-backend.git" path="addons.odoo16.0/OCA_server-backend" remote="OCA" groups="addons"/>
|
||||
<project name="server-brand.git" path="addons.odoo16.0/OCA_server-brand" remote="OCA" groups="addons"/>
|
||||
<project name="server-env.git" path="addons.odoo16.0/OCA_server-env" remote="OCA" groups="addons"/>
|
||||
<project name="server-tools.git" path="addons.odoo16.0/OCA_server-tools" remote="ERPLibre" revision="ERPLibre/16.0" groups="addons"/>
|
||||
<project name="server-ux.git" path="addons.odoo16.0/OCA_server-ux" remote="OCA" groups="addons"/>
|
||||
<project name="social.git" path="addons.odoo16.0/OCA_social" remote="OCA" groups="addons"/>
|
||||
<project name="survey.git" path="addons.odoo16.0/OCA_survey" remote="ERPLibre" revision="16.0_survey_odoo_debranding" groups="addons"/>
|
||||
<project name="stock-logistics-warehouse.git" path="addons.odoo16.0/OCA_stock-logistics-warehouse" remote="OCA" groups="addons"/>
|
||||
<project name="storage.git" path="addons.odoo16.0/OCA_storage" remote="OCA" groups="addons"/>
|
||||
<project name="timesheet.git" path="addons.odoo16.0/OCA_timesheet" remote="OCA" groups="addons"/>
|
||||
<project name="vertical-association.git" path="addons.odoo16.0/OCA_vertical-association" remote="OCA" groups="addons"/>
|
||||
<project name="vertical-hotel.git" path="addons.odoo16.0/OCA_vertical-hotel" remote="OCA" groups="addons"/>
|
||||
<project name="vertical-isp.git" path="addons.odoo16.0/OCA_vertical-isp" remote="OCA" groups="addons"/>
|
||||
<project name="vertical-travel.git" path="addons.odoo16.0/OCA_vertical-travel" remote="OCA" groups="addons"/>
|
||||
<project name="web.git" path="addons.odoo16.0/OCA_web" remote="OCA" groups="addons"/>
|
||||
<project name="website-cms.git" path="addons.odoo16.0/OCA_website-cms" remote="OCA" groups="addons"/>
|
||||
<project name="website.git" path="addons.odoo16.0/OCA_website" remote="OCA" groups="addons"/>
|
||||
<project name="wms.git" path="addons.odoo16.0/OCA_wms" remote="OCA" groups="addons"/>
|
||||
</manifest>
|
||||
|
|
@ -1,167 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<manifest>
|
||||
<remote name="CybroOdoo" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="ERPLibre" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="MathBenTech" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="Numigi" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="OCA" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="OmniaGit" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="Smile-SA" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="TechnoLibre" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="ajepe" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="camptocamp" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="dhongu" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="it-projects-llc" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="itpp-labs" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="JayVora-SerpentCS" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="kinjal-sorathiya" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="muk-it" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="novacode-nl" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="obayit" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="odoo" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="odooaktiv" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="odoomates" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="openeducat" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="pledra" fetch="https://github.com/ERPLibre/"/>
|
||||
<remote name="tegin" fetch="https://github.com/ERPLibre/"/>
|
||||
|
||||
<default remote="ERPLibre" revision="12.0" sync-j="4" sync-c="true"/>
|
||||
|
||||
<project name="ERPLibre_image_db.git" path="image_db" remote="ERPLibre" clone-depth="1" groups="base"/>
|
||||
<project name="OpenHRMS.git" path="addons/CybroOdoo_OpenHRMS" remote="CybroOdoo" revision="dev_12.0" groups="addons"/>
|
||||
<project name="Property-Management_odoo.git" path="addons/kinjal-sorathiya_Property-Management_odoo" remote="kinjal-sorathiya" revision="master" groups="addons"/>
|
||||
<project name="QuotationRevision.git" path="addons/MathBenTech_QuotationRevision" remote="MathBenTech" groups="addons"/>
|
||||
<project name="access-addons.git" path="addons/itpp-labs_access-addons" remote="itpp-labs" revision="12.0_dev" groups="addons"/>
|
||||
<project name="account-analytic.git" path="addons/OCA_account-analytic" remote="OCA" revision="12.0_dev" groups="addons"/>
|
||||
<project name="account-budgeting.git" path="addons/OCA_account-budgeting" remote="OCA" groups="addons"/>
|
||||
<project name="account-closing.git" path="addons/OCA_account-closing" remote="OCA" groups="addons"/>
|
||||
<project name="account-consolidation.git" path="addons/OCA_account-consolidation" remote="OCA" groups="addons"/>
|
||||
<project name="account-financial-reporting.git" path="addons/OCA_account-financial-reporting" remote="OCA" groups="addons"/>
|
||||
<project name="account-financial-tools.git" path="addons/OCA_account-financial-tools" remote="OCA" revision="12.0_dev" groups="addons"/>
|
||||
<project name="account-fiscal-rule.git" path="addons/OCA_account-fiscal-rule" remote="OCA" groups="addons"/>
|
||||
<project name="account-invoice-reporting.git" path="addons/OCA_account-invoice-reporting" remote="OCA" groups="addons"/>
|
||||
<project name="account-invoicing.git" path="addons/OCA_account-invoicing" remote="OCA" groups="addons"/>
|
||||
<project name="account-payment.git" path="addons/OCA_account-payment" remote="OCA" groups="addons"/>
|
||||
<project name="account-reconcile.git" path="addons/OCA_account-reconcile" remote="OCA" groups="addons"/>
|
||||
<project name="apps-store.git" path="addons/OCA_apps-store" remote="OCA" groups="addons"/>
|
||||
<project name="bank-payment.git" path="addons/OCA_bank-payment" remote="OCA" groups="addons"/>
|
||||
<project name="bank-statement-import.git" path="addons/OCA_bank-statement-import" remote="OCA" groups="addons"/>
|
||||
<project name="brand.git" path="addons/OCA_brand" remote="OCA" groups="addons"/>
|
||||
<project name="business-requirement.git" path="addons/OCA_business-requirement" remote="OCA" groups="addons"/>
|
||||
<project name="commission.git" path="addons/OCA_commission" remote="OCA" groups="addons"/>
|
||||
<project name="community-data-files.git" path="addons/OCA_community-data-files" remote="OCA" groups="addons"/>
|
||||
<project name="connector-ecommerce.git" path="addons/OCA_connector-ecommerce" remote="OCA" groups="addons"/>
|
||||
<project name="connector-interfaces.git" path="addons/OCA_connector-interfaces" remote="OCA" groups="addons"/>
|
||||
<project name="connector-jira.git" path="addons/OCA_connector-jira" remote="OCA" groups="addons"/>
|
||||
<project name="connector-telephony.git" path="addons/OCA_connector-telephony" remote="OCA" groups="addons"/>
|
||||
<project name="connector.git" path="addons/OCA_connector" remote="OCA" groups="addons"/>
|
||||
<project name="contract.git" path="addons/OCA_contract" remote="OCA" groups="addons,code_generator,image_db"/>
|
||||
<project name="credit-control.git" path="addons/OCA_credit-control" remote="OCA" groups="addons"/>
|
||||
<project name="crm.git" path="addons/OCA_crm" remote="OCA" groups="addons"/>
|
||||
<project name="currency.git" path="addons/OCA_currency" remote="OCA" groups="addons"/>
|
||||
<project name="data-protection.git" path="addons/OCA_data-protection" remote="OCA" groups="addons"/>
|
||||
<project name="ddmrp.git" path="addons/OCA_ddmrp" remote="OCA" groups="addons"/>
|
||||
<project name="delivery-carrier.git" path="addons/OCA_delivery-carrier" remote="OCA" groups="addons"/>
|
||||
<project name="deltatech.git" path="addons/dhongu_deltatech" remote="dhongu" groups="addons"/>
|
||||
<project name="design-themes.git" path="addons/odoo_design-themes" remote="odoo" groups="addons,code_generator,image_db"/>
|
||||
<project name="development.git" path="addons/MathBenTech_development" remote="MathBenTech" groups="addons,base"/>
|
||||
<project name="documentation-user.git" path="doc/odoo_documentation-user" remote="odoo" groups="odoo"/>
|
||||
<project name="donation.git" path="addons/OCA_donation" remote="OCA" revision="12.0_module_donation_website" groups="addons"/>
|
||||
<project name="e-commerce.git" path="addons/OCA_e-commerce" remote="OCA" groups="addons"/>
|
||||
<project name="edi.git" path="addons/OCA_edi" remote="OCA" groups="addons"/>
|
||||
<project name="erplibre-3D-printing-addons.git" path="addons/ERPLibre_erplibre-3D-printing-addons" remote="ERPLibre" groups="addons"/>
|
||||
<project name="erplibre-family-management.git" path="addons/MathBenTech_erplibre-family-management" remote="MathBenTech" groups="addons,code_generator"/>
|
||||
<project name="erplibre_addons.git" path="addons/ERPLibre_erplibre_addons" remote="ERPLibre" groups="addons,base"/>
|
||||
<project name="erplibre_theme_addons.git" path="addons/ERPLibre_erplibre_theme_addons" remote="ERPLibre" groups="addons,code_generator,image_db"/>
|
||||
<project name="event.git" path="addons/OCA_event" remote="OCA" groups="addons"/>
|
||||
<project name="field-service.git" path="addons/OCA_field-service" remote="OCA" groups="addons"/>
|
||||
<project name="fleet.git" path="addons/OCA_fleet" remote="OCA" groups="addons"/>
|
||||
<project name="geospatial.git" path="addons/OCA_geospatial" remote="OCA" groups="addons,code_generator,image_db"/>
|
||||
<project name="helpdesk.git" path="addons/OCA_helpdesk" remote="OCA" revision="12.0_dev" groups="addons,code_generator,image_db"/>
|
||||
<project name="hr.git" path="addons/OCA_hr" remote="OCA" groups="addons"/>
|
||||
<project name="interface-github.git" path="addons/OCA_interface-github" remote="OCA" groups="addons"/>
|
||||
<project name="knowledge.git" path="addons/OCA_knowledge" remote="OCA" groups="addons"/>
|
||||
<project name="l10n-canada.git" path="addons/OCA_l10n-canada" remote="OCA" groups="addons"/>
|
||||
<project name="maintainer-tools.git" path="script/OCA_maintainer-tools" remote="OCA" revision="master" groups="odoo,code_generator"/>
|
||||
<project name="maintenance.git" path="addons/OCA_maintenance" remote="OCA" groups="addons"/>
|
||||
<project name="management-system.git" path="addons/OCA_management-system" remote="OCA" groups="addons"/>
|
||||
<project name="manufacture.git" path="addons/OCA_manufacture" remote="OCA" groups="addons"/>
|
||||
<project name="margin-analysis.git" path="addons/OCA_margin-analysis" remote="OCA" revision="12.0_sale_margin_editor" groups="addons"/>
|
||||
<project name="medical-fhir.git" path="addons/tegin_medical-fhir" remote="tegin" groups="addons"/>
|
||||
<project name="mis-builder.git" path="addons/OCA_mis-builder" remote="OCA" groups="addons"/>
|
||||
<project name="muk_base.git" path="addons/muk-it_muk_base" remote="muk-it" revision="12.0_dev" groups="addons,base"/>
|
||||
<project name="muk_dms.git" path="addons/muk-it_muk_dms" remote="muk-it" groups="addons"/>
|
||||
<project name="muk_docs.git" path="addons/muk-it_muk_docs" remote="muk-it" groups="addons"/>
|
||||
<project name="muk_misc.git" path="addons/muk-it_muk_misc" remote="muk-it" revision="12.0_dev" groups="addons,base"/>
|
||||
<project name="muk_quality.git" path="addons/muk-it_muk_quality" remote="muk-it" groups="addons"/>
|
||||
<project name="muk_web.git" path="addons/muk-it_muk_web" remote="muk-it" revision="12.0_dev" groups="addons,base,code_generator"/>
|
||||
<project name="muk_website.git" path="addons/muk-it_muk_website" remote="muk-it" revision="12.0_remove_autoinstall" groups="addons,base"/>
|
||||
<project name="multi-company.git" path="addons/OCA_multi-company" remote="OCA" groups="addons"/>
|
||||
<project name="odoo-addons.git" path="addons/ajepe_odoo-addons" remote="ajepe" revision="12.0_dev" groups="addons,base"/>
|
||||
<project name="odoo-base-addons.git" path="addons/Numigi_odoo-base-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||
<project name="odoo-business-spending-management-quebec-canada.git" path="addons/MathBenTech_odoo-business-spending-management-quebec-canada" remote="MathBenTech" groups="addons,base"/>
|
||||
<project name="odoo-cloud-platform.git" path="addons/camptocamp_odoo-cloud-platform" remote="camptocamp" revision="12.0_dev" groups="addons"/>
|
||||
<project name="odoo-code-generator-template.git" path="addons/TechnoLibre_odoo-code-generator-template" revision="12.0" remote="TechnoLibre" groups="addons,code_generator,image_db"/>
|
||||
<project name="odoo-code-generator.git" path="addons/TechnoLibre_odoo-code-generator" remote="TechnoLibre" revision="12.0" groups="addons,code_generator,image_db"/>
|
||||
<project name="odoo-development.git" path="doc/itpp-labs_odoo-development" remote="itpp-labs" revision="12.0_dev" groups="odoo"/>
|
||||
<project name="odoo-entertainment-addons.git" path="addons/Numigi_odoo-entertainment-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||
<project name="odoo-git-addons.git" path="addons/Numigi_odoo-git-addons" remote="Numigi" groups="addons"/>
|
||||
<project name="odoo-formio.git" path="addons/novacode-nl_odoo-formio" remote="novacode-nl" groups="addons"/>
|
||||
<project name="odoo-hr-addons.git" path="addons/Numigi_odoo-hr-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||
<project name="odoo-module-migrator.git" path="script/OCA_odoo-module-migrator" remote="OCA" revision="master" groups="odoo"/>
|
||||
<project name="odoo-partner-addons.git" path="addons/Numigi_odoo-partner-addons" remote="Numigi" revision="12.0_dev" groups="addons,base,image_db"/>
|
||||
<project name="odoo-product-addons.git" path="addons/Numigi_odoo-product-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||
<project name="odoo-port-docs.git" path="doc/itpp-labs_odoo-port-docs" remote="itpp-labs" revision="master" groups="odoo"/>
|
||||
<project name="odoo-product-configurator.git" path="addons/pledra_odoo-product-configurator" remote="pledra" groups="addons"/>
|
||||
<project name="odoo-project-addons.git" path="addons/Numigi_odoo-project-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||
<project name="odoo-purchase-addons.git" path="addons/Numigi_odoo-purchase-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||
<project name="odoo-stock-addons.git" path="addons/Numigi_odoo-stock-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||
<project name="odoo-survey-addons.git" path="addons/Numigi_odoo-survey-addons" remote="Numigi" groups="addons"/>
|
||||
<project name="odoo-test-docs.git" path="doc/itpp-labs_odoo-test-docs" remote="itpp-labs" revision="master" groups="odoo"/>
|
||||
<project name="odoo-timesheet-addons.git" path="addons/Numigi_odoo-timesheet-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||
<project name="odoo-web-addons.git" path="addons/Numigi_odoo-web-addons" remote="Numigi" groups="addons,base"/>
|
||||
<project name="odoo.git" path="odoo" remote="odoo" revision="ERPLibre/12.0" clone-depth="10" groups="odoo,base"/>
|
||||
<project name="odoo_addons.git" path="addons/Smile-SA_odoo_addons" remote="Smile-SA" revision="12.0_remote_autoinstall" groups="addons"/>
|
||||
<project name="odoo_dhtmlxgantt.git" path="addons/obayit_odoo_dhtmlxgantt" remote="obayit" groups="addons"/>
|
||||
<project name="odooapps.git" path="addons/odoomates_odooapps" remote="odoomates" groups="addons"/>
|
||||
<project name="odooplm.git" path="addons/OmniaGit_odooplm" remote="OmniaGit" groups="addons"/>
|
||||
<project name="openeducat_erp.git" path="addons/openeducat_openeducat_erp" remote="openeducat" groups="addons"/>
|
||||
<project name="operating-unit.git" path="addons/OCA_operating-unit" remote="OCA" groups="addons"/>
|
||||
<project name="partner-contact.git" path="addons/OCA_partner-contact" remote="OCA" groups="addons"/>
|
||||
<project name="pos-addons.git" path="addons/itpp-labs_pos-addons" remote="itpp-labs" groups="addons"/>
|
||||
<project name="pos.git" path="addons/OCA_pos" remote="OCA" groups="addons"/>
|
||||
<project name="product-attribute.git" path="addons/OCA_product-attribute" remote="OCA" groups="addons"/>
|
||||
<project name="product-pack.git" path="addons/OCA_product-pack" remote="OCA" groups="addons"/>
|
||||
<project name="product-variant.git" path="addons/OCA_product-variant" remote="OCA" groups="addons"/>
|
||||
<project name="product_rating_app.git" path="addons/odooaktiv_product_rating_app" remote="odooaktiv" groups="addons"/>
|
||||
<project name="project-reporting.git" path="addons/OCA_project-reporting" remote="OCA" groups="addons"/>
|
||||
<project name="project.git" path="addons/OCA_project" remote="OCA" revision="12.0_fix_conflict_project_key" groups="addons"/>
|
||||
<project name="purchase-workflow.git" path="addons/OCA_purchase-workflow" remote="OCA" groups="addons"/>
|
||||
<project name="queue.git" path="addons/OCA_queue" remote="OCA" groups="addons"/>
|
||||
<project name="reporting-engine.git" path="addons/OCA_reporting-engine" remote="OCA" groups="addons"/>
|
||||
<project name="rma.git" path="addons/OCA_rma" remote="OCA" groups="addons"/>
|
||||
<project name="saas-addons.git" path="addons/it-projects-llc_saas-addons" remote="it-projects-llc" groups="addons"/>
|
||||
<project name="sale-reporting.git" path="addons/OCA_sale-reporting" remote="OCA" groups="addons"/>
|
||||
<project name="sale-workflow.git" path="addons/OCA_sale-workflow" remote="OCA" revision="12.0_modules_sale_order_line" groups="addons"/>
|
||||
<project name="scrummer.git" path="addons/MathBenTech_scrummer" remote="MathBenTech" revision="12.0_dev" groups="addons,base"/>
|
||||
<project name="SerpentCS_Contributions.git" path="addons/JayVora-SerpentCS_SerpentCS_Contributions" remote="JayVora-SerpentCS" groups="addons,code_generator,base"/>
|
||||
<project name="server-auth.git" path="addons/OCA_server-auth" remote="OCA" groups="addons,base,image_db"/>
|
||||
<project name="server-backend.git" path="addons/OCA_server-backend" remote="OCA" revision="12.0_dev" groups="addons"/>
|
||||
<project name="server-brand.git" path="addons/OCA_server-brand" remote="OCA" groups="addons,base"/>
|
||||
<project name="server-env.git" path="addons/OCA_server-env" remote="OCA" groups="addons"/>
|
||||
<project name="server-tools.git" path="addons/OCA_server-tools" remote="OCA" revision="12.0_dev" groups="addons,base"/>
|
||||
<project name="server-ux.git" path="addons/OCA_server-ux" remote="OCA" groups="addons,base"/>
|
||||
<project name="social.git" path="addons/OCA_social" remote="OCA" groups="addons,base"/>
|
||||
<project name="stock-logistics-warehouse.git" path="addons/OCA_stock-logistics-warehouse" remote="OCA" revision="12.0_dev" groups="addons"/>
|
||||
<project name="storage.git" path="addons/OCA_storage" remote="OCA" groups="addons"/>
|
||||
<project name="timesheet.git" path="addons/OCA_timesheet" remote="OCA" revision="12.0_support_project_agile_timesheet" groups="addons"/>
|
||||
<project name="vertical-association.git" path="addons/OCA_vertical-association" remote="OCA" groups="addons"/>
|
||||
<project name="vertical-hotel.git" path="addons/OCA_vertical-hotel" remote="OCA" groups="addons"/>
|
||||
<project name="vertical-isp.git" path="addons/OCA_vertical-isp" remote="OCA" groups="addons"/>
|
||||
<project name="vertical-travel.git" path="addons/OCA_vertical-travel" remote="OCA" groups="addons"/>
|
||||
<project name="web.git" path="addons/OCA_web" remote="OCA" revision="12.0_dev" groups="addons,base"/>
|
||||
<project name="website-addons.git" path="addons/itpp-labs_website-addons" remote="itpp-labs" revision="12.0_dev" groups="addons"/>
|
||||
<project name="website-cms.git" path="addons/OCA_website-cms" remote="OCA" groups="addons"/>
|
||||
<project name="website.git" path="addons/OCA_website" remote="OCA" revision="12.0_dev" groups="addons,code_generator,image_db"/>
|
||||
<project name="wms.git" path="addons/OCA_wms" remote="OCA" groups="addons"/>
|
||||
</manifest>
|
||||
|
|
@ -20,3 +20,4 @@ xlsxwriter
|
|||
suds-jurko
|
||||
vatnumber
|
||||
dns
|
||||
pypiwin32
|
||||
25
requirement/ignore_requirements.odoo14.0_python3.8.10.txt
Normal file
25
requirement/ignore_requirements.odoo14.0_python3.8.10.txt
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
chess
|
||||
csv
|
||||
dateutil
|
||||
facturx
|
||||
formiodata
|
||||
git
|
||||
keystoneclient
|
||||
ldap
|
||||
mercurial
|
||||
MySQLdb
|
||||
paho
|
||||
pyrfc
|
||||
python-alipay-sdk
|
||||
pythonjsonlogger
|
||||
stdnum
|
||||
swiftclient
|
||||
u2flib_server
|
||||
voicent
|
||||
xlsxwriter
|
||||
suds-jurko
|
||||
vatnumber
|
||||
dns
|
||||
dataclasses
|
||||
extract_msg
|
||||
pypiwin32
|
||||
25
requirement/ignore_requirements.odoo14.0_python3.8.20.txt
Normal file
25
requirement/ignore_requirements.odoo14.0_python3.8.20.txt
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
chess
|
||||
csv
|
||||
dateutil
|
||||
facturx
|
||||
formiodata
|
||||
git
|
||||
keystoneclient
|
||||
ldap
|
||||
mercurial
|
||||
MySQLdb
|
||||
paho
|
||||
pyrfc
|
||||
python-alipay-sdk
|
||||
pythonjsonlogger
|
||||
stdnum
|
||||
swiftclient
|
||||
u2flib_server
|
||||
voicent
|
||||
xlsxwriter
|
||||
suds-jurko
|
||||
vatnumber
|
||||
dns
|
||||
dataclasses
|
||||
extract_msg
|
||||
pypiwin32
|
||||
16
requirement/ignore_requirements.odoo16.0_python3.10.14.txt
Normal file
16
requirement/ignore_requirements.odoo16.0_python3.10.14.txt
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
dateutil
|
||||
keystoneclient
|
||||
ldap
|
||||
swiftclient
|
||||
cv2
|
||||
speech_recognition
|
||||
PIL
|
||||
en_core_web_sm
|
||||
googletrans
|
||||
infobip-api-python-sdk
|
||||
pygount
|
||||
dataclasses
|
||||
|
||||
pypiwin32
|
||||
|
||||
cadquery
|
||||
File diff suppressed because it is too large
Load diff
6374
requirement/poetry.odoo14.0_python3.8.10.lock
Normal file
6374
requirement/poetry.odoo14.0_python3.8.10.lock
Normal file
File diff suppressed because it is too large
Load diff
6567
requirement/poetry.odoo14.0_python3.8.20.lock
Normal file
6567
requirement/poetry.odoo14.0_python3.8.20.lock
Normal file
File diff suppressed because it is too large
Load diff
7901
requirement/poetry.odoo16.0_python3.10.14.lock
Normal file
7901
requirement/poetry.odoo16.0_python3.10.14.lock
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -1,5 +1,5 @@
|
|||
[build-system]
|
||||
requires = [ "poetry>=1.1.14",]
|
||||
requires = [ "poetry>=1.5.0",]
|
||||
build-backend = "poetry.masonry.api"
|
||||
|
||||
[tool.isort]
|
||||
|
|
@ -36,27 +36,28 @@ cachetools = ">=2.0.1"
|
|||
cerberus = "^1.3.5"
|
||||
chardet = "5.0.0"
|
||||
click = "^8.1.7"
|
||||
cloudflare = "^3.0.1"
|
||||
cloudflare = "3.0.1"
|
||||
code-writer = "1.1.1"
|
||||
colorama = "^0.4.6"
|
||||
configparser = "5.0.2"
|
||||
coverage = "7.2.7"
|
||||
cryptography = "39.0.1"
|
||||
css-html-prettify = "^2.5.5"
|
||||
cython = "^3.0.10"
|
||||
cython = "3.0.10"
|
||||
ddt = "1.2.0"
|
||||
decorator = "4.0.10"
|
||||
dnspython = "2.3.0"
|
||||
docutils = "0.17.1"
|
||||
ebaysdk = "2.1.5"
|
||||
email-validator = "2.0.0"
|
||||
emoji = "^2.12.1"
|
||||
emoji = "^2.14.0"
|
||||
extract-msg = "0.36.1"
|
||||
factur-x = "^3.1"
|
||||
feedparser = "6.0.10"
|
||||
flake8 = "<6.0.0"
|
||||
formio-data = "^2.0.3"
|
||||
formio-data = "^2.1.0"
|
||||
freezegun = "1.2.2"
|
||||
furo = "2021.2.21b25"
|
||||
future = "0.18.3"
|
||||
geojson = "<3.0.0"
|
||||
gevent = "1.5.0"
|
||||
|
|
@ -90,18 +91,19 @@ oauthlib = "2.1.0"
|
|||
oca-decorators = "^0.0.1"
|
||||
odoorpc = "^0.10.1"
|
||||
ofxparse = "0.16"
|
||||
olefile = "0.47"
|
||||
openpyxl = "3.1.3"
|
||||
openupgradelib = "^3.6.1"
|
||||
openupgradelib = "^3.7.1"
|
||||
orjson = "3.6.0"
|
||||
ovh = "^1.1.2"
|
||||
ovh = "1.1.2"
|
||||
paho-mqtt = "^2.1.0"
|
||||
pandas = "1.3.5"
|
||||
paramiko = "^3.4.0"
|
||||
paramiko = "^3.5.0"
|
||||
passlib = "1.6.5"
|
||||
pdf2image = "^1.17.0"
|
||||
pdfminer = "^20191125"
|
||||
pexpect = "^4.9.0"
|
||||
phonenumbers = "^8.13.40"
|
||||
phonenumbers = "^8.13.47"
|
||||
pillow = "9.3.0"
|
||||
plotly = "4.1.0"
|
||||
portalocker = "1.7.1"
|
||||
|
|
@ -122,7 +124,7 @@ pyjsparser = "^2.7.1"
|
|||
pyjwt = "2.5.0"
|
||||
pyldap = "2.4.28"
|
||||
pylint-odoo = "8.0.19"
|
||||
pymssql = "^2.3.0"
|
||||
pymssql = "2.3.0"
|
||||
pymysql = "^1.1.1"
|
||||
pyotp = "^2.9.0"
|
||||
pyparsing = "2.1.10"
|
||||
|
|
@ -138,7 +140,7 @@ python-jose = "^3.3.0"
|
|||
python-json-logger = "0.1.5"
|
||||
python-keystoneclient = "3.22.0"
|
||||
python-ldap = "^3.4.4"
|
||||
python-pptx = "^0.6.23"
|
||||
python-pptx = "0.6.23"
|
||||
python-randomword-fr = "^1.0.0"
|
||||
python-slugify = ">=3.0.2"
|
||||
python-stdnum = "^1.20"
|
||||
|
|
@ -158,7 +160,8 @@ requests-oauthlib = "1.1.0"
|
|||
requests-toolbelt = "0.9.1"
|
||||
responses = "0.23.1"
|
||||
retrying = "^1.3.4"
|
||||
sentry-sdk = "^2.8.0"
|
||||
selenium = "4.11.2"
|
||||
sentry-sdk = "^2.17.0"
|
||||
serial = "^0.0.97"
|
||||
setuptools = "65.5.1"
|
||||
shapely = "1.8.5"
|
||||
|
|
@ -168,12 +171,12 @@ soappy = "^0.12.22"
|
|||
sphinx = "3.0"
|
||||
sphinx-intl = "^2.2.0"
|
||||
sphinx-rtd-theme = "1.2.2"
|
||||
sqlalchemy = "^2.0.31"
|
||||
sqlalchemy = "^2.0.36"
|
||||
sqlparse = "0.4.4"
|
||||
statsd = "3.2.1"
|
||||
toml = "^0.10.2"
|
||||
tornado = "6.1"
|
||||
tqdm = "^4.66.4"
|
||||
tqdm = "^4.66.5"
|
||||
unidecode = "1.0.22"
|
||||
unidiff = "^0.7.5"
|
||||
urllib3 = ">=1.26.13"
|
||||
|
|
@ -193,8 +196,8 @@ xlrd = "1.0.0"
|
|||
xlsxwriter = "0.9.3"
|
||||
xlwt = "1.3"
|
||||
xmlformatter = "^0.2.6"
|
||||
xmltodict = "^0.13.0"
|
||||
zeep = "^4.2.1"
|
||||
xmltodict = "^0.14.2"
|
||||
zeep = "4.2.1"
|
||||
zipp = ">=3.6.0"
|
||||
zxcvbn = "^4.4.28"
|
||||
|
||||
197
requirement/pyproject.odoo14.0_python3.8.10.toml
Normal file
197
requirement/pyproject.odoo14.0_python3.8.10.toml
Normal file
|
|
@ -0,0 +1,197 @@
|
|||
[build-system]
|
||||
requires = [ "poetry>=1.5.0",]
|
||||
build-backend = "poetry.masonry.api"
|
||||
|
||||
[tool.isort]
|
||||
profile = "black"
|
||||
py_version = 37
|
||||
|
||||
[tool.black]
|
||||
line-length = 79
|
||||
target-version = [ "py37",]
|
||||
|
||||
[tool.poetry]
|
||||
name = "ERPLibre"
|
||||
version = "1.5.0"
|
||||
description = "Easy way to configure Odoo community"
|
||||
license = "AGPL-3.0-or-later"
|
||||
authors = [ "Mathieu Benoit <mathben@technolibre.ca>",]
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
python = "^3.8.10"
|
||||
acme = "^2.11.0"
|
||||
agithub = "^2.2.2"
|
||||
aiohttp = "^3.10.5"
|
||||
aioshutil = "<1.2"
|
||||
argcomplete = "^3.5.0"
|
||||
astor = "0.8.1"
|
||||
avalara = "^24.8.2"
|
||||
azure-identity = "1.13.0"
|
||||
azure-storage-blob = "12.16.0"
|
||||
babel = "2.9.1"
|
||||
beautifulsoup4 = "^4.12.3"
|
||||
bokeh = "2.3.1"
|
||||
boto3 = ">=1.20.41"
|
||||
cachetools = "^5.5.0"
|
||||
chardet = "5.0.0"
|
||||
chromedriver-binary = "^130.0.6710.0.0"
|
||||
click = "^8.1.7"
|
||||
cloudflare = "2.20.0"
|
||||
colorama = "^0.4.6"
|
||||
contextvars = "^2.4"
|
||||
coverage = "^7.6.1"
|
||||
cryptography = "39.0.1"
|
||||
css-html-prettify = "^2.5.5"
|
||||
cython = "^3.0.11"
|
||||
dateparser = "^1.2.0"
|
||||
ddt = "1.2.1"
|
||||
decorator = "4.3.0"
|
||||
dicttoxml = "^1.7.16"
|
||||
dnspython = "^2.6.1"
|
||||
docutils = "0.16.0"
|
||||
ebaysdk = "2.1.5"
|
||||
email-validator = "^2.2.0"
|
||||
emoji = "^2.12.1"
|
||||
endesive = "^2.17.2"
|
||||
extract-msg = "0.36.1"
|
||||
factur-x = "^3.1"
|
||||
fdfgen = "^0.16.1"
|
||||
feedparser = "6.0.10"
|
||||
flake8 = "<6.0.0"
|
||||
formio-data = "^2.1.0"
|
||||
freezegun = "0.3.15"
|
||||
future = "0.18.3"
|
||||
geojson = "<3.0.0"
|
||||
gevent = "20.9.0"
|
||||
gitpython = "3.1.30"
|
||||
giturlparse = "^0.12.0"
|
||||
google-api-python-client = "^2.145.0"
|
||||
google-auth-httplib2 = "^0.2.0"
|
||||
google-auth-oauthlib = "^1.2.1"
|
||||
greenlet = "0.4.17"
|
||||
gst = "^0.1.0"
|
||||
html2text = "^2024.2.26"
|
||||
idna = "2.6"
|
||||
img2pdf = "^0.5.1"
|
||||
invoice2data = "^0.4.5"
|
||||
iscompatible = "^0.1.1"
|
||||
isort = "<5.12.0"
|
||||
jinja2 = "2.11.3"
|
||||
josepy = "^1.14.0"
|
||||
keystoneauth1 = "3.14.0"
|
||||
libsass = "0.17.0"
|
||||
lxml = "4.9.1"
|
||||
mako = "1.2.2"
|
||||
markupsafe = "1.1.0"
|
||||
mmg = "1.0.3"
|
||||
mpld3 = "^0.5.10"
|
||||
mysqlclient = "2.1.1"
|
||||
num2words = "0.5.6"
|
||||
numpy = "1.21.1"
|
||||
numpy-financial = "<=1.0.0"
|
||||
odoo-test-helper = "^2.1.1"
|
||||
odoorpc = "^0.10.1"
|
||||
ofxparse = "0.19"
|
||||
openpyxl = "^3.1.5"
|
||||
openupgradelib = "^3.7.0"
|
||||
ovh = "1.1.2"
|
||||
packaging = "21.3"
|
||||
pandas = "1.3.5"
|
||||
paramiko = "^3.4.1"
|
||||
passlib = "1.7.1"
|
||||
pathspec = "0.12.1"
|
||||
pdf2image = "^1.17.0"
|
||||
phonenumbers = "^8.13.45"
|
||||
pillow = "9.3.0"
|
||||
plotly = "5.4.0"
|
||||
polib = "1.1.0"
|
||||
premailer = "^3.10.0"
|
||||
prometheus-client = "0.11.0"
|
||||
psutil = "5.9.0"
|
||||
psycopg2 = "2.9.5"
|
||||
py-asterisk = "^0.5.18"
|
||||
py3o-formats = "^0.3"
|
||||
py3o-template = "^0.10.0"
|
||||
pycountry = "^24.6.1"
|
||||
pydot = "1.4.1"
|
||||
pyftpdlib = "^2.0.0"
|
||||
pygithub = "2.3.0"
|
||||
pygments = "2.7.4"
|
||||
pygobject = "3.44.1"
|
||||
pygount = "1.5.1"
|
||||
pyjwt = "2.5.0"
|
||||
pyopenssl = "21.0.0"
|
||||
pypdf = ">=3.1.0"
|
||||
pypdf2 = "1.27.9"
|
||||
pyproj = "3.2.1"
|
||||
pysaml2 = "7.2.1"
|
||||
pyserial = "3.4"
|
||||
pysftp = "^0.2.9"
|
||||
python-chess = "^1.999"
|
||||
python-dateutil = "2.7.3"
|
||||
python-git = "^2018.2.1"
|
||||
python-jose = "^3.3.0"
|
||||
python-json-logger = "0.1.5"
|
||||
python-keystoneclient = "3.22.0"
|
||||
python-ldap = "3.1.0"
|
||||
python-magic = "^0.4.27"
|
||||
python-randomword-fr = "^1.0.0"
|
||||
python-slugify = "^8.0.4"
|
||||
python-stdnum = "1.8"
|
||||
python-swiftclient = "3.9.0"
|
||||
python-u2flib-server = "^5.0.1"
|
||||
pytz = ">=2022.7"
|
||||
pyusb = "1.0.2"
|
||||
pyyaml = "6.0"
|
||||
pyzbar = "^0.1.9"
|
||||
qrcode = "6.1"
|
||||
redis = "3.2.1"
|
||||
regex = "2022.3.2"
|
||||
reportlab = "3.6.5"
|
||||
requests = "2.28.1"
|
||||
retrying = "^1.3.4"
|
||||
roulier = "^1.1.1"
|
||||
selenium = "^4.24.0"
|
||||
sentry-sdk = "<=1.9.0"
|
||||
setuptools = "65.5.1"
|
||||
shapely = "1.8.5"
|
||||
simplejson = "3.16.0"
|
||||
sphinx = "4.3.2"
|
||||
sphinx-intl = "^2.2.0"
|
||||
sphinx-rtd-theme = "1.3.0"
|
||||
statsd = "3.2.1"
|
||||
toml = "^0.10.2"
|
||||
tqdm = "^4.66.5"
|
||||
unicodecsv = "^0.14.1"
|
||||
unidecode = "1.0.23"
|
||||
unidiff = "^0.7.5"
|
||||
urllib3 = ">=1.26.13"
|
||||
uvloop = "^0.20.0"
|
||||
validators = "0.24.0"
|
||||
vobject = "0.9.6.1"
|
||||
voicent-python = "^1.0"
|
||||
webcolors = "^24.8.0"
|
||||
websocket-client = "^1.8.0"
|
||||
werkzeug = "0.16.1"
|
||||
wheel = "^0.44.0"
|
||||
win-unicode-console = "^0.5"
|
||||
xlrd = "1.2.0"
|
||||
xlsxwriter = "1.1.2"
|
||||
xlwt = "1.3"
|
||||
xmlformatter = "^0.2.6"
|
||||
xmlrunner = "^1.7.7"
|
||||
xmlschema = "^3.4.0"
|
||||
xmltodict = "^0.13.0"
|
||||
zeep = "3.2.0"
|
||||
zipp = ">=3.6.0"
|
||||
zxcvbn = "^4.4.28"
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
websocket_client = "^1.1.0"
|
||||
|
||||
[tool.poetry.dependencies.black]
|
||||
git = "https://github.com/psf/black.git"
|
||||
rev = "22.3.0"
|
||||
|
||||
[tool.poetry.dependencies.pylint-odoo]
|
||||
git = "https://github.com/oca/pylint-odoo.git"
|
||||
197
requirement/pyproject.odoo14.0_python3.8.20.toml
Normal file
197
requirement/pyproject.odoo14.0_python3.8.20.toml
Normal file
|
|
@ -0,0 +1,197 @@
|
|||
[build-system]
|
||||
requires = [ "poetry>=1.5.0",]
|
||||
build-backend = "poetry.masonry.api"
|
||||
|
||||
[tool.isort]
|
||||
profile = "black"
|
||||
py_version = 37
|
||||
|
||||
[tool.black]
|
||||
line-length = 79
|
||||
target-version = [ "py37",]
|
||||
|
||||
[tool.poetry]
|
||||
name = "ERPLibre"
|
||||
version = "1.5.0"
|
||||
description = "Easy way to configure Odoo community"
|
||||
license = "AGPL-3.0-or-later"
|
||||
authors = [ "Mathieu Benoit <mathben@technolibre.ca>",]
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
python = "^3.8.20"
|
||||
acme = "^2.11.0"
|
||||
agithub = "^2.2.2"
|
||||
aiohttp = "^3.10.10"
|
||||
aioshutil = "<1.2"
|
||||
argcomplete = "^3.5.1"
|
||||
astor = "0.8.1"
|
||||
avalara = "^24.10.0"
|
||||
azure-identity = "1.13.0"
|
||||
azure-storage-blob = "12.16.0"
|
||||
babel = "2.9.1"
|
||||
beautifulsoup4 = "^4.12.3"
|
||||
bokeh = "2.3.1"
|
||||
boto3 = ">=1.20.41"
|
||||
cachetools = "^5.5.0"
|
||||
chardet = "5.0.0"
|
||||
chromedriver-binary = "^132.0.6786.0.0"
|
||||
click = "^8.1.7"
|
||||
cloudflare = "2.20.0"
|
||||
colorama = "^0.4.6"
|
||||
contextvars = "^2.4"
|
||||
coverage = "7.6.1"
|
||||
cryptography = "39.0.1"
|
||||
css-html-prettify = "^2.5.5"
|
||||
cython = "^3.0.11"
|
||||
dateparser = "^1.2.0"
|
||||
ddt = "1.2.1"
|
||||
decorator = "4.3.0"
|
||||
dicttoxml = "^1.7.16"
|
||||
dnspython = "2.6.1"
|
||||
docutils = "0.16.0"
|
||||
ebaysdk = "2.1.5"
|
||||
email-validator = "^2.2.0"
|
||||
emoji = "^2.14.0"
|
||||
endesive = "^2.17.3"
|
||||
extract-msg = "0.36.1"
|
||||
factur-x = "^3.1"
|
||||
fdfgen = "^0.16.1"
|
||||
feedparser = "6.0.10"
|
||||
flake8 = "<6.0.0"
|
||||
formio-data = "^2.1.0"
|
||||
freezegun = "0.3.15"
|
||||
future = "0.18.3"
|
||||
geojson = "<3.0.0"
|
||||
gevent = "20.9.0"
|
||||
gitpython = "3.1.30"
|
||||
giturlparse = "^0.12.0"
|
||||
google-api-python-client = "^2.149.0"
|
||||
google-auth-httplib2 = "^0.2.0"
|
||||
google-auth-oauthlib = "^1.2.1"
|
||||
greenlet = "0.4.17"
|
||||
gst = "^0.1.0"
|
||||
html2text = "^2024.2.26"
|
||||
idna = "2.6"
|
||||
img2pdf = "^0.5.1"
|
||||
invoice2data = "^0.4.5"
|
||||
iscompatible = "^0.1.1"
|
||||
isort = "<5.12.0"
|
||||
jinja2 = "2.11.3"
|
||||
josepy = "^1.14.0"
|
||||
keystoneauth1 = "3.14.0"
|
||||
libsass = "0.17.0"
|
||||
lxml = "4.9.1"
|
||||
mako = "1.2.2"
|
||||
markupsafe = "1.1.0"
|
||||
mmg = "1.0.3"
|
||||
mpld3 = "^0.5.10"
|
||||
mysqlclient = "2.1.1"
|
||||
num2words = "0.5.6"
|
||||
numpy = "1.21.1"
|
||||
numpy-financial = "<=1.0.0"
|
||||
odoo-test-helper = "^2.1.1"
|
||||
odoorpc = "^0.10.1"
|
||||
ofxparse = "0.19"
|
||||
openpyxl = "^3.1.5"
|
||||
openupgradelib = "^3.7.1"
|
||||
ovh = "1.1.2"
|
||||
packaging = "21.3"
|
||||
pandas = "1.3.5"
|
||||
paramiko = "^3.5.0"
|
||||
passlib = "1.7.1"
|
||||
pathspec = "0.12.1"
|
||||
pdf2image = "^1.17.0"
|
||||
phonenumbers = "^8.13.47"
|
||||
pillow = "9.3.0"
|
||||
plotly = "5.4.0"
|
||||
polib = "1.1.0"
|
||||
premailer = "^3.10.0"
|
||||
prometheus-client = "0.11.0"
|
||||
psutil = "5.9.0"
|
||||
psycopg2 = "2.9.5"
|
||||
py-asterisk = "^0.5.18"
|
||||
py3o-formats = "^0.3"
|
||||
py3o-template = "^0.10.0"
|
||||
pycountry = "^24.6.1"
|
||||
pydot = "1.4.1"
|
||||
pyftpdlib = "^2.0.0"
|
||||
pygithub = "2.3.0"
|
||||
pygments = "2.7.4"
|
||||
pygobject = "3.44.1"
|
||||
pygount = "1.5.1"
|
||||
pyjwt = "2.5.0"
|
||||
pyopenssl = "21.0.0"
|
||||
pypdf = ">=3.1.0,<5.0"
|
||||
pypdf2 = "1.27.9"
|
||||
pyproj = "3.2.1"
|
||||
pysaml2 = "7.2.1"
|
||||
pyserial = "3.4"
|
||||
pysftp = "^0.2.9"
|
||||
python-chess = "^1.999"
|
||||
python-dateutil = "2.7.3"
|
||||
python-git = "^2018.2.1"
|
||||
python-jose = "^3.3.0"
|
||||
python-json-logger = "0.1.5"
|
||||
python-keystoneclient = "3.22.0"
|
||||
python-ldap = "3.1.0"
|
||||
python-magic = "^0.4.27"
|
||||
python-randomword-fr = "^1.0.0"
|
||||
python-slugify = "^8.0.4"
|
||||
python-stdnum = "1.8"
|
||||
python-swiftclient = "3.9.0"
|
||||
python-u2flib-server = "^5.0.1"
|
||||
pytz = ">=2022.7"
|
||||
pyusb = "1.0.2"
|
||||
pyyaml = "6.0"
|
||||
pyzbar = "^0.1.9"
|
||||
qrcode = "6.1"
|
||||
redis = "3.2.1"
|
||||
regex = "2022.3.2"
|
||||
reportlab = "3.6.5"
|
||||
requests = "2.28.1"
|
||||
retrying = "^1.3.4"
|
||||
roulier = "^1.1.1"
|
||||
selenium = "^4.25.0"
|
||||
sentry-sdk = "<=1.9.0"
|
||||
setuptools = "65.5.1"
|
||||
shapely = "1.8.5"
|
||||
simplejson = "3.16.0"
|
||||
sphinx = "4.3.2"
|
||||
sphinx-intl = "^2.2.0"
|
||||
sphinx-rtd-theme = "1.3.0"
|
||||
statsd = "3.2.1"
|
||||
toml = "^0.10.2"
|
||||
tqdm = "^4.66.5"
|
||||
unicodecsv = "^0.14.1"
|
||||
unidecode = "1.0.23"
|
||||
unidiff = "^0.7.5"
|
||||
urllib3 = ">=1.26.13"
|
||||
uvloop = "^0.21.0"
|
||||
validators = "0.24.0"
|
||||
vobject = "0.9.6.1"
|
||||
voicent-python = "^1.0"
|
||||
webcolors = "^24.8.0"
|
||||
websocket-client = "^1.8.0"
|
||||
werkzeug = "0.16.1"
|
||||
wheel = "^0.44.0"
|
||||
win-unicode-console = "^0.5"
|
||||
xlrd = "1.1.0"
|
||||
xlsxwriter = "1.1.2"
|
||||
xlwt = "1.3"
|
||||
xmlformatter = "^0.2.6"
|
||||
xmlrunner = "^1.7.7"
|
||||
xmlschema = "^3.4.2"
|
||||
xmltodict = "^0.14.2"
|
||||
zeep = "3.2.0"
|
||||
zipp = ">=3.6.0"
|
||||
zxcvbn = "^4.4.28"
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
websocket_client = "^1.1.0"
|
||||
|
||||
[tool.poetry.dependencies.black]
|
||||
git = "https://github.com/psf/black.git"
|
||||
rev = "22.3.0"
|
||||
|
||||
[tool.poetry.dependencies.pylint-odoo]
|
||||
git = "https://github.com/oca/pylint-odoo.git"
|
||||
205
requirement/pyproject.odoo16.0_python3.10.14.toml
Normal file
205
requirement/pyproject.odoo16.0_python3.10.14.toml
Normal file
|
|
@ -0,0 +1,205 @@
|
|||
[build-system]
|
||||
requires = [ "poetry>=1.8.3",]
|
||||
build-backend = "poetry.masonry.api"
|
||||
|
||||
[tool.isort]
|
||||
profile = "black"
|
||||
py_version = 37
|
||||
|
||||
[tool.black]
|
||||
line-length = 79
|
||||
target-version = [ "py37",]
|
||||
|
||||
[tool.poetry]
|
||||
name = "ERPLibre"
|
||||
version = "1.5.0"
|
||||
description = "Easy way to configure Odoo community"
|
||||
license = "AGPL-3.0-or-later"
|
||||
authors = [ "Mathieu Benoit <mathben@technolibre.ca>",]
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
python = "^3.10.14"
|
||||
agithub = "^2.2.2"
|
||||
argcomplete = "^3.5.1"
|
||||
asana = "^5.0.10"
|
||||
asn1crypto = "^1.5.1"
|
||||
astor = "^0.8.1"
|
||||
avalara = "^24.10.0"
|
||||
azure-identity = "1.13.0"
|
||||
azure-storage-blob = "12.16.0"
|
||||
babel = "2.9.1"
|
||||
base64io = "^1.0.3"
|
||||
beautifulsoup4 = "^4.12.3"
|
||||
bokeh = "3.1.1"
|
||||
boto3 = "1.26.7"
|
||||
bs4 = "^0.0.2"
|
||||
cachetools = "^5.5.0"
|
||||
cairosvg = "^2.7.1"
|
||||
chardet = "4.0.0"
|
||||
clicksend-client = "^5.0.78"
|
||||
cloudflare = "^3.1.0"
|
||||
cmake = "^3.30.5"
|
||||
colorama = "^0.4.6"
|
||||
countryinfo = "^0.1.2"
|
||||
cryptography = "3.4.8"
|
||||
cybersource-rest-client-python = "0.0.56"
|
||||
cython = "^3.0.11"
|
||||
decorator = "4.4.2"
|
||||
dlib = "^19.24.6"
|
||||
docutils = "0.16"
|
||||
dotty-dict = "^1.3.1"
|
||||
dropbox = "^12.0.2"
|
||||
ebaysdk = "2.1.5"
|
||||
email-validator = "^2.2.0"
|
||||
endesive = "^2.17.3"
|
||||
extract-msg = "^0.51.1"
|
||||
ezdxf = "^1.3.4"
|
||||
face-recognition = "^1.3.0"
|
||||
factur-x = "^3.1"
|
||||
filetype = "^1.2.0"
|
||||
formio-data = "^2.1.0"
|
||||
freezegun = "0.3.15"
|
||||
fsspec = ">=2024.5.0"
|
||||
gdown = "^5.2.0"
|
||||
geocoder = "^1.38.1"
|
||||
geojson = "^3.1.0"
|
||||
geopy = "^2.4.1"
|
||||
gevent = "21.8.0"
|
||||
gitpython = "3.1.30"
|
||||
giturlparse = "^0.12.0"
|
||||
googletrans-py = "4.0.0"
|
||||
greenlet = "1.1.2"
|
||||
gst = "^0.1.0"
|
||||
httpagentparser = "1.8.1"
|
||||
hubspot-api-client = "^10.0.0"
|
||||
idna = "2.10"
|
||||
iscompatible = "^0.1.1"
|
||||
jinja2 = "2.11.3"
|
||||
keystoneauth1 = "5.0.0"
|
||||
libsass = "0.20.1"
|
||||
linkedin = "^0.1.5"
|
||||
lottie = "^0.7.1"
|
||||
lxml = "4.6.5"
|
||||
lxml-html-clean = "^0.3.1"
|
||||
mako = "^1.3.5"
|
||||
markupsafe = "1.1.1"
|
||||
matplotlib = "^3.9.2"
|
||||
mechanize = "^0.4.10"
|
||||
messagebird = "^2.2.0"
|
||||
mock = "^5.1.0"
|
||||
mpld3 = "0.5.9"
|
||||
mysqlclient = "^2.2.5"
|
||||
nextcloud-api-wrapper = "^0.2.3"
|
||||
num2words = "0.5.13"
|
||||
numpy = ">=1.15"
|
||||
numpy-financial = "<=1.0.0"
|
||||
numpy-stl = "^3.1.2"
|
||||
odoo-test-helper = "^2.1.1"
|
||||
odoorpc = "^0.10.1"
|
||||
ofxparse = "0.21"
|
||||
ofxtools = "^0.9.5"
|
||||
openai = "^1.52.0"
|
||||
opencv-python = "^4.10.0.84"
|
||||
openpyxl = "^3.1.5"
|
||||
pandas = ">=0.25.3"
|
||||
paramiko = "^3.5.0"
|
||||
passlib = "1.7.4"
|
||||
pathspec = "^0.12.1"
|
||||
pay-ccavenue = "^1.0.0"
|
||||
pdf2image = "^1.17.0"
|
||||
phonenumbers = "^8.13.47"
|
||||
pillow = "9.0.1"
|
||||
plotly = "5.13.1"
|
||||
polib = "1.1.0"
|
||||
premailer = "^3.10.0"
|
||||
printnodeapi = "^0.2.0"
|
||||
prometheus-client = "0.15.0"
|
||||
psutil = "5.8.0"
|
||||
psycopg2 = "2.9.2"
|
||||
py-asterisk = "^0.5.18"
|
||||
py3dns = "^4.0.2"
|
||||
py3o-formats = "^0.3"
|
||||
py3o-template = "^0.10.0"
|
||||
pyaudio = "^0.2.14"
|
||||
pycountry = "^24.6.1"
|
||||
pydifact = "^0.1.7"
|
||||
pydot = "1.4.2"
|
||||
pyfcm = "^2.0.7"
|
||||
pygithub = "^2.4.0"
|
||||
pygobject = "3.44.1"
|
||||
pyjwt = "^2.9.0"
|
||||
pymssql = "<=2.2.5"
|
||||
pyncclient = "^0.7"
|
||||
pyopenssl = "20.0.1"
|
||||
pypdf2 = "1.26.0"
|
||||
pyrfc6266 = "^1.0.2"
|
||||
pysaml2 = "^7.5.0"
|
||||
pyserial = "3.5"
|
||||
pysftp = "^0.2.9"
|
||||
pytesseract = "^0.3.13"
|
||||
python-barcode = "^0.15.1"
|
||||
python-dateutil = "2.8.1"
|
||||
python-jose = "^3.3.0"
|
||||
python-json-logger = "2.0.4"
|
||||
python-keystoneclient = "5.0.0"
|
||||
python-ldap = "3.4.0"
|
||||
python-randomword-fr = "^1.0.0"
|
||||
python-resize-image = "^1.1.20"
|
||||
python-slugify = "^8.0.4"
|
||||
python-stdnum = "1.16"
|
||||
python-swiftclient = "4.1.0"
|
||||
python-telegram-bot = "^21.6"
|
||||
pytz = "^2024.2"
|
||||
pyusb = "1.0.2"
|
||||
pyyaml = "6.0"
|
||||
pyzbar = "^0.1.9"
|
||||
pyzk = "^0.9"
|
||||
qrcode = "6.1"
|
||||
redis = "4.3.4"
|
||||
reportlab = "3.5.59"
|
||||
requests = "2.30.0"
|
||||
requests-toolbelt = "^1.0.0"
|
||||
responses = "^0.25.3"
|
||||
retrying = "^1.3.4"
|
||||
rl-renderpm = "4.0.3"
|
||||
roulier = "^1.1.1"
|
||||
schwifty = "2024.4.0"
|
||||
selenium = "^4.25.0"
|
||||
sentry-sdk = "<=1.9.0"
|
||||
shapely = "^2.0.6"
|
||||
simplejson = "^3.19.3"
|
||||
spacy = "^3.8.2"
|
||||
speechrecognition = "3.10.0"
|
||||
sqlalchemy = "^2.0.36"
|
||||
statsd = "4.0.1"
|
||||
telesign = "^2.2.3"
|
||||
telnyx = "^2.1.3"
|
||||
todoist-python = "^8.1.4"
|
||||
toml = "^0.10.2"
|
||||
tweepy = "^4.14.0"
|
||||
twilio = "^9.3.4"
|
||||
unidecode = "^1.3.8"
|
||||
unidiff = "^0.7.5"
|
||||
urllib3 = "1.26.5"
|
||||
uvloop = "^0.21.0"
|
||||
validate-email = "^1.3"
|
||||
vobject = "0.9.6.1"
|
||||
vonage = "^3.17.1"
|
||||
werkzeug = "2.0.2"
|
||||
wheel = "^0.44.0"
|
||||
xlrd = "1.2.0"
|
||||
xlsxwriter = "1.4.5"
|
||||
xlwt = "1.3.0"
|
||||
xmltodict = "0.13.0"
|
||||
zeep = "4.0.0"
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
websocket_client = "^1.1.0"
|
||||
|
||||
[tool.poetry.dependencies.black]
|
||||
git = "https://github.com/psf/black.git"
|
||||
rev = "24.8.0"
|
||||
|
||||
[tool.poetry.dependencies.openupgradelib]
|
||||
git = "https://github.com/OCA/openupgradelib"
|
||||
rev = "master"
|
||||
|
|
@ -24,6 +24,7 @@ factur-x
|
|||
|
||||
# For ERPLibre project
|
||||
RandomWords
|
||||
selenium==4.11.2
|
||||
|
||||
# For testing
|
||||
websocket-client
|
||||
|
|
@ -59,7 +60,11 @@ webcolors==1.13
|
|||
openpyxl==3.1.3
|
||||
|
||||
# For deployment
|
||||
cloudflare
|
||||
cloudflare==3.0.1
|
||||
|
||||
# Fix build
|
||||
pymssql==2.3.0
|
||||
cython==3.0.10
|
||||
|
||||
# For multilang_md.py
|
||||
click
|
||||
|
|
@ -71,7 +76,7 @@ shapely==1.8.5
|
|||
|
||||
# Code generator
|
||||
mysqlclient==2.1.1
|
||||
python-pptx
|
||||
python-pptx==0.6.23
|
||||
humanize==4.6.0
|
||||
|
||||
# pyproj >=3.3.0 is not compatible with python 3.7
|
||||
|
|
@ -89,6 +94,9 @@ numpy==1.21.1
|
|||
feedparser==6.0.10
|
||||
geojson<3.0.0
|
||||
|
||||
# Fix poetry
|
||||
olefile==0.47
|
||||
|
||||
# asyncio
|
||||
aioshutil<1.2
|
||||
tqdm
|
||||
|
|
@ -103,6 +111,11 @@ extract-msg==0.36.1
|
|||
extract_msg==0.36.1
|
||||
|
||||
# Limitation because python3.7
|
||||
furo==2021.2.21b25
|
||||
ovh==1.1.2
|
||||
#requests-oauthlib==1.3.1
|
||||
greenlet==0.4.14
|
||||
gevent==1.5.0
|
||||
argcomplete==3.1.1
|
||||
responses==0.23.1
|
||||
dnspython==2.3.0
|
||||
|
|
@ -129,6 +142,7 @@ azure.identity==1.15.0
|
|||
azure-storage-blob==12.19.0
|
||||
azure.storage.blob==12.19.0
|
||||
sqlparse==0.4.4
|
||||
zeep==4.2.1
|
||||
|
||||
# Force version for security update
|
||||
pyyaml==6.0
|
||||
139
requirement/requirements.odoo14.0_python3.8.20.txt
Normal file
139
requirement/requirements.odoo14.0_python3.8.20.txt
Normal file
|
|
@ -0,0 +1,139 @@
|
|||
# For script
|
||||
giturlparse
|
||||
agithub
|
||||
GitPython==3.1.30
|
||||
retrying
|
||||
xmltodict
|
||||
openupgradelib
|
||||
unidiff
|
||||
colorama
|
||||
wheel
|
||||
mmg==1.0.3
|
||||
selenium
|
||||
|
||||
# For OSX
|
||||
cython
|
||||
|
||||
# For Odoo
|
||||
wheel
|
||||
phonenumbers
|
||||
# Force update version to latest, no break update
|
||||
pytz>=2022.7
|
||||
|
||||
# For OCA
|
||||
factur-x
|
||||
|
||||
# For smile
|
||||
xmlrunner
|
||||
|
||||
# For testing
|
||||
websocket-client
|
||||
python-stdnum
|
||||
python-u2flib_server
|
||||
python-chess
|
||||
python-git
|
||||
voicent-python
|
||||
python-swiftclient
|
||||
python-keystoneclient
|
||||
coverage
|
||||
|
||||
# For logical test
|
||||
docutils==0.16.0
|
||||
flake8<6.0.0
|
||||
git+https://github.com/oca/pylint-odoo.git
|
||||
# oca-maintainers-tools
|
||||
# git+https://github.com/OCA/maintainer-tools.git#egg=oca-maintainers-tools
|
||||
xmlformatter
|
||||
css-html-prettify
|
||||
BeautifulSoup4
|
||||
git+https://github.com/psf/black.git@22.3.0
|
||||
isort<5.12.0
|
||||
|
||||
# For updating poetry
|
||||
toml
|
||||
iscompatible
|
||||
pandas==1.3.5
|
||||
Jinja2==2.11.3
|
||||
python-keystoneclient==3.22.0
|
||||
|
||||
# For deployment
|
||||
cloudflare==2.20.0
|
||||
|
||||
# For multilang_md.py
|
||||
click
|
||||
emoji
|
||||
|
||||
# Fix bug geoengine
|
||||
# https://github.com/OCA/geospatial/issues/318
|
||||
shapely==1.8.5
|
||||
|
||||
# Code generator
|
||||
mysqlclient==2.1.1
|
||||
|
||||
# pyproj >=3.3.0 is not compatible with python 3.7
|
||||
pyproj==3.2.1
|
||||
|
||||
# to fix build
|
||||
validators==0.24.0
|
||||
sphinx==4.3.2
|
||||
|
||||
# Fix error
|
||||
greenlet==0.4.17
|
||||
gevent==20.9.0
|
||||
|
||||
# For some module
|
||||
img2pdf
|
||||
|
||||
# fix zipp depend on importlib-metadata
|
||||
zipp>=3.6.0
|
||||
|
||||
# Upgrade psycopg for better support python3
|
||||
psycopg2==2.9.5
|
||||
|
||||
# Force update dependency to fix poetry
|
||||
# numpy >=1.22 is not compatible with python 3.7
|
||||
numpy==1.21.1
|
||||
feedparser==6.0.10
|
||||
geojson<3.0.0
|
||||
regex==2022.3.2
|
||||
pygount==1.5.1
|
||||
pysaml2==7.2.1
|
||||
gevent==1.5.0
|
||||
freezegun==0.3.15
|
||||
pyopenssl==21.0.0
|
||||
ovh==1.1.2
|
||||
sphinx-rtd-theme==1.3.0
|
||||
sphinx_rtd_theme==1.3.0
|
||||
dnspython==2.6.1
|
||||
coverage==7.6.1
|
||||
|
||||
# asyncio
|
||||
aioshutil<1.2
|
||||
tqdm
|
||||
uvloop
|
||||
|
||||
# Solve pcodedmp, oletools, rtfde and extract-msg
|
||||
win_unicode_console
|
||||
|
||||
# Security issue, depend on extract-msg 0.36.1
|
||||
chardet==5.0.0
|
||||
extract-msg==0.36.1
|
||||
|
||||
# Force version for security update
|
||||
pyyaml==6.0
|
||||
lxml==4.9.1
|
||||
cryptography==39.0.1
|
||||
psutil==5.9.0
|
||||
Pillow==9.3.0
|
||||
Babel==2.9.1
|
||||
reportlab==3.6.5
|
||||
urllib3>=1.26.13
|
||||
requests==2.28.1
|
||||
boto3>=1.20.41
|
||||
PyPDF2==1.27.9
|
||||
mako==1.2.2
|
||||
pyjwt==2.5.0
|
||||
pygments==2.7.4
|
||||
setuptools==65.5.1
|
||||
Werkzeug==0.16.1
|
||||
future==0.18.3
|
||||
74
requirement/requirements.odoo16.0_python3.10.14.txt
Normal file
74
requirement/requirements.odoo16.0_python3.10.14.txt
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
# ERPLibre Poetry requirement
|
||||
iscompatible
|
||||
toml
|
||||
|
||||
# ERPLibre script
|
||||
giturlparse
|
||||
agithub
|
||||
GitPython==3.1.30
|
||||
retrying
|
||||
xmltodict
|
||||
openupgradelib
|
||||
unidiff
|
||||
colorama
|
||||
wheel
|
||||
cloudflare
|
||||
selenium
|
||||
# mmg # depend on weasyprint 59.0 and depend on old version pillow 9.0.1
|
||||
uvloop
|
||||
|
||||
# For OSX
|
||||
cython
|
||||
|
||||
# Module voice_to_text
|
||||
SpeechRecognition==3.10.0
|
||||
|
||||
# Module detect_unauthorized_login
|
||||
opencv-python
|
||||
|
||||
# Module advanced_payment_cybersource
|
||||
cybersource-rest-client-python==0.0.56
|
||||
|
||||
# Module translation_helper
|
||||
googletrans-py==4.0.0
|
||||
#googletrans==4.0.0-rc1
|
||||
#chardet==3.0.4
|
||||
#openai==1.20.0
|
||||
|
||||
# Module infobip_whatsapp_integration
|
||||
# Ignore it, need another version of requests
|
||||
# infobip-api-python-sdk==5.0.0
|
||||
|
||||
# Module extra unknown name
|
||||
filetype
|
||||
PyPDF2
|
||||
|
||||
# For logical test and quality
|
||||
git+https://github.com/psf/black.git@24.8.0
|
||||
|
||||
# For python 3.10 from odoo/requirements.txt, poetry_update.py cannot support python_version
|
||||
cryptography==3.4.8
|
||||
freezegun==0.3.15
|
||||
gevent==21.8.0
|
||||
greenlet==1.1.2
|
||||
Jinja2==2.11.3
|
||||
libsass==0.20.1
|
||||
lxml==4.6.5
|
||||
MarkupSafe==1.1.1
|
||||
ofxparse==0.21
|
||||
Pillow==9.0.1
|
||||
psutil==5.8.0
|
||||
psycopg2==2.9.2
|
||||
pyopenssl==20.0.1
|
||||
PyPDF2==1.26.0
|
||||
python-ldap==3.4.0
|
||||
pyusb==1.0.2
|
||||
requests==2.30.0
|
||||
reportlab==3.5.59
|
||||
urllib3==1.26.5
|
||||
Werkzeug==2.0.2
|
||||
xlrd==1.2.0
|
||||
|
||||
# Force python 3.10 over odoo/requirements.txt to remove warning
|
||||
num2words==0.5.13
|
||||
xlsxwriter==1.4.5
|
||||
|
|
@ -4,9 +4,18 @@ Color_Off='\033[0m' # Text Reset
|
|||
|
||||
# $1 BD NAME
|
||||
# $2 file_path
|
||||
./script/addons/install_addons.sh "$1" "$(<$2)"
|
||||
|
||||
# If addons is separate by ,
|
||||
# ./script/addons/install_addons.sh "$1" "$(<$2)"
|
||||
|
||||
# If addons is separate by endline
|
||||
# Read the file, put all line into string separate by ,
|
||||
resultat=$(grep -v '^$' $2 | tr '\n' ',' | sed 's/,$//')
|
||||
|
||||
echo "Install modules ${resultat}"
|
||||
./script/addons/install_addons.sh "$1" "$resultat"
|
||||
retVal=$?
|
||||
if [[ $retVal -ne 0 ]]; then
|
||||
echo -e "${Red}Error${Color_Off} ./script/addons/install_addons.sh into install_addons_from_file.sh"
|
||||
echo -e "${Red}Error${Color_Off} ./script/addons/install_addons.sh into install_addons_from_file.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -39,7 +39,6 @@ SUGGESTION
|
|||
parser.add_argument("-d", "--database", help="Database to manipulate.")
|
||||
parser.add_argument(
|
||||
"--image",
|
||||
default="erplibre_base",
|
||||
help=(
|
||||
"Image name to restore, from directory image_db, filename without"
|
||||
" '.zip'. Example, use erplibre_base to use image"
|
||||
|
|
@ -77,6 +76,11 @@ def main():
|
|||
|
||||
arg_base = "./.venv/bin/python3 ./odoo/odoo-bin db"
|
||||
|
||||
if not config.image:
|
||||
with open(".odoo-version", "r") as f:
|
||||
odoo_version = f.readline()
|
||||
config.image = f"odoo{odoo_version}_base"
|
||||
|
||||
# check if it needs master password from config file
|
||||
has_config_file = True
|
||||
config_path = "./config.conf"
|
||||
|
|
|
|||
390
script/database/image_db.py
Executable file
390
script/database/image_db.py
Executable file
|
|
@ -0,0 +1,390 @@
|
|||
#!/usr/bin/env python3
|
||||
# © 2021-2024 TechnoLibre (http://www.technolibre.ca)
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
|
||||
|
||||
import argparse
|
||||
import logging
|
||||
import os
|
||||
from collections import defaultdict
|
||||
import uuid
|
||||
import time
|
||||
import json
|
||||
import sys
|
||||
import subprocess
|
||||
|
||||
logging.basicConfig(level=os.environ.get("LOGLEVEL", "INFO"))
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
PYTHON_BIN = ".venv/bin/python3"
|
||||
IMAGE_DB_BIN = f"{PYTHON_BIN} ./script/database/image_db.py"
|
||||
|
||||
|
||||
def get_config():
|
||||
"""Parse command line arguments, extracting the config file name,
|
||||
returning the union of config file and command line arguments
|
||||
|
||||
:return: dict of config file settings and command line arguments
|
||||
"""
|
||||
# TODO update description
|
||||
parser = argparse.ArgumentParser(
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
description="""\
|
||||
DESCRIPTION
|
||||
Create image for database restoration to increase speed. Check file
|
||||
|
||||
SUGGESTION
|
||||
./script/database/image_db.py --image erplibre_base --odoo_version 16.0
|
||||
""",
|
||||
epilog="""\
|
||||
""",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--image",
|
||||
help=(
|
||||
"Image name to restore, from directory image_db, filename without"
|
||||
" '.zip'. Example, use erplibre_base to use image"
|
||||
" erplibre_base.zip. Default value is erplibre_base"
|
||||
),
|
||||
)
|
||||
parser.add_argument(
|
||||
"--odoo_version",
|
||||
help=(
|
||||
"Force Odoo version, example 12.0 or 16.0, if empty, use from"
|
||||
" .odoo-version file"
|
||||
),
|
||||
)
|
||||
parser.add_argument(
|
||||
"--generate_list_only",
|
||||
action="store_true",
|
||||
help=(
|
||||
"Generate list command in bash to run all package from"
|
||||
" odoo_version"
|
||||
),
|
||||
)
|
||||
parser.add_argument(
|
||||
"--generate_bash_cmd_parallel",
|
||||
action="store_true",
|
||||
help=(
|
||||
"Generate list with parallel command in bash to run all package"
|
||||
" from odoo_version"
|
||||
),
|
||||
)
|
||||
parser.add_argument(
|
||||
"--show_list_only",
|
||||
action="store_true",
|
||||
help="Show list of all package about Odoo version",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--check_addons_exist",
|
||||
action="store_true",
|
||||
help=(
|
||||
"Will return an error and stop execution if detect a non existing"
|
||||
" addons from actual odoo version."
|
||||
),
|
||||
)
|
||||
parser.add_argument(
|
||||
"--keep_database",
|
||||
action="store_true",
|
||||
help="Keep temporary database",
|
||||
)
|
||||
args = parser.parse_args()
|
||||
return args
|
||||
|
||||
|
||||
def main():
|
||||
config = get_config()
|
||||
if not config.odoo_version:
|
||||
# Fill it from system
|
||||
filename_odoo_version = ".odoo-version"
|
||||
if not os.path.isfile(filename_odoo_version):
|
||||
_logger.error(f"Missing file {filename_odoo_version}")
|
||||
sys.exit(1)
|
||||
with open(".odoo-version", "r") as f:
|
||||
config.odoo_version = f.readline()
|
||||
|
||||
# Open configuration file
|
||||
config_file = os.path.join("conf", f"module_list_image_db_odoo.json")
|
||||
if not os.path.exists(config_file):
|
||||
_logger.error(f"Configuration file {config_file} does not exist.")
|
||||
sys.exit(1)
|
||||
|
||||
with open(config_file, "r") as f:
|
||||
dct_config_all_image = json.load(f)
|
||||
|
||||
odoo_prefix_version = f"odoo{config.odoo_version}"
|
||||
|
||||
if config.show_list_only:
|
||||
lst_image_to_show = set()
|
||||
for image_db_name, dct_image_db in dct_config_all_image.items():
|
||||
if not image_db_name.startswith(
|
||||
odoo_prefix_version
|
||||
) or dct_image_db.get("disable"):
|
||||
continue
|
||||
# First always need to be a base
|
||||
image_list = dct_image_db.get("image_list")
|
||||
for dct_image in image_list:
|
||||
pkg_name = dct_image.get("pkg_name")
|
||||
if pkg_name:
|
||||
sub_image_db_name = f"{image_db_name}_{pkg_name}"
|
||||
else:
|
||||
sub_image_db_name = image_db_name
|
||||
lst_image_to_show.add(sub_image_db_name)
|
||||
|
||||
lst_to_show = sorted(lst_image_to_show)
|
||||
for image_to_show in lst_to_show:
|
||||
print(image_to_show)
|
||||
sys.exit(0)
|
||||
|
||||
if config.generate_list_only:
|
||||
for image_db_name, dct_image_db in dct_config_all_image.items():
|
||||
if not image_db_name.startswith(
|
||||
odoo_prefix_version
|
||||
) or dct_image_db.get("disable"):
|
||||
continue
|
||||
# First always need to be a base
|
||||
print(
|
||||
f"{IMAGE_DB_BIN} --odoo_version"
|
||||
f" {config.odoo_version} --image {image_db_name}"
|
||||
)
|
||||
sys.exit(0)
|
||||
|
||||
if config.check_addons_exist:
|
||||
lst_module_to_check = set()
|
||||
for image_db_name, dct_image_db in dct_config_all_image.items():
|
||||
if not image_db_name.startswith(
|
||||
odoo_prefix_version
|
||||
) or dct_image_db.get("disable"):
|
||||
continue
|
||||
lst_image_list = dct_image_db.get("image_list")
|
||||
for dct_image_config in lst_image_list:
|
||||
lst_module = dct_image_config.get("module")
|
||||
lst_module_to_check.update(lst_module)
|
||||
lst_module_missing = []
|
||||
for module_to_check in lst_module_to_check:
|
||||
cmd_check = (
|
||||
f"{PYTHON_BIN} ./script/addons/check_addons_exist.py -m"
|
||||
f" {module_to_check}"
|
||||
)
|
||||
status = run_cmd(cmd_check, quiet=True, sys_exit=False)
|
||||
if status:
|
||||
lst_module_missing.append(module_to_check)
|
||||
if lst_module_missing:
|
||||
print(f"Missing module :")
|
||||
print(sorted(lst_module_missing))
|
||||
sys.exit(1)
|
||||
else:
|
||||
print("No module missing")
|
||||
sys.exit(0)
|
||||
|
||||
if config.generate_bash_cmd_parallel:
|
||||
dct_depend_image = defaultdict(list)
|
||||
lst_total_image = []
|
||||
|
||||
lst_distribute_image = []
|
||||
lst_queue_parallel = []
|
||||
dct_image_delay = defaultdict(int)
|
||||
# Search dependency
|
||||
for image_db_name, dct_image_db in dct_config_all_image.items():
|
||||
if not image_db_name.startswith(
|
||||
odoo_prefix_version
|
||||
) or dct_image_db.get("disable"):
|
||||
continue
|
||||
if image_db_name in lst_total_image:
|
||||
_logger.error(f"Duplicate image_db_name: {image_db_name}")
|
||||
sys.exit(1)
|
||||
base_name = dct_image_db.get("base", "")
|
||||
dct_depend_image[base_name].append(image_db_name)
|
||||
lst_total_image.append(image_db_name)
|
||||
dct_image_delay[image_db_name] = dct_image_db.get("delay", 0)
|
||||
|
||||
# Reorder it
|
||||
max_iter = 1000
|
||||
i = 0
|
||||
while dct_depend_image and i < max_iter:
|
||||
i += 1
|
||||
|
||||
if "" in dct_depend_image.keys():
|
||||
# Get from empty key for root dependency
|
||||
lst_module = dct_depend_image.get("")
|
||||
lst_queue_parallel.append(lst_module)
|
||||
lst_distribute_image = lst_module[:]
|
||||
del dct_depend_image[""]
|
||||
else:
|
||||
# Search if dependency already into list
|
||||
lst_module = []
|
||||
lst_key_to_delete = []
|
||||
lst_distribute_image_to_append = []
|
||||
for key_to_check, lst_value in dct_depend_image.items():
|
||||
if key_to_check in lst_distribute_image:
|
||||
# Dependency find
|
||||
# Search for delay
|
||||
has_delay = False
|
||||
for value_module in lst_value:
|
||||
delay = dct_image_delay.get(value_module)
|
||||
if delay:
|
||||
has_delay = True
|
||||
dct_image_delay[value_module] = delay - 1
|
||||
elif value_module not in lst_distribute_image:
|
||||
lst_distribute_image_to_append.append(
|
||||
value_module
|
||||
)
|
||||
lst_module.append(value_module)
|
||||
if not has_delay:
|
||||
lst_key_to_delete.append(key_to_check)
|
||||
lst_distribute_image.extend(lst_distribute_image_to_append)
|
||||
if lst_module:
|
||||
lst_queue_parallel.append(lst_module)
|
||||
for key_to_delete in lst_key_to_delete:
|
||||
del dct_depend_image[key_to_delete]
|
||||
|
||||
# not finish to empty the queue
|
||||
if dct_depend_image:
|
||||
_logger.info("Missing dependencies, auto-run all image generation for last execution")
|
||||
for depend_image, lst_module in dct_depend_image.items():
|
||||
lst_queue_parallel.append(lst_module)
|
||||
# print command to execute
|
||||
lst_cmd = []
|
||||
for lst_mod in lst_queue_parallel:
|
||||
if not lst_mod:
|
||||
continue
|
||||
str_module = " ".join(lst_mod)
|
||||
cmd = f"echo 'Generate imageDB : [{str_module}]'\n"
|
||||
if len(lst_mod) > 1:
|
||||
cmd += "parallel ::: " + " ".join(
|
||||
[
|
||||
f'"{IMAGE_DB_BIN} --odoo_version'
|
||||
f' {config.odoo_version} --image {a}"'
|
||||
for a in lst_mod
|
||||
]
|
||||
)
|
||||
else:
|
||||
cmd += (
|
||||
f"{IMAGE_DB_BIN} --odoo_version"
|
||||
f" {config.odoo_version} --image {lst_mod[0]}"
|
||||
)
|
||||
cmd += "\nstatus=$?; [ $status -ne 0 ] && exit $status"
|
||||
|
||||
lst_cmd.append(cmd)
|
||||
print("\n".join(lst_cmd))
|
||||
sys.exit(0)
|
||||
|
||||
image_name_to_generate = (
|
||||
config.image if config.image else f"{odoo_prefix_version}_base"
|
||||
)
|
||||
dct_config_image = dct_config_all_image.get(image_name_to_generate)
|
||||
|
||||
if not dct_config_image:
|
||||
_logger.error(f"Cannot retrieve image name '{image_name_to_generate}'")
|
||||
sys.exit(1)
|
||||
|
||||
if dct_config_image.get("disable"):
|
||||
_logger.info("Ignore this image DB generation, because it's disabled.")
|
||||
sys.exit(1)
|
||||
|
||||
bd_temp_name = (
|
||||
f"temp_img_create_{image_name_to_generate}_{uuid.uuid4().hex[:6]}"
|
||||
)
|
||||
|
||||
# Summary
|
||||
# Step 0, drop and restore
|
||||
# Step 1, install addons
|
||||
# Step 2, uninstall if need it
|
||||
# Step 3, install theme
|
||||
# Step 4, create image_db by backup
|
||||
# Step 5, loop to 1 with same bd name
|
||||
|
||||
base_image_name = dct_config_image.get("base")
|
||||
all_temp_bd = []
|
||||
|
||||
# Step 0, drop and restore
|
||||
cmd_drop_db = (
|
||||
f"{PYTHON_BIN} ./odoo/odoo-bin db --drop --database {bd_temp_name}"
|
||||
)
|
||||
all_temp_bd.append(bd_temp_name)
|
||||
run_cmd(cmd_drop_db)
|
||||
if not base_image_name or base_image_name == image_name_to_generate:
|
||||
with_demo = dct_config_image.get("with_demo")
|
||||
# Create a new one
|
||||
cmd = (
|
||||
f"{PYTHON_BIN} ./odoo/odoo-bin db --create --database"
|
||||
f" {bd_temp_name}"
|
||||
)
|
||||
if with_demo:
|
||||
cmd += " --demo"
|
||||
else:
|
||||
cmd = (
|
||||
"./script/database/db_restore.py --database"
|
||||
f" {bd_temp_name} --image {base_image_name}"
|
||||
)
|
||||
run_cmd(cmd)
|
||||
for dct_value in dct_config_image.get("image_list"):
|
||||
pkg_name = dct_value.get("pkg_name", "")
|
||||
# Step 1, install addons
|
||||
lst_module = ",".join(dct_value.get("module"))
|
||||
cmd = f"./script/addons/install_addons.sh {bd_temp_name} {lst_module}"
|
||||
run_cmd(cmd)
|
||||
# Step 2, uninstall if need it
|
||||
# Step 3, install theme
|
||||
module_theme = dct_value.get("theme")
|
||||
if module_theme:
|
||||
cmd = (
|
||||
"./script/addons/install_addons_theme.sh"
|
||||
f" {bd_temp_name} {module_theme}"
|
||||
)
|
||||
run_cmd(cmd)
|
||||
# Step 4, create image_db by backup
|
||||
module_image_name = (
|
||||
image_name_to_generate
|
||||
if not pkg_name
|
||||
else f"{image_name_to_generate}_{pkg_name}"
|
||||
)
|
||||
cmd = (
|
||||
f"{PYTHON_BIN} ./odoo/odoo-bin db --backup --database"
|
||||
f" {bd_temp_name} --restore_image {module_image_name}"
|
||||
)
|
||||
run_cmd(cmd)
|
||||
# Step 5, loop to 1 with same bd name for next package
|
||||
|
||||
# Step 6, clean if ask
|
||||
if not config.keep_database:
|
||||
for db_name in all_temp_bd:
|
||||
cmd_drop_db = (
|
||||
f"{PYTHON_BIN} ./odoo/odoo-bin db --drop --database {db_name}"
|
||||
)
|
||||
run_cmd(cmd_drop_db)
|
||||
|
||||
|
||||
def run_cmd(cmd, quiet=False, sys_exit=True):
|
||||
# status = os.system(cmd)
|
||||
# if status != 0:
|
||||
# _logger.error(f"Command failed : '{cmd}'")
|
||||
# sys.exit(status)
|
||||
if not quiet:
|
||||
_logger.info(f"Run cmd: {cmd}")
|
||||
debut = time.time()
|
||||
process = subprocess.Popen(
|
||||
cmd,
|
||||
shell=True,
|
||||
text=True,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE,
|
||||
)
|
||||
stdout, stderr = process.communicate()
|
||||
fin = time.time()
|
||||
status_code = process.returncode
|
||||
if stderr and not quiet:
|
||||
_logger.error(stderr)
|
||||
execution_time = fin - debut
|
||||
if not quiet:
|
||||
_logger.info(f"Time execution: {execution_time:.2f} seconds\n")
|
||||
if status_code != 0:
|
||||
if not quiet:
|
||||
_logger.error(f"Command failed : '{cmd}'")
|
||||
if sys_exit:
|
||||
sys.exit(status_code)
|
||||
return status_code
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
@ -3,6 +3,15 @@
|
|||
Red='\033[0;31m' # Red
|
||||
Color_Off='\033[0m' # Text Reset
|
||||
|
||||
ERPLIBRE_IMAGE_NAME=$(cat .erplibre-semver-version|xargs)
|
||||
ERPLIBRE_VERSION_MAIN=$(cat .erplibre-version|xargs)
|
||||
ODOO_VERSION=$(cat .odoo-version|xargs)
|
||||
PYTHON_VERSION=$(cat .python-version|xargs)
|
||||
POETRY_VERSION=$(cat .poetry-version|xargs)
|
||||
|
||||
IS_DEBIAN_BOOKWORM=true
|
||||
IS_DEBIAN_BULLSEYE=true
|
||||
# or IS_DEBIAN_BUSTER
|
||||
ARGS=""
|
||||
IS_RELEASE=false
|
||||
IS_RELEASE_ALPHA=false
|
||||
|
|
@ -10,6 +19,8 @@ IS_RELEASE_BETA=false
|
|||
ERPLIBRE_DOCKER_BASE="technolibre/erplibre-base"
|
||||
ERPLIBRE_DOCKER_PROD="technolibre/erplibre"
|
||||
|
||||
output_version=""
|
||||
|
||||
for arg in "$@"
|
||||
do
|
||||
if [ "$arg" == "--no-cache" ]
|
||||
|
|
@ -24,9 +35,35 @@ do
|
|||
elif [ "$arg" == "--release_beta" ]
|
||||
then
|
||||
IS_RELEASE_BETA=true
|
||||
elif [ "$arg" == "--odoo_16" ]
|
||||
then
|
||||
output_version=$(python ./script/version/get_version.py --odoo_version 16.0)
|
||||
elif [ "$arg" == "--odoo_14" ]
|
||||
then
|
||||
IS_DEBIAN_BOOKWORM=false
|
||||
IS_DEBIAN_BULLSEYE=false
|
||||
output_version=$(python ./script/version/get_version.py --odoo_version 14.0)
|
||||
elif [ "$arg" == "--odoo_12" ]
|
||||
then
|
||||
IS_DEBIAN_BOOKWORM=false
|
||||
IS_DEBIAN_BULLSEYE=false
|
||||
output_version=$(python ./script/version/get_version.py --odoo_version 12.0)
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$output_version" != "" ]; then
|
||||
ODOO_VERSION=$(echo "$output_version" | awk 'NR==1')
|
||||
POETRY_VERSION=$(echo "$output_version" | awk 'NR==2')
|
||||
PYTHON_VERSION=$(echo "$output_version" | awk 'NR==3')
|
||||
ERPLIBRE_VERSION_MAIN=$(echo "$output_version" | awk 'NR==4')
|
||||
fi
|
||||
|
||||
echo "Build with"
|
||||
echo $ERPLIBRE_VERSION_MAIN
|
||||
echo $ODOO_VERSION
|
||||
echo $PYTHON_VERSION
|
||||
echo $POETRY_VERSION
|
||||
|
||||
if [ "$IS_RELEASE_ALPHA" == true ]
|
||||
then
|
||||
# Add commit hash when release alpha
|
||||
|
|
@ -44,11 +81,14 @@ fi
|
|||
|
||||
ERPLIBRE_DOCKER_BASE_VERSION="${ERPLIBRE_DOCKER_BASE}:${ERPLIBRE_VERSION}"
|
||||
ERPLIBRE_DOCKER_PROD_VERSION="${ERPLIBRE_DOCKER_PROD}:${ERPLIBRE_VERSION}"
|
||||
ERPLIBRE_VERSION_MAIN="odoo${ODOO_VERSION}_python${PYTHON_VERSION}"
|
||||
|
||||
echo "Create docker ${ERPLIBRE_DOCKER_PROD_VERSION}"
|
||||
|
||||
# Rewrite docker-compose
|
||||
./script/docker/docker_update_version.py --version=${ERPLIBRE_VERSION} --base=${ERPLIBRE_DOCKER_BASE} --prod=${ERPLIBRE_DOCKER_PROD}
|
||||
./script/docker/docker_update_version.py --version=${ERPLIBRE_VERSION} --base=${ERPLIBRE_DOCKER_BASE} --prod=${ERPLIBRE_DOCKER_PROD} --ignore_edit_docker
|
||||
|
||||
ARGS="${ARGS} --build-arg ERPLIBRE_VERSION=${ERPLIBRE_VERSION_MAIN} --build-arg ODOO_VERSION=${ODOO_VERSION} --build-arg POETRY_VERSION=${POETRY_VERSION} --build-arg ERPLIBRE_IMAGE_NAME=${ERPLIBRE_VERSION} --build-arg PYTHON_VERSION=${PYTHON_VERSION}"
|
||||
|
||||
retVal=$?
|
||||
if [[ $retVal -ne 0 ]]; then
|
||||
|
|
@ -58,8 +98,15 @@ fi
|
|||
|
||||
cd docker
|
||||
|
||||
ARGS="${ARGS} --build-arg=WORKING_BRANCH=$(git rev-parse --abbrev-ref HEAD) --build-arg=WORKING_HASH=$(git rev-parse --verify HEAD)"
|
||||
ARGS="${ARGS} --build-arg WORKING_BRANCH=$(git rev-parse --abbrev-ref HEAD) --build-arg WORKING_HASH=$(git rev-parse --verify HEAD)"
|
||||
|
||||
if [ "$IS_DEBIAN_BOOKWORM" == true ]; then
|
||||
ARGS="${ARGS} --build-arg DEBIAN_NAME=bookworm --build-arg URL_WKHTMLTOX=github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb --build-arg SHA1SUM_WKTHMLTOX=e9f95436298c77cc9406bd4bbd242f4771d0a4b2"
|
||||
elif [ "$IS_DEBIAN_BOOKWORM" != true ]; then
|
||||
ARGS="${ARGS} --build-arg DEBIAN_NAME=bullseye --build-arg URL_WKHTMLTOX=github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.bullseye_amd64.deb --build-arg SHA1SUM_WKTHMLTOX=cecbf5a6abbd68d324a7cd6c51ec843d71e98951"
|
||||
elif [ "IS_DEBIAN_BULLSEYE" != true ]; then
|
||||
ARGS="${ARGS} --build-arg DEBIAN_NAME=buster --build-arg URL_WKHTMLTOX=github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.buster_amd64.deb --build-arg SHA1SUM_WKTHMLTOX=d9f259a67e05e1c221d48b504453645e6c491fab"
|
||||
fi
|
||||
set -e
|
||||
|
||||
# Build base
|
||||
|
|
|
|||
|
|
@ -51,6 +51,11 @@ def get_config():
|
|||
default="./docker/Dockerfile.prod.pkg",
|
||||
help="Docker prod file to update.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--ignore_edit_docker",
|
||||
action="store_true",
|
||||
help="Will not edit dockerfile.",
|
||||
)
|
||||
args = parser.parse_args()
|
||||
args.base_version = f"{args.base}:{args.version}"
|
||||
args.prod_version = f"{args.prod}:{args.version}"
|
||||
|
|
@ -119,7 +124,8 @@ def edit_docker_prod(config):
|
|||
def main():
|
||||
config = get_config()
|
||||
edit_text(config)
|
||||
edit_docker_prod(config)
|
||||
if not config.ignore_edit_docker:
|
||||
edit_docker_prod(config)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
|
|||
|
|
@ -12,8 +12,6 @@ EL_CONFIG_FILE="${EL_HOME}/config.conf"
|
|||
#EL_MINIMAL_ADDONS="False"
|
||||
#EL_INSTALL_NGINX="True"
|
||||
|
||||
echo -e "* Create server config file"
|
||||
|
||||
touch "${EL_CONFIG_FILE}"
|
||||
echo -e "* Creating server config file"
|
||||
printf '[options] \n; This is the password that allows database operations:\n' > "${EL_CONFIG_FILE}"
|
||||
|
|
@ -25,152 +23,117 @@ printf "db_password = False\n" >> "${EL_CONFIG_FILE}"
|
|||
printf "xmlrpc_port = ${EL_PORT}\n" >> "${EL_CONFIG_FILE}"
|
||||
printf "longpolling_port = ${EL_LONGPOLLING_PORT}\n" >> "${EL_CONFIG_FILE}"
|
||||
|
||||
printf "addons_path = ${EL_HOME_ODOO}/addons,${EL_HOME}/addons/addons," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons/OCA_web," >> "${EL_CONFIG_FILE}"
|
||||
printf "addons_path = ${EL_HOME_ODOO}/addons,${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/addons," >> "${EL_CONFIG_FILE}"
|
||||
|
||||
if [[ ${EL_MINIMAL_ADDONS} = "False" ]]; then
|
||||
printf "${EL_HOME}/addons/CybroOdoo_OpenHRMS," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/ERPLibre_erplibre-3D-printing-addons," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/ERPLibre_erplibre_addons," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/ERPLibre_erplibre_theme_addons," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/JayVora-SerpentCS_SerpentCS_Contributions," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/MathBenTech_QuotationRevision," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/MathBenTech_development," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/MathBenTech_erplibre-family-management," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/MathBenTech_odoo-business-spending-management-quebec-canada," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/MathBenTech_scrummer," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/Numigi_odoo-base-addons," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/Numigi_odoo-entertainment-addons," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/Numigi_odoo-git-addons," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/Numigi_odoo-hr-addons," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/Numigi_odoo-partner-addons," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/Numigi_odoo-product-addons," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/Numigi_odoo-project-addons," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/Numigi_odoo-purchase-addons," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/Numigi_odoo-stock-addons," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/Numigi_odoo-survey-addons," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/Numigi_odoo-timesheet-addons," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/Numigi_odoo-web-addons," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_account-analytic," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_account-budgeting," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_account-closing," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_account-consolidation," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_account-financial-reporting," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_account-financial-tools," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_account-fiscal-rule," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_account-invoice-reporting," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_account-invoicing," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_account-payment," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_account-reconcile," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_apps-store," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_bank-payment," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_bank-statement-import," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_brand," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_business-requirement," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_commission," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_community-data-files," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_connector," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_connector-ecommerce," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_connector-interfaces," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_connector-jira," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_connector-telephony," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_contract," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_credit-control," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_crm," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_currency," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_data-protection," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_ddmrp," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_delivery-carrier," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_donation," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_e-commerce," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_edi," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_event," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_field-service," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_fleet," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_geospatial," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_helpdesk," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_hr," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_interface-github," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_knowledge," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_l10n-canada," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_maintenance," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_management-system," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_manufacture," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_margin-analysis," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_mis-builder," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_multi-company," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_operating-unit," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_partner-contact," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_pos," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_product-attribute," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_product-pack," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_product-variant," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_project," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_project-reporting," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_purchase-workflow," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_queue," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_reporting-engine," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_rma," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_sale-reporting," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_sale-workflow," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_server-auth," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_server-backend," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_server-brand," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_server-env," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_server-tools," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_server-ux," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_social," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_stock-logistics-warehouse," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_storage," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_timesheet," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_vertical-association," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_vertical-hotel," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_vertical-isp," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_vertical-travel," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_website," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_website-cms," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OCA_wms," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/OmniaGit_odooplm," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/Smile-SA_odoo_addons," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/TechnoLibre_odoo-code-generator," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/TechnoLibre_odoo-code-generator-template," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/ajepe_odoo-addons," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/camptocamp_odoo-cloud-platform," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/dhongu_deltatech," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/it-projects-llc_saas-addons," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/itpp-labs_access-addons," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/itpp-labs_pos-addons," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/itpp-labs_website-addons," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/kinjal-sorathiya_Property-Management_odoo," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/muk-it_muk_base," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/muk-it_muk_dms," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/muk-it_muk_docs," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/muk-it_muk_misc," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/muk-it_muk_quality," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/muk-it_muk_web," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/muk-it_muk_website," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/novacode-nl_odoo-formio," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/obayit_odoo_dhtmlxgantt," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/odoo_design-themes," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/odooaktiv_product_rating_app," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/odoomates_odooapps," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/openeducat_openeducat_erp," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/pledra_odoo-product-configurator," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons/tegin_medical-fhir," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/doc/itpp-labs_odoo-development," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/doc/itpp-labs_odoo-port-docs," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/doc/itpp-labs_odoo-test-docs," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/doc/odoo_documentation-user," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/script/OCA_maintainer-tools," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/script/OCA_odoo-module-migrator," >> ${EL_CONFIG_FILE}
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/CybroOdoo_CybroAddons," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/CybroOdoo_OpenHRMS," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/ERPLibre_erplibre_addons," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-analytic," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-budgeting," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-closing," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-consolidation," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-financial-reporting," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-financial-tools," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-fiscal-rule," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-invoice-reporting," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-invoicing," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-payment," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-reconcile," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_apps-store," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_bank-payment," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_bank-statement-import," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_brand," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_business-requirement," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_commission," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_community-data-files," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_connector," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_connector-ecommerce," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_connector-interfaces," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_connector-jira," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_connector-telephony," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_contract," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_credit-control," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_crm," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_currency," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_data-protection," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_ddmrp," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_delivery-carrier," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_donation," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_e-commerce," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_edi," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_event," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_field-service," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_fleet," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_geospatial," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_helpdesk," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_hr," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_interface-github," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_knowledge," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_l10n-canada," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_maintenance," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_management-system," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_manufacture," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_margin-analysis," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_mis-builder," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_multi-company," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_operating-unit," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_partner-contact," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_pos," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_product-attribute," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_product-configurator," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_product-pack," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_product-variant," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_project," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_project-agile," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_project-reporting," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_purchase-workflow," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_queue," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_reporting-engine," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_rma," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_sale-reporting," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_sale-workflow," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-auth," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-backend," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-brand," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-env," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-tools," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-ux," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_social," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_stock-logistics-warehouse," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_storage," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_survey," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_timesheet," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_vertical-association," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_vertical-hotel," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_vertical-isp," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_vertical-travel," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_web," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_website," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_website-cms," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_wms," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OmniaGit_odooplm," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/camptocamp_odoo-cloud-platform," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/dhongu_deltatech," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/it-projects-llc_saas-addons," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/muk-it_muk_web," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/novacode-nl_odoo-formio," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/odoomates_odooapps," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/openeducat_openeducat_erp," >> "${EL_CONFIG_FILE}"
|
||||
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/tegin_medical-fhir," >> "${EL_CONFIG_FILE}"
|
||||
fi
|
||||
printf "\n" >> "${EL_CONFIG_FILE}"
|
||||
|
||||
printf "max_cron_threads = 2\n" >> "${EL_CONFIG_FILE}"
|
||||
|
||||
printf "workers = 2\n" >> "${EL_CONFIG_FILE}"
|
||||
if [[ ${EL_INSTALL_NGINX} = "True" ]]; then
|
||||
printf "workers = 2\n" >> "${EL_CONFIG_FILE}"
|
||||
printf "xmlrpc_interface = 127.0.0.1\n" >> "${EL_CONFIG_FILE}"
|
||||
printf "proxy_mode = True\n" >> "${EL_CONFIG_FILE}"
|
||||
else
|
||||
printf "workers = 0\n" >> "${EL_CONFIG_FILE}"
|
||||
fi
|
||||
|
||||
# Update and fix the config.conf
|
||||
# Fix only the configuration if installation is done
|
||||
if [ -f "./.venv/bin/activate" ] && [ -f "./odoo/odoo-bin" ]; then
|
||||
make config_update
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
rm -fr ./.repo
|
||||
rm -rf ./odoo ./addons/* ./script/OCA* ./image_db ./doc/itpp* ./doc/odoo_*
|
||||
mkdir -p addons/addons
|
||||
rm -rf ./odoo ./addons*/* ./script/OCA* ./image_db ./doc/itpp* ./doc/odoo_*
|
||||
rm -rf addons*
|
||||
#mkdir -p addons/addons
|
||||
|
|
|
|||
|
|
@ -400,11 +400,18 @@ class GitTool:
|
|||
# Exception, ignore addons/OCA_web and root
|
||||
if repo.get("path") in ["addons/OCA_web", "odoo", "image_db"]:
|
||||
continue
|
||||
update_repo = repo.get("path")
|
||||
# Use variable instead of hardcoded path
|
||||
if update_repo.startswith("addons.odoo"):
|
||||
lst_path = update_repo.split("/", 1)
|
||||
update_repo = f"addons.odoo${{EL_ODOO_VERSION}}/" + lst_path[1]
|
||||
str_repo = (
|
||||
f' printf "${{EL_HOME}}/{repo.get("path")}," >> '
|
||||
f' printf "${{EL_HOME}}/{update_repo}," >> '
|
||||
'"${EL_CONFIG_FILE}"\n'
|
||||
)
|
||||
lst_result.append(str_repo)
|
||||
# Ignore repo if not starting by addons
|
||||
if update_repo.startswith("addons"):
|
||||
lst_result.append(str_repo)
|
||||
with open(filename_locally) as file:
|
||||
all_lines = file.readlines()
|
||||
# search place to add/replace lines
|
||||
|
|
|
|||
|
|
@ -109,8 +109,8 @@ def main():
|
|||
break
|
||||
die(
|
||||
not project_path,
|
||||
f"Missing .iml file into {IDEA_PATH}, wait after Pycharm analyze file to"
|
||||
" create Python environnement.",
|
||||
f"Missing .iml file into {IDEA_PATH}, wait after Pycharm analyze file"
|
||||
" to create Python environnement.",
|
||||
)
|
||||
|
||||
if config.init:
|
||||
|
|
@ -415,6 +415,11 @@ def add_exclude_folder(dct_xml, file_name, config):
|
|||
)
|
||||
lst_exclude_folder = dct_content.get("excludeFolder")
|
||||
|
||||
# lst_to_exclude = ["./.venv.*", "./addons.*"]
|
||||
lst_to_exclude = ["./.venv.*", "./addons"]
|
||||
for s_exclude in lst_to_exclude:
|
||||
for dir_venv in glob.glob(s_exclude):
|
||||
LST_EXCLUDE_FOLDER.append(dir_venv[2:])
|
||||
lst_exclude_item = [f"file://$MODULE_DIR$/{a}" for a in LST_EXCLUDE_FOLDER]
|
||||
|
||||
if lst_exclude_folder:
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ sudo su - postgres -c "createuser -s ${EL_USER}" 2>/dev/null || true
|
|||
# Install Dependencies
|
||||
#--------------------------------------------------
|
||||
echo -e "\n--- Installing debian dependency --"
|
||||
sudo apt-get install git build-essential wget libxslt-dev libzip-dev libldap2-dev libsasl2-dev gdebi-core libffi-dev libbz2-dev parallel pysassc swig -y
|
||||
sudo apt-get install git build-essential wget libxslt-dev libzip-dev libldap2-dev libsasl2-dev gdebi-core libffi-dev libbz2-dev parallel pysassc swig cmake portaudio19-dev -y
|
||||
retVal=$?
|
||||
if [[ $retVal -ne 0 ]]; then
|
||||
echo "apt-get debian tool installation error."
|
||||
|
|
|
|||
|
|
@ -22,13 +22,15 @@ Color_Off='\033[0m' # Text Reset
|
|||
#git submodule update --init
|
||||
|
||||
# Generate empty addons if missing
|
||||
if [[ ! -d "./addons/addons" ]]; then
|
||||
mkdir -p ./addons/addons
|
||||
path_addons_addons="./addons.odoo${EL_ODOO_VERSION}/addons"
|
||||
if [[ ! -d "${path_addons_addons}" ]]; then
|
||||
mkdir -p "${path_addons_addons}"
|
||||
fi
|
||||
|
||||
PYENV_PATH=~/.pyenv
|
||||
PYTHON_VERSION=3.7.16
|
||||
PYENV_VERSION_PATH=${PYENV_PATH}/versions/${PYTHON_VERSION}
|
||||
# example, 3.7.8 will be 3.7 into PYTHON_VERSION_MAJOR
|
||||
PYTHON_VERSION_MAJOR=$(echo "$EL_PYTHON_VERSION" | sed 's/\.[^\.]*$//')
|
||||
PYENV_VERSION_PATH=${PYENV_PATH}/versions/${EL_PYTHON_VERSION}
|
||||
PYTHON_EXEC=${PYENV_VERSION_PATH}/bin/python
|
||||
VENV_PATH=./.venv
|
||||
LOCAL_PYTHON_EXEC=${VENV_PATH}/bin/python
|
||||
|
|
@ -36,58 +38,61 @@ VENV_REPO_PATH=${VENV_PATH}/repo
|
|||
VENV_MULTILINGUAL_MARKDOWN_PATH=${VENV_PATH}/multilang_md.py
|
||||
#POETRY_PATH=~/.local/bin/poetry
|
||||
POETRY_PATH=${VENV_PATH}/bin/poetry
|
||||
POETRY_VERSION=1.5.1
|
||||
|
||||
echo "Python path version home"
|
||||
echo ${PYENV_VERSION_PATH}
|
||||
echo "Python path version local"
|
||||
echo ${LOCAL_PYTHON_EXEC}
|
||||
if [[ ! -n "${DOCKER_BUILD}" ]]; then
|
||||
echo "Python path version home"
|
||||
echo ${PYENV_VERSION_PATH}
|
||||
echo "Python path version local"
|
||||
echo ${LOCAL_PYTHON_EXEC}
|
||||
|
||||
if [[ ! -d "${PYENV_PATH}" ]]; then
|
||||
echo -e "\n---- Installing pyenv in ${PYENV_PATH} ----"
|
||||
# export PYENV_GIT_TAG=v2.3.35
|
||||
# To change version
|
||||
# rm ~/.pyenv to uninstall it
|
||||
curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
|
||||
if [[ ! -d "${PYENV_PATH}" ]]; then
|
||||
echo -e "\n---- Installing pyenv in ${PYENV_PATH} ----"
|
||||
# export PYENV_GIT_TAG=v2.3.35
|
||||
# To change version
|
||||
# rm ~/.pyenv to uninstall it
|
||||
curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
|
||||
fi
|
||||
|
||||
echo -e "\n---- Export pyenv in ${PYENV_PATH} ----"
|
||||
export PATH="${PYENV_PATH}/bin:$PATH"
|
||||
eval "$(pyenv init -)"
|
||||
eval "$(pyenv virtualenv-init -)"
|
||||
|
||||
if [[ ! -d "${PYENV_VERSION_PATH}" ]]; then
|
||||
echo -e "\n---- Installing python ${PYTHON_VERSION} with pyenv in ${PYENV_VERSION_PATH} ----"
|
||||
yes n|pyenv install ${PYTHON_VERSION}
|
||||
if [[ $retVal -ne 0 ]]; then
|
||||
echo -e "${Red}Error${Color_Off} when installing pyenv"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
pyenv local ${PYTHON_VERSION}
|
||||
|
||||
if [[ ! -d ${VENV_PATH} ]]; then
|
||||
echo -e "\n---- Create Virtual environment Python ----"
|
||||
if [[ -e ${PYTHON_EXEC} ]]; then
|
||||
${PYTHON_EXEC} -m venv .venv
|
||||
retVal=$?
|
||||
if [[ $retVal -ne 0 ]]; then
|
||||
echo "Virtual environment, error when creating .venv"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "Missing pyenv, please refer installation guide."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
source ./.venv/bin/activate
|
||||
else
|
||||
mkdir .venv
|
||||
fi
|
||||
|
||||
echo -e "\n---- Export pyenv in ${PYENV_PATH} ----"
|
||||
export PATH="${PYENV_PATH}/bin:$PATH"
|
||||
eval "$(pyenv init -)"
|
||||
eval "$(pyenv virtualenv-init -)"
|
||||
|
||||
if [[ ! -d "${PYENV_VERSION_PATH}" ]]; then
|
||||
echo -e "\n---- Installing python ${PYTHON_VERSION} with pyenv in ${PYENV_VERSION_PATH} ----"
|
||||
yes n|pyenv install ${PYTHON_VERSION}
|
||||
if [[ $retVal -ne 0 ]]; then
|
||||
echo -e "${Red}Error${Color_Off} when installing pyenv"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
pyenv local ${PYTHON_VERSION}
|
||||
|
||||
if [[ ! -d ${VENV_PATH} ]]; then
|
||||
echo -e "\n---- Create Virtual environment Python ----"
|
||||
if [[ -e ${PYTHON_EXEC} ]]; then
|
||||
${PYTHON_EXEC} -m venv .venv
|
||||
retVal=$?
|
||||
if [[ $retVal -ne 0 ]]; then
|
||||
echo "Virtual environment, error when creating .venv"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "Missing pyenv, please refer installation guide."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
source ./.venv/bin/activate
|
||||
|
||||
#if [[ ! -d "${POETRY_PATH}" ]]; then
|
||||
# # Delete directory ~/.poetry and .venv to force update to new version
|
||||
# echo -e "\n---- Installing poetry ${LOCAL_PYTHON_EXEC} for reliable python package ----"
|
||||
# # TODO self update poetry with `poetry self update ${POETRY_VERSION}`
|
||||
# curl -sSL https://install.python-poetry.org | POETRY_VERSION=${POETRY_VERSION} ${LOCAL_PYTHON_EXEC} - -y
|
||||
# curl -sSL https://install.python-poetry.org | POETRY_VERSION=${EL_POETRY_VERSION} ${LOCAL_PYTHON_EXEC} - -y
|
||||
#fi
|
||||
|
||||
# Install git-repo if missing
|
||||
|
|
@ -113,20 +118,20 @@ ${VENV_PATH}/bin/pip install --upgrade pip
|
|||
|
||||
# Delete artifacts created by pip, cause error in next "poetry install"
|
||||
if [[ ! -f "${POETRY_PATH}" ]]; then
|
||||
${VENV_PATH}/bin/pip install poetry==${POETRY_VERSION}
|
||||
${VENV_PATH}/bin/pip install poetry==${EL_POETRY_VERSION}
|
||||
${VENV_PATH}/bin/poetry --version
|
||||
# Fix broken poetry by installing ignored dependence
|
||||
# ${VENV_PATH}/bin/pip install vatnumber
|
||||
# ${VENV_PATH}/bin/pip install suds-jurko
|
||||
# ${VENV_PATH}/bin/poetry lock --no-update
|
||||
${VENV_PATH}/bin/poetry install
|
||||
# To fix keyring problem when installation is blocked, use
|
||||
export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
|
||||
${VENV_PATH}/bin/poetry install --no-root -vvv
|
||||
retVal=$?
|
||||
if [[ $retVal -ne 0 ]]; then
|
||||
echo "Poetry installation error."
|
||||
echo "Poetry installation error with status ${retVal}"
|
||||
exit 1
|
||||
fi
|
||||
# Fix pip installation missing package
|
||||
${VENV_PATH}/bin/pip install selenium
|
||||
fi
|
||||
|
||||
# Delete artifacts created by pip, cause error in next "poetry install"
|
||||
|
|
@ -134,4 +139,4 @@ rm -rf artifacts
|
|||
|
||||
# Link for dev
|
||||
echo -e "\n---- Add link dependency in site-packages of Python ----"
|
||||
ln -fs ${EL_HOME_ODOO}/odoo ${EL_HOME}/.venv/lib/python3.7/site-packages/
|
||||
ln -fs "${EL_HOME_ODOO}/odoo" "${EL_HOME}/.venv/lib/python${PYTHON_VERSION_MAJOR}/site-packages/"
|
||||
|
|
|
|||
|
|
@ -5,6 +5,9 @@
|
|||
Red='\033[0;31m' # Red
|
||||
Color_Off='\033[0m' # Text Reset
|
||||
|
||||
echo ""
|
||||
echo "RUN ./script/install/install_locally.sh"
|
||||
echo ""
|
||||
./script/install/install_locally.sh
|
||||
retVal=$?
|
||||
if [[ $retVal -ne 0 ]]; then
|
||||
|
|
@ -13,6 +16,9 @@ if [[ $retVal -ne 0 ]]; then
|
|||
fi
|
||||
|
||||
# Update git-repo
|
||||
echo ""
|
||||
echo "RUN ./script/manifest/update_manifest_local_dev.sh"
|
||||
echo ""
|
||||
./script/manifest/update_manifest_local_dev.sh
|
||||
retVal=$?
|
||||
if [[ $retVal -ne 0 ]]; then
|
||||
|
|
|
|||
|
|
@ -7,5 +7,4 @@
|
|||
|
||||
# Update git-repo
|
||||
./.venv/repo init -u https://github.com/ERPLibre/ERPLibre -b $(git rev-parse --verify HEAD) -m ${EL_MANIFEST_DEV}
|
||||
#./.venv/repo sync --force-sync
|
||||
./.venv/repo sync --force-sync -v
|
||||
./.venv/repo sync -v
|
||||
|
|
|
|||
|
|
@ -8,7 +8,13 @@
|
|||
git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose &
|
||||
DAEMON_PID=$!
|
||||
|
||||
./.venv/repo init -u git://127.0.0.1:9418/ -b $(git rev-parse --verify HEAD) -m ${EL_MANIFEST_DEV} "$@"
|
||||
./.venv/repo sync -v --force-sync -m ${EL_MANIFEST_DEV}
|
||||
if [ -L "$EL_MANIFEST_DEV" ]; then
|
||||
MANIFEST_TARGET=$(readlink -f "$EL_MANIFEST_DEV")
|
||||
else
|
||||
MANIFEST_TARGET="$EL_MANIFEST_DEV"
|
||||
fi
|
||||
|
||||
./.venv/repo init -u git://127.0.0.1:9418/ -b $(git rev-parse --verify HEAD) -m ${MANIFEST_TARGET} "$@"
|
||||
./.venv/repo sync -v -m ${MANIFEST_TARGET}
|
||||
|
||||
kill ${DAEMON_PID}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,13 @@
|
|||
git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose &
|
||||
DAEMON_PID=$!
|
||||
|
||||
./.venv/repo init -u git://127.0.0.1:9418/ -b $(git rev-parse --verify HEAD) -m ${EL_MANIFEST_DEV} -g base,code_generator
|
||||
./.venv/repo sync -v --force-sync -m ${EL_MANIFEST_DEV}
|
||||
if [ -L "$EL_MANIFEST_DEV" ]; then
|
||||
MANIFEST_TARGET=$(readlink -f "$EL_MANIFEST_DEV")
|
||||
else
|
||||
MANIFEST_TARGET="$EL_MANIFEST_DEV"
|
||||
fi
|
||||
|
||||
./.venv/repo init -u git://127.0.0.1:9418/ -b $(git rev-parse --verify HEAD) -m ${MANIFEST_TARGET} -g base,code_generator
|
||||
./.venv/repo sync -v -m ${MANIFEST_TARGET}
|
||||
|
||||
kill ${DAEMON_PID}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,13 @@
|
|||
git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose &
|
||||
DAEMON_PID=$!
|
||||
|
||||
./.venv/repo init -u git://127.0.0.1:9418/ -b $(git rev-parse --verify HEAD) -m ${EL_MANIFEST_PROD}
|
||||
./.venv/repo sync -v -m ${EL_MANIFEST_PROD}
|
||||
if [ -L "$EL_MANIFEST_DEV" ]; then
|
||||
MANIFEST_TARGET=$(readlink -f "EL_MANIFEST_PROD")
|
||||
else
|
||||
MANIFEST_TARGET="$EL_MANIFEST_DEV"
|
||||
fi
|
||||
|
||||
./.venv/repo init -u git://127.0.0.1:9418/ -b $(git rev-parse --verify HEAD) -m ${MANIFEST_TARGET}
|
||||
./.venv/repo sync -v -m ${MANIFEST_TARGET}
|
||||
|
||||
kill ${DAEMON_PID}
|
||||
|
|
|
|||
|
|
@ -7,5 +7,4 @@
|
|||
|
||||
# Update git-repo
|
||||
./.venv/repo init -u https://github.com/ERPLibre/ERPLibre -b $(git rev-parse --verify HEAD)
|
||||
#./.venv/repo sync --force-sync
|
||||
./.venv/repo sync -v
|
||||
|
|
|
|||
|
|
@ -8,6 +8,6 @@ Color_Off='\033[0m' # Text Reset
|
|||
retVal=$?
|
||||
if [[ $retVal -ne 0 ]]; then
|
||||
echo -e "${Red}Error${Color_Off} ./script/poetry/poetry_add_build_dependency.sh"
|
||||
cat ./.venv/build_dependency.txt
|
||||
# cat ./.venv/build_dependency.txt
|
||||
exit 1
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -8,8 +8,6 @@ do
|
|||
echo -e "Actual version $line"
|
||||
sed -i -e "s/$line/$1/g" ./.python-version
|
||||
sed -i -e "s/$line/$1/g" ./docker/Dockerfile.base
|
||||
sed -i -e "s/$line/$1/g" ./docker/python-versions.txt
|
||||
sed -i -e "s/$line/$1/g" ./script/install/install_locally.sh
|
||||
sed -i -e "s/$line/$1/g" ./script/install/install_OSX_dependency.sh
|
||||
sed -i -e "s/$line/$1/g" ./pyproject.toml
|
||||
done < "$input"
|
||||
|
|
|
|||
106
script/version/get_version.py
Executable file
106
script/version/get_version.py
Executable file
|
|
@ -0,0 +1,106 @@
|
|||
#!/usr/bin/env python3
|
||||
# © 2021-2024 TechnoLibre (http://www.technolibre.ca)
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
|
||||
|
||||
import argparse
|
||||
import logging
|
||||
import json
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
import time
|
||||
|
||||
logging.basicConfig(level=os.environ.get("LOGLEVEL", "INFO"))
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
VERSION_DATA_FILE = os.path.join("conf", "supported_version_erplibre.json")
|
||||
|
||||
|
||||
def get_config():
|
||||
"""Parse command line arguments, extracting the config file name,
|
||||
returning the union of config file and command line arguments
|
||||
|
||||
:return: dict of config file settings and command line arguments
|
||||
"""
|
||||
parser = argparse.ArgumentParser(
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
description=f"""\
|
||||
Change environnement from supported version, check file {VERSION_DATA_FILE}.
|
||||
|
||||
""",
|
||||
epilog="""\
|
||||
""",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-l",
|
||||
"--list",
|
||||
action="store_true",
|
||||
help="List all supported version.",
|
||||
)
|
||||
# parser.add_argument(
|
||||
# "--python_version",
|
||||
# help="Select the python version.",
|
||||
# )
|
||||
# parser.add_argument(
|
||||
# "--poetry_version",
|
||||
# help="Select the poetry version.",
|
||||
# )
|
||||
parser.add_argument(
|
||||
"--odoo_version",
|
||||
help="Select the odoo version.",
|
||||
)
|
||||
# parser.add_argument(
|
||||
# "--erplibre_version",
|
||||
# help="Select the erplibre version.",
|
||||
# )
|
||||
args = parser.parse_args()
|
||||
|
||||
return args
|
||||
|
||||
|
||||
def main():
|
||||
die(
|
||||
not os.path.isfile(VERSION_DATA_FILE),
|
||||
f"Missing {VERSION_DATA_FILE} path, are you sure you run this"
|
||||
" script at root of the project?",
|
||||
)
|
||||
|
||||
config = get_config()
|
||||
|
||||
with open(VERSION_DATA_FILE) as txt:
|
||||
data_version = json.load(txt)
|
||||
|
||||
# detect no argument
|
||||
# if (
|
||||
# not config.python_version
|
||||
# or not config.poetry_version
|
||||
# or not config.odoo_version
|
||||
# or not config.erplibre_version
|
||||
# ):
|
||||
if not config.odoo_version:
|
||||
config.list = True
|
||||
|
||||
if config.list:
|
||||
for key, value in data_version.items():
|
||||
print(f"{key}: {value}")
|
||||
|
||||
if config.odoo_version:
|
||||
for key, value in data_version.items():
|
||||
if value.get("odoo_version") == config.odoo_version:
|
||||
print(
|
||||
f"{value.get('odoo_version')}\n"
|
||||
f"{value.get('poetry_version')}\n"
|
||||
f"{value.get('python_version')}\n"
|
||||
f"{key}\n"
|
||||
)
|
||||
|
||||
|
||||
def die(cond, message, code=1):
|
||||
if cond:
|
||||
print(message, file=sys.stderr)
|
||||
sys.exit(code)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
723
script/version/update_env_version.py
Executable file
723
script/version/update_env_version.py
Executable file
|
|
@ -0,0 +1,723 @@
|
|||
#!/usr/bin/env python3
|
||||
# © 2021-2024 TechnoLibre (http://www.technolibre.ca)
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
|
||||
|
||||
# This script need only basic importation
|
||||
import argparse
|
||||
import logging
|
||||
import json
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
import time
|
||||
import subprocess
|
||||
|
||||
logging.basicConfig(level=os.environ.get("LOGLEVEL", "INFO"))
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
PROJECT_NAME = os.path.basename(os.getcwd())
|
||||
VERSION_DATA_FILE = os.path.join("conf", "supported_version_erplibre.json")
|
||||
VERSION_PYTHON_FILE = os.path.join(".python-version")
|
||||
VERSION_ERPLIBRE_FILE = os.path.join(".erplibre-version")
|
||||
VERSION_ODOO_FILE = os.path.join(".odoo-version")
|
||||
VERSION_POETRY_FILE = os.path.join(".poetry-version")
|
||||
VENV_FILE = os.path.join(".venv")
|
||||
ADDONS_PATH = os.path.join("addons")
|
||||
VENV_TEMPLATE_FILE = ".venv.%s"
|
||||
MANIFEST_FILE = "default.dev.xml"
|
||||
MANIFEST_TEMPLATE_FILE = "default.dev.odoo%s.xml"
|
||||
MANIFEST_FILE_PATH = os.path.join(".", "manifest", MANIFEST_FILE)
|
||||
PYPROJECT_FILE = os.path.join("pyproject.toml")
|
||||
PYPROJECT_TEMPLATE_FILE = "pyproject.%s.toml"
|
||||
POETRY_LOCK_FILE = os.path.join("poetry.lock")
|
||||
POETRY_LOCK_TEMPLATE_FILE = "poetry.%s.lock"
|
||||
PIP_REQUIREMENT_FILE = os.path.join("requirements.txt")
|
||||
PIP_REQUIREMENT_TEMPLATE_FILE = "requirements.%s.txt"
|
||||
PIP_IGNORE_REQUIREMENT_FILE = os.path.join(
|
||||
"requirement", "ignore_requirements.txt"
|
||||
)
|
||||
PIP_IGNORE_REQUIREMENT_TEMPLATE_FILE = "ignore_requirements.%s.txt"
|
||||
ADDONS_TEMPLATE_FILE = "addons.odoo%s"
|
||||
ERPLIBRE_TEMPLATE_VERSION = "odoo%s_python%s"
|
||||
|
||||
|
||||
def get_config():
|
||||
"""Parse command line arguments, extracting the config file name,
|
||||
returning the union of config file and command line arguments
|
||||
|
||||
:return: dict of config file settings and command line arguments
|
||||
"""
|
||||
parser = argparse.ArgumentParser(
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
description=f"""\
|
||||
Change environnement from supported version, check file {VERSION_DATA_FILE}
|
||||
""",
|
||||
epilog="""\
|
||||
""",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-l",
|
||||
"--list",
|
||||
action="store_true",
|
||||
help="List all supported version.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--python_version",
|
||||
help="Select the python version.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--poetry_version",
|
||||
help="Select the poetry version.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--odoo_version",
|
||||
help="Select the odoo version.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--erplibre_version",
|
||||
help="Select the erplibre version.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--erplibre_package",
|
||||
help=(
|
||||
"Select the erplibre package to configure environnement only for"
|
||||
" this package."
|
||||
),
|
||||
)
|
||||
parser.add_argument(
|
||||
"--install",
|
||||
action="store_true",
|
||||
help="Install environnement.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--switch",
|
||||
action="store_true",
|
||||
help="Will only update the system by switch environnement.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--install_dev",
|
||||
action="store_true",
|
||||
help="Install developer environment.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--force_install",
|
||||
action="store_true",
|
||||
help="Will erase .venv and create symbolic link after installation.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--force_repo",
|
||||
action="store_true",
|
||||
help="Will erase all repo before install it.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--force",
|
||||
action="store_true",
|
||||
help="Force all, include force_install, force_repo.",
|
||||
)
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.force:
|
||||
args.force_install = True
|
||||
args.force_repo = True
|
||||
args.is_in_installation = args.install or args.install_dev
|
||||
args.is_in_switch = args.switch
|
||||
if not (args.install or args.install_dev) and args.force_install:
|
||||
args.force_install = False
|
||||
|
||||
return args
|
||||
|
||||
|
||||
class Update:
|
||||
def __init__(self):
|
||||
self.execute_log = []
|
||||
self.config = get_config()
|
||||
self.data_version = None
|
||||
self.odoo_version = None
|
||||
self.python_version = None
|
||||
self.detected_version_erplibre = None
|
||||
self.new_version_erplibre = None
|
||||
self.new_version_odoo = None
|
||||
self.new_version_python = None
|
||||
self.new_version_poetry = None
|
||||
self.expected_venv_name = None
|
||||
self.expected_manifest_name = None
|
||||
self.expected_manifest_path = None
|
||||
self.expected_pyproject_name = None
|
||||
self.expected_pyproject_path = None
|
||||
self.expected_poetry_lock_name = None
|
||||
self.expected_poetry_lock_path = None
|
||||
self.do_backup_venv = False
|
||||
|
||||
def check_version_data(self):
|
||||
die(
|
||||
not os.path.isfile(VERSION_DATA_FILE),
|
||||
f"Missing {VERSION_DATA_FILE} path, are you sure you run this"
|
||||
" script at root of the project?",
|
||||
)
|
||||
|
||||
with open(VERSION_DATA_FILE) as txt:
|
||||
self.data_version = json.load(txt)
|
||||
|
||||
if self.config.list:
|
||||
for key, value in self.data_version.items():
|
||||
print(f"{key}: {value}")
|
||||
|
||||
def detect_version(self):
|
||||
# Detect actual version
|
||||
if not os.path.exists(VERSION_PYTHON_FILE) or not os.path.exists(
|
||||
VERSION_ODOO_FILE
|
||||
):
|
||||
_logger.info("New installation, cannot detect actual version.")
|
||||
return False
|
||||
with open(VERSION_PYTHON_FILE) as txt:
|
||||
self.python_version = txt.read().strip()
|
||||
with open(VERSION_ODOO_FILE) as txt:
|
||||
self.odoo_version = txt.read().strip()
|
||||
|
||||
# Show actual version
|
||||
_logger.info(f"Python version: {self.python_version}")
|
||||
_logger.info(f"Odoo version: {self.odoo_version}")
|
||||
erplibre_version_to_search = ERPLIBRE_TEMPLATE_VERSION % (
|
||||
self.odoo_version,
|
||||
self.python_version,
|
||||
)
|
||||
|
||||
# Detect key actual version
|
||||
for key, value in self.data_version.items():
|
||||
if (
|
||||
value.get("odoo_version") == self.odoo_version
|
||||
and value.get("python_version") == self.python_version
|
||||
):
|
||||
self.detected_version_erplibre = key
|
||||
_logger.info(
|
||||
f"Detected erplibre version {erplibre_version_to_search}"
|
||||
)
|
||||
break
|
||||
if not self.detected_version_erplibre:
|
||||
_logger.error(
|
||||
f"The actual version '{erplibre_version_to_search}' is not"
|
||||
f" configured into '{VERSION_DATA_FILE}'. Please update this"
|
||||
" file before continue."
|
||||
)
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
def validate_version(self):
|
||||
dct_data_version = {}
|
||||
if (
|
||||
not self.config.python_version
|
||||
and not self.config.poetry_version
|
||||
and not self.config.odoo_version
|
||||
and not self.config.erplibre_version
|
||||
and not self.config.erplibre_package
|
||||
):
|
||||
dct_data_version = {}
|
||||
if self.detected_version_erplibre:
|
||||
dct_data_version = self.data_version.get(
|
||||
self.detected_version_erplibre
|
||||
)
|
||||
if not dct_data_version:
|
||||
# Take default version
|
||||
default_data = [
|
||||
key
|
||||
for key, value in self.data_version.items()
|
||||
if value.get("default")
|
||||
]
|
||||
if not default_data:
|
||||
_logger.error(
|
||||
"Cannot find default version into file"
|
||||
f" {VERSION_DATA_FILE}"
|
||||
)
|
||||
sys.exit(1)
|
||||
dct_data_version = self.data_version.get(default_data[0])
|
||||
|
||||
has_new_version = False
|
||||
if self.config.erplibre_version:
|
||||
data = self.data_version.get(self.config.erplibre_version)
|
||||
if not data:
|
||||
_logger.error(
|
||||
"Missing data for erplibre_version"
|
||||
f" {self.config.erplibre_version}"
|
||||
)
|
||||
sys.exit(1)
|
||||
self.new_version_odoo = data.get("odoo_version")
|
||||
self.new_version_python = data.get("python_version")
|
||||
self.new_version_poetry = data.get("poetry_version")
|
||||
has_new_version = True
|
||||
if self.config.python_version:
|
||||
self.new_version_python = self.config.python_version
|
||||
has_new_version = True
|
||||
if self.config.poetry_version:
|
||||
self.new_version_poetry = self.config.poetry_version
|
||||
has_new_version = True
|
||||
if self.config.odoo_version:
|
||||
self.new_version_odoo = self.config.odoo_version
|
||||
has_new_version = True
|
||||
if has_new_version:
|
||||
self.new_version_erplibre = ERPLIBRE_TEMPLATE_VERSION % (
|
||||
self.new_version_odoo,
|
||||
self.new_version_python,
|
||||
)
|
||||
else:
|
||||
_logger.info(
|
||||
"No difference between detected version and new version:"
|
||||
f" {self.detected_version_erplibre}"
|
||||
)
|
||||
if not dct_data_version:
|
||||
_logger.error("Cannot find dct_data_version")
|
||||
else:
|
||||
self.new_version_erplibre = ERPLIBRE_TEMPLATE_VERSION % (
|
||||
dct_data_version.get("odoo_version"),
|
||||
dct_data_version.get("python_version"),
|
||||
)
|
||||
self.new_version_odoo = dct_data_version.get("odoo_version")
|
||||
self.new_version_python = dct_data_version.get(
|
||||
"python_version"
|
||||
)
|
||||
self.new_version_poetry = dct_data_version.get(
|
||||
"poetry_version"
|
||||
)
|
||||
# self.new_version_erplibre = self.detected_version_erplibre
|
||||
# self.new_version_odoo = self.odoo_version
|
||||
# self.new_version_python = self.python_version
|
||||
# TODO needs to detect actual poetry? No?
|
||||
|
||||
self.expected_venv_name = (
|
||||
VENV_TEMPLATE_FILE % self.new_version_erplibre
|
||||
)
|
||||
self.expected_manifest_name = (
|
||||
MANIFEST_TEMPLATE_FILE % self.new_version_odoo
|
||||
)
|
||||
self.expected_manifest_path = os.path.join(
|
||||
".", "manifest", self.expected_manifest_name
|
||||
)
|
||||
self.expected_pyproject_name = (
|
||||
PYPROJECT_TEMPLATE_FILE % self.new_version_erplibre
|
||||
)
|
||||
self.expected_pyproject_path = os.path.join(
|
||||
".", "requirement", self.expected_pyproject_name
|
||||
)
|
||||
|
||||
self.expected_poetry_lock_name = (
|
||||
POETRY_LOCK_TEMPLATE_FILE % self.new_version_erplibre
|
||||
)
|
||||
self.expected_poetry_lock_path = os.path.join(
|
||||
".", "requirement", self.expected_poetry_lock_name
|
||||
)
|
||||
self.expected_pip_requirement_name = (
|
||||
PIP_REQUIREMENT_TEMPLATE_FILE % self.new_version_erplibre
|
||||
)
|
||||
self.expected_addons_name = (
|
||||
ADDONS_TEMPLATE_FILE % self.new_version_odoo
|
||||
)
|
||||
self.expected_pip_requirement_path = os.path.join(
|
||||
".", "requirement", self.expected_pip_requirement_name
|
||||
)
|
||||
self.expected_pip_ignore_requirement_name = (
|
||||
PIP_IGNORE_REQUIREMENT_TEMPLATE_FILE % self.new_version_erplibre
|
||||
)
|
||||
self.expected_pip_ignore_requirement_path = os.path.join(
|
||||
".", "requirement", self.expected_pip_ignore_requirement_name
|
||||
)
|
||||
|
||||
if self.config.erplibre_package:
|
||||
_logger.warning("Not supported erplibre_package configuration")
|
||||
|
||||
def validate_environment(self):
|
||||
status = True
|
||||
# Validate .venv
|
||||
status &= self.update_link_file(
|
||||
"Virtual environnement",
|
||||
VENV_FILE,
|
||||
self.expected_venv_name,
|
||||
is_directory=True,
|
||||
do_delete_source=self.config.install_dev
|
||||
or self.config.force_install,
|
||||
)
|
||||
venv_exist = os.path.exists(VENV_FILE)
|
||||
if not venv_exist and not self.config.install_dev:
|
||||
_logger.info("Relaunch this script with --install_dev argument.")
|
||||
# Validate Git repo
|
||||
status &= self.update_link_file(
|
||||
"Git repositories",
|
||||
MANIFEST_FILE_PATH,
|
||||
self.expected_manifest_path,
|
||||
do_delete_source=True,
|
||||
)
|
||||
# Validate Poetry and pip
|
||||
status &= self.update_link_file(
|
||||
"Poetry project toml",
|
||||
PYPROJECT_FILE,
|
||||
self.expected_pyproject_path,
|
||||
do_delete_source=True,
|
||||
)
|
||||
status &= self.update_link_file(
|
||||
"Poetry lock",
|
||||
POETRY_LOCK_FILE,
|
||||
self.expected_poetry_lock_path,
|
||||
do_delete_source=True,
|
||||
)
|
||||
status &= self.update_link_file(
|
||||
"Pip requirement.txt",
|
||||
PIP_REQUIREMENT_FILE,
|
||||
self.expected_pip_requirement_path,
|
||||
do_delete_source=True,
|
||||
)
|
||||
status &= self.update_link_file(
|
||||
"Pip ignore_requirement.txt",
|
||||
PIP_IGNORE_REQUIREMENT_FILE,
|
||||
self.expected_pip_ignore_requirement_path,
|
||||
do_delete_source=True,
|
||||
)
|
||||
if not os.path.isdir(self.expected_addons_name):
|
||||
status = False
|
||||
# status &= self.update_link_file(
|
||||
# "Directory 'addons'",
|
||||
# ADDONS_PATH,
|
||||
# self.expected_addons_name,
|
||||
# is_directory=True,
|
||||
# do_delete_source=self.config.install_dev
|
||||
# or self.config.force_install,
|
||||
# )
|
||||
return status
|
||||
|
||||
def update_environment(self):
|
||||
status = True
|
||||
do_action = bool(any([self.config.install_dev, self.config.install]))
|
||||
if self.do_backup_venv and do_action:
|
||||
venv_backup_name = (
|
||||
f".venv_backup_{time.strftime('%Yy%mm%dd-%Hh%Mm%Ss')}"
|
||||
)
|
||||
shutil.move(VENV_FILE, venv_backup_name)
|
||||
self.execute_log.append(f"Move .venv to backup {venv_backup_name}")
|
||||
if self.config.force_repo:
|
||||
# TODO add script to check difference before erase all
|
||||
os.system("./script/git/clean_repo_manifest.sh")
|
||||
self.execute_log.append(
|
||||
f"Clear all repo from manifest, everything is deleted"
|
||||
)
|
||||
if self.config.force_install:
|
||||
os.system(f"rm -rf ./{VENV_FILE}")
|
||||
self.execute_log.append(f"Remove ./{VENV_FILE}")
|
||||
|
||||
# Always overwrite version
|
||||
with open(VERSION_PYTHON_FILE, "w") as txt:
|
||||
txt.write(self.new_version_python)
|
||||
with open(VERSION_ERPLIBRE_FILE, "w") as txt:
|
||||
txt.write(self.new_version_erplibre)
|
||||
with open(VERSION_ODOO_FILE, "w") as txt:
|
||||
txt.write(self.new_version_odoo)
|
||||
with open(VERSION_POETRY_FILE, "w") as txt:
|
||||
txt.write(self.new_version_poetry)
|
||||
|
||||
if self.config.is_in_installation or self.config.is_in_switch:
|
||||
addons_path_with_version = f"addons.odoo{self.new_version_odoo}"
|
||||
# To support multiple addons directory, change name before run git repo
|
||||
for addons_path in os.listdir("."):
|
||||
if (
|
||||
addons_path.startswith("addons")
|
||||
and addons_path != addons_path_with_version
|
||||
):
|
||||
os.rename(addons_path, addons_path + "TEMP")
|
||||
|
||||
# TODO need to be force if installation path is all good, return True
|
||||
if self.config.is_in_installation:
|
||||
_logger.info("Installation.")
|
||||
status = self.install_erplibre(
|
||||
install_system=self.config.install,
|
||||
install_dev=self.config.install_dev,
|
||||
)
|
||||
|
||||
# Re-update if launch installation
|
||||
self._update_directory_to_link(
|
||||
VENV_FILE, self.expected_venv_name
|
||||
)
|
||||
# self._update_directory_to_link(ADDONS_PATH, self.expected_addons_name)
|
||||
elif self.config.is_in_switch:
|
||||
_logger.info("Switch")
|
||||
self.execute_log.append(f"System update")
|
||||
status = os.system(
|
||||
"./script/manifest/update_manifest_local_dev.sh"
|
||||
)
|
||||
|
||||
# To support multiple addons directory, remove TEMP
|
||||
for addons_path in os.listdir("."):
|
||||
if (
|
||||
addons_path.startswith("addons")
|
||||
and addons_path != addons_path_with_version
|
||||
and addons_path.endswith("TEMP")
|
||||
):
|
||||
os.rename(addons_path, addons_path[:-4])
|
||||
for addons_path in os.listdir("."):
|
||||
if addons_path.startswith("addons"):
|
||||
# In same time, force to create addons if not existing
|
||||
addons_dir_path = os.path.join(addons_path, "addons")
|
||||
if not os.path.isdir(addons_dir_path):
|
||||
os.makedirs(addons_dir_path)
|
||||
|
||||
# Force create addons link
|
||||
if os.path.isdir(ADDONS_PATH):
|
||||
os.remove(ADDONS_PATH)
|
||||
os.symlink(addons_path_with_version, ADDONS_PATH)
|
||||
return status
|
||||
|
||||
def _update_directory_to_link(self, dir_to_check, link_name):
|
||||
actuel_venv_is_symlink = os.path.islink(dir_to_check)
|
||||
if not actuel_venv_is_symlink:
|
||||
# Move it and create a symlink
|
||||
shutil.move(dir_to_check, link_name)
|
||||
os.symlink(link_name, dir_to_check)
|
||||
msg = f"Create symbolic link {link_name} to {dir_to_check}"
|
||||
_logger.info(msg)
|
||||
self.execute_log.append(msg)
|
||||
|
||||
def print_log(self):
|
||||
if not self.execute_log:
|
||||
_logger.info("Nothing to do")
|
||||
return
|
||||
_logger.info("List of execution log :")
|
||||
for log_info in self.execute_log:
|
||||
_logger.info("\t" + log_info)
|
||||
|
||||
def pycharm_update(self):
|
||||
pycharm_is_installed = os.path.exists(".idea")
|
||||
if not pycharm_is_installed or not self.execute_log:
|
||||
return
|
||||
os.system("./.venv/bin/python ./script/ide/pycharm_configuration.py --init")
|
||||
|
||||
def install_erplibre(self, install_system=False, install_dev=False):
|
||||
status = 0
|
||||
|
||||
if install_system:
|
||||
self.execute_log.append(f"System installation")
|
||||
status = os.system("./script/install/install_dev.sh")
|
||||
if install_dev and not status:
|
||||
self.execute_log.append(f"Dev installation")
|
||||
status = os.system("./script/install/install_locally_dev.sh")
|
||||
return status
|
||||
|
||||
def update_link_file(
|
||||
self,
|
||||
component_name,
|
||||
source_file,
|
||||
target_file,
|
||||
is_directory=False,
|
||||
do_delete_source=False,
|
||||
):
|
||||
"""Call to create a symbolic link
|
||||
0. check if file is symlink or file/directory
|
||||
1.
|
||||
Case 1 : origin file exist, need to be switched by a symlink and rename it;
|
||||
Case 2 : no file, check if new version exist and symlink it;
|
||||
Case 3 : source file is symlink, and wrong direction, erase it. If new version exist, symlink it.
|
||||
Case 4: origin file exist, but it's a wrong symlink
|
||||
Good case : source file is symlink, and good redirection.
|
||||
"""
|
||||
# TODO support case symlink is invalid
|
||||
status = False
|
||||
if not source_file or not target_file:
|
||||
_logger.error(
|
||||
f"{component_name}:Source file or target file is empty."
|
||||
)
|
||||
source_file_exist = os.path.exists(source_file)
|
||||
source_file_is_symlink = os.path.islink(source_file)
|
||||
target_file_exist = os.path.exists(target_file)
|
||||
if not target_file_exist:
|
||||
_logger.warning(f"'{target_file}' not exist.")
|
||||
do_symlink = False
|
||||
# Case 4
|
||||
if source_file_is_symlink and not source_file_exist:
|
||||
_logger.error(
|
||||
f"{component_name}:File '{source_file}' is a wrong symlink,"
|
||||
" delete it."
|
||||
)
|
||||
os.system(f"rm {source_file}")
|
||||
self.execute_log.append(
|
||||
f"{component_name}:Delete file {source_file}"
|
||||
)
|
||||
source_file_is_symlink = False
|
||||
|
||||
# Case 1
|
||||
if source_file_exist:
|
||||
if not source_file_is_symlink:
|
||||
# Check if source type
|
||||
if is_directory:
|
||||
source_file_is_directory = os.path.isdir(source_file)
|
||||
if not source_file_is_directory:
|
||||
_logger.error(
|
||||
f"{component_name} - Source '{source_file}' is"
|
||||
" expected to be a directory and it's not."
|
||||
)
|
||||
os.system(f"ls -lha {source_file}")
|
||||
sys.exit(1)
|
||||
else:
|
||||
do_switch_origin_sim = True
|
||||
else:
|
||||
source_file_is_file = os.path.isfile(source_file)
|
||||
if not source_file_is_file:
|
||||
_logger.error(
|
||||
f"{component_name} - Source '{source_file}' is"
|
||||
" expected to be a file and it's not."
|
||||
)
|
||||
os.system(f"ls -lha {source_file}")
|
||||
sys.exit(1)
|
||||
else:
|
||||
do_switch_origin_sim = True
|
||||
if do_switch_origin_sim:
|
||||
# Check if not erase an existing
|
||||
if target_file_exist:
|
||||
# Create a backup
|
||||
new_target_file = f"{target_file}.backup_{time.strftime('%Yy%mm%dd-%Hh%Mm%Ss')}"
|
||||
else:
|
||||
new_target_file = target_file
|
||||
# Move it and create a symlink
|
||||
shutil.move(source_file, new_target_file)
|
||||
do_symlink = True
|
||||
else:
|
||||
# Case 3
|
||||
# Is symlink
|
||||
lst_path_source = [
|
||||
a for a in os.path.split(remove_dot_path(source_file)) if a
|
||||
]
|
||||
ref_symlink_source = os.readlink(source_file).strip("/")
|
||||
lst_path_symlink_source = [
|
||||
a
|
||||
for a in os.path.split(remove_dot_path(ref_symlink_source))
|
||||
if a
|
||||
]
|
||||
if (
|
||||
len(lst_path_source) != len(lst_path_symlink_source)
|
||||
and len(lst_path_symlink_source) == 1
|
||||
):
|
||||
ref_symlink_source_from_root = os.path.join(
|
||||
".",
|
||||
os.sep.join(lst_path_source[:-1]),
|
||||
ref_symlink_source,
|
||||
)
|
||||
else:
|
||||
ref_symlink_source_from_root = ref_symlink_source
|
||||
do_delete_source = do_delete_source or os.path.exists(
|
||||
target_file
|
||||
)
|
||||
if ref_symlink_source_from_root == target_file:
|
||||
_logger.info(
|
||||
f"{component_name}:The system configuration is good."
|
||||
)
|
||||
status = True
|
||||
elif do_delete_source:
|
||||
_logger.warning(
|
||||
f"{component_name}:The file '{source_file}' link"
|
||||
f" '{ref_symlink_source_from_root}' will be delete and"
|
||||
f" link to '{target_file}'."
|
||||
)
|
||||
# symlink, delete it if wrong
|
||||
os.system(f"rm {source_file}")
|
||||
self.execute_log.append(
|
||||
f"{component_name}:Delete file {source_file}"
|
||||
)
|
||||
if target_file_exist:
|
||||
do_symlink = True
|
||||
else:
|
||||
_logger.warning(
|
||||
f"{component_name}:The actual link is"
|
||||
f" '{ref_symlink_source_from_root}', but expect to be"
|
||||
f" '{target_file}'."
|
||||
)
|
||||
|
||||
elif target_file_exist:
|
||||
# Case 2
|
||||
do_symlink = True
|
||||
if do_symlink:
|
||||
lst_path_target = [
|
||||
a for a in os.path.split(remove_dot_path(target_file)) if a
|
||||
]
|
||||
lst_path_source = [
|
||||
a for a in os.path.split(remove_dot_path(source_file)) if a
|
||||
]
|
||||
if len(lst_path_source) == 1:
|
||||
os.symlink(target_file, source_file)
|
||||
msg = (
|
||||
f"{component_name}:Create symbolic link {source_file} to"
|
||||
f" {target_file}"
|
||||
)
|
||||
_logger.info(msg)
|
||||
self.execute_log.append(msg)
|
||||
else:
|
||||
target_file_name = lst_path_target[-1]
|
||||
source_file_name = lst_path_source[-1]
|
||||
# TODO compare lst_path_source avec lst_path_target, si différent, faire le path
|
||||
cd_path_target = (
|
||||
"." + os.sep + os.sep.join(lst_path_target[:-1])
|
||||
)
|
||||
cmd_symlink_manifest = (
|
||||
f"cd {cd_path_target};ln -s"
|
||||
f" {target_file_name} {source_file_name};cd -"
|
||||
)
|
||||
os.system(cmd_symlink_manifest)
|
||||
msg = (
|
||||
f"{component_name}:Create symbolic link"
|
||||
f" {source_file_name} to {target_file_name} from path"
|
||||
f" {cd_path_target}"
|
||||
)
|
||||
_logger.info(msg)
|
||||
self.execute_log.append(msg)
|
||||
return status
|
||||
|
||||
|
||||
def remove_dot_path(path):
|
||||
"""
|
||||
if path is ./path/2, will return path/2
|
||||
"""
|
||||
if path.startswith("./"):
|
||||
return path[2:]
|
||||
return path
|
||||
|
||||
|
||||
def main():
|
||||
update = Update()
|
||||
_logger.info(f"Work on directory {os.getcwd()}")
|
||||
_logger.info("Get data version")
|
||||
update.check_version_data()
|
||||
|
||||
_logger.info("Detect version")
|
||||
update.detect_version()
|
||||
|
||||
_logger.info("Validate version")
|
||||
update.validate_version()
|
||||
|
||||
_logger.info("Validate environment")
|
||||
status = update.validate_environment()
|
||||
if update.config.force_install or not status:
|
||||
update.update_environment()
|
||||
update.print_log()
|
||||
|
||||
if update.config.is_in_installation:
|
||||
# Update pycharm configuration
|
||||
update.pycharm_update()
|
||||
|
||||
# Update OCB configuration
|
||||
os.system("./.venv/bin/python ./script/git/git_repo_update_group.py")
|
||||
os.system("./script/generate_config.sh")
|
||||
# TODO ignore this if installation fail
|
||||
|
||||
# TODO this cause an error at first execution, need to source ./.venv/bin/activate and rerun
|
||||
# subprocess.run(['source', './.venv/bin/activate'], shell=True)
|
||||
# subprocess.run(['make', 'config_gen_all'])
|
||||
# status = os.system(f"make config_gen_all")
|
||||
#
|
||||
# if not status:
|
||||
# print("Please run:")
|
||||
# print("source ./.venv/bin/activate")
|
||||
# print("make config_gen_all")
|
||||
|
||||
|
||||
def die(cond, message, code=1):
|
||||
if cond:
|
||||
print(message, file=sys.stderr)
|
||||
sys.exit(code)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Loading…
Reference in a new issue