Message from discussion
support for repos other than GitHub
Received: by 10.42.33.9 with SMTP id g9mr1226824icd.25.1346949505797;
Thu, 06 Sep 2012 09:38:25 -0700 (PDT)
X-BeenThere: componentjs@googlegroups.com
Received: by 10.50.178.99 with SMTP id cx3ls2551774igc.2.canary; Thu, 06 Sep
2012 09:38:25 -0700 (PDT)
Received: by 10.50.150.134 with SMTP id ui6mr1400477igb.4.1346949505401;
Thu, 06 Sep 2012 09:38:25 -0700 (PDT)
Received: by 10.50.150.134 with SMTP id ui6mr1400476igb.4.1346949505379;
Thu, 06 Sep 2012 09:38:25 -0700 (PDT)
Return-Path: <tjholoway...@gmail.com>
Received: from mail-iy0-f181.google.com (mail-iy0-f181.google.com [209.85.210.181])
by gmr-mx.google.com with ESMTPS id xd1si1038224igb.1.2012.09.06.09.38.25
(version=TLSv1/SSLv3 cipher=OTHER);
Thu, 06 Sep 2012 09:38:25 -0700 (PDT)
Received-SPF: pass (google.com: domain of tjholoway...@gmail.com designates 209.85.210.181 as permitted sender) client-ip=209.85.210.181;
Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of tjholoway...@gmail.com designates 209.85.210.181 as permitted sender) smtp.mail=tjholoway...@gmail.com; dkim=pass header...@gmail.com
Received: by mail-iy0-f181.google.com with SMTP id w33so2383586iag.12
for <componentjs@googlegroups.com>; Thu, 06 Sep 2012 09:38:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20120113;
h=mime-version:sender:in-reply-to:references:date
:x-google-sender-auth:message-id:subject:from:to:content-type;
bh=NWWyDedLc1pofTE05KMm8K6emxL+ZOYaOkXjxWjKX+8=;
b=AhQlNe/UQycRmCsIxIjCotIy8t8Or8r+MtsbGjyniRepYqV79MkfFQ5O3e9wW27HfN
yOzwR4rjl/S1eGEtLKH94ermARld+IPWkPbm0csAGlZbQtOrFwEXHJetyCX6Y++AKs4e
VysQ5W+Ufft7ECBt8lsT38Bd8N7wr9bf6tVUnkPX5k03ikx3wn5I+bzQlCgId2zW1YAa
vnfDwj45qQh++3t3VTC6TE203Coa8Hm9zLVtqvFYkTcYHwq1yfiwKde9b9umCKsArDBZ
qW2JtRPx1o/IAsdaJ6JwLdFvPsiVPUxObRUJFo9St0oVMlNppYO2diYnCEYkPc2+zKQ4
Vbjw==
MIME-Version: 1.0
Received: by 10.50.191.227 with SMTP id hb3mr13587667igc.43.1346949505101;
Thu, 06 Sep 2012 09:38:25 -0700 (PDT)
Sender: tjholoway...@gmail.com
Received: by 10.64.32.168 with HTTP; Thu, 6 Sep 2012 09:38:25 -0700 (PDT)
In-Reply-To: <e6cd5093-bfa1-462f-ae85-59783cc74ff7@googlegroups.com>
References: <e6cd5093-bfa1-462f-ae85-59783cc74ff7@googlegroups.com>
Date: Thu, 6 Sep 2012 09:38:25 -0700
Message-ID: <CAO5niE3eSnEd6BXx-QdSgcsBfRP1WZTHRGq5tGwHNMc81NZ...@mail.gmail.com>
Subject: Re: support for repos other than GitHub
From: "vision media [ Tj Holowaychuk ]" <t...@vision-media.ca>
To: componentjs@googlegroups.com
Content-Type: multipart/alternative; boundary=14dae934118bc8304804c90b1ef1
--14dae934118bc8304804c90b1ef1
Content-Type: text/plain; charset=ISO-8859-1
IMO a decent way to go about it would justbe to specify that you have a dep
of "foo/bar" you set up in ~/.component.json config that you want to check
an internal "registry" first, so even regular deps like "component/tip"
*could* resolve to your private fork if you liked, without change. To me
this is cleaner than explicitly specifying entire repo urls
On Thu, Sep 6, 2012 at 9:15 AM, Patrick Mueller <pmue...@gmail.com> wrote:
> First of all, awesome. Love to see folks playing with new angles on this.
>
> Based on my experience with node/npm, I'd like to see the following
> capabilities for specifying a "repo" for a component:
>
> - in the component.json, I should be able to specify a repo per component;
> I will likely want to pull some components from GitHub, but others from a
> private or otherwise different repo.
>
> - in some cases, I'm developing multiple packages (npm) (now components)
> at the same time. npm provides "link" capabilities so I can cross-link
> dependencies, but this isn't great. Since dependencies aren't bundled (I
> don't think) when you download them from a repo, I think the most
> straight-forward thing to do in this case is to allow me to stub out a
> component with a pointer to what I want to use at development time.
>
> re: first point - howsabout the current key in the dependencies object be
> a URL instead of a :user/:repo string? The default, scheme-less URL, could
> continue to point to GitHub, but if I used "my-repo://foo-blatz":
> <some-version-string>, then that would mean "resolve using the my-repo"
> repo handler. You would of course have to have a repo handler installed in
> some fashion (and then here comes the chicken-and-egg question :-) ).
> Would also need to figure out what this means with this gnarly mess of
> aliasing that's going on - I think at runtime you don't want to see the
> repo's, just more of a :something-:something-else scheme.
>
> re: second point - the example here would be that I'm developing an app
> that uses a component which I would also like to publish as an consumable
> component. Say, I'm developing App A that uses Component B, and I also
> want to publish Component B for other people to use in their own apps.
>
> npm solves this with "npm link", but it's a bit of a pain to set up. In
> the example case, what I'd like to do is structure my source code like this:
>
> project/
> - app.A
> - component.B
>
> where app.A and component.B are both components (both use component.json
> to access other components). In this case, app.A needs a reference to
> component.B. I would expect app.A's component.json to look something like
> this:
>
> dependencies: {
> ...
> "myRepo://component.B": "*",
> ...
> }
>
> But I don't really want to "install", at development time, component.B in
> app.A/component. What I really want is a "link". I think I'd prefer some
> kind of actual file, instead of file system link. So, say, I create a
> directory "linked-dependencies", and in there I plop a file "component.B",
> in some kind of resolvable name, which has a file reference to the actual
> component. In this case, it would be "../component.B". Then whenever some
> code tries to resolve "component.B" - at "component install"time AND at
> build time / run time, it's resolved as the linked-to directory.
>
> --
> You received this message because you are subscribed to the Google Groups
> "component" group.
> To unsubscribe from this group, send email to
> componentjs+unsubscribe@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>
--14dae934118bc8304804c90b1ef1
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
IMO a decent way to go about it would justbe to specify that you have a dep=
of "foo/bar" you set up in ~/.component.json config that you wan=
t to check an internal "registry" first, so even regular deps lik=
e "component/tip" *could* resolve to your private fork if you lik=
ed, without change. To me this is cleaner than explicitly specifying entire=
repo urls=A0<br>
<br><div class=3D"gmail_quote">On Thu, Sep 6, 2012 at 9:15 AM, Patrick Muel=
ler <span dir=3D"ltr"><<a href=3D"mailto:pmue...@gmail.com" target=3D"_b=
lank">pmue...@gmail.com</a>></span> wrote:<br><blockquote class=3D"gmail=
_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:=
1ex">
<div>First of all, awesome. =A0Love to see folks playing with new angles on=
this.</div><div><br></div>Based on my experience with node/npm, I'd li=
ke to see the following capabilities for specifying a "repo" for =
a component:<div>
<br></div><div>- in the component.json, I should be able to specify a repo =
per component; I will likely want to pull some components from GitHub, but =
others from a private or otherwise different repo. =A0</div><div><br></div>
<div>- in some cases, I'm developing multiple packages (npm) (now compo=
nents) at the same time. =A0npm provides "link" capabilities so I=
can cross-link dependencies, but this isn't great. =A0Since dependenci=
es aren't bundled (I don't think) when you download them from a rep=
o, I think the most straight-forward thing to do in this case is to allow m=
e to stub out a component with a pointer to what I want to use at developme=
nt time.</div>
<div><br></div><div>re: first point - howsabout the current key in the depe=
ndencies object be a URL instead of a :user/:repo string? =A0The default, s=
cheme-less URL, could continue to point to GitHub, but if I used "my-r=
epo://foo-blatz": <some-version-string>, then that would mean &q=
uot;resolve using the my-repo" repo handler. =A0You would of course ha=
ve to have a repo handler installed in some fashion (and then here comes th=
e chicken-and-egg question :-) ). =A0Would also need to figure out what thi=
s means with this gnarly mess of aliasing that's going on - I think at =
runtime you don't want to see the repo's, just more of a :something=
-:something-else scheme.</div>
<div><br></div><div>re: second point - the example here would be that I'=
;m developing an app that uses a component which I would also like to publi=
sh as an consumable component. =A0Say, I'm developing App A that uses C=
omponent B, and I also want to publish Component B for other people to use =
in their own apps. =A0</div>
<div><br></div><div>npm solves this with "npm link", but it's=
a bit of a pain to set up. =A0In the example case, what I'd like to do=
is structure my source code like this:</div><div><br></div><div>project/</=
div>
<div>- app.A</div><div>- component.B</div><div><br></div><div>where app.A a=
nd component.B are both components (both use component.json to access other=
components). =A0In this case, app.A needs a reference to component.B. =A0I=
would expect app.A's component.json to look something like this:</div>
<div><br></div><div>=A0 =A0 dependencies: {</div><div>=A0 =A0 =A0 =A0 ...</=
div><div>=A0 =A0 =A0 =A0 "myRepo://component.B": "*",</=
div><div>=A0 =A0 =A0 =A0 ...</div><div>=A0 =A0 }</div><div><br></div><div>B=
ut I don't really want to "install", at development time, com=
ponent.B in app.A/component. =A0What I really want is a "link". =
=A0I think I'd prefer some kind of actual file, instead of file system =
link. =A0So, say, I create a directory "linked-dependencies", and=
in there I plop a file "component.B", in some kind of resolvable=
name, which has a file reference to the actual component. =A0In this case,=
it would be "../component.B". =A0Then whenever some code tries t=
o resolve "component.B" - at "component install"time AN=
D at build time / run time, it's resolved as the linked-to directory.</=
div>
<span class=3D"HOEnZb"><font color=3D"#888888">
<p></p>
-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;component" group.<br>
To unsubscribe from this group, send email to <a href=3D"mailto:componentjs=
%2Bunsubscribe@googlegroups.com" target=3D"_blank">componentjs+unsubscribe@=
googlegroups.com</a>.<br>
For more options, visit <a href=3D"https://groups.google.com/groups/opt_out=
" target=3D"_blank">https://groups.google.com/groups/opt_out</a>.<br>
=A0<br>
=A0<br>
</font></span></blockquote></div><br>
--14dae934118bc8304804c90b1ef1--