Squid 3 Roadmap

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.6 (3.HEAD)

Now in DEVELOPMENT cycle. The set of new Squid 3.6 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.6 expected to be in mid or late 2015.

  • {X} This series of Squid requires a C++11 capable compiler. The currently known compilers which meet this criteria and build Squid reliably are GCC 4.8+, Clang 3.3+, and Intel CC 12.0+

Basic new features in 3.6:

  • Major UI changes:

    • RFC 6176 compliance (SSLv2 support removal)

    • Configurable helper queue size, with consistent defaults and better overflow handling
    • Add url_lfs_rewrite: a URL-rewriter based on local file existence
    • on_unsupported_protocol directive to allow Non-HTTP bypass

  • Minor UI changes:

    • basic_msnt_multi_domain_auth: Superceeded by basic_smb_lm_auth
    • Sub-millisecond transaction logging
    • ext_kerberos_ldap_group_acl -n option to disable automated SASL/GSSAPI
    • negotiate_kerberos_auth outputs group= kv-pair for use in note ACL
    • Adaptation support for Expect:100-continue in HTTP messages

    • url_rewrite_timeout directive

    • Update localnet ACL default definition for RFC 6890 compliance

    • Persistent connection timeouts request_start_timeout and pconn_lifetime

  • Developer Interest changes:

    • C++11
    • New helper concurrency channel-ID assignment algorithm
    • Simplify MEMPROXY_CLASS_* macros
    • Simplify CBDATA API and rename CBDATA_CLASS
    • HTTP Parser structural redesign
    • Base64 crypto API replacement
    • Enable long (--foo) command line parameters on squid binary

The intention with this series is to improve performance using C++11 features. Some remaining Squid-2.7 missing features are listed as regressions in http://www.squid-cache.org/Versions/v3/3.HEAD/RELEASENOTES.html#ss5.1

Packages of what will become squid 3.6 source code are available at http://www.squid-cache.org/Versions/v3/3.HEAD/

Security Advisories

See our Advisories list.

Open Bugs

Bug Zapping

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.6 if not completed by initial 3.5 release:

(Priority 1)

  • 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.

More ideas are available elsewhere.

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.5

dnsserver and DNS external helper API

Internal DNS client now appears to satisfy all use-cases.

3.5

COSS storage type

Superceded by ROCK storage type

3.6

SSLv2 support

Obsolete and very broken security

TBD

Netmask Support in ACL

CIDR or RFC-compliant netmasks are now required by 3.1. Netmask support full removal after 3.1 release.

RoadMap/Squid3 (last edited 2015-01-17 07:23:36 by Amos Jeffries)