Package Index for Moya

Hi HN,

This requires a little back story. Moya (previously showed on HN) is a web application platform I have been working on since 2011. This site is a package index for that project, and only the third site I have built with Moya (the second being Encrypted Notes). As a moderately sophisticated web app, it was a good milestone for development; there 20 or so views, search functionality, pagination, image uploads, and an API. When I got this up and running I was confident Moya was more than a toy.

So Moya is a framework and language for building dynamic sites, like this one. It's written in Python, but uses a high level language called Moya Code to process requests. If you can get over the fact that it is a high level language written in a high level language and uses XML throughout, it is a nice system to build sites quickly.

Moya packages can supply new views, models, forms, tags, template etc., and potentially override files in other libraries by adding to one of a number of virtual filesystems. It is also possible to "replace" code in other libraries. Essentially if multiple libraries supply the same name for an object (view, model etc), the library with the highest priority wins. It's a kind of monkey patching, but by design and not a hack.

Packages are trivially installable in that you only need to download and unzip them in to the project. You can do this manually, or with moya-pm, a package manager that comes with Moya. Here's an example of moya-pm in action:

$ moya-pm list willmcgugan.notes
╭───────────┬──────────────────────────────────────────╮
│ version   │ release notes                            │
├───────────┼──────────────────────────────────────────┤
│ 0.1.0-dev │ First release, as posted on Hacker News. │
│ 0.1.0     │ Fixes for escaping issues in titles      │
╰───────────┴──────────────────────────────────────────╯
$ moya-pm install moya.notes
[====================] 100% downloading willmcgugan.notes-0.1.0.zip 857.1 kB/s
╭──────────────────────────┬────────────────────────────┬─────────────────────────────────────╮
│ package                  │ location                   │ release notes                       │
├──────────────────────────┼────────────────────────────┼─────────────────────────────────────┤
│ willmcgugan.notes==0.1.0 │ external/willmcgugan.notes │ Fixes for escaping issues in titles │
╰──────────────────────────┴────────────────────────────┴─────────────────────────────────────╯

This site isn't yet open source, although it will eventually be available here, minus the licensed theme.

If Moya interests you, please join the Moya Project Google group.

@willmcgugan

read more…

Syntax Test

Enabled syntax highlighing in posts...

    <tag name="get-recent-releases">
        <signature>
            <attribute name="count" type="integer" />
        </signature>
        <db:query model="#Release"
            let:consider="yes"
            orderby="-created"
            maxresults="count"
            dst="releases" />
        <return value="releases"/>
    </tag>

It works!

read more…

Officially Live

https://packages.moyaproject.com is officially live!

Let me know if you experience any errors...

read more…

Ready to go live

This site is just about ready to go live. I will remove the basic auth tonight.

read more…