bitwalker / exrm

Automatically generate a release for your Elixir project!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

releases with fast_xml do not include the transitive dependency on p1_utils

aaronjensen opened this issue · comments

See: processone/fast_xml#10

and: https://github.com/aaronjensen/fast_xml_exrm_repro

Normally, transitive dependencies are included, but for some reason this is not the case w/ fast_xml. I wonder if it has something to do w/ the fact that it has a mix.exs and a rebar.config

@aaronjensen This is a bit of an aside, but this issue got me thinking about it. I'm working on an experimental replacement for exrm, and this is one of the things I believe should no longer be an issue. If you're interested in helping me test it out, check out https://github.com/bitwalker/distillery. It's already basically at parity with exrm in terms of functionality, but you'll want to read the docs before you dive in, since there are differences. Since you've been finding a lot of edge cases, particularly with things I think should be addressed in this new release tool, your input would be very useful. The only caveat right now is that if you are using conform, I do not yet have a version of conform which can plug in to this, though I have plans to get that ready before a more public release, but if you aren't, it should be good to go.

Thanks @bitwalker. At the moment, we do use conform, so I probably wouldn't be able to switch to it w/o some juggling. That said, I may be starting a new project soon and I'd be able to try it out then.

I'll put together a version of conform which works with distillery, pretty much at the point where I need it anyway. I'll post back here with an update when that's ready.

@aaronjensen I pushed a new branch of conform called distillery, if you use that, you can get rid of conform_exrm. There are a few changes to the way configs are handled with conform/distillery, mainly there is no "generated config directory", the release will look for configs in RELEASE_CONFIG_DIR, which is the release root directory by default (i.e. where /bin etc are), and the release version directory if configs are not found there. Conform will look for schemas/confs in that same directory, falling back in the same way to those other directories until it finds one. It then generates the sys.config and places them in RELEASE_CONFIG_DIR. All other env vars that were in exrm are no longer there (i.e. RELEASE_MUTABLE_DIR, RELEASE_CONFIG_FILE), however you can hardcode a .conf/.schema.exs with CONFORM_CONF_PATH/CONFORM_SCHEMA_PATH.

Give it a shot and let me know if you run into any issues, or if I've removed something you needed, let me know, so I can sort out what I should do to fix it.