Re: Build and Installation of modules should be implementation specific (Was: Re: 6PAN Spec question)

2008-12-23 Thread Timothy S. Nelson

On Mon, 22 Dec 2008, Daniel Ruoso wrote:


Em Seg, 2008-12-22 às 15:06 +1100, Timothy S. Nelson escreveu:

On Sat, 20 Dec 2008, Mark Overmeer wrote:

For ???B.  In the current set-up, you use CPAN.pm to download, and then
install.  The 'cpan' script is a wrapper around CPAN.pm.  CPAN.pm starts
the install tool.  A more convient structure would be to have an user
application (maybe the same 'cpan' script), which calls some download
backend to retreive the distribution and then calls the right install
tool per distribution.  I would say: ???B is cpan-NG

That would be one way of labelling it.  I prefer to leave that
labelling up to the people who will actually be writing the software.  For all
I know, they might prefer to begin with a direct port of CPANPLUS, and work
from there.


While I agree that ???B plays the role that CPAN.pm does today, I do
think we should leave that to be implementation specific, being the


	Agreed, but I keep (probably unwisely) thinking of these as reference 
documentation as well as specs, so I thought a note on where to look for more 
information would be appropriate; that's what the ???B business is a 
placeholder for.


:)


-
| Name: Tim Nelson | Because the Creator is,|
| E-mail: wayl...@wayland.id.au| I am   |
-

BEGIN GEEK CODE BLOCK
Version 3.12
GCS d+++ s+: a- C++$ U+++$ P+++$ L+++ E- W+ N+ w--- V- 
PE(+) Y+++ PGP-+++ R(+) !tv b++ DI D G+ e++ h! y-

-END GEEK CODE BLOCK-


Build and Installation of modules should be implementation specific (Was: Re: 6PAN Spec question)

2008-12-22 Thread Daniel Ruoso
Em Seg, 2008-12-22 às 15:06 +1100, Timothy S. Nelson escreveu:
 On Sat, 20 Dec 2008, Mark Overmeer wrote:
  For ???B.  In the current set-up, you use CPAN.pm to download, and then
  install.  The 'cpan' script is a wrapper around CPAN.pm.  CPAN.pm starts
  the install tool.  A more convient structure would be to have an user
  application (maybe the same 'cpan' script), which calls some download
  backend to retreive the distribution and then calls the right install
  tool per distribution.  I would say: ???B is cpan-NG
   That would be one way of labelling it.  I prefer to leave that 
 labelling up to the people who will actually be writing the software.  For 
 all 
 I know, they might prefer to begin with a direct port of CPANPLUS, and work 
 from there.

While I agree that ???B plays the role that CPAN.pm does today, I do
think we should leave that to be implementation specific, being the
implementation responsability to provide a minimal set of features in
its package manager so you can install standard Perl modules.

This is important because Parrot compiles its code to bytecode, SMOP
might even always run from source code (since separating compile-time
from run-time may be tricky). Mix together the different Operating
Systems where the module should be installed and you get something that
is not really spec-able.

This also makes it really cool for distribution maintainers, since they
know that they can make a custom package manager to create
distro-specific packages for every Perl 6 implementation.

daniel




Re: 6PAN Spec question

2008-12-21 Thread Timothy S. Nelson

On Sat, 20 Dec 2008, Mark Overmeer wrote:


* Timothy S. Nelson (wayl...@wayland.id.au) [081220 03:45]:

Btw, looks like I was wrong about the terminology of
CPAN6/6PAN/whatever.  See link below for details (the new Terminology
section).

http://svn.pugscode.org/pugs/docs/Perl6/Spec/S22-package-format.pod


	Just as an explanatory note, I used ???A and ???B as placeholders 
until someone comes up with a name for them.  I don't want to name them; I 
want to leave the naming of them up to the people who are actually going to 
implement them.



I do not understand the relevance of ???A: just abstract away the
actual distribution mechanism.  FTP or CD is also not mentioned
as possible transporters, so why is that for CPAN6 important?


	I'm not sure I understand your point here; either I misunderstand what 
you're getting at, or you've misunderstood what I'm getting at.  I'll expand 
on what I mean by ???A in hopes that this will help clarify things.


The current (Perl5) CPAN is, as far as I know, includes:
-   The custom software that runs cpan.org
-   The hardware/OS that runs it
-   The code that is stored there (ie. modules and stuff)

	I'm assuming that your CPAN6 software is going to replace the software 
that runs CPAN, but I'm assuming that the replacement for the other two items 
listed above is going to be a separate entry, that I've designated with the 
placeholder ???A until such time as someone sets up a website and installs 
your CPAN6 software, and offers to let people upload stuff to it.



For ???B.  In the current set-up, you use CPAN.pm to download, and then
install.  The 'cpan' script is a wrapper around CPAN.pm.  CPAN.pm starts
the install tool.  A more convient structure would be to have an user
application (maybe the same 'cpan' script), which calls some download
backend to retreive the distribution and then calls the right install
tool per distribution.  I would say: ???B is cpan-NG


	That would be one way of labelling it.  I prefer to leave that 
labelling up to the people who will actually be writing the software.  For all 
I know, they might prefer to begin with a direct port of CPANPLUS, and work 
from there.


HTH,


-
| Name: Tim Nelson | Because the Creator is,|
| E-mail: wayl...@wayland.id.au| I am   |
-

BEGIN GEEK CODE BLOCK
Version 3.12
GCS d+++ s+: a- C++$ U+++$ P+++$ L+++ E- W+ N+ w--- V- 
PE(+) Y+++ PGP-+++ R(+) !tv b++ DI D G+ e++ h! y-

-END GEEK CODE BLOCK-



Re: 6PAN Spec question

2008-12-20 Thread Mark Overmeer
* Timothy S. Nelson (wayl...@wayland.id.au) [081220 03:45]:
   Btw, looks like I was wrong about the terminology of 
 CPAN6/6PAN/whatever.  See link below for details (the new Terminology 
 section).
 
 http://svn.pugscode.org/pugs/docs/Perl6/Spec/S22-package-format.pod

I do not understand the relevance of ???A: just abstract away the
actual distribution mechanism.  FTP or CD is also not mentioned
as possible transporters, so why is that for CPAN6 important?

For ???B.  In the current set-up, you use CPAN.pm to download, and then
install.  The 'cpan' script is a wrapper around CPAN.pm.  CPAN.pm starts
the install tool.  A more convient structure would be to have an user
application (maybe the same 'cpan' script), which calls some download
backend to retreive the distribution and then calls the right install
tool per distribution.  I would say: ???B is cpan-NG
-- 
   MarkOv


   Mark Overmeer MScMARKOV Solutions
   m...@overmeer.net  soluti...@overmeer.net
http://Mark.Overmeer.net   http://solutions.overmeer.net




Re: 6PAN Spec question

2008-12-19 Thread Timothy S. Nelson
	Btw, looks like I was wrong about the terminology of 
CPAN6/6PAN/whatever.  See link below for details (the new Terminology 
section).


http://svn.pugscode.org/pugs/docs/Perl6/Spec/S22-package-format.pod

:)


-
| Name: Tim Nelson | Because the Creator is,|
| E-mail: wayl...@wayland.id.au| I am   |
-

BEGIN GEEK CODE BLOCK
Version 3.12
GCS d+++ s+: a- C++$ U+++$ P+++$ L+++ E- W+ N+ w--- V- 
PE(+) Y+++ PGP-+++ R(+) !tv b++ DI D G+ e++ h! y-

-END GEEK CODE BLOCK-



Re: 6PAN Spec question

2008-12-18 Thread Daniel Ruoso
Em Qui, 2008-12-18 às 13:08 +1100, Timothy S. Nelson escreveu:
   My question is, what sort of information actually belongs in a final 
 version of the 6PAN spec?  I'm assuming it will at least include 6PAN Package 
 format (layout, metadata, etc), and I'd suggest that it also include the 
 layout of packages on the 6PAN server.

I think we have

  1) How is the layout of Perl 6 related content (source package format)

  2) How source packages are uploaded, indexed, mirrored, searched, 
 downloaded etc (6PAN/CPAN6)

  3) How source packages are built

  4) How binary packages are installed 

I think 1 and 2 should be subject of two different specs, I also think 3
and 4 should be implementation and OS specific.

daniel



Re: 6PAN Spec question

2008-12-18 Thread Mark Overmeer
* Daniel Ruoso (dan...@ruoso.com) [081218 13:39]:
 Em Qui, 2008-12-18 às 13:08 +1100, Timothy S. Nelson escreveu:
  My question is, what sort of information actually belongs in a final 
  version of the 6PAN spec?  I'm assuming it will at least include 6PAN 
  Package 
  format (layout, metadata, etc), and I'd suggest that it also include the 
  layout of packages on the 6PAN server.
 
   2) How source packages are uploaded, indexed, mirrored, searched, 
  downloaded etc (6PAN/CPAN6)

If you understand my explanation of CPAN6, then you certainly must be
ware that 6PAN and CPAN6 have nothing to do with each other.  Please do
not use them in combination.  It is as silly as saying TCP/Linux
-- 
Regards,
   MarkOv


   Mark Overmeer MScMARKOV Solutions
   m...@overmeer.net  soluti...@overmeer.net
http://Mark.Overmeer.net   http://solutions.overmeer.net



Re: 6PAN Spec question

2008-12-18 Thread jerry gay
On Thu, Dec 18, 2008 at 05:45, Mark Overmeer m...@overmeer.net wrote:
 * Daniel Ruoso (dan...@ruoso.com) [081218 13:39]:
 Em Qui, 2008-12-18 às 13:08 +1100, Timothy S. Nelson escreveu:
  My question is, what sort of information actually belongs in a final
  version of the 6PAN spec?  I'm assuming it will at least include 6PAN 
  Package
  format (layout, metadata, etc), and I'd suggest that it also include the
  layout of packages on the 6PAN server.

   2) How source packages are uploaded, indexed, mirrored, searched,
  downloaded etc (6PAN/CPAN6)

 If you understand my explanation of CPAN6, then you certainly must be
 ware that 6PAN and CPAN6 have nothing to do with each other.  Please do
 not use them in combination.  It is as silly as saying TCP/Linux
 --
there's a difference? that was never clear to me (but i haven't read any docs).
at best, they are incredibly, confusingly, similarly named.
~jerry


Re: 6PAN Spec question

2008-12-18 Thread Mark Overmeer
* jerry gay (jerry@gmail.com) [081218 14:01]:
  If you understand my explanation of CPAN6, then you certainly must be
  ware that 6PAN and CPAN6 have nothing to do with each other.  Please do
  not use them in combination.  It is as silly as saying TCP/Linux

 there's a difference? that was never clear to me (but i haven't read
 any docs). at best, they are incredibly, confusingly, similarly named.

Well, 6PAN is about downloading the right Perl6 module and installing it.
Like Perl5s CPAN.pm module in combination with MakeMaker or Module::Build,
interpreting the content of the released packages.  It defines how authors
have to release Perl6 material so end-user can install and use them.

CPAN6 is a distribution network; the PAUSE uploader, CPAN package indexer
and CPAN ftp-server network (ftp.cpan.org).
CPAN6 can be used to distribute any kind of data: perl5 distributions,
6pan distributions, rpms, word documents, and photo's... as long as
there is some meta-data available to distinguish two seperate releases.
It is about upload and download with access rules, name and version
label restrictions, namespace restrictions, data integrety, distributed
search, redundant servers, release-under-embargo, etc etc.
  In general: CPAN6 implements everything you need to create data
collections for any purpose.  Kind of very smart network directory.
AFAIK, there is no comparible project on the moment.

In CPAN name is used for different things, so that has caused this
inconvenient name look-alike.
-- 
Regards,
   MarkOv


   Mark Overmeer MScMARKOV Solutions
   m...@overmeer.net  soluti...@overmeer.net
http://Mark.Overmeer.net   http://solutions.overmeer.net



CPAN6 vs. 6PAN (was: Re: 6PAN Spec question)

2008-12-18 Thread Timothy S. Nelson

Mark, am I right in putting it like this?

6PAN:
-   Perl6 package format
-   Client-side part of CPAN

CPAN6:
-   Server-side part of CPAN (with more stuff)

Is that how you see it?

:)


-
| Name: Tim Nelson | Because the Creator is,|
| E-mail: wayl...@wayland.id.au| I am   |
-

BEGIN GEEK CODE BLOCK
Version 3.12
GCS d+++ s+: a- C++$ U+++$ P+++$ L+++ E- W+ N+ w--- V- 
PE(+) Y+++ PGP-+++ R(+) !tv b++ DI D G+ e++ h! y-

-END GEEK CODE BLOCK-



Re: 6PAN Spec question

2008-12-18 Thread Timothy S. Nelson

On Thu, 18 Dec 2008, Daniel Ruoso wrote:


Em Qui, 2008-12-18 às 13:08 +1100, Timothy S. Nelson escreveu:

My question is, what sort of information actually belongs in a final
version of the 6PAN spec?  I'm assuming it will at least include 6PAN Package
format (layout, metadata, etc), and I'd suggest that it also include the
layout of packages on the 6PAN server.


I think we have

 1) How is the layout of Perl 6 related content (source package format)

 2) How source packages are uploaded, indexed, mirrored, searched,
downloaded etc (6PAN/CPAN6)

 3) How source packages are built

 4) How binary packages are installed

I think 1 and 2 should be subject of two different specs, I also think 3
and 4 should be implementation and OS specific.


	Ok, I like.  The only thing is, it seems to me that Mark Overmeer 
thinks that items 1, 3, and 4 above are 6PAN, and item 2, above, is CPAN6.


Allow me to suggest a new set of terminology:
-   .jib files (see S22) -- this is the source package format (meaning
unchanged)
-   CPAN6 -- this is the network, and the software that manages it
(meaning unchanged)
-   6PAN -- this is a piece of software that starts with what it can get
on CPAN6, and attempts to give you an installed perl module (this is
a replacement for CPANPLUS/cpan2dist)

	Are there any objections if I refactor the current S22 into 3 parts, 
and retain the .jib files stuff in the current S22 (renamed to 
S22-package-format.pod), a document containing what S22 said about CPAN6 
(which we could then donate to the cpan6 project for their consideration), and 
a draft document of notes about building and installing.


Thoughts?

:)


-
| Name: Tim Nelson | Because the Creator is,|
| E-mail: wayl...@wayland.id.au| I am   |
-

BEGIN GEEK CODE BLOCK
Version 3.12
GCS d+++ s+: a- C++$ U+++$ P+++$ L+++ E- W+ N+ w--- V- 
PE(+) Y+++ PGP-+++ R(+) !tv b++ DI D G+ e++ h! y-

-END GEEK CODE BLOCK-


Re: 6PAN Spec question

2008-12-18 Thread Timothy S. Nelson

On Fri, 19 Dec 2008, Timothy S. Nelson wrote:

	Are there any objections if I refactor the current S22 into 3 parts, 
and retain the .jib files stuff in the current S22 (renamed to 
S22-package-format.pod), a document containing what S22 said about CPAN6 
(which we could then donate to the cpan6 project for their consideration), 
and a draft document of notes about building and installing.


	Ok, I've done this, since I noted that the disagreements seemed to 
stem from what to call the parts, rather than the division into parts.


	I took the Repositories stuff and sent it to Mark Overmeer for him to 
take into account in his work on the CPAN6 project.


	I took the notes about building and installing packages and attached 
them to this e-mail.  What should we do with them?  I can think of a few 
options:

-   Turn them into S34 (not my preferred option)
-   Send them to Jos Boumans, original author, and maintainer of CPANPLUS
http://cpanplus.dwim.org/ asking him to store them as notes somewhere
for a CPANPLUS6/6PAN/whatever design document
-   Store them with the other drafts in the Pugs repository (see Draft
Specifications at http://perlcabal.org/syn/ for an example of what I
mean).

:)

-
| Name: Tim Nelson | Because the Creator is,|
| E-mail: wayl...@wayland.id.au| I am   |
-

BEGIN GEEK CODE BLOCK
Version 3.12
GCS d+++ s+: a- C++$ U+++$ P+++$ L+++ E- W+ N+ w--- V- 
PE(+) Y+++ PGP-+++ R(+) !tv b++ DI D G+ e++ h! y-

-END GEEK CODE BLOCK-
=encoding utf8

=head1 TITLE

Perl6 Package build and install notes

=head1 AUTHOR

Jos Boumans k...@cpan.org
Audrey Tang audr...@audreyt.org
Florian Ragwitz r...@debian.org
Tim Nelson wayl...@wayland.id.au

=head1 VERSION

Maintainer: Jos Boumans k...@cpan.org
Date: 3 Nov 2005
Last Modified: 19 Dec 2008
Number: 0
Version: 1

=head1 Overview

- None of the known tools can do what we want
- Will have to implement chain ourselves
- Be inspired by dpkg, apt-get and debian policy
- See: http://www.us.debian.org/doc/debian-policy
- Start with the elementary things
- See CPlan of Attack for first steps


=head2 General Flow (Basic)


This describes the basic flow for installing modules using the new 6pan
installer. This just deals with building a package from source and installing
it. Not with the distribution of these files through the means of CPAN.
That will be covered in the advanced flow.

1.  Setup package directory
* creates a directory for the project
* includes all relevant default files
* and default metadata setup
* [ ... write code ... ]
2.  Extract/Update metadata
* done by giving project code to the compiler
* extract the info given by the compiler about the code
* update the metadata according
* this involves 'use' statements, versions, packages, etc
3.  Build package based on metadata
* verify integrity of the code/metadata
* create a source package called a '.jib' file
See '.jib files' further down
* contains source code
* contains metadata
4.  Install package from '.jib' file
* Extract '.jib' to a temporary directory
* Verify dependencies based on metadata
* Build the source code to installable code
* Move the installable code to it's final destination
* Run appropriate hook-code
* Perform appropriate linking
* Update system metadata based on package metadata
5.  Uninstall packages
* Query metadata to verify dependencies
* Remove the installed code
* Run appropriate hook-code
* Perform appropriate linking
* Update system metadata based on package metadata


=head2 Package Layout


=head3 Project directory

Step 1 of the general flow should ideally be done by an automated tool, like
p5's current Module::Starter or somesuch. Suffice to say, it should produce
a layout something along these lines (note, this is just an example):

p5-Foo-Bar/
lib/
Foo/
Bar.pm
t/
00_load.t
_jib/
META.info

The actual layout will be determined by S22-package-format.  

The files in the _jib dir are part of the package metadata. The most important
file is the META.info file that holds all the collected metadata about the
package, which ideally gets filled (mostly) by what is described in step 2 of
the CGeneral Flow. Any pre/posthook files should also go in this directory.
This directory should be extensible, so new files can 

6PAN Spec question

2008-12-17 Thread Timothy S. Nelson
	My question is, what sort of information actually belongs in a final 
version of the 6PAN spec?  I'm assuming it will at least include 6PAN Package 
format (layout, metadata, etc), and I'd suggest that it also include the 
layout of packages on the 6PAN server.


	Some have suggested a particular install tool process/sequence, and 
indeed there's a lot of information currently in S22 about this.  Does this 
actually need to be in the spec, or would we be better off having a separate 
6PAN module working team that worries about this, and gets the wealth of 
detail out of the spec, because it seems to me like a lot of this is design 
notes for writing code, rather than a Spec.


	(If nobody objects or comments, I'll refactor it into two separate 
documents, S22-6PAN, and design notes for actual software).


:)


-
| Name: Tim Nelson | Because the Creator is,|
| E-mail: wayl...@wayland.id.au| I am   |
-

BEGIN GEEK CODE BLOCK
Version 3.12
GCS d+++ s+: a- C++$ U+++$ P+++$ L+++ E- W+ N+ w--- V- 
PE(+) Y+++ PGP-+++ R(+) !tv b++ DI D G+ e++ h! y-

-END GEEK CODE BLOCK-