* Set up CI with Azure Pipelines
[skip ci]
* Update azure-pipelines.yml for Azure Pipelines
* Update azure-pipelines.yml for Azure Pipelines
* Update azure-pipelines.yml for Azure Pipelines
* move ci file
* Update testing_ci.yml for Azure Pipelines
* update to use pytest
* update settings path
* unittests again
* Update testing_ci.yml for Azure Pipelines
* remove html report
* add backup dir
* fix name
* also install dev reqs
* fix name
* Add poppler
* add poppler utils
* Add ignore flag
* base structure for updates
* add base structure
* add settingscheck
* update docstring
* only load plugins if needed
* fix misstyping
* run migration
* check if there are open migrations
* log open migration
* add more logging
* patch in fore reloading on unload
* only run if database is ready
* check every 5 minutes
* remove non implemented feautres from desc
* add command flag to makr if cmmand runs as worker
* Add tests for migrations
* factor mmigration plan into own function
* Add print statements
* add initial migrations for tests
* remove last assertation
* cleanup migrations after run
* add flag to accept empty source code files
* the flag is enough for reporting
* fix test
* do not run migrations on sqlite3
* make sure migrations don't fail if no plan ran
* increase coverage for migration
* spell fix
* check for migrations daily
* add a migration check after plugins are installed
* make plugin urls def cleaner
* rename plugin managment endpoints
* [FR] Add API endpoint to activate plugins
Fixes#4182
* fix for api url change
* bump API version
* [FR] Simple API endpoint to change own user metadata
Fixes#3979
* add tests
* fix tests
* add owner api tests
* add debug statments
* run all tests
* disable owner endpoint test for now
* spellfix
* Move to updated Meta mixin
* [FR] Add last updated column for supplier parts
Fixes#3327
* add updated to table
* bump API version
* add missing migration
* incremetn api ;-)
* Add test for api_call
* Add coverage for LocateMixin
* no cov for no url
* make sure changed details get updated
* restructure code
* Test that changes in schedules are reflected
Fixes#4239
* Reenable ownership tests
* [BUG] Stock item ownership results in stock item being read-only
Fixes#4229
* rebuild ownership tests
* jsut test stock stuff for now
* move ownership check to Owner
* fix assertation with lazy objects
* test all of stock
* Add edit checks
* remove old tests
* run full coverage again
* fix test
* [SSO] Separate settings for local and social signup
Fixes#4166
* make registration setting configruable
* extend docstring
* add setting to settigns screen
* update check ref
* both settign most be checked
* [FR] Simplify / optimize setting loading
Cache config.yaml data on load and use cached for get_settings
Fixes#4149
* move the cache setting to config
* add docstring
* spell fix
* Add lookup where settings come from
Fixes#3982
* Fix spelling
* Move endpoints
[FR] Move download URL endpoints to API namespace
Fixes#3927
* rename endpoint ref name and update js
* update endpoint name and js
* rename endpoint and fix js
* add docstring
* Load plugin settings also from env
[BUG ]PLUGIN setting only work when set in config file
Fixes#4146
* formatting fix
* use 'INVENTREE_' prefix everyhwere for envs
* make more settings 'env'-able
* Switch variable to make it easier to debug
Fixes#3933
* rename output file
* add setting to directly generate refs
* use prod mode
* fix check
* add debug flags
* remove debug marker
* pre-safe keys
* update installer ref
* split installer steps
* split steps further
* try static adding
* remove split key add
* try dry rn again
* do not dry run keys
* fix debian 11 detection
* add ci to let install run through
* remove flags
* remove dryrun
* run on master
* query api on test
* fix missing env
* use matmair for tests
* use specific version
* remove old python first
* check python version
* add more version checks
* multiline marker for action
* add option to select python env
* set python version before running installer
* cleanup script
* use inline apt for python install
* package 3.9 by default
* remove custom python install
* add some sleeps
* fix package names
* reduce double depb definition
* set python version
* remove 3.9 requirement
* do invoke and wheel install in the right context
* fix typing for 3.8
* use var for config file if it exsists
* fix discovery
* use raw output for jq
* remove tests
* revert change in tasks.py
* add model for feed entries
* add task to update feed entries
* Add API routes
* Fix name in model
* rename model
* fix read endpoint
* reduce duplication in NewsFeed API endpoints
* reduce duplicated code
* add ui elements to index
* add missing migrations
* add ressource route
* add new model to admin
* reorder fields
* format timestamp
* make title linked
* reduce migrations to 1
* fix merge
* fix js style
* add model to ruleset
* add initial advanced installer
* add symlink
* add dist detection
* make output uniform
* switch command to use wget
leave the installer on device
* regen script
* only install if not already there
* add os/version check
Closes#3835
* regenerate script
* fix case syntax
* fix typo
* rename assets to replace installer
* Add issue template for install problems
* Add link to open issue
* Update linked file
* fix schedule registration
* add collection step for tasks
* make tasks register configurable
* extend docs
* Also run InvenTree setup in testing
* fix import loading method
* fix wrong task registration
* do not test
* do only distinct testing
* ignore import error for coverage
* add comment where feature should be
* add triggermethod for superusers
* Add plugin version warning
* switch to simple error logging
* switch import mechanism
* move import down
* reintroduce db notifications
* adding mising import
* add db entry
* Only log to DB if plugin was regsitered
* fix merge
* remove db logging
* out-of-scope: refactor plugin lookup
* lookup by settings (runtime not predefined)
* Add registry function to set state of plugin quickly
* Ensure plugin is active before assertations
* Add runtime
* add procfile
* add settings for packaging
* use heroku buildpack
* maybe a hash works?
* try brnach instead of tag or hash
* remove reference alltogether
* maybe this syntax?
* switch back to normal buildpack
* and heroku again
* try official sample
* maybe a tar?
* just git clone?
* lower version
* lower version
* switch of settings
* try this again
* maybe install python before?
* no sudo?
* just build for ubuntu?
* set runtime lower and use custom buildpack
* remove initial command
* add release command
* do not collect static while releaseing
* switch to custom backend
* Update .pkgr.yml
* new backend
* upgrade runtime version
* consolidate env
* update python version
* add debian as target
* fix os name
* extend requirements
* remove release command
* remove ssl dep
* add worker command
* add scripts
* debug listing
* make scripts executable
* use python3
* add python install
* add python as dep
* debug step
* switch to app home
* set paths right
* check local command
* remove path
* update path
* add sample install script
* more debugging
* dbg msg
* more enviroment stuff
* more dbugging
* more defined install script
* reduce function
* add debug script
* and more
* remove before
* reduce lines
* cleanup deps
* maybe this way?
* rm "
* rename env
* fix files
* use dot annotation
* ls
* add msgs
* move activation
* ref?
* use source
* use point annotation
* remove activate
* create env and add it to the enviroment
* use full paths
* move python init
* use modern python
* use version numbers for ubuntu
* add default env vars ( for now)
* use export
* use shorthand command
* add more variables
* use apphome reference in paths
* add wasyprint dependencies
* also use wheels
* add gettext for comiling messages
* add nginx setting
* remove postgres from required stack
* refactor fiel configs
* make sure parent dirs exsist
* add wheels
* move python setup again
* update packe name
* update gunicron command
* move to config
* try cleaner procfile
* use python 3 wheels
* update service def
* Add enviroment settings to packaging
* restart nginx
* remove slack
* change nginx config name
* fix styles
* set permissions on update
* Add single line install to README
* move nginx names back
* use production sample as nginx config
* fix sed statement
* cleaner nginx setup
* keep configs in config file instead of packaging index
* fix sed connamds to remove spaces
* reintroduce spaces
* Also disable debug mode
* fix file permissions
* remove unneeded commands
* readd missing spaces
* add admin user generation
* Show public ipadress in final message
* small cleanups
* Add log to setup
* remove logging
* remove logging parts
* chown all dirs
* run update command as right user already
* set path before running command
* fix permission setup
* switch right assignment
* run commands with sudo
* pass in envs
* preserve only selected enviroment
* show enviroment variables
* silence curl
* fix envs
* clean up final message
* move nginx file to variable
* make admin creation conditional
* a bit more overview for setup variables
* test if nginx is available
* unlink instead of delet
* clean up functions
* well that was dumb
* ok double dumb - now i tested it
* use config for admin generation
* fix logic
* show value - not call it
* switch functions to sh
* fix syntax
* add admin data to exposed envs
* remove keeping of admin pwd
* switch to true/false
* make nginx file location configureable
* use gunicorn instead
* fix syntax
* set base dir
* move env to seperate function
* Also use/write database settings
* use conf values if available
* format sh
* update passed envs
* fix dep
* enable installing extra packages via env (ie database backends)
* ann more logging steps
* add more debuggin steps
* get local envs
* add more debug and reorder
* more code for testing
* fix call
* Add debug msg
* turn install quiet
* fix syntax
* reduce debugging
* add log step
* add datestamp
* add marker to inv execution
* fix syntax
* add codeowner
* add svg parser
* move svg sanitation out into own file
* move allowed elements out
* add test for svg sanitation
* make allowed elements configureable
* out-of-scope: add function to check if a package is editable
* out-of-scope: move to included meta toolset for metadata discovery
* out-of-scope: make lookup safe for editable installs
* disable failing tests for sanity check
* run postgrest too
* only run problematic tests
* make paths relative
* refactor to reduce duplicate code
* remove testing restrictions again
* refactor entrypoint into helpers
* Add lookup by metadata
This is geared towards plugins packaged in pkgs that differ in name from their top module
* Make module lookup predictable in changing pkg-envs
* remove no coverage from plugin packages
* ignore coverage for production loadin
* refactor plugin collection - move assigment out
* do not cover fs errors
* test custom dir loading
* test module meta fetcher
* add a bit more safety
* do not cover sanity checkers
* add folder loading test
* ignore again for cleaner diffs for now
* ignore safety catch
* rename test
* Add test for package installs
* fix docstring name
* depreciate test for now
* Fix for out of BASE_DIR paths
* ignore catch
* remove unneeded complexity
* add testing for outside folders
* more docstrings and simpler methods
* make call simpler
* refactor import
* Add registry with all plugins
* use full registry and make simpler request
* switch path properties to methods
* Add typing to plugin
* Add a checker fnc for is_sample
* Add sample check to admin page
* Make file check a cls
* more cls methods
* Add setting for signature cheks
Fixes#3520
* make property statements simpler
* use same key in all dicts
* Use module name instead of NAME
Fixes#3534
* fix naming
* fix name
* add version checking
Fixes#3478
* fix formatting and typing
* also save reference to full array
* do not cover as we turn on all plugins
* add test for check_version
* Add version e2e test
* make test save
* refactor out assignment
* safe a db reference first
* docstring
* condense code a bit
* rename
* append logging
* rename
* also safe db reference to new object
* docstrings, refactors, typing
* fix key lookup
* refactor entrypoint into helpers
* Add lookup by metadata
This is geared towards plugins packaged in pkgs that differ in name from their top module
* Make module lookup predictable in changing pkg-envs
* remove no coverage from plugin packages
* ignore coverage for production loadin
* refactor plugin collection - move assigment out
* do not cover fs errors
* test custom dir loading
* test module meta fetcher
* add a bit more safety
* do not cover sanity checkers
* add folder loading test
* ignore again for cleaner diffs for now
* ignore safety catch
* rename test
* Add test for package installs
* fix docstring name
* depreciate test for now
* Fix for out of BASE_DIR paths
* ignore catch
* remove unneeded complexity
* add testing for outside folders
* more docstrings and simpler methods
* make call simpler
* refactor entrypoint into helpers
* Add lookup by metadata
This is geared towards plugins packaged in pkgs that differ in name from their top module
* Make module lookup predictable in changing pkg-envs
* rename .env to make sure it is not loaded by default
* make sure migrations are run before import
* Add more messaget to setup_test
* add comments to setup-dev
* Add flag to setup-dev for setting up test data
* add flag to setup-test to also run development setup
* extend contributing with the flags
* change flag to tests
* Add option helptexts
* A nicer starter
* add 3 liner
* Revert "rename .env to make sure it is not loaded by default"
This reverts commit 95fa0bbc53.
* switch to pathlib
* more pathlib
* useconvert env to path
* fix typo
* use resolve instead of absolute
* fix gitppod
* also allow parents
* replace more os operations
* fix string replacement feature
* make sure root dirs exsist
* fix replace function
* refactor duplicate code
* reduce code
* make sure dirs exist
* fix typo
* also create parent dirs
* fix match statement
* fix statments expecting string
* return getMigrationFileNames to old behaviour
* fully resolve config file
* make sure comparison works
* use pathlib in tasks
* fix file count test
* reduce code duplication in test + add test for part
* fix test
* re-add os
* Make pathlib usage simpler