Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incompatible with Distillery #111

Open
thaterikperson opened this issue Dec 9, 2016 · 6 comments
Open

Incompatible with Distillery #111

thaterikperson opened this issue Dec 9, 2016 · 6 comments

Comments

@thaterikperson
Copy link

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.

@joshprice
Copy link
Member

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?

@freshtonic
Copy link
Contributor

freshtonic commented Dec 21, 2016

@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.

@bitwalker
Copy link

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.

@joshprice
Copy link
Member

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

@bitwalker
Copy link

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
Copy link

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants