# Migrating from libtracker-miner 1.x to 2.0

Tracker 2.0 is a new major version, containing some possibly incompatible changes. Most of the changes are not hard to adapt, and even unlikely to be a problem if the ported application was kept up-to-date in its usage of 1.x.

## TrackerMiner instances do not implement org.freedesktop.Tracker1.Miner

TrackerMiner abstract classes have been made useful for situations where there is a local connection (e.g. no interaction with tracker-store). In order to expose TrackerMiner implementations through the traditional org.freedesktop.Tracker1.Miner DBus interface, you must now create a TrackerMinerProxy for it.

## No TrackerEnumerator

TrackerDataProvider implementations now use the GFileEnumerator interface from GLib in order to iterate across a tree of uniquely identified resources. If you implemented a TrackerEnumerator, it must be converted into a GFileEnumerator interface implementation. No further instructions are provided as the API almost matches 1:1.

## No tracker_miner_fs_get_parent_urn()

Use tracker_miner_fs_get_urn().

## No tracker_miner_fs_force_recheck()

Use tracker_indexing_tree_notify_updated().

## No tracker_miner_fs_force_recheck() or tracker_miner_fs_force_mtime_checking()

Use tracker_indexing_tree_notify_updated().

## No tracker_miner_fs_check_directory*()

Use tracker_indexing_tree_add().

## No tracker_miner_fs_writeback_notify() and tracker_miner_fs_file_notify()

You can now use tracker_miner_fs_notify_finish() to notify the end of both operations.