MacPorts GSoC project: Collect build statistics (web app)

Mojca Miklavec mojca at macports.org
Mon Mar 18 15:34:44 UTC 2019


Dear Rajdeep,

On Mon, 18 Mar 2019 at 13:30, Rajdeep Bharati wrote:
>
> Should this Django app automatically display new ports whenever a new one is created?

Yes.

Your question could be understood in two different ways:
(1) Should the app display a "What's new" page listing the ports that
have been added in the last X days?
(2) Should the app know about ports that have recently been added.

The answer to the second question is a definite yes. There should be
some job running on some server that inspects new git commits and
updates the information whenever new commits come in. This could
perhaps be part of the buildbot job which builds portindex on regular
basis.

The answer to the first one is: yes, it would be nice. Not absolutely
necessary and not the highest priority, but the database should be
structured in a way that would allow making queries like that one.

> I guess there is no such API that gives the current ports ATM;

Not yet. It should become available with the new Django app though :)

The only thing we have at the moment is a Postgres database which powers
    https://www.macports.org/ports.php
but that part should be gone once the new app becomes available. The
script to generate that list is in
    macports-infrastructure/jobs/portindex2postgres.tcl
and is being run as part of
    https://build.macports.org/builders/jobs-portindex

> and in that case, would I also have to work on the core MacPorts repositories?

I'm not 100 % sure what you mean with this question, but the student
working on the web app should generally not be required to make any
(significant) changes to the core of the package manager. It might be
helpful to have at least a bit of insight into the code to be able to
fix some trivial issues every now and then (like it turned out that
portindex2json needs some minor tweaks), but any bugs, complex issues
(or even trivial ones if needed) in MacPorts itself can be fixed by
the core team. The Tcl core code needs some time to get used to it,
and getting a deeper understanding would be required for students who
select a project related to the core, while Django app requires
confidence is Python, database design, some (python and/or shell)
scripting. Understanding and being able to fix Tcl code is just a
bonus that lets you do some stuff quickly alone, but not a
requirement.

Yes, the code should probably end up in various parts of different
MacPorts repositories at times to make the integration of the app with
the existing jobs & tools possible. But in most cases that would
probably be some python or shell scripts, depending on the approach.
It would probably be essential to eventually understand how the
buildbot setup works, so that it can be modified, but we can also help
with that.

Probably more than 90 % of the code would end up in its own repository.

Mojca


More information about the macports-dev mailing list