1 / 24

CPAN6

CPAN6. Mark Overmeer, YAPC::EU 2008. CPAN6. Under development since 2006 detailed design available (XML Schema's) implementation underway Attempt to offer the beauty of CPAN to Perl6 modules. CPAN6. Under development since 2006 detailed design available (XML Schema's)

adamma
Download Presentation

CPAN6

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CPAN6 Mark Overmeer, YAPC::EU 2008

  2. CPAN6 • Under development since 2006 • detailed design available (XML Schema's) • implementation underway • Attempt to offer the beauty of CPAN to • Perl6 modules

  3. CPAN6 • Under development since 2006 • detailed design available (XML Schema's) • implementation underway • Attempt to offer the beauty of CPAN to • Perl6 • Parrot derivates: PIR, Lua, ...

  4. CPAN6 • Under development since 2006 • detailed design available (XML Schema's) • implementation underway • Attempt to offer the beauty of CPAN to • Perl6 • Parrot derivates: PIR, Lua, ... • other scripting languages: PHP, Python, ...

  5. CPAN6 • Under development since 2006 • detailed design available (XML Schema's) • implementation underway • Attempt to offer the beauty of CPAN to • Perl6 • Parrot derivates: PIR, Lua, ... • other scripting languages: PHP, Python, ... • other programming languages: Java, VB, ...

  6. CPAN6 • Under development since 2006 • detailed design available (XML Schema's) • implementation underway • Attempt to offer the beauty of CPAN to • Perl6 • Parrot derivates: PIR, Lua, ... • other scripting languages: PHP, Python, ... • other programming languages: Java, VB, ... • other sets of files: photo's, documents, ...

  7. CPAN6 • Under development since 2006 • detailed design available (XML Schema's) • implementation underway • Attempt to offer the beauty of CPAN to • Perl6 • Parrot derivates: PIR, Lua, ... • other scripting languages: PHP, Python, ... • other programming languages: Java, VB, ... • other sets of files: photo's, documents, ...→ "My Pictures" becomes "Our Pictures"

  8. CPAN6 • Attempt to introduce "new" technologies • multiple name-spaces • distributed network • helpful servers • cryptographic signatures • trust calculation • commonly used standards • (web) interactive • auto-configuration • mirroring, release under embargo, etc.

  9. No commitment to and from "Perl" CPAN6

  10. Basic concept • Some heterogeneous set of files and directories to be distributed is a release • Releases are collected in Archives • Every release has a name, a version, a source archive, and a publisher • Releases have explicit relations • Archives have rules, set by the board

  11. Network of Archives • CPAN6 • how to exchange releases between archives. • design should never change. • Pause6 • administer one archive • upload, download, search

  12. Promises • No new "standards" • Easy growth paths • All Unicode • No limits set, but possible with rules • Auto-detect whenever possible

  13. Using standards • Auto-negotiating communication • CPAN6 protocol level: pause2008, ... • protocol syntax: XML, YAML, ...

  14. Using standards • Auto-negotiating communication • CPAN6 protocol level: pause2008, ... • protocol syntax: XML, YAML, ... • packaging: none, tar, zip, rar, ... • compression: none, gzip, bzip2, ... • encoding: none, base64, hex, ... • authentication: none, Basic, PauseID, PGP, ... • language: nl-BE, en-US, ... Demo: pause show algorithms

  15. Specification • XML Schema's (120 types, 45kB) <complexType name="file"> <complexContent> <extension base="c6:item-released"> <sequence> <element name="checksum" type="c6:algo-data" minOccurs="0" maxOccurs="unbounded" /> </sequence> </extension> </complexContent> </complexType> <complexType name="item-released"> <sequence> <element name="meta-data" type="c6:meta-data" minOccurs="0" /> <element name="revision" type="c6:algo-data" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attribute name="path" type="c6:label" use="required"/> </complexType> Demo: pause create identity

  16. XML Support • XML is typed, name-spaces are a hassle: • XML::Compile • XML::Compile::SOAP • XML::Compile::SOAP::Daemon • XML::Compile::Cache • XML::Compile::Tester • XML::Compile::Dumper • XML::Compile::Rewrite • XML::LibXML::Simple • ... all created for CPAN6

  17. Translations • For user interface • Log::Report • produce errors/warnings/notice/trace/... • handle translations • exception framework • log dispatch framework fault __x"cannot read config {fn}", fn => $fn; • Text::Catalog • combine message with abstract explanation and detailed explanation in various languages.

  18. CPAN6 Core • CPAN6 components: • CPAN6::Core • CPAN6::XML • CPAN6::XML::2008 • CPAN6::Daemon • CPAN6 (CPAN6.pm) • Chicken/Egg problem • Pause6 components: • Pause6::Core • Pause6::XML • Pause6::XML::2008 • Pause6::Edit Demo: perl2pause

  19. Progress... • XML::* close to 1.00 • 12 distributions • 68 packages • over 300 documented methods • 26k lines of doc and code • 12k lines of test-scripts • CPAN6 core initial steps • 9 distributions • 52 packages • 4k lines of doc and code • no tests

  20. XML::Editor • (Graphical) user interface • edit multiple (related) XML files at the same time • do not show that they are XML

  21. XML::Editor • (Graphical) user interface • edit multiple (related) XML files at the same time • do not show that they are XML • Components: • (graphical) interface library • interaction, help, design by template • from schemas • structural, validation, repetition, default templates • from application • translations, smart behavior, load/save XML, overrule templates

  22. Coming year • Implement XML::Editor • Local archives, create egg • New website • Experimental network archive(with Perl5 modules?)

More Related