Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
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 &quot;foo/bar&quot; you set up in ~/.component.json config that you wan=
t to check an internal &quot;registry&quot; first, so even regular deps lik=
e &quot;component/tip&quot; *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">&lt;<a href=3D"mailto:pmue...@gmail.com" target=3D"_b=
lank">pmue...@gmail.com</a>&gt;</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&#39;d li=
ke to see the following capabilities for specifying a &quot;repo&quot; 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&#39;m developing multiple packages (npm) (now compo=
nents) at the same time. =A0npm provides &quot;link&quot; capabilities so I=
 can cross-link dependencies, but this isn&#39;t great. =A0Since dependenci=
es aren&#39;t bundled (I don&#39;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 &quot;my-r=
epo://foo-blatz&quot;: &lt;some-version-string&gt;, then that would mean &q=
uot;resolve using the my-repo&quot; 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&#39;s going on - I think at =
runtime you don&#39;t want to see the repo&#39;s, just more of a :something=
-:something-else scheme.</div>
<div><br></div><div>re: second point - the example here would be that I&#39=
;m developing an app that uses a component which I would also like to publi=
sh as an consumable component. =A0Say, I&#39;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 &quot;npm link&quot;, but it&#39;s=
 a bit of a pain to set up. =A0In the example case, what I&#39;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&#39;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 &quot;myRepo://component.B&quot;: &quot;*&quot;,</=
div><div>=A0 =A0 =A0 =A0 ...</div><div>=A0 =A0 }</div><div><br></div><div>B=
ut I don&#39;t really want to &quot;install&quot;, at development time, com=
ponent.B in app.A/component. =A0What I really want is a &quot;link&quot;. =
=A0I think I&#39;d prefer some kind of actual file, instead of file system =
link. =A0So, say, I create a directory &quot;linked-dependencies&quot;, and=
 in there I plop a file &quot;component.B&quot;, in some kind of resolvable=
 name, which has a file reference to the actual component. =A0In this case,=
 it would be &quot;../component.B&quot;. =A0Then whenever some code tries t=
o resolve &quot;component.B&quot; - at &quot;component install&quot;time AN=
D at build time / run time, it&#39;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&quot; 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--