Parking Lot
This is a place to dump ideas that aren't yet actionable. This document exists to keep from cluttering up issues with tasks that aren't really closable in a short timeframe. There's also a Parking lot issue, so if you have a small suggestion feel free to add it there.
General ideas
- Write a user-friendly deployment summary. See #51, and #160.
- Support one platform with an API-based workflow.
- This will help clarify what kinds of utility functions should be included in core, for consistency of implementation, workflow, and testing.
- Support nested project directory structure, ie projects created from
startproject <project-name>, notstartproject <project-name> .(with a dot). See #55. - Consider using Rich for nicer terminal output. See #70.
- Implement a
--checkflag. This would inspect the system and project, and report any identifiable issues that would prevent deployment. It would not make any changes to the project. May do platform-specific validation as well? See #80. - Remove
old_docs/directory. See #138. - Support deploying project from the Django Girls tutorial. See #82.
- Support PDM. See #137, but more importantly #381.
- Look at settings in django-production. See #147.
- Set up CI. See #148.
- Identify current branch? Warn about non-main branch? See #150.
- Consider a stability policy. See #214.
- Consider a
--dry-runfeature. See #247. - Revisit
git statuscheck in deploy.py. See #261. - Document use of development tools such as reset_project.py. See #264.
- Look at consistency of platform messages. See #270.
- Consider pyupgrade for finding old Python idioms that are no longer needed. See #299.
- Try django-simple-deploy with a micro framework such as django-singlefile or nanodjango.
- Should the project support Poetry?
- Poetry seems to be well-respected for developing libraries, but I don't know that anyone is really using it to manage dependencies for Django projects. If not, there's no reason to support it in this project.
- Perhaps support it, but dial back some of the specificity of tests? Poetry is resolving at a finer grain size than we need to pay attention to?
- I believe poetry does not conform to emerging standards for specifying Python dependencies. How much of a burden is it to support poetry? Perhaps moderate support, in the sense of exporting to requirements.txt?
- All of this should be addressed in #381.
- There are some interesting notes in #238.
- Add
blackto CI.
Testing
- Check for each platform's CLI when needed before running tests that depend on it.
- Check for poetry, and any other package manager, before running any tests that depend on it.
- Allow tests to be run for one specific package manager. Or exclude a package manager? See #270.
- Add a
--show-diffargument to unit tests/ integration tests. See #271. - Consider using
uvin place ofpip, at least when testing. See #291. - Refine testing. See #296, and any open tasks in #285.
- Move
build_dev_env.pyfrome2e_tests/utils/todeveloper_resources/. See #245.
Documentation
- Add an
index.mdfile for each main section. See #139. - Update docs to clarify how this project can be useful to platform hosts (companies). See #144.
New platforms
- Support Railway. See #75.
Fly.io
- No parking lot items currently.
Platform.sh
- Update runtime to Python 3.12.
- The method
_validate_platform()makes sure the user is authenticated through the CLI. I believe we can remove some checks for authentication in subsequent CLI calls, as in_get_org_name().
Heroku
- If not pushing from the main branch, state that explicitly. Consider confirming that's what user wants. State the branch name explicitly in the summary message. See #5.
- Reconsider Heroku support. People have lost confidence in Heroku in recent years, but it still keeps largely working. See #91.
Windows
- Cloning to a Windows VM automatically started a development server for the sample project?!
C:\Users\eric>git clone https://github.com/django-simple-deploy/django-simple-deploy.git
Cloning into 'django-simple-deploy'...
remote: Enumerating objects: 4832, done.
remote: Counting objects: 100% (1000/1000), done.
remote: Compressing objects: 100% (528/528), done.
remote: Total 4832 (delta 635), reused 683 (delta 440), pack-reused 3832
Receiving objects: 100% (4832/4832), 17.16 MiB | 17.14 MiB/s, done.
Resolving deltas: 100% (2781/2781), done.
C:\Users\eric>C:\Users\eric\django-simple-deploy\simple_deploy\apps.py changed, reloading.
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
May 31, 2024 - 06:32:02
Django version 5.0.6, using settings 'blog.settings'
Starting development server at http://127.0.0.1:8008/
Quit the server with CTRL-BREAK.