notbugAs an Amazon Associate I earn from qualifying purchases.
Want a good read? Try FreeBSD Mastery: Jails (IT Mastery Book 15)
Want a good monitor light? See my photosAll times are UTC
Ukraine

What is FreshSource?

The FreshSource project allows you to track source code changes. Features of the project include:

  • register your interest in portions of the tree (via a watch list)
  • optionally receive notification of the changes which occur to items on your watch list

Example page

We know you want it.... Here's the working copy of what the home page might look like. That page is live and shows the most recent commits. Compare that page with the FreshPorts look. You'll even see some overlap in the commit messages (i.e. the port commits will appear on both pages). Also note that both websites are using the same data from the same database.

All the news you want

We also have an RSS news feed and a sidebar.

How does FreshSource work?

FreshSource parses the log messages that are generated as new code is checked into the repository. The origin of the log message is not critical to the function of FreshSource because all input is first translated to a system-independent XML document. This allows FreshSource to work with any source code tree.

After the XML is processed by FreshSource, the information is stored in a database. The database is then used to produce webpages and watch list notifications.

What does FreshSource work with?

FreshSource has been designed to work with any source tree. But we had to start somewhere. So we chose an operating system which most of the developers used: FreeBSD. As the project progresses, other operating systems will be included.

How do I get my source tree involved?

We won't be ready to include other source trees until after we officially launch the project. But when we are ready, all we'll need is your source tree log changes in XML format according to the DTD (see below). The DTD will be an evolving document. It may need to change as new requirements come to our attention. It was designed with the FreeBSD cvs-all mailing list (now osolete) in mind but with future expansion a key consideration.

In 2012, FreshPorts moved to processing subversion commits, following FreeBSD's lead. In 2021, FreeBSD moved to git, and again FreshPorts moved along with it.

  1. archived FreeBSD message
  2. message as received by FreshSource
  3. XML version of message
  4. XML Document Type Definition (DTD)
  5. perl script to convert message to XML

If you are eager to get your source tree included, the first step is to produce a script which will take convert your log messages to XML format. The log messages also need to be sent out on a mailing list.

FreshSource takes input from mail messages, uses a script to convert them to XML, and then processes the XML. But it will be some time before we are ready to accept other source trees.

How can I help?

All of the technology involved in the FreshSource has come from FreshPorts. You can help by joining the FreshPorts development team. We have many small stand-alone projects which vary in size from a few hours to a few weeks. We need help in the following areas:

  • graphics designers - we need logos, banners, buttons, and general website design
  • shell scripts
  • perl scripts
  • PHP coding (getting information from the database onto the webpages)
  • HTML coding (we need webpages designed and set up)
  • Someone who can type (we need items written such as web page content, announcements, etc; we know what needs to go into these things, we just need someone to write them)

Ideas for future work

  • watch lists (same as what FreshPorts does only bigger)
  • filtering (not interested in an area of the tree? filter it out)
  • add links to cvsweb and include commit history
  • searching (all commits done by jmallett)
  • commits to specific branches
Login
User Login
Create account

This site
What?
About
Privacy
Commits
Repo



Valid HTML 4.01!   Valid CSS!   [Valid RSS]

Copyright © 2000-2025 Dan Langille. All rights reserved.