Re: [Evolution-hackers] Regarding addressbook migration test case

2013-10-21 Thread Tristan Van Berkom
On Mon, 2013-10-21 at 13:30 -0400, Matthew Barnes wrote:
> On Mon, 2013-10-21 at 18:27 +0200, Tristan Van Berkom wrote:
> > The maintenance in question is pretty simple, every
> > stable release (directly after branching for the next
> > stable release would be the ideal time) a new case
> > needs to be added to the addressbook migration test.
> 
> I really appreciate this.  Perhaps it could serve as a template for
> other kinds of migration testing in the future.  The mbox -> Maildir
> migration back in 3.0 would have been less problematic with something
> like this.
> 
> To clarify: New test cases are only *really* needed when the database
> format changes, right?  A test-case-per-version policy is more about
> maintainers can't be trusted to update tests when needed.
> 
> Not offended, in fact I agree.  Just want to make sure I have the
> rationale straight.

Indeed, adding a new case is only really needed when the
format changes.

The idea was about targeting stable releases with the
tests, as opposed to testing for any incremental
change which might occur in an unstable cycle (admittedly
some stable releases have no schema change at all,
but this is not harmful and I guess it's easiest to
just routinely add a test as part of a stable release).

The policy is not exactly set in stone, though ;-)

> > I've tried to make this as painless as possible,
> > in order to add a new release to the list of tested
> > stable releases, one needs to do the following:
> > 
> >   cd ~/path/to/evolution-data-server
> >   make -C tests/book-migration setup-migration
> >   git add tests/book-migration/db/3.12/contacts.db
> >   gedit tests/book-migration/db/3.12/Makefile
> > (add contacts.db to EXTRA_DIST)
> > 
> > For reference, you can see this commit[1] which adds
> > EDS 3.10 to the list of releases to test.
> 
> Looks easy enough.
> 
> Best place for these extra steps would be:
> https://wiki.gnome.org/Apps/Evolution/ReleaseHOWTO
> 
> Would you mind writing up a new section there (or I can), maybe after
> "Post-Release Updates"?

Perfect, sure I'll be happy to add my notes to
the wiki.

Cheers,
-Tristan


___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
https://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Regarding addressbook migration test case

2013-10-21 Thread Matthew Barnes
On Mon, 2013-10-21 at 18:27 +0200, Tristan Van Berkom wrote:
> The maintenance in question is pretty simple, every
> stable release (directly after branching for the next
> stable release would be the ideal time) a new case
> needs to be added to the addressbook migration test.

I really appreciate this.  Perhaps it could serve as a template for
other kinds of migration testing in the future.  The mbox -> Maildir
migration back in 3.0 would have been less problematic with something
like this.

To clarify: New test cases are only *really* needed when the database
format changes, right?  A test-case-per-version policy is more about
maintainers can't be trusted to update tests when needed.

Not offended, in fact I agree.  Just want to make sure I have the
rationale straight.


> I've tried to make this as painless as possible,
> in order to add a new release to the list of tested
> stable releases, one needs to do the following:
> 
>   cd ~/path/to/evolution-data-server
>   make -C tests/book-migration setup-migration
>   git add tests/book-migration/db/3.12/contacts.db
>   gedit tests/book-migration/db/3.12/Makefile
> (add contacts.db to EXTRA_DIST)
> 
> For reference, you can see this commit[1] which adds
> EDS 3.10 to the list of releases to test.

Looks easy enough.

Best place for these extra steps would be:
https://wiki.gnome.org/Apps/Evolution/ReleaseHOWTO

Would you mind writing up a new section there (or I can), maybe after
"Post-Release Updates"?

Matt

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
https://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] Regarding addressbook migration test case

2013-10-21 Thread Tristan Van Berkom
Good morning,

   I've been meaning to write this email since over a week
ago when I added a new addressbook migration test case in EDS[0].

Not only because this is one of the more interesting tests
we now have in EDS, but because this test requires some
additional maintenance which normal tests don't require.

The maintenance in question is pretty simple, every
stable release (directly after branching for the next
stable release would be the ideal time) a new case
needs to be added to the addressbook migration test.

I've tried to make this as painless as possible,
in order to add a new release to the list of tested
stable releases, one needs to do the following:

  cd ~/path/to/evolution-data-server
  make -C tests/book-migration setup-migration
  git add tests/book-migration/db/3.12/contacts.db
  gedit tests/book-migration/db/3.12/Makefile
(add contacts.db to EXTRA_DIST)

For reference, you can see this commit[1] which adds
EDS 3.10 to the list of releases to test.

As I'm not the one doing the releases, I'd be happy
to hear from Matthew and Milan and tie this up
more neatly. Is there anything I should add to this ?
Perhaps at least a README file describing the test in
detail in the tests/book-migration directory ?

I've included some more details about this test
below.

Cheers,
-Tristan

[0]:https://git.gnome.org/browse/evolution-data-server/commit/?id=ca64872e132770264f59b49418f5304c8c89e832
[1]:https://git.gnome.org/browse/evolution-data-server/commit/?id=e79ec2c889a0b302c532508e5d8ed51caa07b066

Details on the test itself:

  o The tests/book-migration/vcards/ directory contains the vcards
which are expected to be found in the migrated sandboxes.

  o The tests/book-migration/db/ directory contains subdirectories
which are named by EDS stable version,
e.g. tests/book-migration/db/3.0

These directories contain data collected from previous 
versions of EDS (compiled on my computer).
For the old BDB format, db_dump and db_load
is used to reconstruct the addressbook, to avoid
binary incompatibility.

  o The program tests/book-migration/setup-migration-test is a simple
stand alone program which creates an addressbook and inserts some
contacts.

This program can be compiled with versions of EDS dating back
to 3.0, so it can potentially be used to repopulate all of the
migration sandboxes from scratch, should the need ever arise
(this could happen if we fix a migration bug but are unable
to reproduce the bug using the data migrated from our set
of vcards, repopulating the sandboxes from scratch is time
consuming though so we ultimately want to avoid this).

  o tests/book-migration/Makefile.am includes a 'setup-migration'
rule which creates a new sandbox using the vcards in
tests/book-migration/vcards/.

  o The test case tests/book-migration/test-migration.c contains
a suite of basic tests which test EBookClient apis on a freshly
upgraded/migrated addressbook.

As a part of the test fixture for each test, the sandbox is
prepared using the sandboxes in tests/book-migration/db/.

This test expects that all of the contacts listed in
tests/book-migration/vcards/ are present in the freshly
opened and migrated addressbook.


___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
https://mail.gnome.org/mailman/listinfo/evolution-hackers