[erlang-questions] where did my code come from?
Wed Sep 14 03:18:20 CEST 2011
You appear to be the first person in this thread that has addressed the
question that I've been thinking. "How to find the repository?" Most, so
far, have used fixed URLs, but as we all know these tend to be out of
date on a regular basis. The larger the project, the more dependency,
the more you desperately need this thing to work, the more pushed for
time you are, the more likely you are to find that the site which has
the module you need is down or no longer exists. Here's roughly what
I've been think as I read this thread,
Have a file which lists mirror sites from which you can pull a list of
repositories. Much like the /etc/resolve.conf file for dns.
Have a global conf file to tune repo/lookup site selection and other
parameters similar to debian package management.
Have a project conf file to fine tune the global settings.
Have a per project file which lists app/module/fun dependances. This
could be auto-generated using tools.
As part of this a tool to make it easy to system packages (eg rpm, deb,
open package, etc).
So far I don't see a need for a -location compiler directive at the
source file level. May be I'm missing something.
However, the app/module/fun dependance list would need a better
signature than app:module:fun/count or version. It's would need some
form of crypto hash. How would you calculate such a hash?
Having a resolution down to the function level would allow you to know
if you can safely upgrade to a future (or past) module version or not
automatically even before compiling. It seems that there are projects
out there that do A+C or A+B, but none that do the full raft of things.
Finally, the key I think is to eliminate single points of failure such
as being reliant on one key website. A P2P module distribution system
would be great.
On 14/09/11 5:44 AM, David Goehrig wrote:
> Erlang txt fields in DNS anyone?
> Also since rebar already allows you to specify your dependencies as git tags, we already have a system that will automatically pull the specific source (or latest if unspecified) and build your application.
More information about the erlang-questions