aboutsummaryrefslogtreecommitdiffstats
path: root/NEWS
diff options
context:
space:
mode:
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS597
1 files changed, 597 insertions, 0 deletions
diff --git a/NEWS b/NEWS
new file mode 100644
index 00000000000..8365b123609
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,597 @@
+dogtail 0.9.0
+=============
+Over the last year we've made a good number of fixes, added some new features
+and got overall stability to the point where we can make a new 'major minor'
+release. With 0.9 we're finally getting only a step away from what we'd like
+to get done with 1.0.
+
+
+ * Added a fix for situations when a previously crashed application
+ still registered with at-spi blocks search ('Broken' session problem)
+ Fixed for root.application(), root.applications() and for whenever
+ GeneralPredicate is used (.child()). Also done for Sniff. RHBZ 972257
+
+ * Added a support for gnome-continuous build-api (#36)
+
+ * Added a direct lambda support in the findChildren method, that allows
+ using non-predicate lambdas to create search properties. These can be
+ all pure dogtail Node properties (i.e. showing), not limiting to just
+ pyatspi ones as is when using Predicate.
+
+ * Added a GnomeShell 'helper' class into utils module allowing to work
+ with the new top-panel application menu.
+
+ * With GTK3.10+ Gdk changes, needed to tune the keyNameToKeyCode function
+ so that it provides valid keySym in as many cases possible - with both
+ pre-GTK3.10 as well as GTK3.11+ having the same behavior in typeText and
+ pressKey
+
+ * Sniff ui update: the info pane now stays down on resizing
+
+ * Got rid of some deprecated GObject calls
+
+ * Several updates to the dogtail-run-headless-next
+ - Any kind of session can now be used in any combination with both gdm/kdm
+ --session can be used to specify any xsession desktop file, 'kde' defaults
+ to 'kde-plasma' too keep pre-updated compatibility; default is now the previous user session
+ --dm - new param to pick either gdm (default) or kdm
+ --session-binary - new param to specify any in-session binary to grab script env from
+ - to be used with non gnome/kde session (lxde, ubuntu)
+ - do not confuse with session execs like gnome-session and starkde, that may
+ actually exit after session loadup; it should be everpresent (kwin, shell...)
+ - Added a --restart switch to force restart the previously running (often left-over) session before proceeding
+ - More logging of script execution (start/stop/PID), and some cleanups
+
+ * Trap GErrors in findAllDescendants and retry if it occurs: This fixes crashes in findChildren if elements are being added/removed quickly
+
+ * Unicode handling updates:
+ - Make sure safeDecode is not skipping any strings
+ - Don't crash when logging message contains unicode
+
+ * Error Handling for Attribute Error
+
+ * Fixed utils.run issue when having whitespace containing binary by
+ using shlex shell-like parsing split.
+
+ * Removed an always true if condition in i18n
+
+ * Log child description when clicking. The log will now print the element description when it will be clicked
+
+ * Trap TypeError in findAllDescendants: Sometimes pytaspi returns None as a Node if children are being removed too fast.
+ We should retry search in this case
+
+ * Extended the default TypingDelay from 0.075 to 0.1 seconds (helps working with certain high unicode charactes)
+
+ * Fixed an bug in sniff discovered by jmolet that made sniff crash when
+ run from /bin/sniff not /usr/bin/sniff
+
+ * Generate a better script method call for labels
+
+ * Fix for failing 'focus.application.node' seting
+
+ * Derive all classes from object explicitely
+
+ * Changed icons used in sniff that got moved to the gnome-icon-theme-legacy
+ recently for the ones from non-legacy package.
+
+ * Unified the 'isSth' vs. 'sth' properties for only 'sth' - added 'selected', but also introduced
+ 'isChecked' property for 0.7.x compatibility
+
+ * Added instructions on how to enable accessibility into utils.bailBecauseA11yIsDisabled()
+
+ * Added a 'retry' option to the tree.root.application()
+
+ * Fixed the concurrent creation of sniff_refresh lock from both tree and procedural
+
+ * Switched to use environ value to get user in config. os.getlogin breaks when run scheduled from a testing system with no terminal.
+
+ * Patched the mouse related rawinput methods to prevent using negative coordinates
+
+ * Updated and added more unittests
+
+dogtail 0.8.2
+=============
+Second update to the 0.8 series containing several fixes and improvements
+
+ * Added the dogtail-run-headless-next to replace the dogtail-run-headless in future.
+ -next, uses a diplay manager (kdm or gdm) for session management, should be used instead of older
+ headless on systemd systems already
+
+ * Unittests vastly improved and updated
+
+ * Fixed a missing reset of FocusWindow to None on application refocus
+
+ * Fixed the dogtail-logout to use gnome-shell instead of old gnome-panel
+
+dogtail 0.8.1
+=============
+A first update to the new GNOME3 / KDE4 compatible release containing several fixes:
+
+ * Sniff's autorefresh made togglable, to help avoid collisions with potential
+ running dogtail scripts. Sniff checks at startup whether some script is running
+ and sets up the autorefresh off if it is.
+
+ * Added a locking mechanism into utils that can be used to solve situations when
+ multiple dogtail processes/thread are running (applied in tree/procedural and sniff
+ already)
+
+ * Removed the deprecated dependency on CORBA
+
+ * Icons no longer use absolute pathing in sniff (thx roignac)
+
+ * Deprecated .has_key() operator replaced with 'in'.
+
+ * Removed .svg inside sniff's .desktop file
+
+dogtail 0.8.0
+=============
+Finally a big release updating dogtail after more than 2 years ! Dogtail
+is developed and maintained now again.
+
+Simply put, ported to be compatible with the new GNOME 3 and to work well in major
+GNOME 3 (GTK3) distributions.
+
+We'd like to make the 0.8.x version onward the GNOME 3 compatible branch usable
+for Fedora, RHEL7 and others, while keeping 0.7.x releases for fixes in older GNOME2
+systems.
+
+--- What was done ---
+
+Notably, Sniff's UI needed to ported completely to GTK3, yet there are
+also several places in dogtail 'itself' that needed to be rewritten to go ahead
+with the new technologies. Those were all the modules where the old pygtk was
+used for various reasons (rawinput, utils, tree...). Incompatibilites were also
+present due to the new version of pyatspi (notably with the doAction method).
+
+Release highlights:
+
+* A great number of fixes everywhere related to GTK/GNOME/At-Spi updates
+
+* The dogtail-recorder was dropped for now, but might return in RC or 0.8.1
+
+* Thanks to the qt-at-spi project, dogtail now works out-of-the-box for QT!
+
+* Headless supports KDE sessions
+
+* Headless working with full 3D-Accelerated GNOME session (no fallback anymore)
+
+* Highlight used in sniff completely re-written and made toggleable (of by default)
+
+* Makefile updated, 'make run' builds packages in homedir/rpmbuld now
+
+* Several examples fixed for updated gedit
+
+* Added tree.isChild() convenience method
+
+* Renamed doAction to doActionNamed due to conflict with doAction inside
+ pyatspi namespace
+
+* Delay made configurable in absoluteMotion and relativeMotion functions
+
+* Changed at-spi activation to use DConf instead of GConf
+
+* A bit of code clean-up and modernization (using @property now etc.)
+
+* More error checking added
+
+* A couple of unit tests for Node added
+
+* Node.findChildren() updated to be faster
+
+
+dogtail 0.7.0
+=============
+
+This release has too many changes to list. Here are some of the major ones:
+
+* Dogtail has been ported to pyatspi. This means:
+ - Faster performance.
+ - Errors will be more clear.
+ - No more segfaulting or myserious crashes.
+
+* There is now useful generated API documentation:
+ http://fedorapeople.org/~zmc/dogtail/epydoc/
+
+* Inline documentation has been greatly improved.
+
+* Headless execution support was completely rewritten.
+
+* Sniff was completely rewritten. It is now:
+ - Faster.
+ - More reliable.
+ - Self-updating via AT-SPI events.
+ - Slightly prettier.
+ - Able to tell you about certain states and relations.
+
+* Image Comparison (TCImage) was rewritten. No more ImageMagick!
+
+Note: tests/Node.py's TestNodeAttributes is failing due to GNOME bugs #498557
+ and #498563
+
+
+dogtail 0.6.1
+=============
+
+Features:
+
+ * dogtail-recorder has a Play button now.
+
+ * dogtail-recorder now records right-clicks. That it didn't previously was an
+ oversight. Note that there is some inconsistency when dealing with context
+ menus, as the events often get fired in the wrong order.
+
+ * New logging mechanism:
+
+ - Debug output is now written to a file. To disable this, set
+ dogtail.config.config.logDebugToFile to False.
+
+ - The procedural API defaults to not raising FocusErrors, and instead
+ issuing warnings via the debug logging mechanism (which prints to
+ standard out along with writing to a file). To re-enable FocusErrors, set
+ dogtail.config.config.fatalErrors to True.
+
+ * Brian Cameron submitted a patch to make dogtail.distro correctly detect that
+ it is running on Solaris.
+
+Bugfixes:
+
+ * dogtail-recorder no longer offers the broken Object-Oriented backend as a
+ choice. If it gets fixed, it will be offered again.
+
+ * dogtail-recorder can be properly exited by clicking on the window manager
+ close button. In fact, the Quit button was removed also.
+
+ * dogtail-recorder's syntax hilighting works again, thanks to a patch from
+ Dave Malcolm.
+
+ * Searching for nodes with parentheses in their names will no longer fail.
+
+ * The various pressKey() functions were blowing up on punctuation and
+ newlines. Fixed.
+
+ * Predicate subclasses in dogtail.predicate which were missing debugNames have
+ gotten them back.
+
+ * Warnings are no longer issued when dogtail encounters invalid Unicode.
+
+ * Where several of our example scripts were broken, Michal Babej noticed and
+ submitted patches fixing them.
+
+ * dogtail's tarball is 90% smaller! Some overly large test images were
+ replaced with very, very small ones that still do the job.
+
+
+dogtail 0.6.0
+=============
+
+Features:
+
+ * Keystroke recording support in dogtail-recorder:
+
+ - Normal keypresses (e.g. typing 'foo bar baz') will be recorded as
+ "type('foo bar baz')" in the procedural API. dogtail.tree.Node has a new
+ method, typeText(), which is called by dogtail.procedural.type().
+
+ - Nonprintable keypresses (e.g. typing Control-Shift-c) will be recorded as
+ "keyCombo('<Control><Shift>c')" in the procedural API. dogtail.tree.Node
+ has a new method, keyCombo(), which is called by
+ dogtail.procedural.keyCombo().
+
+ - The now-unnecessary 'Input Text' button has been removed.
+
+ * dogtail.tree.Node has new attributes and a new method:
+
+ - grabFocus(): Attempts to cause the node to grab the keyboard focus.
+
+ - focusable: Whether the node is able to have keyboard focus.
+
+ - focused: Whether the node currently has keyboard focus.
+
+ - checked: Whether the node is a checkbox that is currently checked.
+
+ * Dogtail now checks if accessibility is enabled before it does anything.
+ sniff and dogtail-recorder will prompt to enable it via a dialog, and
+ scripts themselves will just refuse to run.
+
+ * Dogtail no longer uses the IconLogger (in the notification area) by default.
+ Set dogtail.config.config.useIconLogger to True to reenable it.
+
+ * dogtail.utils.screenshot() was rewritten to use GDK instead of ImageMagick.
+
+Bugfixes:
+
+ * Dogtail is now much more robust in dealing with possibly-invalid Unicode
+ strings passed to it via AT-SPI. (GNOME bug #354515)
+
+ * Dogtail will not crash when it receives an SpiException caused by a CORBA
+ COMM_FAILURE, unless the source of that error is the application under test.
+
+ * While exceptions occuring inside callbacks used in dogtail-recorder will
+ still not properly be raised, they are now printed to standard out.
+
+ * SuSe support in dogtail.distro is fixed. (GNOME bug #353601)
+
+ * sniff and dogtail-recorder will now find their glade files, even if they're
+ installed into a nonstandard prefix. (GNOME bug #353719, #353731)
+
+ * dogtail-run-headless had a few bugs fixed.
+
+
+dogtail 0.5.2
+=============
+
+Features:
+
+ * A much-improved recorder:
+
+ - A procedural script writer, which is now default.
+
+ - An 'Input Text' feature, which allows you to set the text attribute
+ of any visible Node via the recorder. Coming soon is proper keystroke
+ recording.
+
+ - The script view now uses syntax hilighting where available. (GNOME bug
+ #345374)
+
+ * A completely-rewritten dogtail-run-headless, which now offers two session
+ types: minimal GNOME and metacity. The syntax has changed, so use
+ 'dogtail-run-headless --help' to get started. (GNOME bug #320548)
+
+ * All 'name' arguments in dogtail.tree and dogtail.procedural now accept
+ regular expressions.
+
+ * Support for AccessibleSelections, providing a clean way to select page
+ tabs and combo box items. (GNOME bug #336562)
+
+ * Support for building in a jhbuild environment. (GNOME bug #318535)
+
+ * Far more extensive unit tests for dogtail.tree.Node.
+
+Bugfixes:
+
+ * The source is now indented with spaces and not tabs! :) (GNOME bug #318833)
+
+ * Pyspi and dogtail no longer mysteriously stop working. (GNOME bug #321273)
+
+ * Sniff no longer crashes when an application being poked disappears. (GNOME
+ bug #318135)
+
+
+dogtail 0.5.1
+=============
+
+Features:
+
+ * An improved build system for RPMs.
+
+ * dogtail.procedural's FocusErrors are now more informative.
+
+Bugfixes:
+
+ * examples/recorder.py was broken; a bug in dogtail.predicate.makeCamel()
+ was breaking the predicates' makeScriptVariableName() calls. It's fixed.
+
+
+dogtail 0.5.0
+=============
+
+Features:
+
+ * Automatic runtime translation into the current locale using the application
+ under test's own translations. See
+ examples/gedit-test-utf8-procedural-api.py for an example.
+
+ * dogtail.distro.packageDb gained new methods: getFiles(), getMoFiles(), and
+ getDependencies().
+
+ * dogtail.distro.packageDb now has support for JHBuild environments.
+
+ * dogtail.distro has gained exceptions:
+
+ - PackageNotFoundError: raised when the specified package is not found.
+
+ - DistributionNotSupportedError: raised when support for the current
+ distribution is not currently implemented in dogtail.distro. This does
+ not mean that dogtail will not work at all; only that
+ distribution-specific functionality, like automatic runtime translation,
+ will not.
+
+ * dogtail.errors is a new module for very general exceptions, such as
+ DependencyNotFoundError, which is raised when the use of a feature that
+ depends on some missing piece of software is attempted.
+
+ * sniff will now cause the selected node to blink onscreen.
+
+ * dogtail.tree has a new Node subclass, Link. Link nodes have a roleName of
+ 'hyper link' and an action called 'jump'. Their main purpose is to allow
+ us to follow links in web pages.
+
+ * dogtail.tree.Node has new properties and methods:
+
+ - position: the onscreen position of the node, if it wraps an
+ atspi.Component.
+
+ - size: the onscreen size of the node, if it wraps an atspi.Component.
+
+ - blink(): causes the node to blink onscreen.
+
+ - grabFocus(): causes the node to grab the keyboard focus, if it wraps an
+ atspi.Component.
+
+ - rawClick(): synthesizes a raw mouse click on the node, if it wraps an
+ atspi.Component.
+
+ - rawType(): synthesizes raw keyboard events to type text into the node, if
+ it wraps an atspi.Component.
+
+ * dogtail.procedural has new helper methods:
+
+ - menu(): executes the 'menu' action on the focused widget.
+
+ - focus.frame(): a shortcut to focus.widget(roleName='frame' ...)
+
+ - focus.window(): a shortcut to focus.widget(roleName='window' ...)
+
+ * dogtail.procedural.click() can now synthesize raw mouse events to perform
+ "raw" clicks.
+
+ * dogtail.rawinput has gained new methods:
+
+ - pressKey(): synthesizes a raw keyboard event, pressing the key whose
+ name is specified.
+
+ - typeText(): types a specified string, one key at a time, using raw
+ keyboard events.
+
+ * dogtail.config was rewritten.
+
+ * dogtail.config.config has new parameters:
+
+ - ensureSensitivity: controls whether a NotSensitiveError is raised when
+ an attempt is made to execute an action belonging to a Node instance
+ that is not sensitive, or if a warning is simply printed instead (the
+ default).
+
+ - debugTranslation: Controls whether details of the autotranslation
+ process will be outputted to the debug logger.
+
+ * dogtail.config now creates its scratchDir, dataDir, and logDir as soon as
+ the values are set.
+
+ * dogtail.utils.screenshot(), by default, whether using a custom filename or
+ not, now appends a timestamp to the filename. That may be disabled by
+ passing 'timeStamp = False' to the method. For this reason, it also prints
+ the full path to the screenshot.
+
+ * dogtail.logging.TimeStamp.fileStamp()'s format has changed, to
+ filename_YYYYMMDD-hhmmss or just filename_YYYYMMDD, controlled by the new
+ optional argument 'addTime'.
+
+ * dogtail prints the full path to any logfiles it creates.
+
+ * dogtail-run-headless will now turn accessibility on before executing the
+ script under test, and also restore the old value after the the script has
+ finished executing (GNOME bug #320548).
+
+Bugfixes:
+
+ * sniff will correctly show the text of a non-editable text node again
+ (GNOME bug #321564).
+
+ * dogtail.tree.screenshot() was mostly rewritten, and no longer breaks when
+ given a custom filename.
+
+ * dogtail.procedural no longer causes PyDoc to fail miserably (or at all).
+
+ * dogtail will no longer warn about missing wnck bindings, because they're
+ not actually used anyway.
+
+ * dogtail.procedural.focus.dialog() no longer searches recursively (GNOME
+ bug #321624).
+
+ * dogtail.procedural.focus.widget() and its shortcut functions now properly
+ raise a FocusError if their search fails.
+
+ * dogtail.tc.TCString.compare() will now fail properly again, thanks to
+ Muktha Narayan (GNOME bug #321151).
+
+ * dogtail.tc.TCImage.compare() now works with the newest version of
+ ImageMagick. That version had changed its behavior, breaking the function.
+ (GNOME bug #321431).
+
+ * Attempting to instantiate a dogtail.tc.TCImage object while ImageMagick is
+ not installed will now give a comprehensible error message, thanks to the
+ new dogtail.errors.DependencyNotFoundError exception.
+
+ * Calling dogtail.utils.screenshot() while ImageMagick is not installed will
+ also raise a dogtail.errors.DependencyNotFoundError.
+
+ * Attempting to execute an action belonging to a Node instance that isn't
+ sensitive no longer fails by default, but prints a warning. This behavior
+ is controlled by the ensureSensitivity configuration parameter.
+
+ * dogtail-run-headless now correctly returns the exit code of the script
+ being executed (GNOME bug #320535).
+
+ * dogtail.distro's APT support implementation now only calls
+ apt_pkg.GetCache() once, improving performance significantly when multiple
+ calls to packageDb.get{Version,Dependencies}() are needed.
+
+ * Building RPM packages from the supplied dogtail.spec works again on distros
+ that are as old or older than RHEL4.
+
+ * Building RPM packages with 'make rpm' works again without root privileges.
+
+API breaks:
+
+ * Action execution via dogtail.tree.Node instances was forced to change
+ interfaces from the "node.open()" model to a "node.doAction('open')"
+ model. To retain backward compatibility with the application wrappers, the
+ "click" action is still available as "node.click()". The
+ dogtail.procedural interface was able to remain unchanged.
+
+ * dogtail.config was rewritten to be more robust, and its interface was
+ changed slightly. To port, First, remove any instantiations of the old
+ Config class, and then make the following parameter replacements:
+
+ - Config => config
+ - logdir => logDir
+ - scratch => scratchDir
+ - data => dataDir
+
+
+dogtail 0.4.3
+=============
+
+Features:
+ * Headless support has been added. Use dogtail-run-headless to spawn an X
+ server, a minimal "Nat/Jeff" GNOME session, and execute a given dogtail
+ script before exiting. The dogtail-detect-session script detects a running
+ GNOME session, but KDE support can be dropped in once KDE has accessibility
+ support.
+
+ * dogtail now uses a notification icon while it is running. Its tooltip is
+ equal to the last message relayed by the debug logger. Most of the code
+ was taken from jhbuild.
+
+ * Sniff, the AT-SPI browser that uses the dogtail libraries, has gained icons
+ for both applications and specific widgets (based on the role name, taken
+ from at-poke) to make browsing easier.
+
+ * Sniff also gained a proper dogtail icon.
+
+ * The procedural API has been given more convenience functions for 'focusing'
+ different types of widgets.
+
+ * The procedural API has also been given an openItem() method, which works
+ just like click(), for opening icons on nautilus' desktop.
+
+ * dogtail can now detect Gentoo and Conary distributions, thanks to Brent
+ Smith and Tim Gerla, respectively.
+
+ * The Node class in dogtail.tree now exports the 'role' attribute in addition
+ to the 'role name'.
+
+ * Wrappers for gcalctool and yelp were added, thanks to Dave Malcolm.
+
+ * A wrapper for gedit was added, thanks to Paolo Borelli.
+
+ * New examples for Evolution, gcalctool and the GTK file chooser were added,
+ thanks to Dave Malcolm.
+
+ * Dave Malcolm also enhanced the Evolution wrapper, adding support for
+ creating new meetings.
+
+ * A new example that generates fake documentation for a given application has
+ been added, thanks to Dave Malcolm.
+
+ * dogtail.spec has been added, thanks to Jeremy Katz, to improve the quality
+ of the RPM packages.
+
+Bugfixes:
+ * several examples had not been updated to reflect API changes before the
+ last release. This has been corrected.
+
+ * The epiphany wrapper now uses the package name 'epiphany-browser' on
+ Debian-based distributions to detect the package version, thanks to Andrew
+ Beresford.