🔗 Tasks To Be Done
This page accumulates the tasks which need to be done in Squid but are too minor to require a feature write-up on their own.
Feel free to jump in and try any of these tasks. Most can be done in small steps. Any contributions are welcome.
🔗 Incremental Tasks:
Tasks in this section need to be done in a rough order to make the changes easy. These may look large in full, but any small incremental part you can do is a lot of help. Check with squid-dev mailing list to see what we are up to and how you can assist the move forward on these.
- Document the source code with Doxygen format
- src/Store.* and related
- src/comm.* and related
- src/DelayPools.* and related
- Migration to smart Pointer framework
- update a HttpRequest
raw pointer to a
HttpRequest::Pointer
. Including all code performing locking on it - update a
HttpReply
raw pointer to aHttpReply::Pointer
. Including all code performing locking on it - update a
HttpMsg
raw pointer to aHttpMsg::Pointer
. Including all code performing locking on it - update a CBDATA raw pointer to a CbcPointer. Including all code performing validation tests and locking on it.
- update a HttpRequest
raw pointer to a
- Migration to the STUB.h framework
- create a src/tests/stub_libX.cc for each convenience library API using src/tests/STUB.h
- find unit tests which can be linked to the stub instead of the library and update the makefiles
- find unit tests with unnecessary linkages and remove (mostly in src/Makefile.am)
- This is being tracked in Features/SourceLayout.
- Add unit tests for each class, API method and function already in
existence to improve code quality and speedup future testing.
- src/acl/*
- src/ip/*
- Removing useless includes.
- going through each .h file and minimizing the other .h it includes, using class pre-defines where possible. (This is being done during Features/SourceLayout somewhat so contact squid-dev before attempting).
- Normalize the debug level 0 and 1 messages
- verify all DBG_CRITICAL output conforms to the labeling criterion in the FAQ
- verify all DBG_CRITICAL and DBG_IMPORTANT output has a KnowledgeBase page describing it (as per the FAQ) or a Feature page troubleshooting entry.
- Improve stats collection and reporting APIs
-
StatHist
has a bigger than needed API, showing its age and heritage. Stats collection and stats reporting should be disassociated, in order to allow unit tests to only include the former while only using stubs of the latter.
-
🔗 Small Tasks
Small, but nagging annoyances. These might be done already if this page is not updated regularly. Check with squid-dev to see if its already done.
- Fix kqueue bugs once and for all (ie, delete events for closed FDs)
- Cleanup Squid component macros that enable/disable components:
- .convention for Makefile.am conditionals is ENABLE_* (currenty some have incorrect USE_* maro names)
- Helper and Tool Manuals
- Write a manual/man(8) page for a helpers/ program that does not have one.
- Update the existing README.txt and other helper docs into proper manuals (todo list)
- Benchmark documentation.
- How fast can each helper run?
- For helpers with multiple backends (ie DB), how do they compare?