graphql icon indicating copy to clipboard operation
graphql copied to clipboard

Incompatible with Distillery

Open thaterikperson opened this issue 9 years ago • 6 comments

Distillery (issue) is unable to archive a Phoenix app using graphql because some of the graphql .beam files' names exceed the 100 character limited imposed by erl_tar (source).

I was able to get Distillery working with this change.

I'm happy to submit it as a pull request if it is the correct fix.

thaterikperson avatar Dec 09 '16 15:12 thaterikperson

Thanks for reporting this, suspect there might be a better solution than renaming modules.

I'm not even sure why the TestSupport module is in /lib and not /test so making that move might be better?

joshprice avatar Dec 21 '16 03:12 joshprice

@joshprice from memory the TestSupport module is in /lib and not /test because of protocol consolidation and test suite performance reasons.

Of course, being there is not ideal. It would be good if we could have /test-lib or whatever that gets compiled and is available to tests but isn't shipped in the package.

freshtonic avatar Dec 21 '16 06:12 freshtonic

You can ensure protocols are consolidated by adding test/support (or wherever) to elixirc_paths in mix.exs. Example:

defmodule MyApp.Project do
  def project do
    [name: :myapp,
     ...
     elixirc_paths: elixirc_paths(Mix.env)]
   end

   defp elixirc_paths(:test), do: ["lib", "test/support"]
   defp elixirc_paths(_), do: ["lib"]

This will make sure all modules defined in test/support are compiled like any other module (including protocol consolidation).

I'm working on a PR for the OTP team to address the underlying issue - but in the short term, renaming modules to ensure they stay under the 100 char limit is the only workaround.

bitwalker avatar Jan 24 '17 20:01 bitwalker

Thanks Paul, that's good to know! Do you have a link to the OTP PR by any chance?

joshprice avatar Jan 24 '17 22:01 joshprice

I haven't submitted it yet, hoping to by the end of the day today - I'll update here once I've done so.

bitwalker avatar Jan 24 '17 22:01 bitwalker

I've submitted a PR here, but it's limited to better error reporting, unfortunately the 100 byte filename limit is a hard one due to the need to maintain compatibility with GNU tar's implementation.

bitwalker avatar Jan 25 '17 01:01 bitwalker