ehmatthes / django-simple-deploy

A reusable Django app that configures your project for deployment
BSD 3-Clause "New" or "Revised" License
307 stars 26 forks source link

Write a stability policy #214

Closed ehmatthes closed 4 months ago

ehmatthes commented 1 year ago

This project claims to manage people's initial deployments, which is a critical action. The project also claims to serve authors and people creating a variety of learning resources. I would like to see it used by platforms in their official documentation as well. These end users look for reasons to believe the project is stable and reliable. A stability policy articulates the reasons that people should begin to trust this project.

ehmatthes commented 1 year ago

Working notes

Original goal was to look for any relevant configurations, and resources, and use those when possible. That's a nice goal, but it's not practical to expect idempotent behavior.

For example, deploying to some platforms requires making some resources and then using them. But if the process is interrupted, there's no reliable way to find out if those resources have already been made for this specific app. There's no way to know if the resources we find are for the current deployment, or for some other deployment the user made.

So, the baseline assumption needs to be that we're starting from a blank slate on every run. We can do some checks to support multiple runs, but ultimately it is up to the user to figure out how to approach a failed deployment. They can use Git to reset the project's configuration, but they need to manage their deployed resources, and their host's dashboard.

Find a way to write this up, succinctly for end users and in detail for authors and creators.

ehmatthes commented 1 year ago

Automated vs non-automated

It's easier to re-run a non-automated command. The automated commands create resources, non-automated approach (I believe) just does configuration.