Radicale uses the default logging facility for Python. The default configuration prints the information messages to the standard output. It is possible to print debug messages thanks to:
+Radicale uses the default logging facility for Python. The default
+configuration prints the information messages to the standard output. It
+is possible to print debug messages thanks to:
Radicale can also be configured to send the messages to the console, logging files, syslog, etc. For more information about the syntax of the configuration file, see: http://docs.python.org/library/logging.config.html. Here is an example of logging configuration file:
+Radicale can also be configured to send the messages to the console,
+logging files, syslog, etc. For more information about the syntax of the
+configuration file, see: http://docs.python.org/library/logging.config.html.
+Here is an example of logging configuration file:
# Loggers, handlers and formatters keys
[loggers]
@@ -947,25 +1279,36 @@ After installing and accepting it you should restart your browser.
Command Line Options
-All the options of the server
part can be changed with command line options. These options are available by typing:
+All the options of the server
part can be changed with
+command line options. These options are available by typing:
radicale --help
WSGI, CGI and FastCGI
-Radicale comes with a WSGI support, allowing the software to be used behind any HTTP server supporting WSGI such as Apache.
-Moreover, it is possible to use flup to wrap Radicale into a CGI, FastCGI, SCGI or AJP application, and therefore use it with Lighttpd, Nginx or even Tomcat.
+Radicale comes with a WSGI support,
+allowing the software to be used behind any HTTP server supporting WSGI
+such as Apache.
+Moreover, it is possible to use flup to wrap Radicale into
+a CGI, FastCGI, SCGI or AJP application, and therefore use it with
+Lighttpd, Nginx or even Tomcat.
Apache and mod_wsgi
-To use Radicale with Apache's mod_wsgi
, you first have to install the Radicale module in your Python path and write your .wsgi
file (in /var/www
for example):
+To use Radicale with Apache's mod_wsgi
, you first have
+to install the Radicale module in your Python path and write your
+.wsgi
file (in /var/www
for example):
import radicale
radicale.log.start()
application = radicale.Application()
Note
-The hosts
, daemon
, pid
, ssl
, certificate
, key
, protocol
and ciphers
keys of the [server]
part of the configuration are ignored.
+The hosts
, daemon
, pid
,
+ssl
, certificate
, key
,
+protocol
and ciphers
keys of the
+[server]
part of the configuration are ignored.
-Next you have to create the Apache virtual host (adapt the configuration to your environment):
+Next you have to create the Apache virtual host (adapt the
+configuration to your environment):
<VirtualHost *:80>
ServerName cal.yourdomain.org
@@ -982,10 +1325,17 @@ After installing and accepting it you should restart your browser.
</VirtualHost>
Warning
-You should use the root of the (sub)domain (WSGIScriptAlias /
), else some CalDAV features may not work.
+You should use the root of the (sub)domain
+(WSGIScriptAlias /
), else some CalDAV features may not
+work.
-If you want to use authentication with Apache, you really should use one of the Apache authentication modules, instead of the ones from Radicale: they're just better.
-Deactivate any rights and module in Radicale and use your favourite Apache authentication backend. You can then restrict the access: allow the alice
user to access /alice/*
URLs, and everything should work as expected.
+If you want to use authentication with Apache, you really
+should use one of the Apache authentication modules, instead of the ones
+from Radicale: they're just better.
+Deactivate any rights and module in Radicale and use your favourite
+Apache authentication backend. You can then restrict the access: allow
+the alice
user to access /alice/*
URLs, and
+everything should work as expected.
Here is one example of Apache configuration file:
<VirtualHost *:80>
ServerName radicale.local
@@ -1010,10 +1360,15 @@ After installing and accepting it you should restart your browser.
RewriteRule .* - [Forbidden]
</Directory>
</VirtualHost>
-If you're still convinced that access control is better with Radicale, you have to add WSGIPassAuthorization On
in your Apache configuration files, as explained in the mod_wsgi documentation.
+If you're still convinced that access control is better with
+Radicale, you have to add WSGIPassAuthorization On
in your
+Apache configuration files, as explained in the
+mod_wsgi documentation.
Note
-Read-only calendars or address books can also be served by a simple Apache HTTP server, as Radicale stores full-text icalendar and vcard files with the default configuration.
+Read-only calendars or address books can also be served by a simple
+Apache HTTP server, as Radicale stores full-text icalendar and vcard
+files with the default configuration.
@@ -1029,38 +1384,63 @@ After installing and accepting it you should restart your browser.
PAM
Remote user given by HTTP server
-Check the [auth]
section of your configuration file to know the different options offered by these authentication modules.
-Some authentication methods need additional modules, see Python Versions and OS Support for further information.
-You can also write and use a custom module handle authentication if you use a different technology.
-Please note that these modules have not been verified by security experts. If you need a really secure way to handle authentication, you should put Radicale behind a real HTTP server and use its authentication and rights management methods.
+Check the [auth]
section of your configuration file to
+know the different options offered by these authentication modules.
+Some authentication methods need additional modules, see Python Versions and OS
+Support for further information.
+You can also write and use a custom module handle authentication if
+you use a different technology.
+Please note that these modules have not been verified by security
+experts. If you need a really secure way to handle authentication, you
+should put Radicale behind a real HTTP server and use its authentication
+and rights management methods.
Rights Management
-You can set read and write rights for collections according to the authenticated user and the owner of the collection.
-The owner of a collection is determined by the URL of the collection. For example, http://my.server.com:5232/anna/calendar.ics/
is owned by the user called anna
.
-The authenticated user is the login used for authentication.
-5 different configurations are available, you can choose the one you want in your configuration file. You can also write and use a custom module handle rights management if you need a specific pattern.
+You can set read and write rights for collections according to the
+authenticated user and the owner of the collection.
+The owner of a collection is determined by the URL of the
+collection. For example,
+http://my.server.com:5232/anna/calendar.ics/
is owned by
+the user called anna
.
+The authenticated user is the login used for
+authentication.
+5 different configurations are available, you can choose the one you
+want in your configuration file. You can also write and use a custom
+module handle rights management if you need a specific pattern.
None
-Everybody (including anonymous users) has read and write access to all collections.
+Everybody (including anonymous users) has read and write access to
+all collections.
Authenticated
-An authenticated users has read and write access to all collections, anonymous users have no access to these collections.
+An authenticated users has read and write access to all collections,
+anonymous users have no access to these collections.
Owner Only
-Only owners have read and write access to their own collections. The other users, authenticated or anonymous, have no access to these collections.
+Only owners have read and write access to their own collections. The
+other users, authenticated or anonymous, have no access to these
+collections.
Owner Write
-Authenticated users have read access to all collections, but only owners have write access to their own collections. Anonymous users have no access to collections.
+Authenticated users have read access to all collections, but only
+owners have write access to their own collections. Anonymous users have
+no access to collections.
From File
-Rights are based on a regex-based file whose name is specified in the config (section "right", key "file").
-Authentication login is matched against the "user" key, and collection's path is matched against the "collection" key. You can use Python's ConfigParser interpolation values %(login)s and %(path)s. You can also get groups from the user regex in the collection with {0}, {1}, etc.
-For example, for the "user" key, ".+" means "authenticated user" and ".*" means "anybody" (including anonymous users).
+Rights are based on a regex-based file whose name is specified in the
+config (section "right", key "file").
+Authentication login is matched against the "user" key, and
+collection's path is matched against the "collection" key. You can use
+Python's ConfigParser interpolation values %(login)s and %(path)s. You
+can also get groups from the user regex in the collection with {0}, {1},
+etc.
+For example, for the "user" key, ".+" means "authenticated user" and
+".*" means "anybody" (including anonymous users).
Section names are only used for naming the rule.
Leading or ending slashes are trimmed from collection's path.
Example:
@@ -1110,12 +1490,18 @@ After installing and accepting it you should restart your browser.
Git Support
Note
-If the project doesn't comply with the requirements to use Git, Radicale will still work. Your collections will run fine but without the versionning system.
+If the project doesn't comply with the requirements to use Git,
+Radicale will still work. Your collections will run fine but without the
+versionning system.
Git is now automatically supported on Radicale. It depends on dulwich.
How it works
-Radicale will automatically commit any changes on your collections. It will use your git config to find parameters such as the committer and that's all.
+Radicale will automatically commit any changes on your collections.
+It will use your git config to find parameters such as the committer and
+that's all.
Issues
-A dulwich project ported on Python 3 exists but it seems that it doesn't follow the current api (committer is mandatory and not retrieved from the git config by default). Until this problem isn't fixed, the Git support for Radicale on Python 3 will not be ensured.
+A dulwich project ported on Python 3 exists but it seems that it
+doesn't follow the current api (committer is mandatory and not retrieved
+from the git config by default). Until this problem isn't fixed, the Git
+support for Radicale on Python 3 will not be ensured.
@@ -1138,35 +1529,53 @@ After installing and accepting it you should restart your browser.
Python Versions and OS Support
TLS Support
-Python 2.6 suffered a bug causing huge timeout problems with TLS. The bug is fixed since Python 2.6.6.
+Python 2.6 suffered a
+bug causing huge timeout problems with TLS. The bug is fixed since
+Python 2.6.6.
IMAP authentication over TLS requires Python 3.2.
Python 2.7 and Python 3.x do not suffer this bug.
Crypt Support
-With the htpasswd access, many encryption methods are available, and crypt is the default one in Radicale. Unfortunately, the crypt
module is unavailable on Windows, you have to pick another method on this OS.
-Additional md5
and bcrypt
methods are available when the passlib
module is installed.
+With the htpasswd access, many encryption methods are available, and
+crypt is the default one in Radicale. Unfortunately, the
+crypt
module is unavailable on Windows, you have to pick
+another method on this OS.
+Additional md5
and bcrypt
methods are
+available when the passlib
module is installed.
IMAP Authentication
-The IMAP authentication module relies on the imaplib module, available with 2.x versions of Python. However, TLS is only available in Python 3.2. Older versions of Python or a non-modern server who does not support STARTTLS can only authenticate against localhost
as passwords are transmitted in PLAIN. Legacy SSL mode on port 993 is not supported.
+The IMAP authentication module relies on the imaplib module,
+available with 2.x versions of Python. However, TLS is only available in
+Python 3.2. Older versions of Python or a non-modern server who does not
+support STARTTLS can only authenticate against localhost
as
+passwords are transmitted in PLAIN. Legacy SSL mode on port 993 is not
+supported.
LDAP Authentication
-The LDAP authentication module relies on the python-ldap module, and thus only works with 2.x versions of Python.
+The LDAP authentication module relies on the python-ldap module, and thus
+only works with 2.x versions of Python.
PAM Authentication
-The PAM authentication module relies on the python-pam module.
-Bear in mind that on Linux systems, if you're authenticating against PAM files (i.e. /etc/shadow
), the user running Radicale must have the right permissions. For instance, you might want to add the radicale
user to the shadow
group.
+The PAM authentication module relies on the python-pam
+module.
+Bear in mind that on Linux systems, if you're authenticating against
+PAM files (i.e. /etc/shadow
), the user running Radicale
+must have the right permissions. For instance, you might want to add the
+radicale
user to the shadow
group.
Daemon Mode
-The daemon mode relies on forks, and thus only works on Unix-like OSes (incuding Linux, OS X, BSD).
+The daemon mode relies on forks, and thus only works on Unix-like
+OSes (incuding Linux, OS X, BSD).
@@ -1174,27 +1583,40 @@ After installing and accepting it you should restart your browser.
Project Description
Main Goals
-The Radicale Project is a complete calendar and contact storing and manipulating solution. It can store multiple calendars and multiple address books.
-Calendar and contact manipulation is available from both local and distant accesses, possibly limited through authentication policies.
+The Radicale Project is a complete calendar and contact storing and
+manipulating solution. It can store multiple calendars and multiple
+address books.
+Calendar and contact manipulation is available from both local and
+distant accesses, possibly limited through authentication policies.
What Radicale Is not and will not Be
@@ -1204,52 +1626,100 @@ After installing and accepting it you should restart your browser.
Global Technical Choices
General Description
-The Radicale Project aims to be a light solution, easy to use, easy to install, easy to configure. As a consequence, it requires few software dependencies and is pre-configured to work out-of-the-box.
-The Radicale Project runs on most of the UNIX-like platforms (Linux, *BSD, MacOS X) and Windows. It is free and open-source software.
+The Radicale Project aims to be a light solution, easy to use, easy
+to install, easy to configure. As a consequence, it requires few
+software dependencies and is pre-configured to work out-of-the-box.
+The Radicale Project runs on most of the UNIX-like platforms (Linux,
+*BSD, MacOS X) and Windows. It is free and open-source software.
Language
-The different parts of the Radicale Project are written in Python. This is a high-level language, fully object-oriented, available for the main operating systems and released with a lot of useful libraries.
+The different parts of the Radicale Project are written in Python.
+This is a high-level language, fully object-oriented, available for the
+main operating systems and released with a lot of useful libraries.
Development Choices
-Important global development choices have been decided before writing code. They are very useful to understand why the Radicale Project is different from other CalDAV and CardDAV servers, and why features are included or not in the code.
+Important global development choices have been decided before writing
+code. They are very useful to understand why the Radicale Project is
+different from other CalDAV and CardDAV servers, and why features are
+included or not in the code.
Oriented to Calendar and Contact User Agents
-Calendar and contact servers work with calendar and contact clients, using a defined protocol. CalDAV and CardDAV are good protocols, covering lots of features and use cases, but it is quite hard to implement fully.
-Some calendar servers have been created to follow the CalDAV and CardDAV RFCs as much as possible: Davical[7], Cosmo[8] and Darwin Calendar Server[9], for example, are much more respectful of CalDAV and CardDAV and can be used with a large number of clients. They are very good choices if you want to develop and test new CalDAV clients, or if you have a possibly heterogeneous list of user agents.
-The Radicale Server does not and will not support the CalDAV and CardDAV standards. It supports the CalDAV and CardDAV implementations of different clients (Lightning, Evolution, Android, iPhone, iCal, and more).
+Calendar and contact servers work with calendar and contact clients,
+using a defined protocol. CalDAV and CardDAV are good protocols,
+covering lots of features and use cases, but it is quite hard to
+implement fully.
+Some calendar servers have been created to follow the CalDAV and
+CardDAV RFCs as much as possible: Davical[7], Cosmo[8] and Darwin Calendar Server[9], for
+example, are much more respectful of CalDAV and CardDAV and can be used
+with a large number of clients. They are very good choices if you want
+to develop and test new CalDAV clients, or if you have a possibly
+heterogeneous list of user agents.
+The Radicale Server does not and will not support
+the CalDAV and CardDAV standards. It supports the CalDAV and CardDAV
+implementations of different clients (Lightning, Evolution, Android,
+iPhone, iCal, and more).
Simple
-The Radicale Server is designed to be simple to install, simple to configure, simple to use.
-The installation is very easy, particularly with Linux: no dependencies, no superuser rights needed, no configuration required. Launching the main script out-of-the-box, as a normal user, is often the only step to have a simple remote calendar and contact access.
-Contrary to other servers that are often complicated, require high privileges or need a strong configuration, the Radicale Server can (sometimes, if not often) be launched in a couple of minutes, if you follow the User Documentation.
+The Radicale Server is designed to be simple to install, simple to
+configure, simple to use.
+The installation is very easy, particularly with Linux: no
+dependencies, no superuser rights needed, no configuration required.
+Launching the main script out-of-the-box, as a normal user, is often the
+only step to have a simple remote calendar and contact access.
+Contrary to other servers that are often complicated, require high
+privileges or need a strong configuration, the Radicale Server can
+(sometimes, if not often) be launched in a couple of minutes, if you
+follow the User Documentation.
Lazy
-We, Radicale Project developers, are lazy. That is why we have chosen Python: no more ;
or {}
[10]. This is also why our server is lazy.
-The CalDAV RFC defines what must be done, what can be done and what cannot be done. Many violations of the protocol are totally defined and behaviours are given in such cases.
-The Radicale Server assumes that the clients are perfect and that protocol violations do not exist. That is why most of the errors in client requests have undetermined consequences for the lazy server that can reply good answers, bad answers, or even no answer.
-As already mentioned, the Radicale server doesn't fully support the CalDAV and CardDAV RFCs. For example, nested filters in queries currently don't work in all cases. Examples of not working queries can be found in issues #120 and #121.
+We, Radicale Project developers, are lazy. That is why we have chosen
+Python: no more ;
or {}
[10].
+This is also why our server is lazy.
+The CalDAV RFC defines what must be done, what can be done and what
+cannot be done. Many violations of the protocol are totally defined and
+behaviours are given in such cases.
+The Radicale Server assumes that the clients are perfect and that
+protocol violations do not exist. That is why most of the errors in
+client requests have undetermined consequences for the lazy server that
+can reply good answers, bad answers, or even no answer.
+As already mentioned, the Radicale server doesn't fully support the
+CalDAV and CardDAV RFCs. For example, nested filters in queries
+currently don't work in all cases. Examples of not working queries can
+be found in issues #120 and #121.
@@ -1257,7 +1727,8 @@ After installing and accepting it you should restart your browser.
Architectures
General Architecture
-Here is a simple overview of the global architecture for reaching a calendar through network:
+Here is a simple overview of the global architecture for reaching a
+calendar through network:
@@ -1292,28 +1763,58 @@ After installing and accepting it you should restart your browser.
-The Radicale Project is only the server part of this architecture.
+The Radicale Project is only the server part of this
+architecture.
Code Architecture
The package offers 8 modules.
__main__
-The main module provides a simple function called run
. Its main work is to read the configuration from the configuration file and from the options given in the command line; then it creates a server, according to the configuration.
+The main module provides a simple function called run
. Its
+main work is to read the configuration from the configuration file and
+from the options given in the command line; then it creates a server,
+according to the configuration.
__init__
-This is the core part of the module, with the code for the CalDAV server. The server inherits from a HTTP or HTTPS server class, which relies on the default HTTP server class given by Python. The code managing the different HTTP requests according to the CalDAV normalization is written here.
+This is the core part of the module, with the code for the CalDAV
+server. The server inherits from a HTTP or HTTPS server class, which
+relies on the default HTTP server class given by Python. The code
+managing the different HTTP requests according to the CalDAV
+normalization is written here.
config
-This part gives a dict-like access to the server configuration, read from the configuration file. The configuration can be altered when launching the executable with some command line options.
+This part gives a dict-like access to the server configuration, read
+from the configuration file. The configuration can be altered when
+launching the executable with some command line options.
ical
-In this module are written the classes to represent collections and items in Radicale. The simple iCalendar and vCard readers and writers are included in this file. The readers and writers are small and stupid: they do not fully understand the iCalendar format and do not know at all what a date is.
+In this module are written the classes to represent collections and
+items in Radicale. The simple iCalendar and vCard readers and writers
+are included in this file. The readers and writers are small and stupid:
+they do not fully understand the iCalendar format and do not know at all
+what a date is.
xmlutils
-The functions defined in this module are mainly called by the CalDAV server class to read the XML part of the request, read or alter the calendars, and create the XML part of the response. The main part of this code relies on ElementTree.
+The functions defined in this module are mainly called by the CalDAV
+server class to read the XML part of the request, read or alter the
+calendars, and create the XML part of the response. The main part of
+this code relies on ElementTree.
log
-The start
function provided by this module starts a logging mechanism based on the default Python logging module. Logging options can be stored in a logging configuration file.
+The start
function provided by this module starts a logging
+mechanism based on the default Python logging module. Logging options
+can be stored in a logging configuration file.
acl
-This module is a set of Access Control Lists, a set of methods used by Radicale to manage rights to access the calendars. When the CalDAV server is launched, an Access Control List is chosen in the set, according to the configuration. The HTTP requests are then filtered to restrict the access using a list of login/password-based access controls.
+This module is a set of Access Control Lists, a set of methods used by
+Radicale to manage rights to access the calendars. When the CalDAV
+server is launched, an Access Control List is chosen in the set,
+according to the configuration. The HTTP requests are then filtered to
+restrict the access using a list of login/password-based access
+controls.
storage
-This folder is a set of storage modules able to read and write collections. Currently there are three storage modules: filesystem
, storing each collection into one flat plain-text file, multifilesystem
, storing each entries into separates plain-text files, and database
, storing entries in a database. filesystem
is stable and battle-tested, others are experimentals.
+This folder is a set of storage modules able to read and write
+collections. Currently there are three storage modules:
+filesystem
, storing each collection into one flat
+plain-text file, multifilesystem
, storing each entries into
+separates plain-text files, and database
, storing entries
+in a database. filesystem
is stable and battle-tested,
+others are experimentals.
@@ -1328,25 +1829,31 @@ This folder is a set of storage modules able to read and write collections. Curr
Report Bugs
-Found a bug? Want a new feature? Report a new issue on the Radicale bug-tracker
.
+Found a bug? Want a new feature? Report a new issue on the
+Radicale bug-tracker
.
Hack
-Interested in hacking? Feel free to clone the git repository on Github
if you want to add new features, fix bugs or update documentation.
+Interested in hacking? Feel free to clone the
+git repository on Github
if you want to add new features,
+fix bugs or update documentation.
Download
Git Repository
-If you want the development version of Radicale, take a look at the git repository on GitHub
, or clone it thanks to:
+If you want the development version of Radicale, take a look at the
+git repository on GitHub
, or clone it thanks to:
git clone git://github.com/Kozea/Radicale.git
-You can also download the Radicale package of the git repository.
+You can also download the Radicale
+package of the git repository.
Linux Distribution Packages
Radicale has been packaged for:
-Radicale is also available on Cloudron and has a Dockerfile.
-If you are interested in creating packages for other Linux distributions, read the "Contribute" page.
+Radicale is also available
+on Cloudron and has a Dockerfile.
+If you are interested in creating packages for other Linux
+distributions, read the "Contribute" page.
@@ -1447,7 +1983,8 @@ This folder is a set of storage modules able to read and write collections. Curr
1.1.3 - Third Law of Nature
-- Add a
--export-storage=FOLDER
command-line argument (by Unrud, see #606)
+- Add a
--export-storage=FOLDER
command-line argument (by
+Unrud, see #606)
@@ -1457,7 +1994,8 @@ This folder is a set of storage modules able to read and write collections. Curr
1.1.2 - Third Law of Nature
-- Security fix: Add a random timer to avoid timing oracles and simple bruteforce attacks when using the htpasswd authentication method.
+- Security fix: Add a random timer to avoid timing oracles and simple
+bruteforce attacks when using the htpasswd authentication method.
- Various minor fixes.
@@ -1467,20 +2005,29 @@ This folder is a set of storage modules able to read and write collections. Curr
Radicale 1.1 is out!
1.1 - Law of Nature
-One feature in this release is not backward compatible:
+One feature in this release is not backward
+compatible:
- Use the first matching section for rights (inspired from daald)
-Now, the first section matching the path and current user in your custom rights file is used. In the previous versions, the most permissive rights of all the matching sections were applied. This new behaviour gives a simple way to make specific rules at the top of the file independant from the generic ones.
-Many improvements in this release are related to security, you should upgrade Radicale as soon as possible:
+Now, the first section matching the path and current user in your
+custom rights file is used. In the previous versions, the most
+permissive rights of all the matching sections were applied. This new
+behaviour gives a simple way to make specific rules at the top of the
+file independant from the generic ones.
+Many improvements in this release are related to
+security, you should upgrade Radicale as soon as possible:
- Improve the regex used for well-known URIs (by Unrud)
- Prevent regex injection in rights management (by Unrud)
-- Prevent crafted HTTP request from calling arbitrary functions (by Unrud)
-- Improve URI sanitation and conversion to filesystem path (by Unrud)
+- Prevent crafted HTTP request from calling arbitrary functions (by
+Unrud)
+- Improve URI sanitation and conversion to filesystem path (by
+Unrud)
- Decouple the daemon from its parent environment (by Unrud)
-Some bugs have been fixed and little enhancements have been added:
+Some bugs have been fixed and little enhancements have been
+added:
- Assign new items to corret key (by Unrud)
- Avoid race condition in PID file creation (by Unrud)
@@ -1497,42 +2044,77 @@ This folder is a set of storage modules able to read and write collections. Curr
1.0 - Sunflower
- Enhanced performances (by Mathieu Dupuy)
-- Add MD5-APR1 and BCRYPT for htpasswd-based authentication (by Jan-Philip Gehrcke)
+- Add MD5-APR1 and BCRYPT for htpasswd-based authentication (by
+Jan-Philip Gehrcke)
- Use PAM service (by Stephen Paul Weber)
-- Don't discard PROPPATCH on empty collections (Markus Unterwaditzer)
-- Write the path of the collection in the git message (Matthew Monaco)
+- Don't discard PROPPATCH on empty collections (Markus
+Unterwaditzer)
+- Write the path of the collection in the git message (Matthew
+Monaco)
- Tests launched on Travis
-As explained in a previous mail, this version is called 1.0 because:
+As explained in a previous mail,
+this version is called 1.0 because:
-- there are no big changes since 0.10 but some small changes are really useful,
-- simple tests are now automatically launched on Travis, and more can be added in the future (https://travis-ci.org/Kozea/Radicale).
+- there are no big changes since 0.10 but some small changes are
+really useful,
+- simple tests are now automatically launched on Travis, and more can
+be added in the future (https://travis-ci.org/Kozea/Radicale).
-This version will be maintained with only simple bug fixes on a separate git branch called 1.0.x
.
-Now that this milestone is reached, it's time to think about the future. When Radicale has been created, it was just a proof-of-concept. The main goal was to write a small, stupid and simple CalDAV server working with Lightning, using no external libraries. That's how we created a piece of code that's (quite) easy to understand, to use and to hack.
-The first lines have been added to the SVN (!) repository as I was drinking beers at the very end of 2008. It's now packaged for a growing number of Linux distributions.
-And that was fun going from here to there thanks to you. So… Thank you, you're amazing. I'm so glad I've spent endless hours fixing stupid bugs, arguing about databases and meeting invitations, reading incredibly interesting RFCs and debugging with the fabulous clients from Apple. I mean: that really, really was really, really cool :).
-During these years, a lot of things have changed and many users now rely on Radicale in production. For example, I use it to manage medical calendars, with thousands requests per day. Many people are happy to install Radicale on their small home servers, but are also frustrated by performance and unsupported specifications when they're trying to use it seriously.
+This version will be maintained with only simple bug fixes on a
+separate git branch called 1.0.x
.
+Now that this milestone is reached, it's time to think about the
+future. When Radicale has been created, it was just a proof-of-concept.
+The main goal was to write a small, stupid and simple CalDAV server
+working with Lightning, using no external libraries. That's how we
+created a piece of code that's (quite) easy to understand, to use and to
+hack.
+The first lines have been added to the SVN (!) repository as I was
+drinking beers at the very end of 2008. It's now packaged for a growing
+number of Linux distributions.
+And that was fun going from here to there thanks to you. So…
+Thank you, you're amazing. I'm so glad I've spent
+endless hours fixing stupid bugs, arguing about databases and meeting
+invitations, reading incredibly interesting RFCs and debugging with the
+fabulous clients from Apple. I mean: that really, really was really,
+really cool :).
+During these years, a lot of things have changed and many users now
+rely on Radicale in production. For example, I use it to manage medical
+calendars, with thousands requests per day. Many people are happy to
+install Radicale on their small home servers, but are also frustrated by
+performance and unsupported specifications when they're trying to use it
+seriously.
So, now is THE FUTURE! I think that Radicale 2.0 should:
-- rely on a few external libraries for simple critical points (dealing with HTTP and iCal for example),
+- rely on a few external libraries for simple critical points (dealing
+with HTTP and iCal for example),
- be thread-safe,
- be small,
-- be documented in a different way (for example by splitting the client part from the server part, and by adding use cases),
+- be documented in a different way (for example by splitting the
+client part from the server part, and by adding use cases),
- let most of the "auth" modules outside in external modules,
- have more and more tests,
-- have reliable and faster filesystem and database storage mechanisms,
+- have reliable and faster filesystem and database storage
+mechanisms,
- get a new design :).
I'd also secretly love to drop the Python 2.x support.
-These ideas are not all mine (except from the really, really, really important "design" point :p), they have been proposed by many developers and users. I've just tried to gather them and keep points that seem important to me.
-Other points have been discussed with many users and contibutors, including:
+These ideas are not all mine (except from the really, really, really
+important "design" point :p), they have been proposed by many developers
+and users. I've just tried to gather them and keep points that seem
+important to me.
+Other points have been discussed with many users and contibutors,
+including:
-- support of other clients, including Windows and BlackBerry phones,
+- support of other clients, including Windows and BlackBerry
+phones,
- server-side meeting invitations,
- different storage system as default (or even unique?).
-I'm not a huge fan of these features, either because I can't do anything about them, or because I think that they're Really Bad Ideas®™. But I'm ready to talk about them, because, well, I may not be always right!
+I'm not a huge fan of these features, either because I can't do
+anything about them, or because I think that they're Really Bad Ideas®™.
+But I'm ready to talk about them, because, well, I may not be always
+right!
Need to talk about this? You know how to contact us!
@@ -1547,12 +2129,20 @@ This folder is a set of storage modules able to read and write collections. Curr
Reload logger config on SIGHUP (by Élie Bouttier)
Remove props files when deleting a collection (by Vincent Untz)
Support salted SHA1 passwords (by Marc Kleine-Budde)
-Don't spam the logs about non-SSL IMAP connections to localhost (by Giel van Schijndel)
+Don't spam the logs about non-SSL IMAP connections to localhost (by
+Giel van Schijndel)
-This version should bring some interesting discovery and auto-configuration features, mostly with Apple clients.
-Lots of love and kudos for the people who have spent hours to test features and report issues, that was long but really useful (and some of you have been really patient :p).
-Issues are welcome, I'm sure that you'll find horrible, terrible, crazy bugs faster than me. I'll release a version 0.10.1 if needed.
-What's next? It's time to fix and improve the storage methods. A real API for the storage modules is a good beginning, many pull requests are already ready to be discussed and merged, and we will probably get some good news about performance this time. Who said "databases, please"?
+This version should bring some interesting discovery and
+auto-configuration features, mostly with Apple clients.
+Lots of love and kudos for the people who have spent hours to test
+features and report issues, that was long but really useful (and some of
+you have been really patient :p).
+Issues are welcome, I'm sure that you'll find horrible, terrible,
+crazy bugs faster than me. I'll release a version 0.10.1 if needed.
+What's next? It's time to fix and improve the storage methods. A real
+API for the storage modules is a good beginning, many pull requests are
+already ready to be discussed and merged, and we will probably get some
+good news about performance this time. Who said "databases, please"?
@@ -1561,22 +2151,47 @@ This folder is a set of storage modules able to read and write collections. Curr
0.8 - Rainbow
-- New authentication and rights management modules (by Matthias Jordan)
+- New authentication and rights management modules (by Matthias
+Jordan)
- Experimental database storage
-- Command-line option for custom configuration file (by Mark Adams)
-- Root URL not at the root of a domain (by Clint Adams, Fabrice Bellet, Vincent Untz)
-- Improved support for iCal, CalDAVSync, CardDAVSync, CalDavZAP and CardDavMATE
+- Command-line option for custom configuration file (by Mark
+Adams)
+- Root URL not at the root of a domain (by Clint Adams, Fabrice
+Bellet, Vincent Untz)
+- Improved support for iCal, CalDAVSync, CardDAVSync, CalDavZAP and
+CardDavMATE
- Empty PROPFIND requests handled (by Christoph Polcin)
- Colon allowed in passwords
- Configurable realm message
-This version brings some of the biggest changes since Radicale's creation, including an experimental support of database storage, clean authentication modules, and rights management finally designed for real users.
-So, dear user, be careful: this version changes important things in the configuration file, so check twice that everything is OK when you update to 0.8, or you can have big problems.
-More and more clients are supported, as a lot of bug fixes and features have been added for this purpose. And before you ask: yes, 2 web-based clients, CalDavZAP and CardDavMATE, are now supported!
-Even if there has been a lot of time to test these new features, I am pretty sure that some really annoying bugs have been left in this version. We will probably release minor versions with bugfixes during the next weeks, and it will not take one more year to reach 0.8.1.
-The documentation has been updated, but some parts are missing and some may be out of date. You can report bugs or even write documentation directly on GitHub if you find something strange (and you probably will).
-If anything is not clear, or if the way rights work is a bit complicated to understand, or if you are so happy because everything works so well, you can share your thoughts!
-It has been a real pleasure to work on this version, with brilliant ideas and interesting bug reports from the community. I'd really like to thank all the people reporting bugs, chatting on IRC, sending mails and proposing pull requests: you are awesome.
+This version brings some of the biggest changes since Radicale's
+creation, including an experimental support of database storage, clean
+authentication modules, and rights management finally designed for real
+users.
+So, dear user, be careful: this version changes important
+things in the configuration file, so check twice that everything is OK
+when you update to 0.8, or you can have big problems.
+More and more clients are supported, as a lot of bug fixes and
+features have been added for this purpose. And before you ask: yes, 2
+web-based clients, CalDavZAP and
+CardDavMATE, are now supported!
+Even if there has been a lot of time to test these new features, I am
+pretty sure that some really annoying bugs have been left in this
+version. We will probably release minor versions with bugfixes during
+the next weeks, and it will not take one more year to reach 0.8.1.
+The documentation has been updated, but some parts are missing and
+some may be out of date. You can report bugs or even
+write
+documentation directly on GitHub if you find something strange (and
+you probably will).
+If anything is not clear, or if the way rights work is a bit
+complicated to understand, or if you are so happy because everything
+works so well, you can share your
+thoughts!
+It has been a real pleasure to work on this version, with brilliant
+ideas and interesting bug reports from the community. I'd really like to
+thank all the people reporting bugs, chatting on IRC, sending mails and
+proposing pull requests: you are awesome.
@@ -1592,10 +2207,19 @@ This folder is a set of storage modules able to read and write collections. Curr
Always set display name to collections (by Oskari Timperi)
Various DELETE responses fixed
-It's been a long time since the last version… As usual, many people have contributed to this new version, that's a pleasure to get these pull requests.
-Most of the commits are bugfixes, especially about ACL backends and address books. Many clients (including aCal and SyncEvolution) will be much happier with this new version than with the previous one.
-By the way, one main new feature has been added: a new IMAP ACL backend, by Daniel. And about authentication, exciting features are coming soon, stay tuned!
-Next time, as many mails have come from angry and desperate coders, tests will be finally added to help them to add features and fix bugs. And after that, who knows, it may be time to release Radicale 1.0…
+It's been a long time since the last version… As usual, many people
+have contributed to this new version, that's a pleasure to get these
+pull requests.
+Most of the commits are bugfixes, especially about ACL backends and
+address books. Many clients (including aCal and SyncEvolution) will be
+much happier with this new version than with the previous one.
+By the way, one main new feature has been added: a new IMAP ACL
+backend, by Daniel. And about authentication, exciting features are
+coming soon, stay tuned!
+Next time, as many mails have come from angry and desperate coders,
+tests will be finally added to help them to add features and
+fix bugs. And after that, who knows, it may be time to release Radicale
+1.0…
@@ -1610,28 +2234,42 @@ This folder is a set of storage modules able to read and write collections. Curr
CardDAV support
Custom LDAP filters supported
-A lot of people have reported bugs, proposed new features, added useful code and tested many clients. Thank you Lynn, Ron, Bill, Patrick, Hidde, Gerhard, Martin, Brendan, Vladimir, and everybody I've forgotten.
+A lot of people have reported bugs, proposed new
+features, added useful code and tested many clients. Thank you Lynn,
+Ron, Bill, Patrick, Hidde, Gerhard, Martin, Brendan, Vladimir, and
+everybody I've forgotten.
January 5, 2012 - Radicale 0.6.4, News from Calypso
-New year, new release. Radicale 0.6.4 has a really short changelog:
+New year, new release. Radicale 0.6.4 has a really short
+changelog:
0.6.4 - Tulips
- Fix the installation with Python 3.1
-The bug was in fact caused by a bug in Python 3.1, everything should be OK now.
+The bug was in fact caused by a bug in Python 3.1,
+everything should be OK now.
Calypso
-After a lot of changes in Radicale, Keith Packard has decided to launch a fork called Calypso, with nice features such as a Git storage mechanism and a CardDAV support.
-There are lots of differences between the two projects, but the final goal for Radicale is to provide these new features as soon as possible. Thanks to the work of Keith and other people on GitHub, a basic CardDAV support has been added in the carddav branch and already works with Evolution. Korganizer also works with existing address books, and CardDAV-Sync will be tested soon. If you want to test other clients, please let us know!
+After a lot of changes in Radicale, Keith Packard has decided to
+launch a fork called Calypso, with nice features
+such as a Git storage mechanism and a CardDAV support.
+There are lots of differences between the two projects, but the final
+goal for Radicale is to provide these new features as soon as possible.
+Thanks to the work of Keith and other people on GitHub, a basic CardDAV
+support has been added in the carddav branch
+and already works with Evolution. Korganizer also works with existing
+address books, and CardDAV-Sync will be tested soon. If you want to test
+other clients, please let us know!
November 3, 2011 - Radicale 0.6.3
-Radicale version 0.6.3 has been released, with bugfixes that could be interesting for you!
+Radicale version 0.6.3 has been released, with bugfixes that could be
+interesting for you!
0.6.3 - Red Roses
@@ -1642,19 +2280,41 @@ This folder is a set of storage modules able to read and write collections. Curr
What's New Since 0.6.2?
-The MOVE requests were suffering a little bug that is fixed now. These requests are only sent by Apple clients, Mac users will be happy.
-The REPORT request were really, really slow (several minutes for large calendars). This was caused by an awful algorithm parsing the entire calendar for each event in the calendar. The calendar is now only parsed three times, and the events are found in a Python list, turning minutes into seconds! Much better, but far from perfection…
-Finally, the executable script parsing the command line options and starting the HTTP servers has been moved from the radicale.py
file into the radicale
package. Two executable are now present in the archive: the good old radicale.py
, and bin/radicale
. The second one is only used by setup.py
, where the hack used to rename radicale.py
into radicale
has therefore been removed. As a consequence, you can now launch Radicale with the simple python -m radicale
command, without relying on an executable.
+The MOVE requests were suffering a little bug that is fixed now.
+These requests are only sent by Apple clients, Mac users will be
+happy.
+The REPORT request were really, really slow (several minutes for
+large calendars). This was caused by an awful algorithm parsing the
+entire calendar for each event in the calendar. The calendar is now only
+parsed three times, and the events are found in a Python list, turning
+minutes into seconds! Much better, but far from perfection…
+Finally, the executable script parsing the command line options and
+starting the HTTP servers has been moved from the
+radicale.py
file into the radicale
package.
+Two executable are now present in the archive: the good old
+radicale.py
, and bin/radicale
. The second one
+is only used by setup.py
, where the hack used to rename
+radicale.py
into radicale
has therefore been
+removed. As a consequence, you can now launch Radicale with the simple
+python -m radicale
command, without relying on an
+executable.
Time for a Stable Release!
-The next release may be a stable release, symbolically called 1.0. Guess what's missing? Tests, of course!
-A non-regression testing suite, based on the clients' requests, will soon be added to Radicale. We're now thinking about a smart solution to store the tests, to represent the expected answers and to launch the requests. We've got crazy ideas, so be prepared: you'll definitely want to write tests during the next weeks!
-Repeating events, PAM and Courier authentication methods have already been added in master. You'll find them in the 1.0 release!
+The next release may be a stable release, symbolically called 1.0.
+Guess what's missing? Tests, of course!
+A non-regression testing suite, based on the clients' requests, will
+soon be added to Radicale. We're now thinking about a smart solution to
+store the tests, to represent the expected answers and to launch the
+requests. We've got crazy ideas, so be prepared: you'll definitely
+want to write tests during the next weeks!
+Repeating events, PAM and Courier authentication methods have already
+been added in master. You'll find them in the 1.0 release!
What's Next?
-Being stable is one thing, being cool is another one. If you want some cool new features, you may be interested in:
+Being stable is one thing, being cool is another one. If you want
+some cool new features, you may be interested in:
- WebDAV and CardDAV support
- Filters and rights management
@@ -1662,7 +2322,9 @@ This folder is a set of storage modules able to read and write collections. Curr
- Freebusy periods
- Email alarms
-Issues have been reported in the bug tracker, you can follow there the latest news about these features. Your beloved text editor is waiting for you!
+Issues have been reported in the bug tracker, you can follow there
+the latest news about these features. Your beloved text editor is
+waiting for you!
@@ -1679,7 +2341,8 @@ This folder is a set of storage modules able to read and write collections. Curr
August 28, 2011 - Radicale 0.6.1, Changes, Future
-As previously imagined, a new 0.6.1 version has been released, mainly fixing obvious bugs.
+As previously imagined, a new 0.6.1 version has been released, mainly
+fixing obvious bugs.
0.6.1 - Growing Up
@@ -1688,28 +2351,45 @@ This folder is a set of storage modules able to read and write collections. Curr
- Redirection loop bug fixed
- Testing message on GET requests
-The changelog is really small, so there should be no real new problems since 0.6. The example files for logging, FastCGI and WSGI are now included in the tarball, for the pleasure of our dear packagers!
-A new branch has been created for various future bug fixes. You can expect to get more 0.6.x versions, making this branch a kind of "stable" branch with no big changes.
+The changelog is really small, so there should be no real new
+problems since 0.6. The example files for logging, FastCGI and WSGI are
+now included in the tarball, for the pleasure of our dear packagers!
+A new branch has been created for various future bug fixes. You can
+expect to get more 0.6.x versions, making this branch a kind of "stable"
+branch with no big changes.
GitHub, Mailing List, New Website
A lot of small changes occurred during the last weeks.
-If you're interested in code and new features, please note that we moved the project from Gitorious to GitHub
. Being hosted by Gitorious was a nice experience, but the service was not that good and we were missing some useful features such as git hooks. Moreover, GitHub is really popular, we're sure that we'll meet a lot of kind users and coders there.
-We've also created a mailing-list on Librelist
to keep a public trace of the mails we're receiving. It a bit empty now, but we're sure that you'll soon write us some kind words. For example, you can tell us what you think of our new website!
+If you're interested in code and new features, please note that we
+moved the project from Gitorious to GitHub
. Being hosted by
+Gitorious was a nice experience, but the service was not that good and
+we were missing some useful features such as git hooks. Moreover, GitHub
+is really popular, we're sure that we'll meet a lot of kind users and
+coders there.
+We've also created a mailing-list on Librelist
to keep a
+public trace of the mails we're receiving. It a bit empty now, but we're
+sure that you'll soon write us some kind words. For example, you can
+tell us what you think of our new website!
Future Features
-In the next weeks, new exciting features are coming in the master branch! Some of them are almost ready:
+In the next weeks, new exciting features are coming in the master
+branch! Some of them are almost ready:
-- Henry-Nicolas has added the support for the PAM and Courier-Authdaemon authentication mechanisms.
-- An anonymous called Keith Packard has prepared some small changes, such as one file per event, cache and git versioning. Yes. Really.
+- Henry-Nicolas has added the support for the PAM and
+Courier-Authdaemon authentication mechanisms.
+- An anonymous called Keith Packard has prepared some small changes,
+such as one file per event, cache and git versioning. Yes. Really.
-As you can find in the Radicale Roadmap, tests, rights and filters are expected for 0.7.
+As you can find in the Radicale Roadmap, tests,
+rights and filters are expected for 0.7.
August 1, 2011 - Radicale 0.6 Released
-Time for a new release with a lot of new exciting features!
+Time for a new release with a lot of new exciting
+features!
0.6 - Sapling
@@ -1727,77 +2407,162 @@ This folder is a set of storage modules able to read and write collections. Curr
- Journal entries support
- Drop Python 2.5 support
-Well, it's been a little longer than expected, but for good reasons: a lot of features have been added, and a lot of clients are known to work with Radicale, thanks to kind contributors. That's definitely good news! But…
-Testing all the clients is really painful, moreover for the ones from Apple (I have no Mac nor iPhone of my own). We should seriously think of automated tests, even if it's really hard to maintain, and maybe not that useful. If you're interested in tests, you can look at the wonderful regression suite of DAViCal.
-The new features, for example the WSGI support, are also poorly documented. If you have some Apache or lighttpd configuration working with Radicale, you can make the world a little bit better by writing a paragraph or two in the Radicale documentation. It's simple plain text, don't be afraid!
-Because of all these changes, Radicale 0.6 may be a little bit buggy; a 0.6.1 will probably be released soon, fixing small problems with clients and features. Get ready to report bugs, I'm sure that you can find one (and fix it)!
+Well, it's been a little longer than expected, but for good reasons:
+a lot of features have been added, and a lot of clients are known to
+work with Radicale, thanks to kind contributors. That's definitely good
+news! But…
+Testing all the clients is really painful, moreover for the ones from
+Apple (I have no Mac nor iPhone of my own). We should seriously think of
+automated tests, even if it's really hard to maintain, and maybe not
+that useful. If you're interested in tests, you can look at the
+wonderful regression suite of DAViCal.
+The new features, for example the WSGI support, are also poorly
+documented. If you have some Apache or lighttpd configuration working
+with Radicale, you can make the world a little bit better by writing a
+paragraph or two in the Radicale
+documentation. It's simple plain text, don't be afraid!
+Because of all these changes, Radicale 0.6 may be a little bit buggy;
+a 0.6.1 will probably be released soon, fixing small problems with
+clients and features. Get ready to report bugs, I'm sure that you can
+find one (and fix it)!
July 2, 2011 - Feature Freeze for 0.6
-According to the roadmap, a lot of features have been added since Radicale 0.5, much more than expected. It's now time to test Radicale with your favourite client and to report bugs before we release the next stable version!
-Last week, the iCal and iPhone support written by Łukasz has been fixed in order to restore the broken Lightning support. After two afternoons of tests with Rémi, we managed to access the same calendar with Lightning, iCal, iPhone and Evolution, and finally discovered that CalDAV could also be a perfect instant messaging protocol between a Mac, a PC and a phone.
-After that, we've had the nice surprise to see events displayed without a problem (but after some strange steps of configuration) by aCal on Salem's Android phone.
+According to the roadmap, a
+lot of features have been added since Radicale 0.5, much more than
+expected. It's now time to test Radicale with your favourite client and
+to report bugs before we release the next stable version!
+Last week, the iCal and iPhone support written by Łukasz has been
+fixed in order to restore the broken Lightning support. After two
+afternoons of tests with Rémi, we managed to access the same calendar
+with Lightning, iCal, iPhone and Evolution, and finally discovered that
+CalDAV could also be a perfect instant messaging protocol between a Mac,
+a PC and a phone.
+After that, we've had the nice surprise to see events displayed
+without a problem (but after some strange steps of configuration) by
+aCal on Salem's Android phone.
It was Friday, fun fun fun fun.
-So, that's it: Radicale supports Lightning, Evolution, Kontact, aCal for Android, iPhone and iCal. Of course, before releasing a new tarball:
+So, that's it: Radicale supports Lightning, Evolution, Kontact, aCal
+for Android, iPhone and iCal. Of course, before releasing a new
+tarball:
-- documentation is needed for the new clients that are not documented yet (Kontact, aCal and iPhone);
-- tests are welcome, particularly for the Apple clients that I can't test anymore;
-- no more features will be added, they'll wait in separate branches for the 0.7 development.
+- documentation is needed for the
+new clients that are not documented yet (Kontact, aCal and iPhone);
+- tests are welcome, particularly for the Apple clients that I can't
+test anymore;
+- no more features will be added, they'll wait in separate branches
+for the 0.7 development.
-Please report bugs if anything goes wrong during your tests, or just let us know by Jabber or by mail if everything is OK.
+Please report bugs
+if anything goes wrong during your tests, or just let us know by Jabber or by mail if everything is OK.
May 1, 2011 - Ready for WSGI
-Here it is! Radicale is now ready to be launched behind your favourite HTTP server (Apache, Lighttpd, Nginx or Tomcat for example). That's really good news, because:
+Here it is! Radicale is now ready to be launched behind your
+favourite HTTP server (Apache, Lighttpd, Nginx or Tomcat for example).
+That's really good news, because:
-- Real HTTP servers are much more efficient and reliable than the default Python server used in Radicale;
-- All the authentication backends available for your server will be available for Radicale;
-- Thanks to flup, Radicale can be interfaced with all the servers supporting CGI, AJP, FastCGI or SCGI;
-- Radicale works very well without any additional server, without any dependencies, without configuration, just as it was working before;
-- This one more feature removes useless code, less is definitely more.
+- Real HTTP servers are much more efficient and reliable than the
+default Python server used in Radicale;
+- All the authentication backends available for your server will be
+available for Radicale;
+- Thanks to flup, Radicale
+can be interfaced with all the servers supporting CGI, AJP, FastCGI or
+SCGI;
+- Radicale works very well without any additional server, without any
+dependencies, without configuration, just as it was working before;
+- This one more feature removes useless code, less is definitely
+more.
-The WSGI support has only be tested as a stand-alone executable and behind Lighttpd, you should definitely try if it works with you favourite server too!
-No more features will be added before (quite) a long time, because a lot of documentation and test is waiting for us. If you want to write tutorials for some CalDAV clients support (iCal, Android, iPhone), HTTP servers support or logging management, feel free to fork the documentation git repository and ask for a merge. It's plain text, I'm sure you can do it!
+The WSGI support has only be tested as a stand-alone executable and
+behind Lighttpd, you should definitely try if it works with you
+favourite server too!
+No more features will be added before (quite) a long time, because a
+lot of documentation and test is waiting for us. If you want to write
+tutorials for some CalDAV clients support (iCal, Android, iPhone), HTTP
+servers support or logging management, feel free to fork the documentation git
+repository and ask for a merge. It's plain text, I'm sure you can do
+it!
April 30, 2011 - Apple iCal Support
-After a long, long work, the iCal support has finally been added to Radicale! Well, this support is only for iCal 4 and is highly experimental, but you can test it right now with the git master branch. Bug reports are welcome!
-Dear MacOS users, you can thank all the gentlemen who sended a lot of debugging iformation. Special thanks to Andrew from DAViCal, who helped us a lot with his tips and his tests, and Rémi Hainaud who lent his laptop for the final tests.
-The default server address is localhost:5232/user/
, where calendars can be added. Multiple calendars and owner-less calendars are not tested yet, but they should work quite well. More documentation will be added during the next days. It will then be time to release the Radicale 0.6 version, and work on the WSGI support.
+After a long, long work, the iCal support has finally been added to
+Radicale! Well, this support is only for iCal 4 and is highly
+experimental, but you can test it right now with the git master branch.
+Bug reports are welcome!
+Dear MacOS users, you can thank all the gentlemen who sended a lot of
+debugging iformation. Special thanks to Andrew from DAViCal, who helped
+us a lot with his tips and his tests, and Rémi Hainaud who lent his
+laptop for the final tests.
+The default server address is localhost:5232/user/
,
+where calendars can be added. Multiple calendars and owner-less
+calendars are not tested yet, but they should work quite well. More
+documentation will be added during the next days. It will then be time
+to release the Radicale 0.6 version, and work on the WSGI support.
April 25, 2011 - Two Features and One New Roadmap
-Two features have just reached the master branch, and the roadmap has been refreshed.
+Two features have just reached the master branch, and the roadmap has
+been refreshed.
LDAP Authentication
-Thanks to Corentin, the LDAP authentication is now included in Radicale. The support is experimental and may suffer unstable connexions and security problems. If you are interested in this feature (a lot of people seem to be), you can try it and give some feedback.
-No SSL support is included yet, but this may be quite easy to add. By the way, serious authentication methods will rely on a "real" HTTP server, as soon as Radicale supports WSGI.
+Thanks to Corentin, the LDAP authentication is now included in
+Radicale. The support is experimental and may suffer unstable connexions
+and security problems. If you are interested in this feature (a lot of
+people seem to be), you can try it and give some feedback.
+No SSL support is included yet, but this may be quite easy to add. By
+the way, serious authentication methods will rely on a "real" HTTP
+server, as soon as Radicale supports WSGI.
Journal Entries
-Mehmet asked for the journal entries (aka. notes or memos) support, that's done! This also was an occasion to clean some code in the iCal parser, and to add a much better management of multi-lines entries. People experiencing crazy X-RADICALE-NAME
entries can now clean their files, Radicale won't pollute them again.
+Mehmet asked for the journal entries (aka. notes or memos) support,
+that's done! This also was an occasion to clean some code in the iCal
+parser, and to add a much better management of multi-lines entries.
+People experiencing crazy X-RADICALE-NAME
entries can now
+clean their files, Radicale won't pollute them again.
New Roadmap
-Except from htpasswd and LDAP, most of the authentication backends (database, SASL, PAM, user groups) are not really easy to include in Radicale. The easiest solution to solve this problem is to give Radicale a CGI support, to put it behind a solid server such as Apache. Of course, CGI is not enough: a WSGI support is quite better, with the FastCGI, AJP and SCGI backends offered by flup. Quite exciting, isn't it?
-That's why it was important to add new versions on the roadmap. The 0.6 version is now waiting for the Apple iCal support, and of course for some tests to kill the last remaining bugs. The only 0.7 feature will be WSGI, allowing many new authentication methods and a real multithread support.
-After that, 0.8 may add CalDAV rights and filters, while 1.0 will draw thousands of rainbows and pink unicorns (WebDAV sync, CardDAV, Freebusy). A lot of funky work is waiting for you, hackers!
+Except from htpasswd and LDAP, most of the authentication backends
+(database, SASL, PAM, user groups) are not really easy to include in
+Radicale. The easiest solution to solve this problem is to give Radicale
+a CGI support, to put it behind a solid server such as Apache. Of
+course, CGI is not enough: a WSGI support is quite better, with the
+FastCGI, AJP and SCGI backends offered by flup. Quite exciting, isn't
+it?
+That's why it was important to add new versions on the roadmap. The
+0.6 version is now waiting for the Apple iCal support, and of course for
+some tests to kill the last remaining bugs. The only 0.7 feature will be
+WSGI, allowing many new authentication methods and a real multithread
+support.
+After that, 0.8 may add CalDAV rights and filters, while 1.0 will
+draw thousands of rainbows and pink unicorns (WebDAV sync, CardDAV,
+Freebusy). A lot of funky work is waiting for you, hackers!
Bugs
-Many bugs have also been fixed, most of them due to the owner-less calendars support. Radicale 0.6 may be out in a few weeks, you should spend some time testing the master branch and filling the bug tracker.
+Many bugs have also been fixed, most of them due to the owner-less
+calendars support. Radicale 0.6 may be out in a few weeks, you should
+spend some time testing the master branch and filling the bug
+tracker.
April 10, 2011 - New Features
-Radicale 0.5 was released only 8 days ago, but 3 new features have already been added to the master branch:
+Radicale 0.5 was released only 8 days ago, but 3 new features have
+already been added to the master branch:
- IPv6 support, with multiple addresses/ports support
- Logs and debug mode
- Owner-less calendars
-Most of the code has been written by Necoro and Corentin, and that was not easy at all: Radicale is now multithreaded! For sure, you can find many bugs and report them on the bug tracker. And if you're fond of logging, you can even add a default configuration file and more debug messages in the source.
+Most of the code has been written by Necoro and Corentin, and that
+was not easy at all: Radicale is now multithreaded! For sure, you can
+find many bugs and report them on the bug tracker.
+And if you're fond of logging, you can even add a default configuration
+file and more debug messages in the source.
April 2, 2011 - Radicale 0.5 Released
@@ -1811,22 +2576,51 @@ This folder is a set of storage modules able to read and write collections. Curr
HEAD requests management
htpasswd user from calendar path
-iPhone support, but no iCal support for 0.5, despite our hard work, sorry! After 1 month with no more activity on the dedicated bug, it was time to forget it and hack on new awesome features. Thanks for your help, dear Apple users, I keep the hope that one day, Radicale will work with you!
-So, what's next? As promised, some cool git branches will soon be merged, with LDAP support, logging, IPv6 and anonymous calendars. Sounds pretty cool, heh? Talking about new features, more and more people are asking for a CardDAV support in Radicale. A git branch and a feature request are open, feel free to hack and discuss.
+iPhone support, but no iCal support for 0.5, despite our hard work,
+sorry! After 1 month with no more activity on the dedicated bug, it was
+time to forget it and hack on new awesome features. Thanks for your
+help, dear Apple users, I keep the hope that one day, Radicale will work
+with you!
+So, what's next? As promised, some cool git branches will soon be
+merged, with LDAP support, logging, IPv6 and anonymous calendars. Sounds
+pretty cool, heh? Talking about new features, more and more people are
+asking for a CardDAV support in Radicale. A
+git branch and a
+feature request are open, feel free to hack and discuss.
February 3, 2011 - Jabber Room and iPhone Support
-After a lot of help and testing work from Andrew, Björn, Anders, Dorian and Pete (and other ones we could have forgotten), a simple iPhone support has been added in the git repository. If you are interested, you can test this feature right now by downloading the latest git version (a tarball is even available too if you don't want or know how to use git).
-No documentation has been written yet, but using the right URL in the configuration should be enough to synchronize your calendars. If you have any problems, you can ask by joining our new Jabber room: radicale@room.jabber.kozea.fr.
-Radicale 0.5 will be released as soon as the iCal support is ready. If you have an Apple computer, Python skills and some time to spend, we'd be glad to help you debugging Radicale.
+After a lot of help and testing work from Andrew, Björn, Anders,
+Dorian and Pete (and other ones we could have forgotten), a simple
+iPhone support has been added in the git repository. If you are
+interested, you can test this feature right now by downloading the latest git version (a tarball
+is even available too if you don't want or know how to use git).
+No documentation has been written yet, but using the right URL in the
+configuration should be enough to synchronize your calendars. If you
+have any problems, you can ask by joining our new Jabber room: radicale@room.jabber.kozea.fr.
+Radicale 0.5 will be released as soon as the iCal support is ready.
+If you have an Apple computer, Python skills and some time to spend,
+we'd be glad to help you debugging Radicale.
October 21, 2010 - News from Radicale
-During the last weeks, Radicale has not been idle, even if no news have been posted since August. Thanks to Pete, Pierre-Philipp and Andrew, we're trying to add a better support on MacOS, Windows and mobile devices like iPhone and Android-based phones.
-All the tests on Windows have been successful: launching Radicale and using Lightning as client works without any problems. On Android too, some testers have reported clients working with Radicale. These were the good news.
-The bad news come from Apple: both iPhone and MacOS default clients are not working yet, despite the latest enhancements given to the PROPFIND requests. The problems are quite hard to debug due to our lack of Apple hardware, but Pete is helping us in this difficult quest! Radicale 0.5 will be out as soon as these two clients are working.
-Some cool stuff is coming next, with calendar collections and groups, and a simple web-based CalDAV client in early development. Stay tuned!
+During the last weeks, Radicale has not been idle, even if no news
+have been posted since August. Thanks to Pete, Pierre-Philipp and
+Andrew, we're trying to add a better support on MacOS, Windows and
+mobile devices like iPhone and Android-based phones.
+All the tests on Windows have been successful: launching Radicale and
+using Lightning as client works without any problems. On Android too,
+some testers have reported clients working with Radicale. These were the
+good news.
+The bad news come from Apple: both iPhone and MacOS default clients
+are not working yet, despite the latest enhancements given to the
+PROPFIND requests. The problems are quite hard to debug due to our lack
+of Apple hardware, but Pete is helping us in this difficult quest!
+Radicale 0.5 will be out as soon as these two clients are working.
+Some cool stuff is coming next, with calendar collections and groups,
+and a simple web-based CalDAV client in early development. Stay
+tuned!
August 8, 2010 - Radicale 0.4 Released
@@ -1840,19 +2634,29 @@ This folder is a set of storage modules able to read and write collections. Curr
no-ssl
and foreground
options
Default configuration file
-This release has mainly been released to help our dear packagers to include a default configuration file and to write init scripts. Big thanks to Necoro for his work on the new Gentoo ebuild!
+This release has mainly been released to help our dear packagers to
+include a default configuration file and to write init scripts. Big
+thanks to Necoro for his work on the new Gentoo ebuild!
July 4, 2010 - Three Features Added Last Week
-Some features have been added in the git repository during the last weeks, thanks to Jerome and Mariusz!
+Some features have been added in the git repository during the last
+weeks, thanks to Jerome and Mariusz!
Personal Calendars
-Calendars accessed through the htpasswd ACL module can now be personal. Thanks to the personal
option, a user called bob
can access calendars at /bob/*
but not to the /alice/*
ones.
+Calendars accessed through the htpasswd ACL module can now be personal.
+Thanks to the personal
option, a user called
+bob
can access calendars at /bob/*
but not to
+the /alice/*
ones.
HEAD Requests
-Radicale can now answer HEAD requests. HTTP headers can be retrieved thanks to this request, without getting contents given by the GET requests.
+Radicale can now answer HEAD requests. HTTP headers can be retrieved
+thanks to this request, without getting contents given by the GET
+requests.
Last-Modified HTTP header
-The Last-Modified header gives the last time when the calendar has been modified. This is used by some clients to cache the calendars and not retrieving them if they have not been modified.
+The Last-Modified header gives the last time when the calendar has been
+modified. This is used by some clients to cache the calendars and not
+retrieving them if they have not been modified.
@@ -1864,28 +2668,51 @@ The Last-Modified header gives the last time when the calendar has been modified
Evolution support
Version management
-The website changed a little bit too, with some small HTML5 and CSS3 features such as articles, sections, transitions, opacity, box shadows and rounded corners. If you’re reading this website with Internet Explorer, you should consider using a standard-compliant browser!
-Radicale is now included in Squeeze, the testing branch of Debian. A Radicale ebuild for Gentoo has been proposed too. If you want to package Radicale for another distribution, you’re welcome!
-Next step is 0.5, with calendar collections, and Windows and MacOS support.
+The website changed a little bit too, with some small HTML5 and CSS3
+features such as articles, sections, transitions, opacity, box shadows
+and rounded corners. If you’re reading this website with Internet
+Explorer, you should consider using a standard-compliant browser!
+Radicale is now included in Squeeze, the testing branch of Debian. A
+Radicale ebuild
+for Gentoo has been proposed too. If you want to package Radicale
+for another distribution, you’re welcome!
+Next step is 0.5, with calendar collections, and Windows and MacOS
+support.
May 31, 2010 - May News
News from contributors
-Jonas Smedegaard packaged Radicale for Debian last week. Two packages, called radicale
for the daemon and python-radicale
for the module, have been added to Sid, the unstable branch of Debian. Thank you, Jonas!
-Sven Guckes corrected some of the strange-English-sentences present on this website. Thank you, Sven!
+Jonas Smedegaard packaged Radicale for Debian last week. Two
+packages, called radicale
for the daemon and
+python-radicale
for the module, have been added to Sid, the
+unstable branch of Debian. Thank you, Jonas!
+Sven Guckes corrected some of the strange-English-sentences present
+on this website. Thank you, Sven!
News from software
-A simple VERSION
has been added in the library: you can now play with radicale.VERSION
and $radicale --version
.
-After playing with the version (should not be too long), you may notice that the next version is called 0.3, and not 0.5 as previously decided. The 0.3 main goal is to offer the support for Evolution as soon as possible, without waiting for the 0.5. After more than a month of test, we corrected all the bugs we found and everything seems to be fine; we can imagine that a brand new tarball will be released during the first days of June.
+A simple VERSION
has been added in the library: you can
+now play with radicale.VERSION
and
+$radicale --version
.
+After playing with the version (should not be too long), you may
+notice that the next version is called 0.3, and not 0.5 as previously
+decided. The 0.3 main goal is to offer the support for Evolution as soon
+as possible, without waiting for the 0.5. After more than a month of
+test, we corrected all the bugs we found and everything seems to be
+fine; we can imagine that a brand new tarball will be released during
+the first days of June.
April 13, 2010 - Radicale 0.2 Released
@@ -1904,36 +2731,65 @@ The Last-Modified header gives the last time when the calendar has been modified
Concurrent modification reported to users
Many bugs fixed by Roger Wenham
-First of all, we would like to thank Roger Wenham for his bugfixes and his supercool words.
-You may have noticed that Sunbird 1.0 has not been released, but according to the Mozilla developers, 1.0pre is something like a final version.
-You may have noticed too that Radicale can be downloaded from PyPI. Of course, it is also available on the download page.
+First of all, we would like to thank Roger Wenham for his bugfixes
+and his supercool words.
+You may have noticed that Sunbird 1.0 has not been released, but
+according to the Mozilla developers, 1.0pre is something like a final
+version.
+You may have noticed too that Radicale can be downloaded from
+PyPI. Of course, it is also available on the download page.
January 21, 2010 - HTTPS and Authentication
-HTTPS connections and authentication have been added to Radicale this week. Command-line options and personal configuration files are also ready for test. According to the TODO file included in the package, the next version will finally be 0.2, when sunbird 1.0 is out. Go, Mozilla hackers, go!
+HTTPS connections and authentication have been added to Radicale this
+week. Command-line options and personal configuration files are also
+ready for test. According to the TODO file included in the package, the
+next version will finally be 0.2, when sunbird 1.0 is out. Go, Mozilla
+hackers, go!
HTTPS connection
-HTTPS connections are now available using the standard TLS mechanisms. Give Radicale a private key and a certificate, and your data are now safe.
+HTTPS connections are now available using the standard TLS mechanisms.
+Give Radicale a private key and a certificate, and your data are now
+safe.
Authentication
-A simple authentication architecture is now available, allowing different methods thanks to different modules. The first two modules are fake
(no authentication) and htpasswd
(authentication with an htpasswd
file created by the Apache tool). More methods such as LDAP are coming soon!
+A simple authentication architecture is now available, allowing
+different methods thanks to different modules. The first two modules are
+fake
(no authentication) and htpasswd
+(authentication with an htpasswd
file created by the Apache
+tool). More methods such as LDAP are coming soon!
January 15, 2010 - Ready for Python 3
-Dropping Twisted dependency was the first step leading to another big feature: Radicale now works with Python 3! The code was given a small cleanup, with some simplifications mainly about encoding. Before the 0.1.1 release, feel free to test the git repository, all Python versions from 2.5 should be OK.
+Dropping Twisted dependency was the first step leading to another big
+feature: Radicale now works with Python 3! The code was given a small
+cleanup, with some simplifications mainly about encoding. Before the
+0.1.1 release, feel free to test the git repository, all Python versions
+from 2.5 should be OK.
January 11, 2010 - Twisted no Longer Required
-Good news! Radicale 0.1.1 will support Sunbird 1.0, but it has another great feature: it has no external dependency! Twisted is no longer required for the git version, removing about 50 lines of code.
+Good news! Radicale 0.1.1 will support Sunbird 1.0, but it has
+another great feature: it has no external dependency! Twisted is no
+longer required for the git version, removing about 50 lines of
+code.
December 31, 2009 - Lightning and Sunbird 1.0b2pre Support
-Lightning/Sunbird 1.0b2pre is out, adding minor changes in CalDAV support. A new commit makes Radicale work with versions 0.9, 1.0b1 et 1.0b2. Moreover, etags are now quoted according to the RFC 2616.
+Lightning/Sunbird 1.0b2pre is out, adding minor changes in CalDAV
+support. A new
+commit makes Radicale work with versions 0.9, 1.0b1 et 1.0b2.
+Moreover, etags are now quoted according to the RFC
+2616.
December 9, 2009 - Thunderbird 3 released
-Thunderbird 3 is out, and Lightning/Sunbird 1.0 should be released in a few days. The last commit in git should make Radicale work with versions 0.9 and 1.0b1pre. Radicale 0.1.1 will soon be released adding support for version 1.0.
+Thunderbird
+3 is out, and Lightning/Sunbird 1.0 should be released in a few
+days. The last commit
+in git should make Radicale work with versions 0.9 and 1.0b1pre.
+Radicale 0.1.1 will soon be released adding support for version 1.0.
September 1, 2009 - Radicale 0.1 Released
@@ -1945,23 +2801,27 @@ A simple authentication architecture is now available, allowing different method
Lightning/Sunbird 0.9 compatibility
Easy installer
-You can download this version on the download page.
+You can download this version on the download
+page.
July 27, 2009 - Radicale Ready to Launch
-The Radicale Project is launched. The code has been cleaned up and will be available soon…
+The Radicale Project is launched. The code has been cleaned up and
+will be available soon…
diff --git a/v2.html b/v2.html
index 64121f24..81b3c626 100644
--- a/v2.html
+++ b/v2.html
@@ -5,76 +5,76 @@