forked from shoebot/shoebot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
253 lines (199 loc) · 9.54 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
# 1.4
- Variable fonts! Fonts with variant axes can now be loaded and tweaked. Thanks to @villares for the nudge. (#339)
- Improved typography control with settings for tracking (letterspacing), underline and overline, along with the new fontnames(), textbounds() and fontoptions() commands (#283 #351 #356 #391)
- Stroke and fill features: strokecap(), strokejoin(), strokedash() and fillrule() (#376)
- Arcs! They can now be drawn with the arc() and arcto() commands. (#343)
- Blending modes for all drawing objects (#376)
Other new features:
- Much improved unit test framework that already helped us find and kill several bugs, and made it possible to implement new features with confidence that things don't break. (#296)
- Commands that set state (like fill() or font()) now always return its current value
- image() can properly load SVG files (#277)
- Add (x,y) coordinates to closepath() (#287)
- The dependency install script was improved and has added support for Homebrew, Manjaro, Arch (thanks to @villares for help and testing) and MINGW64 (thanks to @speters33w for help and testing) (#312)
- Significant speedups by removing unnecessary waits (#372)
- Windows/Mingw64: working Gedit extension
- OSX: Improvements in dependency installing (#264)
Cleanups:
- Remove CMYK references and only use RGB internally (#386)
- Remove the Drawbot mode (never properly implemented) (#375)
Bug fixes:
- Error codes are properly output on exit (#284 #374)
- Fix unstroked shapes being rendered as bitmaps (#359)
- Fix line() being a closed path
- Fix crash when using HSB colors
- Fix L-System library bugs (#290)
- Fix wrong line number output in script errors
- Fix colormode to take range, not crange for Nodebox compatibility
- Fix broken Text.draw()
- Fix socket server not starting because of new Python 3 API changes. (#368)
- Update pubsub version (#265)
Docs were seriously reworked:
- Many new examples in the command reference
- Many, many corrections, fixes and edits
- Move from ReadTheDocs to our own Sphinx site at docs.shoebot.net
- New look and name (Shoebot manual)
- Recommends per-user install, not system-wide
- Update Sphinx module to Python 3 and correct leftover Python 2 references (#275)
- Remove reference to Shoebox appliance as this was not updated to Python 3
Testing:
- Add OSX support to end to end tests.
- Update unit tests to use AAA style.
- Add checks to ensure travis and the install script are consistent
- Add missing packages to travis for homebrew and ubuntu.
- Add end to end tests that visual output of some examples
- Add tests for exception format.
- (Re)Add tests for color.
Libraries:
- Port various bits to Python 3
- Cleanups and reformatting, including the colors library
- Fixes in the lsystem and graph libraries and examples
- SBVideo alert the user if numpy is not installed
- Removed the web library as it's stale and obsolete (#288)
Examples:
- Added Dendrite and Fireworks example from Nodebox
# 1.3.1
A couple of additions:
* Ensure that the output window is redrawn on resize
* Center the output image in the window
* Add mnemonics for menus
And many bug fixes:
* Fix ReadTheDocs output, docs now build properly again
* Fix an issue where install would fail under PyPy
* Don't commit Python eggs to the repository
* Fix typo in install script that broke it
* Virtualenv chooser in IDE does not die anymore if ~/.virtualenvs doesn't
exist
* Remove outdated mentions of requirements.txt in install docs
* Fix buffer reference in IDE code
* Fix weird behavior when saving in the IDE
# 1.3
* The Shoebot Editor (IDE) is back as an easy way to edit and run scripts.
Its code has been substantially refactored as well. This feature is
currently in alpha status, moving to beta on the 1.4 release after some
testing.
* New dark theme for the IDE.
* Jupyter notebooks are now supported, through the use of the
jupyter-shoebot extension.
* PyPy support. Shoebot benefits from upstream fixes to both pycairo and
pygobject, and now runs under PyPy without any special configuration.
* Window scaling. Shoebot now renders at the window size instead of the bot
size, meaning that paths will not become pixelated when the window is
resized, and will stay smooth at any size.
* Improved the installation process significantly, with package lists
updated to play nice with most distros. Fedora and SUSE were particularly
targeted here, improving many annoyances that made running Shoebot in
these distros rather difficult.
* Migrate graphics backend into PyCairo by default.
* Easy toggle between Cairo/CairoCFFI and gi/pgi as a graphics backend.
Recent work on the graphics backend now makes it possible to choose the
Cairo and GObject bindings using an environment variable.
* Many documentation additions and edits
* Several bug fixes
# 1.2.2
Small fixes to `sbaudio` library after pysoundcard API changes
# 1.2.1
Improvements to vext which ought to work to make Shoebot installable via `pip` and `setup.py install`
# 1.2
New features:
* Livecoding branch merged
* Shoebot shell for communication with editors / IDEs
* Gtk3 branch merged, along with experimental support for pypy
* Use 'vext' for Gtk, extra virtualenv setup scripts removed
* Make setup.py clean actually remove all detritus
* Support setup.py develop
* Show shoebot icon in var window as well as main window
* Started event framework to control different parts of SB; it's pretty dumb right now, but enough to support livecoding of dynamic and non dynamic bots.
## GEdit plugin changes
* Installable from `setup.py`, supports Windows
* Made to work on Python 2.6, so Windows Gedit can be supported
* Added Virtualenv chooser
* Settings are persisted in DConf
* Removed bash setup scripts
* Livecoding support - seperate tab for live errors
* Update examples search to work with `setup.py develop`
## Examples
* Re-enabeled the colors examples
* Added Audio Examples
* Added other misc examples (Fat Text, Fat Lines)
The main focus of 1.2 has been on making installation easier, livecoding and making sure old branches don't go unused.
# 1.0
For LibreGraphics meeting we made our 1.0 release, we also previewed the
Livecoding branch.
A number of nice examples were made by workshop attendees and added to
shoebot:
[INSERT LIST]
We also got lots of good feedback which should be incorporated into
future versions.
Note - this entry added later, by revisiting the commit log
# 1.0b
This was a pre-release in the runup to LibreGraphics Meeting.
We moved from gitorious to github in the interim.
New features:
* Colors library supports loading from .zip, to speed up insall
* Re-enabled supershape - make it buildable with cython instead of C
* Redirect shoebot.net to github pages + make them primary.
Note - this entry added later, by revisiting the commit log
The main focus has once again been on improving compatibility
with nodebox, crossing a major milestone with the 'evolution'
example from nodebox working unmodified.
# 0.4.x
2012-01-30
New features:
* Remove OS2 from setup.py.
Compatibility:
* Enable importing from `nodebox.*` namespace
* Added launch script for Windows users.
* Change URL to shoebot.net
Note - this entry added later, by revisiting the commit log
# 0.3
0.3 included changes to make building debian packages easier.
New features
* Many Tweaks to help build debian packages.
* Removed sbopencv - binary blob was stopping debian building.
* Removed shoebot-ide
Note - this entry added later, by revisiting the commit log
# 0.2
Shoebot got the love of some very talented hackers, and a truckload of lovely
features saw the light of day:
New features:
* colors can be specified using hexcolour values (e.g. #FF00FF)
* fill and/or stroke values can be specified using keyword arguments (e.g.
a = Rect(x,y,w,h,fill='#FF00FF'))
* experimental animation support
* internationalization
* transforms were overhauled, and are now fully consistent with Nodebox
behaviour
* clipping paths!
* a powerful text API was introduced using Pango, matching and even
extending Nodebox's capabilities, and working great with transforms
* image support is now there, and working great!
* ximport() can now be used to import Nodebox's libraries
* many Nodebox libraries ported and included in Shoebot! Boids, Cornu,
Database, Ants, Photobot, Supershape, SVG and Web are fully working (as
far as we could determine! :) ; Colors and L-System are partially working.
* easteregg(x,y,size) ;)
* GIMP colour palette import!
* repeat mode (-r) in commandline mode to output multiple images
* fullscreen mode!
* new example scripts
* Shoebot now runs on Windows, and the IDE too!
* new goodies in the Shoebot IDE: error reporting console, layout
dimensions, about item, file dialogue, Ctrl+F shortcut, GNOME Desktop
entry
* preliminary mouse events implementation in GTK mode
Bug fixes:
* drawpath() and findpath() are working; drawpath() can be used with images
as well (load once, use many times)
* bounding box calculations for line() are fixed
* fixed order of buttons on quit - save file dialogue in shoebot-ide
API changes:
* big rewrite of the code structure; now there are generic Bot and Canvas
classes, equivalent to a 'context' and a 'surface', but differently named
to avoid confusion with Cairo; those can be subclassed to implement new
languages (see NodeBot class for the implementation of Nodebox) and new
graphical backends (see CairoCanvas).
* the 'Box' class was renamed to 'Bot'
* oval() deprecated and introduced ellipse(), the correct term for this
operation
# 0.1
Shoebot says hello world!