Contents
The Bleeding Edge
Squid-3:
The Squid project has now moved to Bazaar as its configuration management tool (see Squid3VCS).
To interactively browse the repository you can use BzrView, the development trunk is at http://www.squid-cache.org/bzrview/squid3/trunk/changes.
|
In order to use the CVS sources, or when developing some parts of Squid, you need to perform a source bootstrap operation. How and Why are described in SourceBootstrap. |
Squid-2:
|
CVS access instructions are detailed in CvsInstructions; to interactively browse the repository you can use CVSWeb. |
Developer Projects
Squid-3:
https://code.launchpad.net/squid provide space for Squid developers to publish and associate their code with the squid project.
Squid-2:
To make life easier we provide space for each developer interested in developing a feature in Squid. For more information see http://devel.squid-cache.org/.
During the life of the Squid project, a number of papers have been published.
Contributing (Code developer)
If you wish to become a developer the first step is to sign up to the squid-dev mailing list. This is done by first posting an introduction of yourself to <squid-dev AT squid-cache DOT org> , then send a subscription request to <squid-dev-subscribe AT squid-cache DOT org>. Please note that all messages must be sent in plain-text only (no HTML email). A read-only archive is available to everyone.
If you wish to contribute squid there are certain guidelines you need to follow in your coding style. They are explained in Squid2CodingGuidelines and Squid3CodingGuidelines. The Programming Guide offers some (but certainly not enough) information on the Squid internals. SquidInternals offers some more-or-less (mostly less) organized snippets.
If you are looking for a new project to work on check the feature wish list at RoadMap/Squid3 or query the bugzilla database for enhancement requests.
Squid is HTTP/1.0 due to the lack of certain features. We have a checklist for HTTP/1.1 compliance which needs to be completed still.
Required Tools
Required Build Tools
- autoconf 2.61 or later
- automake 1.10 or later
- libtool
- libltdl-dev
CppUnit for unit testing.
Depending on what features you wish to develop there may be other library and tool requirements.
Contributing (Testing)
We are currently setting up a BuildFarm. Additions to it are welcome.
If you are looking to test the latest release of Squid for your own use you will need to grab yourself a copy of the sources from Bazaar, CVS, rsync, or one of the daily snapshot tarballs.
To test a specific project branch you will need to:
Squid-3:
Pull the branch code directly from bzr https://code.launchpad.net/squid
Squid-2:
either pull the daily snapshot and apply the branch patch available at http://devel.squid-cache.org/projects.html
Getting the sources via Bazaar (bzr)
Squid-3:
see Squid3VCS
Note that Bazaar checkouts require the same build tool chains as developers. The repository does not contain makefiles etc which are present in the snapshots and rsync.
Getting the sources via CVS
Squid-2: see CvsInstructions
NP: This is primarily for Squid-2 sources. Squid-3 uses Bazaar. Though sourceforge mirror does retain a CVS mirror of Squid-3 for read-only access.
Getting the sources via tarball
As a more lightweight alternative you can use rsync; the latest sources are available at address http://squid-cache.org/Versions/v3/HEAD/
Getting the sources via rsync
As a more lightweight alternative to the tarballs you can use rsync; the latest sources are available at address rsync://squid-cache.org/source/<version> To use this feature you may use
$ rsync rsync://squid-cache.org/source (sample output) drwxr-xr-x 512 2008/04/06 17:28:57 . drwxr-xr-x 1024 2008/04/06 17:22:10 squid-2.6 drwxr-xr-x 1024 2008/04/06 17:22:20 squid-2.7 drwxr-xr-x 1024 2008/04/06 17:21:55 squid-2 drwxr-xr-x 1024 2008/04/06 17:22:58 squid-3.0 drwxr-xr-x 1024 2008/04/06 17:22:58 squid-3.1 drwxr-xr-x 1024 2008/04/06 17:56:42 squid-3
After you've selected the version you wish to download you can:
rsync -avz rsync://squid-cache.org/source/<version> .
Project organization
ReleaseProcess describes the process and criteria used by the Squid Developers when making new Squid releases.
WhoWeAre explains who the people working on the Squid project are.
MergeProcedure explains how to get your feature or improvement accepted into squid
Code Sprints
Code Sprints are informal gatherings of Squid developers with a focus on developing urgently needed features or fixing major bugs. You can find links to related documents in MeetUps.
