Squid 3 Roadmap
Contents
Roadmap rules
To minimize noise and the number of half-baked abandoned features, two Feature sets are established for Squid3 development projects: The TODO List and The Wish List.
- TODO list
- TODO list features determine the release focus and timeline. Each feature must document their desired effect and estimated development time. Each feature must have at least one known active developer behind it willing to prioritize the feature and be ready to spend the time to fully develop the proposed feature (i.e., write, test, document, commit, and provide initial support).
- Priorities
- Each developer needs to prioritize the features they are dedicated to completing with a rating estimating on the order they will complete the feature. This makes the priority public, so another developer may join and push the feature faster if needed.
- Wish List
- The Wish List accumulates features that do not meet the strict TODO List criteria. Many of these features can be implemented if there is enough demand or a sponsor. Some may get implemented outside of the official process, submitted as patches, and accepted into the release.
There are no longer any freezing points in the 3.x Roadmap. Instead, Point Releases are now made at regular intervals as determined by; a reasonable time since last point release, or a large number of features being added.
All features must pass an auditing process for commit to 3.HEAD, and any feature which has passed that process at time of release will be included in that release.
Features which have not reached completion or have failed the audit, are automatically delayed to the next Squid release. Which should not be an unreasonable delay given the new fast-track release plan.
Squid 3.2
Now in RELEASE CANDIDATE cycle. The Squid 3.2 release timeline is now roughly monthly beta packages until the new features are considered finished and a period of two weeks occur without any new bugs being discovered in those features.
Additions are limited to:
- Polish of existing features
- Porting of Squid-2.7 feature regressions
- Stability fixes
- Bug fixes
Features Ported from 2.7 in this release:
- Unique Sequence numbering for access.log lines
Features/LogModules (including log daemon module)
Cache-Control: stale-if-error handling and other staleness limits.
Basic new features in 3.2:
Fully transparent credential pass-thru to cache_peer
Kerberos login to cache_peer
Dynamic URL generation for deny_info redirects
- Multi-Lingual FTP directory listings
- Multi-Lingual proxy configuration splash pages for captive portals
Surrogate 1.0 protocol support
SMP Scaling worker processes
''rock'' SMP shared memory cache with disk backing
- Helpers started on-demand instead of delaying startup and reconfigure process
New helpers to demo url_rewrite_program programs
- New helper to lookup Kerberos or NTLM group via LDAP
- New helper to de-mux Negotiate/NTLM and Negotiate/Kerberos authentication
Purge tool to manage UFS/AUFS/DiskD caches bundled
- EUI (MAC address) logging and external ACL handling
- IPv6 support for TCP split-stack
Packages of squid 3.2 source code are available at http://www.squid-cache.org/Versions/v3/3.2/
Squid 3.3 (3.HEAD)
Now in DEVELOPMENT cycle. The set of new Squid 3.3 features and release timeline is determined by submissions and available developer time. New features may be completed and added at any time until the branching of 3.3 in 2012.
Basic new features in 3.3:
- New helper to log access.log to an SQL Database
- New helper to quota session access time
SslBump improvements
Packages of squid 3.3 source code are available at http://www.squid-cache.org/Versions/v3/3.HEAD/
TODO
These are the features we are trying to work on at present. New features may be requested, suggested, or added to the plan at any time. Those which are completed and merged will be in the next formal branch after their merge date.
Under Development
(Priority 1)
(Priority 2)
(Priority 3)
(Priority 4)
(Others)
Developer Needed
Features considered high-priority for including, but not yet with a dedicated developer to achieve that goal. Incomplete items will be bumped to 3.4 if not completed by initial 3.3 release:
(Priority 1)
- Store URL re-write port from 2.7
monitor* port from 2.6. 2185
(Priority 2)
- Variant Invalidation
(Priority 3)
(Priority 4)(Others)
There is also a list of Tasks which anyone can help with.
Wish List
Wishlist consists of features which have been suggested or requested but do not yet have a developer or any contributor willing to see the feature completed and support it.
Please contact squid-dev and discuss these if you with to take on development of one.
- Features/Authentication
- Features/AutoCacheDirSizing
- Features/ClientSideCleanup
- Features/ConfigUpdater
- Features/ControlChannel
- Features/Diagnostics
- Features/DumpCallInfoOnCrash
- Features/ETagVarySupport
- Features/EtagSupport
- Features/ExternalRefreshCheck
- Features/ExtraParamsOnCmdLine
- Features/FasterHttpParser
- Features/Gzip
- Features/HTTP11
- Features/HTTPS
- Features/HelperPause
- Features/IcpLoggingAcl
- Features/Ipv6DelayPool
- Features/LoadBalance
- Features/LogFormat
- Features/MaxObjectAge
- Features/MemPoolsImprovements
- Features/MonitorUrl
- Features/MultiCast
- Features/MultipleUnlinkdQueues
- Features/NetDbForIpv6
- Features/NoCentralStoreIndex
- Features/PartialResponsesCaching
- Features/Quota
- Features/SimpleWebServer
- Features/SquidAppliance
- Features/SrvDnsOriginServerLocation
- Features/StackableIO
- Features/TCPAccess
- Features/UrnSupportRemoval
- Features/VaryProcessing
- Features/XvaryOptions
More ideas are available elsewhere.
- Feature marked 3.2 which did not make it:
Schedule for Feature Removals
Certain features are no longer relevant as the code improves and are planned for removal. Due to the possibility they are being used we list them here along with the release version they are expected to disappear. Warnings should also be present in the code where possible.
Version |
Feature |
Why |
3.1 |
error_directory files with named languages |
Superseded by ISO-639 translations in langpack |
3.1 |
libcap 1.x |
libcap-2.06+ is required for simpler code and proper API usage. |
3.2 |
Multiple languages per error page. |
Superseded by auto-negotiation in 3.1+ |
3.2 |
TPROXYv2 Support |
TPROXYv4 available from 3.1 and native Linux kernels |
3.2+ |
Netmask Support in ACL |
CIDR or RFC-compliant netmasks are now required by 3.1. Netmask support full removal after 3.1 release. |
3.3 |
cachemgr_passwd |
Security is better controlled by login acl in the http_access configuration |
3.3 |
cachemgr.cgi |
Merger of report functionality into the main squid process obsoletes it as a stand-alone application. |
