Open thinkh opened 4 years ago
Call stack for the init-lib
, init-slib
and init lib-slib
generators.
package.json
.yo-rc.json
index.js
src/index.ts
tests/index.test.ts
.gitignore
.gitattributes
buildInfo.js
jest.config.js
tests.webpack.js
tsconfig.json
tsconfig_dev.json
tsd.d.ts
tslint.json
typedoc.json
webpack.config.js
.circleci/config.yml
phovea_registry.js
src/phovea.ts
README.md
.editorconfig
ISSUE_TEMPLATE.md
LICENSE
package.json
.yo-rc.json
deploy/docker-compose.partial.yml
test/config.json
requirements.txt
docker_packages.txt
.gitattributes
buildPython.js
requirements_dev.txt
setup.cfg
setup.py
tox.ini
.circleci/config.yml
docs/conf.py
docs/_static/touch.txt
docs/_templates/touch.txt
docs/index.rst
test/__init__.py
.gitignore
docs/.gitignore
README.md
.editorconfig
ISSUE_TEMPLATE.md
LICENSE
package.json
.circleci/config.yml
.yo-rc.json
README.md
.editorconfig
ISSUE_TEMPLATE.md
LICENSE
deploy/docker-compose.partial.yml
test/config.json
index.js
src/index.ts
tests/index.test.ts
requirements.txt
docker_packages.txt
.gitattributes
buildPython.js
requirements_dev.txt
setup.cfg
setup.py
tox.ini
docs/conf.py
docs/_static/touch.txt
docs/_templates/touch.txt
docs/index.rst
test/__init__.py
.gitignore
docs/.gitignore
buildInfo.js
jest.config.js
tests.webpack.js
tsconfig.json
tsconfig_dev.json
tsd.d.ts
tslint.json
typedoc.json
webpack.config.js
phovea_registry.js
src/phovea.ts
package.json
.yo-rc.json
deploy/nginx-default.conf
deploy/Dockerfile
src/404.html
src/app.ts
src/index.ts
src/robots.txt
src/style.scss
tests/app.test.ts
src/styles/_base.scss
src/index.html
src/language.ts
.gitignore
.gitattributes
buildInfo.js
jest.config.js
tests.webpack.js
tsconfig.json
tsconfig_dev.json
tsd.d.ts
tslint.json
typedoc.json
webpack.config.js
.circleci/config.yml
phovea_registry.js
src/phovea.ts
README.md
.editorconfig
ISSUE_TEMPLATE.md
LICENSE
package.json
.yo-rc.json
README.md
.editorconfig
ISSUE_TEMPLATE.md
LICENSE
deploy/docker-compose.partial.yml
test/config.json
deploy/nginx-default.conf
deploy/Dockerfile
src/404.html
src/app.ts
src/index.ts
src/robots.txt
src/style.scss
tests/app.test.ts
src/styles/_base.scss
src/index.html
src/language.ts
requirements.txt
docker_packages.txt
.gitattributes
buildPython.js
requirements_dev.txt
setup.cfg
setup.py
tox.ini
.circleci/config.yml
docs/conf.py
docs/_static/touch.txt
docs/_templates/touch.txt
docs/index.rst
test/__init__.py
.gitignore
docs/.gitignore
buildInfo.js
jest.config.js
tests.webpack.js
tsconfig.json
tsconfig_dev.json
tsd.d.ts
tslint.json
typedoc.json
webpack.config.js
phovea_registry.js
src/phovea.ts
package.json
force .yo-rc.json
deploy/Dockerfile
deploy/Dockerfile_dev
deploy/docker-compose-debug.partial.yml
deploy/docker-compose.partial.yml
tests/test_server.py
test/config.json
test/server.py
requirements.txt
docker_packages.txt
.gitattributes
buildPython.js
requirements_dev.txt
setup.cfg
setup.py
tox.ini
.circleci/config.yml
docs/conf.py
docs/_static/touch.txt
docs/_templates/touch.txt
docs/index.rst
test/__init__.py
.gitignore
docs/.gitignore
README.md
.editorconfig
ISSUE_TEMPLATE.md
LICENSE
package.json
.yo-rc.json
README.md
.editorconfig
ISSUE_TEMPLATE.md
LICENSE
deploy/Dockerfile
deploy/Dockerfile_dev
deploy/docker-compose-debug.partial.yml
deploy/docker-compose.partial.yml
tests/test_server.py
test/config.json
test/server.py
index.js
src/index.ts
tests/index.test.ts
requirements.txt
docker_packages.txt
.gitattributes
buildPython.js
requirements_dev.txt
setup.cfg
setup.py
tox.ini
.circleci/config.yml
docs/conf.py
docs/_static/touch.txt
docs/_templates/touch.txt
docs/index.rst
test/__init__.py
.gitignore
docs/.gitignore
buildInfo.js
jest.config.js
tests.webpack.js
tsconfig.json
tsconfig_dev.json
tsd.d.ts
tslint.json
typedoc.json
webpack.config.js
phovea_registry.js
src/phovea.ts
Current status
Currently it is not possible to change the plugin type of an already existing plugin. The current workaround is to remove the whole repo and move the files manually to the new plugin.
Feature request
The generator should add necessary files (in case of an upgrade) or remove the unnecessary files (in case of a downgrade).
In case files are removed they should be delete. The user has to check the diff in the git commit and move content that she wants to keep. All other files should remain untouched.
Shared files (e.g., package.json, .yo-rc, .circleci, ...) should be replaced by the new file.
All up- and downgrades between plugin types should be allowed, except for the plugin type
bundle
andproduct
. The user can not switch from or tobundle
andproduct
.Update
The first approach we took was to adapt the
init-lib
,init-slib
, ... generators, in order to reuse them to switch to a different plugin. We realized however that the current implementation is too specific for it to allow to upgrade/downgrade to a different plugin, without a lot of refactoring.The second approach was too hardcore the differences between the different plugins and then for each type run these steps to upgrade/downgrade the plugin. This approach seems to be the way to go but it requires substantial time to implement.
So far we have and example implementation of how to downgrade from a
lib-slib
to alib
and alib-slib
to aslib
Next steps are: