View Single Post
Posts: 479 | Thanked: 641 times | Joined on Dec 2007 @ Switzerland
#66
Dear all,

Here's the second pre-release of Erminig-NG (version 0.1.0).

This post may seem very similar to the original post of this thread: it is indeed, but please read it carefully: there are some important changes!

It's still in alpha stage: so the usual recommendations stand:

BIG FAT WARNING: this is still alpha-quality software, so it's not really for those people who are afraid to lose events in their calendars!


No GUI available for the moment: next release should bring the GUI (at least that's the plan). And no .deb either: next release, when it will be a little bit more consumer-friendly.

As usual, try it on non-important calendars first, since we are not guarded against data loss.

Changelog (since version 0.0.1):
  • All accesses to the Fremantle Calendar are done through the official API (no more direct access to the sqlite databases). This is the correct way of doing it, at the expense of a small C++ shared library to interface Python with the CCalendar API.
  • When performing the initialization of the calendars to be synced (with the --sync-calendars option), a GUI dialog pops up to ask you if you want that calendar to be synchronized. This is to avoid problems with diacritics in the terminal.

Software dependencies: python-gdata and python-hildon (both of them available in Extras). By installing those two packages, all necessary dependencies will be pulled automatically.

How to install Erminig-NG

Download (link at the bottom of this post) and unpack the archive file somewhere on your device
Open the file erminig_conf.py and change the first three variables. They represent your Google username and password, and the full path to the root directory of Erminig (this is needed for the dynamic loading of the C++ library)

How to run Erminig-NG

For the first run:

Code:
% python2.5 erminig-ng --sync-calendars
This will ask you which calendar (both local and remote) you want to keep in sync

WARNING: For the moment it is important to run Erminig-NG for the first time with the --sync-calendars option, otherwise it will miss old events to import (known bug). Similarly, adding calendars to sync after the first real sync will miss old events (only new events from the time of the last sync will be synced in the the new calendar). Uhm, this is quite convoluted as an explanation...I hope that you will get the essence of this warning though

Code:
% python2.5 erminig-ng
This will perform the bulk of the work and keep in sync the calendars. This is the command you want to run when you wish to synchronize your calendars.

If you added a local or Google calendar, you may want to rerun Erminig-NG with the --sync-calendars, so that it will ask you if you want to sync the newly discovered calendars (with the gotcha mentioned above!)

Information for those coming from the previous version
The internal Erminig database has not changed since the previous version, so you can continue to use the already populated database, without erasing it.

"Roadmap"
If a serious bug creeps out during the development of the next release, an intermediate bug-fix-release will take place...so I'm just mentioning the big milestones:
  • Next version will bring recurrent events support, Birthday support and first release of the GUI. This will also be the first release with proper packaging. This version will also sport a modified database schema. I will try as much as possible to offer an update path to those who are already running Erminig-NG, so that you won't have to resynchronize everything.
  • Next version + 1: Add support for GPE calendar, and hopefully backward compatibility with Diablo

FAQ (mostly copied from OP, but with some additions)
  • There's a bug, what should I do?
    Two options:

    - report it in this thread, if possible by providing accurate step-by-step instructions
    - Contact me by mail: lorelei@garage.maemo.org (again with accurate instructions)

    In the future I will open a bugs.maemo.org component for Erminig-NG, in order to keep track of everything, but first I want to see how it is received within the community before investing resources that are not mine (i.e. maemo.org's bugzilla)
  • Should I synchronize the local calendars called "cal_ti_calendar_synced" and "cal_ti_calendar_private"?
    cal_ti_calendar_private is in fact the default N900 calendar (which may have another name). It is safe to synchronize it. The other one I still don't know.
  • What about birthdays?
    Even though Erminig will ask you if you want to synchronize the birthdays, nothing will happen if you accept. This is a side-effect of using the C++ API. There's still no code on Erminig's side to manage the birthday syncs.
  • I have troubles with a missing import (xml.utils.iso8601)
    You are affected by this bug if Erminig-NG crashs at startup with the following message:
    Code:
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ImportError: No module named iso8601
    Please see this post with an updated erminig-ng release that specifically fixes this problem:

    http://talk.maemo.org/showpost.php?p...7&postcount=93

  • I would like to reset Erminig-NG to a known state (i.e. a state where it doesn't know anything about calendars relationships)
    Remove the file ~/.erminig.db
    This will make Erminig-NG going back to "factory settings"
    Please note that this may generate duplicate events in Google or Fremantle Calendar if you perform a resync on calendar previously synced.
  • What is the stability status of Erminig-NG ?
    It's in early alpha stage. I'm just starting to pin down the basic functionalities before moving on the the GUI part
  • What about sync conflicts (modification of an event both on Google and on the local calendar)?
    There's no explicit handling of conflicting updates for the moment. This will be addressed in a future version
  • Why no .deb package (or why not in Extras-devel)?
    Erminig-NG is still in early development phase, so by publishing only the .tar.gz I will try to "scare away" people who is not comfortable with command-line. This is for your own good. Don't blame me (or maybe yes). Proper packaging will come in its own time.
  • What works, what doesn't work?
    So far, I can tell for sure that recurrent events don't work. It's not a bug (yet): it's simply not implemented yet. This will be supported in the future.
  • How does this relate to Erminig (not -NG?)
    I'm also maintaining Erminig (two-way sync between GPE calendar and Google Calendar), and Erminig-NG will eventually replace it. It is planned to support both GPE and "Fremantle-Calendar". By rewriting Erminig from scratch I will be able to eliminate a lot of unused code in Erminig, and this will allow me to understand more in details how Google Calendar works (please remember that I'm not the original author of Erminig, I just picked up the development. Erminig-NG on the other hand will be essentially a clean-room reimplementation of Erminig)
  • I would like to recompile the C++ layer
    Feel free! Here's the command line I'm currently using in Scratchbox:
    Code:
    g++ calaccess.cc `pkg-config calendar-backend --cflags --libs` -shared -o libcalaccess.so

Feel free to drop me a message if you find a bug (or just if you find this piece of software useful): those are always appreciated!

Download of erminig-ng 0.1.1 is available in this post:

http://talk.maemo.org/showpost.php?p...7&postcount=93

it fixes the iso8601 problem a few users had. I've removed the original 0.1.0 release, since it was bugged!

Last edited by lorelei; 2010-02-01 at 23:18.
 

The Following 18 Users Say Thank You to lorelei For This Useful Post: