at least for now, this is all we need i think.. if nothing
configured, will fallback to default system local timezone. or can
configure the default, or alternate(s) as needed.
some day when we drop support for python 3.8, can also remove the
python-dateutil dependency..
i guess it was worth a try, but preserving system timezone was doomed
to failure since only postgres actually supports it. from now on all
DateTime columns will be naive, but understood / assumed to be
UTC-local
the basic idea is to run nightly checks and send email if problems are
found. it should also support variations on that theme,
e.g. configuring a check to only run on certain weekdays.
we already allow for some config fallbacks but sometimes the caller
needs to declare the default, to use as fallback when specific config
is not present
as of now, caller must provide a fully proper MIME attachment. later
we will add some magic normalization logic so caller can just provide
attachment file paths
we were previously doing this only for the `wutta.config.include` and
`wutta.config.require` settings, and pyramid (or paste?) has been
handling certain other ones, e.g. for beaker session cache paths.
but we really need to be able to rely on this being available
"everywhere" or else it's just confusing.
- Mako is now a core dependency
- therefore no more 'email' extra
- add `get_install_handler()` method for app handler
- add `render_mako_template()` method for app handler
- add `resource_path()` method for app handler
- install handler thus far can:
- confirm db connection
- make appdir plus config/scripts:
- wutta.conf
- web.conf
- upgrade.sh
- upgrade db schema to create tables
- from there web app can run, create admin user
- quick start docs now describe "generated code" option
i think it only makes sense to have an "opinion" for command line
interface in this project, and we probably need more `wutta`
subcommands too but we'll see.
main motivation for this currently is to allow poser apps to define
their own CLI, in particular e.g. `poser install`
and other things, used by other packages (rattail)
otherwise when rattail imports them, the whole WJ model comes along
with it and it can interfere with sqlalchemy-continuum versioning