Build: 2015-09-25
revised: drag(), dropAt(), dragDrop(): for each usage you can define individual timing parameters (see docs)
fixed: problem with App class on Mac and Windows after 2015-09-19: native xxxUtil libs where no longer loaded
added: App class: someApp.open(waitTime): waits max waitTime until App is running (like someApp.isRunning(waitTime))
added: for Java: convenience Method App.pause(waitTime): do nothing for the given time (instead of using new Screen().wait())
Build: 2015-09-22
some revisions and new features for the App class (thanks: https://github.com/RaiMan/SikuliX-2014/pull/163)
... and Linux setup: (thanks: https://github.com/RaiMan/SikuliX-2014/pull/167)
Build: 2015-09-09
fixed: Windows: App class constructor App() should not open not running app (thanks: https://github.com/RaiMan/SikuliX-2014/pull/163)
added: Allow user to specify the delay between mouseWheel calls (thanks: https://github.com/RaiMan/SikuliX-2014/pull/154)
Build: 2015-09-08
added: IDE: italian translation
Build: 2015-08-28
revised: using runsikulix -s -- arg1 arg2 ... now has the user args available in sys.argv[1+]
when running .sikuli (Python) on the server
revised: setup now shows the used options
Build: 2015-08-21
fixed: added a Region.init() to better support subclassing of Region on the Jython level
revised: allow to run setup in the project context using mvn -Pl Setup exec:exec
Build: 2015-08-18
fixed: some problems with the App class methods (App.close("some-app" did not work)
Build: 2015-07-20
fixed: offline setup: selenium4sikulix should only be downloaded on request
temp fix: removed the robot stuff from sikulixapi.jar, htmldata files cannot be loaded from a jar
Build: 2015-07-14
added: for use in observe handler/ObserveCallback:
event.getType() returning a string with APPEAR, VANISH or CHANGE
added: for use in observe handler/ObserveCallback:
event.isAppear(), event.isVanish() and event.isChange() returning True or false
Build: 2015-07-13
added: Mouse.setMouseMovedHighlight(true/false), where true will be the default.
added: Robot run: use Java as Keyword implementation, containing jar file is added to classpath at runtime
Build: 2015-07-05
added: Robot Framework: robot Python module now bundled (SikulixAppData/Lib),
setup RobotFW testcase in IDE(Robot text and inline Keyword library) and run from IDE and/or commandline,
see a test script combining RFW with Sikulix and Selenium
fixed: NPE when setting autoWaitTimeout of a region to 0
Build: 2015-07-03
added: a showcase (runnable from the net) for the usage of Selenium Firefox in SikuliX script (tested on Mac and Windows)
added: download and store available extensions using setup (from commandline: setup...jar options extensions)
added: support for Selenium now available as ready to use extension jar (not yet in the docs)
fixed: scripts from the net: if download for .py/.rb is not allowed, one can use .py.txt and .rb.txt for the script files
fixed: Mac OSX 10.11: SikuliX.app did not start up
Build: 2015-06-30
revised: running scripts stored somewhere in the HTTP net can now be run from inside the IDE (runScript())
or from commandline with option -r --- docs are up to date
Build: 2015-06-27
revised: feature load(jar): more options to find the jar, imagepath to folder in jar can be given
added: buildJarFromFolder(): to build a jar on the fly at runtime
added: compileJythonFolder(): replaces the contained .py files with it's compiled versions ...$py.class
(can be used for source protection)
fixed: App class: LinuxUtil: added a stub implementation for getApp() to avoid loss of pid
Build: 2015-06-25
added: Jython scripts: highlightOff() switches off all current highlights
Build: 2015-06-24
revised: RunServer: now works according to http://sikulix.com/support
fixed: Finder: Windows: now works again
fixed: App class: isRunning() now works on Windows and Mac
added: Jython support: now Lib/site-packages is recognized
and can have a sites.txt containing more paths (see docs/Using Python)
Build: 2015-06-22
revised: commandfiles on Mac to have alternatives to start the IDE (shows SikuliX icon in taskbar and SikuliX as name)
revised: App class on Mac, still App.open() (app not running)
does not work on 10.9 and earlier (on 10.10 with most apps works),
when the script is run from the IDE that is running as SikuliX.app
- when starting the IDE or running script from commandline it works
Build: 2015-06-15
fixed: Windows: Jython scripting: exceptions in imported stuff now again shown correctly
Build: 2015-05-28
revised: findBest(): now internally works on the given images in parallel (threading)
Build: 2015-05-26
added: findAllByRow, findAllByColumn: returns an array of matches in sorted order
top left to bottom right either row-wise or column-wise
added: findBest(): find the match with the highest score out of the list of given images
revised: App.isRunning(): now internally refreshes the App instance,
so the App can be created with a window title and later be checked, whether it is running,
if other means are used to start the app (usage instead of "if someApp.window()")
Build: 2015-05-22
revised: class App: App.open() and openApp() now ignore already running instances of the named app and will in doubt start a new instance.
Windows: openApp("cmd.exe /c "some command to run") works again
Build: 2015-05-21
fixed: getBundlePath: Windows: now without leading slash
revised App class (Windows): faster now and focus indeed activates the frontmost window
Build: 2015-05-20
fixed: Jython import: problem with import of .py files
Build: 2015-05-19
revised: App class: open() now accepts parameters again
Build: 2015-05-18
fixed: regression: Pattern().targetOffset() offset ignored
fixed: a problem with the "name =" capture feature, now made sure, that the line only contains "name ="
fixed: App.getWindow(): Mac: a problem with , in a title
continued: RunServer and RunClient (now named Run)
Build: 2015-05-16
fixed: IDE: cursor keeps current position in cases, where the content is re-evaluated (toggle view and image rename)
added: experimental (more options might follow):
a feature to highlight the search region before search (green frame)
and the match (if found, red frame) after the search (each for 2 seconds),
might be an alternative to slow motion running. Start: Debug.highlightOn(), Stop: Debug.highlightOff().
works for region.method() usage and for setROI() usage. The region/ROI must be at least 10 pixel smaller
than the screen on all sides, otherwise the green frame is omitted.
Build: 2015-05-15
fixed: multi monitor: should be fixed now (tested on Mac (incl. 10.10.x) and on Windows)
revised: IDE: show button: now recognizes negative coordinates and finds image on all screens.
added: class App: now possible to add parameters/options again as a string using setUsing(...).
Currently only recognized on Windows, which brings back the possibility to
open an application with parameters/options.
Until now: App.open("some.exe parm1 parm2 ...")
must now be written as App("some.exe").setUsing("parm1 parm2 ...").open()
Build: 2015-05-13
revised: class App: Mac/Windows: an app now knows it's process ID (PID) and its frontmost window title
you can ask an app wether it is running and wether it has a window
if an app is running it is not started again with open(). Linux: not yet revised
Build: 2015-05-08
revised: class App: App.open, focus, close on Windows to be more consistent.
getWindow() to get the title of the frontmost window of an app. The same app is only opened once -
a running process is reused.
Build: 2015-05-04
temp fix: IDE as mac app: added a hack to avoid click/type slowdown after about 60 seconds
temp fixed: IDE: switching to Jython 2.7.0 final with setup option for Jython 2.5 (when unicode problems arise)
Build: 2015-05-01
added: IDE: buttons to capture a point and an offset and
to show (highlight) the leftmost item in the line having the cursor (if possible in the line context)
added: IDE: capturing with the cursor in a line containing only imagename = will result in an
image filename as imagename.png and overwrites on recapture. (to support naming schemes and variable use)
Build: 2015-04-23
fixed: setup did not work anymore with already downloaded artefacts (offline setup)
added: runScript(): inline run of PowerShell snippets
Build: 2015-04-20
added: runScript("applescript tell ..."): run code snippets in AppleScript on Mac using osascript
fixed: possible problem with setup running with proxy
revised: running Python scripts from net and with RunServer
revised runsikulix.cmd: now first we check, whether java can be run from system path
fixed: each SikuliX session should have it's own temp folder (auto deleted at JVM shutdown).
Still the IDE GUI can only run once, but as much as one likes in parallel from commandline.
Build: 2015-04-17
fixed: user args after -- not filled into sys.argv when running from commandline
fixed: runsikulix.cmd did not use Java 8, if available in standard places
fixed: tessdata not bundled when using setup with option 1 only
fixed: exists(Pattern(image)) hangs (internally looping endlessly), if image file is not available
added: experimental: RunServer: run scripts (or JavaScript snippets) from anywhere using a http RESTful protocol
fixed: save script problems causing exceptions should be handled internally (otherwise might block GUI)
added: experimental: visual annotation (former extension Guide) now a standard feature of SikuliX (contained in sikulixapi.jar)
Build: 2015-04-03
fixed: runScript(): possible NPE, when used in scripts run from commandline
Build: 2015-04-01
revised: jython script running with sikulixapi.jar::Runner: now returns the value from an exit(n)
fixed: Linux: possible NPE in build on the fly
Build: 2015-03-31
added: jython script running with sikulixapi.jar::Runner: usage: org.sikuli.script.Runner.run(scriptPath, args),
sikulixapi.jar and a jython.jar must be on classpath (auto taken from setup downloads if omitted).
Build: 2015-03-27
fixed: Mac: a problem that made it to not run any longer with Java 6
revised: MouseMovedCallback feature
added: set callback handler and request visiting the handler before processing a mouse action (on/off)
added: request termination with next mouse action throwing an AssertionError
Build: 2015-03-24
fixed: (I hope ;-) all regression bugs against 1.0.1 in multi monitor environments
revised: ALL in Jython scripts and Screen.all().getRegion() can now be used, to search on all monitors in the same op
(ALL.click(someBotton) will find and click the button, no matter on which monitor it currently is)
Build: 2015-03-24
added: multi monitor: a visual can now be found on all screens with one op: Screen.all().getRegion().find(someImage)
will return a match, that knows it's screen, hence match.getScreen() will return the screen it was found on.
Take care: is a lengthy operation and costs some memory, so it should be used with care.
If the match spans screens, the screen with the biggest part is the winner (should be avoided).
Build: 2015-03-22
the next days I will somehow reveal more information about the new or revised features
... but many features are already in the docs
a toy: starting sikulixapi.jar with no parameters reveals a simple edit/save/run dialog for JavaScript trials
added: SikulixAppData/SikulixStore/SikulixDebug.txt if this file is present at startup, then from beginning
we run with debug level 3 and all messages are written to this file (helpful for startup debugging)
added: SikulixAppData/SikulixStore/SikulixOptions.txt is a key/value store according
to the rules of Java property files, that is loaded at startup. The options might overwrite settings
and are available at runtime via getOption... calls (precedence: home folder, work dir, SikulixAppData)
added: SikuliX now has a central repository (SikulixAppData) for all related stuff
in the user's home folder area according according to the standards of the system
added: running scripts can now be paused/continued and aborted by moving the mouse
(detection with next mouse action)
added: one can now run scripts written in JavaScript (edit not yet supported in IDE)
revised: script running in general: -r can have multiple scripts that are run one after the other,
added: runScript() can be used to run scripts from inside other scripts or from Java
including handling of the bundlePath
added: images and scripts can now be downloaded/run from HTTP accessible locations in the net
revised: Linux build on the fly for libVisionProxy should be available in API also,
to support this with Maven usage of sikulixapi.jar
revised: TextRecognizer: made the tessdata handling more robust, findAll(text) now works
added: image files whose name start with an _ are protected against image cleaning on save in all cases
added: sikulixapi.jar can now be bundled with Launch4J to create .exe that only need a JRE, resources and images
can be exported or used from the .exe content (bundled in the original jars)
revised: moved parts of the Sikuli/Jython import handler to the Java level
revised: completely reworked the startup for IDE and API usage, now concentrating all startup requirements in the one
singleton class RunTime
revised: all Sikulix related stuff besides the jars (setup, IDE and API, can now be moved around freely)
is now in a system specific Sikulix folder in the home folder
Build: 2015-01-14
revised: observe: handlers (callback on observe event happened) now directly called from Java in Jython and Jruby
Build: 2015-01-12
see GitHub commits
Build: 2015-01-09
again revised the Linux libVisionProxy.so build
started: make a SikuliX.exe using Launch4J
Build: 2015-01-08
again revised the Linux libVisionProxy.so build
finalized: on Mac now the IDE is back as Mac application
Build: 2015-01-06
fixed: Linux setup: libVisionProxy.so (provided or bundled) is checked and can be built on the fly during setup (tested on Ubuntu 14.04 64/32 Bit)
fixed: JRuby: did not run unsaved scripts
fixed: Java 6: Jython version is checked: must be 2.5 and is used with setup (having bundled 2.7 terminates)
changed: Jruby now 1.7.18, Jython now 2.7-b3
fixed: version 1.1.0 now compiles on Java 6 again
Build: 2014-12-28
fixed: problem with CheckLastSeen when pattern is used
fixed: only onAppear handler was called on event (other handlers not called)
Build: 2014-12-03
revised: silent setup: replaced download popups with log messages to avoid any GUI usage
fixed: write(#DEL.) did not work
added: Key.dump(): get a list of keynames for write()
Build: 2014-11-23
fixed: minor - see GitHub commits
Build: 2014-11-13
fixed: detection of Mac OSX 10.10
Build: 2014-10-31
fixed: Windows: offline setup did not work
Build: 2014-10-20
fixed: JRubyAddons (1.1.0-6.jar) back again for download during setup
Build: 2014-10-16
fixed: offline setup now includes library jars
finalized: unattended setup
Build: 2014-10-14
fixed: a crash on Windows because of a bug in the handling of the libs folder
finally revised: download of needed stuff during setup
Build: 2014-10-12
fixed: setup: export resources (Lib folder, command files, ...)
revised: Jython, JRuby, libs-jars and sikulixapi.jar now loaded from MavenCentral/OSSRH
Build: 2014-10-05
changed: managing ImageCache is per Settings.setImageCache(n), which sets the max. in-memory-images to n MB (start value 64). 0 will switch off caching and clear the cache immediately.
completely revised image loading and caching.
added: a feature to store key-value-pairs in the persistent preferences storage, so they can be retrieved in a future SikuliX session
... details see javadocs Sikulix.prefStore, ...load, ...remove
added: Region.isValid to check, wether a Region can access a screen
added: Region.mouseMove(x,y) and Mose.move(x,y): both move the mouse from it's current position to the given offset
Build: 2014-09-25
revised: getting parts of a region or an image based on a raster overlay of even rows, columns or cells
documentation: started to revise the docs
Build: 2014-09-24
added: Region: getLastTime() returns the duration in msecs of the last find in the given region (similar: Match.getTime())
Build: 2014-09-23
fixed: Jython import problem in build 2014-09-22 (addModPath)
added: Sikuli.py: some convenience functions for path handling
added: Sikuli.py: new popXXX, input, select
Build: 2014-09-17
added: IDE: Preview: renaming an image now changes all occurences of the same imagename in this script
added: IDE: scriptwindow tab menu: reset now makes a reparse to reflect changes in the preferences (e.g. how images are shown)
Build: 2014-09-16
fixed: user parameters from command line after -- or --args are now available again in sys.argv[1 .. n]
revised: IDE: renaming images in Preview (special case: overwrite existing image)
Build: 2014-09-13
revised/fixed: delete not used images on save still in some special cases deleted images erroneously
Build: 2014-09-12
added: OCR-read the text from a given image file (convenience: Image.text(imagefile)) or an Image object
Build: 2014-09-11
fixed: problem with addImagePath() crashing Jython import
this is the first build of 1.1.0 (first commit: 0107b25)
Build: 2014-09-10
new: javadoc and sources jars of sikulixapi now available here
new: Match.getTime() returns elapsed time in millisecs of the corresponding search op
Build: 2014-09-07
new: ScriptRunner.run(script_folder) will run the script, scripting language is detected from contained scriptfile.
can be used to setup batched script runs.
revised: editor tab context menu features
revised: IDE: usage of tempfiles
Build: 2014-08-30
temp fix: when running on Mac OSX 10.10 the search feature is switched of, to avoid startup crash of IDE (to be fixed later)
fixed: now compiles on Mac with Java 8
fixed: some problems after Scriptrunner restructuring
Build: 2014-08-10
revised: final setup test now the same for API/Jython/JRuby, more features are tested, more verbose logging
Build: 2014-08-09
revised: handling of images in Image/ImagePath completely switched to URL's
revised: IDE: tab close and script save - consistent handling of image cache - might still have odds
Build: 2014-08-05
added: callback feature to jython runner, now logging redirect works in Jython scripting
added: now even user logs can be redirected, setLoggerAll now redirects info, action, error, debug and user
Build: 2014-08-04
revised: setup
JRuby: gem should be useable, rspec+ package seperate setup option
Build: 2014-07-31
added: Sikuli's log messages can be redirected to a private logger instance (see java docs Debug)
brought back for JRuby: rspec, cucumber support is again bundled
Build: 2014-07-31
fixed some setup problems
now the libs folder is always exported to the parent folder when sikulixapi.jar is used
switched off JRuby IDE stdxxx redirection for now - problems, when running IDE from commandline
Build: 2014-07-24
added: Michaeal Johnsons VNC solution
revised: build process and collectjars
Build: 2014-07-23
revised: lib export when running with sikulixapi.jar: exported to parent folder of jar in all cases.
added: a usecase for sikulixapi.jar from OSSRH in Maven projects (on git)
Build: 2014-07-22
finally fixed: problems after migrating to new version/naming/structural concept
setup: API (option 2) now contained in setup - no extra download
sikulixapi.jar for MavenCentral: Libs splitted into 3 system specific parts Libswin, Libsmac and LibsLux
Build: 2014-07-21
finally fixed: problems after migrating to new version/naming/structural concept
switched of yellow splash-screens at script run
Build: 2014-07-17
(first build of 1.1.0-Beta4)
revised: IDE save: handling of images
revised: HotKeys: reset at scriptend in IDE
revised: Mouse: new classes Keys and Device for synching
Build: 2014-06-29
revised: IDE help menu: post question, report bug: version/system/java info in clipboard, to support pasting
fixed: IDE crash Java NPE: if Tesseract not working and auto-image-naming is text/OCR
Build: 2014-06-28 (this is the release status of 1.1.0-Beta2)
fixed: IDE terminates on trying to open a non sikuli directory or an incorrect sikuli project
fixed: possible loss of images at save (images in comments, images given with path)
fixed: multi-monitor issues with respect to mouse actions (Screen(0) no longer is the primary monitor in all cases, but Screen.getPrimaryScreen() is)
fixed: out-of-bounds crash during error eval when running from command line (thanks to github user fpmchu)
fixed: IDE: NPE on termination when running from command line
fixed: bug 1330348: running Java: ImagePath is set to working directory if no path is set before first image search
fixed: possible NPE in special situations (mouse moved to invalid location)
fixed: the native library problems on Windows when using 32-Bit Java
added: Screen.all() makes a ScreenUnion of all monitors, on Python level ALL is predefined and can be used as ALL.function() like a Screen/Region
added: reset() to renew the multimonitor configuration inline on Python level
added: Settings.OcrLanguage is now accepted by Tesseract (after using org.sikuli.script.TextRecognizer.reset())
added: images can now be loaded from jars (see JavaDocs::ImagePath)
revised: completely: observe processing (see JavaDocs for now)
revised: further reduced error verbosity at script load and creating image thumbnails
revised: class Mouse, added Mouse.at() to get the mouse location, external mouse moves are detected, mouse use should now be thread safe
revised: moved the handling of capture and stop hotkey to HotkeyManager to prepare a more general usability (run on command line, using callbacks)
revised: Region.write() and it's javadoc (alternative for type() with more features)
revised: the native build for Linux, Mac and Windows (now using MinGW from http://win-builds.org/)
revised: JRuby support: many minors (see GitHub)
... more can be found in commits before 2014-05-01 on GitHub