[rust-dev] RFC: Future of the Build System

Gaetan gaetan at xeberon.net
Tue Jan 14 14:32:17 PST 2014


this looks like POM :)

I always dreamt of writing a proper build system with such high level
structure, deal with project dependencies, but that is way more complex
than that.

if a project in rust start with this matter, I volunteer to participate to
it.

-----
Gaetan



2014/1/14 Lee Braiden <leebraid at gmail.com>

> On 14/01/14 17:25, Patrick Walton wrote:
>
>> On 1/14/14 1:29 AM, comex wrote:
>>
>>> On Mon, Jan 13, 2014 at 10:30 AM, George Makrydakis
>>> <irrequietus at gmail.com> wrote:
>>>
>>>> Again, note that this rather long thread is about discussing in the end
>>>> what
>>>> the official stance should be. There is no valid reason other than lack
>>>> of
>>>> manpower and / or language immaturity for having to depend on ruby,
>>>> python,
>>>> autotools, cmake or whatever else in order to build rust software.
>>>>
>>>
>>> There is no reason every language should have its own build system
>>> written from scratch (or package manager, for that matter); the goals
>>> of each language community are really mostly identical<snip>
>>>
>>>
>>> However, I'd say there is a stunning lack of existing build systems
>>> that actually combine a clean design, flexibility, portability, and
>>> performance<snip>
>>>
>> This e-mail sums up my feelings to a T, and it's why I'm conflicted about
>> the whole matter.
>>
>
> The more people talk about different build systems and how we can't choose
> one yet, the more I agree.
>
> So, rethinking, it seems to me that important part seems, is to be
> COMPATIBLE with everyone's project hosting, build system, and/or package
> manager of choice.  That would include command line build tools, pretty
> website download catalogs, yum, synaptic, cabal, etc.
>
>
> So, much more important than choosing TOOLS, I think Rust needs to
> standardise INFORMATION that any tool can use.  Perhaps something like this?
>
> [
>    "project": {
>         "name":  "someproject",
>
>         "brief-description": "some description",
>
>         "limited-description": [
>             "Para-one.",
>             "Para-two.",
>             "Para-three."
> ],
>
>         "web": "http://buggysoft.com",
>
>         "screenshots":    {
>             "screenshot one": {
>                 "uri": "http://www.buggypics.com/massivebug.png",
>                 "alt-text":     "Features massive bugs",
>             },
>         },
>
>         "bug-tickets": "http://overloaded-cloud-system.buggysoft.com",
>
>         "authors": {
>             "author1": {
>                 "email":        "author1 at someplace.com",
>                 "web":          "http://someplace.com",
>             },
>         },
>
>         "copyright": {
>             "license-file":        "docs/LICENSE.TXT",
>             "license-flags":    "SHAREALIKE | ATTRIBUTION |
> ADVERTISING_CLAUSE",
>         },
>
>         "build-info": {
>             "build-type":        "library",
>             "target":             "libx.so"
>             "source-files":     [ "src/*.rs", "somedir/a_file.rs" ],
>         },
>
>         "developer-support-info": {
>              "rust-ide-doc-file": "docs/libx.rustapi",
>              "rust-ide-completion-file": "docs/libx.rusttags",
>         },
>
>         "dependencies": {
>             "rust-projects":  {
>                     "someotherproject": {        # from that projects
> "project" -> "name" entry
>
>                             # following fields are optional; any specified
> filter the list
>                             # the list of suitable candidates.
>
>                             "min-version": "0.1",
>                             "max-version": "0.1",
>
>                             "gitrepo": "http://somehub.com/someuser/
> someotherproject/",
>                             "min-git-tag": "04a453543",
>                             "max-git-tag": "045ead634",
>
>                             "tarball-uri": "http://someotherproject.com/
> somepath-${version}.tgz",
>
>                             "distro-version-ok":    "true"
>                     }
>             },
>
>             "external-libs": {
>                     "libssl":    {
>                             "min-version": "0.1",
>                             "max-version": "0.1",
>
>                             "gitrepo": "http://somehub.com/someuser/
> someotherproject/",
>                             "min-git-tag": "04a453543",
>                             "max-git-tag": "045ead634",
>
>                             "tarball-uri": "http://someotherproject.com/
> somepath-${version}.tgz"
>
>                             "distro-version-ok":    "true",
>                     }
>             },
>        }
>    }
> ]
>
> --
> Lee
>
>
> _______________________________________________
> Rust-dev mailing list
> Rust-dev at mozilla.org
> https://mail.mozilla.org/listinfo/rust-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/rust-dev/attachments/20140114/48d3687e/attachment-0001.html>


More information about the Rust-dev mailing list