-
-
Notifications
You must be signed in to change notification settings - Fork 12
/
todo.txt
executable file
·978 lines (832 loc) · 45.3 KB
/
todo.txt
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
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
1295 (4.3.2)
^^^^^^^^^^^^
NOTE: The first line in this file is the source for the current
revision of Processing for the build system.
***************************************************************
IMPORTANT: The rest of this file is left here for historical
reference and should not be used as a guide for current tasks
or priorities. Many items in this list are outdated or no longer
relevant.
For contributors, please refer to the CONTRIBUTING guidelines
and check the open issues list for actionable items. If anything
here sparks interest, consider opening a new issue to discuss
its current relevance.
***************************************************************
X add an extra note about the Ant version
X https://github.com/processing/processing4/pull/783
contribs
X migrate from altool to notarytool from @CyberFlameGO
X https://github.com/processing/processing4/pull/757
X more fixes for error checking from @sampottinger
X https://github.com/processing/processing4/pull/772
high priority
_ right-click/ctrl-click for jump to declaration causes hang
_ https://github.com/processing/processing4/issues/527
_ https://github.com/processing/processing4/issues/551
_ https://github.com/processing/processing4/issues/595
_ sandbox access to Desktop folder when using non-notarized versions
_ "Security-Scoped Bookmarks" is the term: https://stackoverflow.com/a/12155622
_ example using JNI: https://github.com/plexteq/PQSsbJNIBridge
_ how to store/save bookmarks: https://stackoverflow.com/a/74835008
_ doing "Save As" on sketch didn't write a new main= entry in sketch.properties
_ at least with Python Mode
_ problem re-loading a sketch that doesn't get its sketch.properties written
_ https://github.com/processing/processing4/issues/719
_ may be a p5jsMode issue, though ahrd to say
_ sketchbook entries that use local.properties not getting picked up in sketchbook window
_ should Python Mode rely on Java Mode?
_ this would let us put ExportPrompt back in there
_ also add parts of JavaBuild that handle packaging exported apps
_ change the welcome screen to be wide instead of vertical
_ exporting application while still running on Windows
_ just says "Error during export" rather than something more useful about deleting dir
manager
_ if contrib (library only?) folder name changes on update, old lib not removed
_ Updates requiring a reboot give the false impression that they failed (in updates tab)
_ https://github.com/processing/processing4/issues/647
_ lots of folders remaining in 'old' for Modes
_ were these shut off during debug?
_ need to be moving these to trash (maybe only on startup)
_ implement automatic updates?
_ especially with fixes to updates on startup...
manager/design
_ use down arrow for updates, circle arrow for restart?
_ completion mode pop-up not following dark and light mode conventions
_ update console.scrollbar.thumb.rollover.color and console.scrollbar.thumb.pressed.color
_ currently just using .enabled.color because they weren't in ColorSet
_ opening p5jsMode sketch with no local.properties throws an NPE
_ PDE can't find any files that match the supported extensions
_ maybe related: https://github.com/processing/processing4/issues/719
_ export to IntelliJ? how tricky?
_ just copy jars to /lib?
_ point to binaries in /Applications/Processing.app? (no)
known issues
_ mixed mode warning now broken
_ https://github.com/processing/processing4/issues/519
_ tests also turned off in build.xml because this is causing it to fail
_ 'color' in imports shows up as an error in the editor
_ but code still compiles and runs
_ https://github.com/processing/processing4/issues/521
_ need to make it possible to use module jars
_ https://github.com/processing/processing4/issues/522
_ https://github.com/processing/processing4-javafx/issues/15
finalizing a release
_ submit to Microsoft
_ https://www.microsoft.com/en-us/wdsi/filesubmission
_ https://aka.ms/wdsi
_ https://www.microsoft.com/security/oblog/2018/08/16/partnering-with-the-industry-to-minimize-false-positives/
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
priorities/would like to fix soon (but not necessary for 4.0 final)
_ write a local.properties file when there's more than one file in the sketch
_ this will fix the majority of cases where sketch name is accidentally detached
_ for single .pde sketches, it's not a problem because it will find the file
_ but for multiple files, it needs to identify the main
_ pass through the source to update licenses
_ add Processing Foundation as 2012-15
_ update license info to state gplv2 not v3
_ run through that online license checker
_ add warnings to the old wiki pages with links to the newer versions
o change the license from GPL
_ make notes about the decision in the FAQ
_ Remove “Disable HiDPI Scaling” preference on Windows?
_ document it in the troubleshooting doc, ask people to report
_ put it into the Preferences page?
_ adding a file to an untitled sketch should require a save
_ editor breakpoints out of the .pde files
_ really a drag for version control
_ https://github.com/processing/processing/issues/5848
_ or at least avoid the multiple
_ https://github.com/processing/processing4/issues/330
_ Cannot type quotes with an international keyboard on MacOS
_ fixed by turning on "Enable complex text input"
_ https://github.com/processing/processing4/issues/322
_ loadShape(), show a warning when using style instead of presentation attributes
_ apt package for easier rpi install (especially)
_ show relative Library/Mode/Tool usage/popularity in the manager
_ Open Sketch Folder not working on Linux with java.awt.Desktop quirks
_ make the call on the launcher setting for Linux
_ https://github.com/processing/processing4/issues/247
_ Find in Reference disabled for various keywords (draw, for, if, catch, while)
_ https://github.com/processing/processing/issues/5562
X https://github.com/processing/processing/pull/5642 (closed)
_ ui scaling in the PDE is important for classes/seeing at a distance
_ some interface zoom now conflicting with the Java 9+ defaults
_ things look terrible (tiny fonts) on Windows, adjusting has weird effects
_ resolve in DefaultPlatform and Toolkit, disable ui in PreferencesFrame
_ proxy trouble with p5? since adding the system proxy?
_ this can be a problem in school environments (where proxies show up)
_ really difficult to test, however, without a proxy setup
_ https://github.com/processing/processing/pull/3251/files
_ larger problem thread https://github.com/processing/processing/issues/3891
_ ideen2011.blogspot.de/2011/08/java-proxyselector-usesystemproxies-and.html
_ malformed proxy issues http://stackoverflow.com/q/376101
_ docs.oracle.com/javase/7/docs/api/java/net/doc-files/net-properties.html
_ https://github.com/processing/processing/issues/1476#issuecomment-23229990
_ https://github.com/processing/processing4/wiki/Preferences#proxies
_ proxies don't support authentication
_ https://github.com/processing/processing4/issues/644
organize this mess
_ implement support for Java “modules” and clean up JavaFX-specific workarounds
_ https://github.com/processing/processing4/issues/212
_ modules and classpath ugh https://stackoverflow.com/a/46289257
_ also the Crusty2D renderer for use with macOS hack stuff
_ actually need separate alpha/1.5/2.x versions of this
_ errors inside setup() aren't coming through at all?
_ seen in Eclipse; have to turn on the debugger... same as #4703?
_ mode list does not update after changing sketchbook folder
_ already reported?
_ make "Could not get the settings folder" message more helpful
_ https://github.com/processing/processing/issues/5744
_ need to check the locations it'd be writing to, and see if available
_ then tell the user which folder to fix
_ already fairly close, the problem is that they get a "report this" dialog box
_ but the useful information is in the actual exception message
_ import suggestions box needs design review
_ https://github.com/processing/processing/issues/3407
_ show compiling/startup animation after clicking run
_ or maybe show an animation for starting up
_ rather than post-compile
_ https://github.com/processing/processing/issues/136
_ save() and saveAs() need to be refactored
_ https://github.com/processing/processing/issues/3843
_ move Library to LibraryContribution and into contrib?
_ improve error message when creating a tab with the same name
_ right now it's generic, based on "a file exists"
_ don't allow users to create 'blah.java' when 'blah.pde' already in sketch
_ detect changes in case with libraries
_ https://github.com/processing/processing/issues/4507
_ modes are being loaded multiple times, which can cause trouble
_ jeditsyntax is a mess of old-style getModifiers()
_ would like to switch this over, but needs to be tested a lot
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
PDE - Processing Development Environment
PDE / Dialogs
_ option to suppress warning dialogs
_ starting with the one about modifying the sketch name for spaces
_ also the "some features will be disabled" with .java tabs
_ https://github.com/processing/processing/issues/46
_ add "don't warn me about this" for sketch renaming
_ make sure renamed version doesn't exist already
_ prompt user before nuking applet or application folders
_ along with a "don't ask me later"
PDE / Compiler & Preprocessor
medium (bugs/features)
_ preprocessor throws error when calling color() on a PGraphics
_ https://github.com/processing/processing/issues/3762
_ omitting a semicolon shows the error on the line after it
_ npe if library is removed before compile
_ always check library folders to make sure they're still valid
_ with additional .pde files, don't allow static mode in front tab
_ e.g. no setup()/draw() block
_ don't allow "for (blah; blah; blah) ;"
_ or if (blah blah blah) ;
_ it's never useful. students can use { } if they want an empty block
low (features)
_ copy running code from /tmp/buildXXxxx on crash of p5
_ should probably make a way to save/recover code
_ make the buildXxxx folders relate to time/date?
_ link out to further documentation (e.g. AIOOBE, NPE)
low (common errors around reserved names/class naming)
_ Saving sketch with the same name as a class or primitive breaks sketch
_ https://github.com/processing/processing/issues/196
_ don't allow people to override methods like paint()
_ make them final? just improve the error messages?
_ https://github.com/processing/processing/issues/1058
_ Processing chokes if a sketch defines a class with same name as the sketch
_ https://github.com/processing/processing/issues/196
_ don't allow goofy case versions of reserved words
_ keypressed should maybe throw an error
_ https://github.com/processing/processing/issues/44
_ "unexpected token" on anonymous instance of parameterized Comparator
_ https://github.com/processing/processing/issues/533
PDE / Editor
_ 'recent' menu paths can get enormous
_ active editor not being set null
_ in Base.nextEditorLocation(), changed to "editors.size() == 0"
_ instead of (activeEditor == null), but that's papering over a problem
_ where the active editor is not being set null
_ renaming RGB (.pde) to Rgb.java says "a file named RGB.pde already exists"
_ improve update check message "a new release (1.0.1) is available"
_ be more descriptive, use a second line in latest.txt
_ maybe just include the full text of the update message there?
_ go through other sketch-opening menus to check for disappearing sketches
_ deal with isManagingFocus() warning in the editor src
_ strange NullPointerException problem prevents launch
_ some kind of NPE in handleOpenInternal and friends
_ appears to be a synchronization problem with the loading
_ blank sketch opened even if another opened by double-click
_ add a 150 ms or more lag before opening the untitled window
_ https://github.com/processing/processing/issues/218
_ editors opening up at the same time on load?
_ either synchronize the open (at a minimum)
_ or wait for mac handlers to register an open event
_ can also cause problems with opening multiple copies of same sketch
_ after fixing name of sketch, ensure sketch of that name does not exist
_ add auto-save to the editor
_ https://github.com/processing/processing/issues/131
_ implement better method of showing curly brace closure
_ https://github.com/processing/processing/issues/94
_ setModified() getting called on Windows (probably Linux) for key cmds
PDE / Completion
_ text overlapping in the code completion popup
_ appears to be a bug in the text width calculations in JLabel
_ applyMatrix() sometimes ... and sometimes not
_ apparently "overloaded" methods are show as methodName(...) until selected
_ but the actual behavior seems inconsistent at best
PDE / Editor Toolbar (Buttons)
_ run button issues (unconfirmed)
_ does it unhighlight after compile or runtime errors?
_ also when using draw() instead of loop()
_ applet needs to notify runner that it has terminated
_ check 'finished' via objectreference?
_ EditorToolbar has two TODO items for open menu handling
PDE / Export
_ make possible to embed java for all platforms
_ straightforward to download from adoptium
_ export application ubuntu -> windows not working (2.2.1)
_ https://github.com/processing/processing/issues/2698
_ might be something with libraries (native or otherwise)
_ "error during export" message, but no error message contents come through
_ e.g. https://github.com/processing/processing/issues/4792
PDE / Libraries
_ alternate handling of duplicate library conflicts
_ https://github.com/processing/processing/pull/5126
_ Add a means to specify packages to import in library.properties
_ https://github.com/processing/processing/issues/2134
PDE / Examples
_ examples handling is less than ideal
_ examples not mentioned in warning dialog when installing
_ doesn't show in examples window for p5jsMode
_ the extra "Contributed Examples" subfolder is awkward
_ perhaps more important, examples need to specify their Mode
_ not ideal for Android since there's some crossover, but ok for Example sets
_ otherwise impossible to know how to populate the Examples window
_ several "Could not find a matching .properties file" with clocks pdex
_ examples window is per-Mode, but that doesn't seem helpful
_ just like sketchbook, you can open one from the other
_ or maybe just contribs show everywhere? hrm
_ make sure pdex/pdez files working, also on Windows
_ contrib examples are just too convoluted to double-click
_ folders inside folders, bleh
_ what Mode are they for?
_ pdez links for contribs, not just the .zip
_ fix the code so that the contribs manager will handle it
_ though that's bad for earlier contribs, hrm
_ document pdez and pdex files so that folks can use them
_ load examples from pdez files
_ 250 example (folders), would cut ~8-900 files to just those 250
_ https://github.com/processing/processing/issues/182
_ examples window sketches should load in proper environment
_ test for what happens:
_ if Java Mode is in front, and user double-clicks another Mode's entry
_ write build.xml file to automatically update the examples
_ when adding a new library, its examples aren't added to the list until restart
PDE / Manager (4.x notes)
_ Update All with several entries is really locking things up
_ not clear if it's work being done on the EDT
_ or that all the threads are running immediately (rather than sequentially)
_ probably need to move these into an Executor
_ rip out JProgressBar from StatusPanel/StatusDetail
X show progress in the list instead
_ also make possible to start install by clicking the list
_ if contribution listing is still downloading, need to indicate
_ especially when no previous contribs.txt is in the prefs folder
/ if no internet available, install buttons disabled, but not clear why broken
X update button no longer disabled
_ but still need to indicate internet unavailable on install errors
_ currently no indication that contrib download failed
_ so the 'try again' won't show up; everything looks fine
_ (was this for the contrib listing? or an actual contrib?)
_ also if update check disabled, user isn't notified that contribs unavailable
/ Base.setUpdatesAvailable() is called from half a dozen places!?
X this is now tallyUpdatesAvailable() a
_ how to handle contrib manager download/retry/etc and showing progress
_ entries in the list de-select on install or all the excessive contrib changes
_ (i.e. note how hitting 'Install' actually deselects the entry in the list, ugh)
_ this means we can never clear the status panel
_ need to fix the excessive data model and contribChanged() calls first
_ holy s*t ContributionTableModel is using all of the contribs
_ after failed update of Mode, the button is no longer available
_ have to click something else, then click back on the Mode line again
_ when starting in p5jsMode, contrib manager shows no green checks for libs
_ tricky because those aren't gonna show up in 'Add Library'
_ which is another case for a separate 'contrib manager' thing
_ maybe that's the update button? when no updates, it's still a button?
_ after opening Editor window, Processing freezes until contribs are loaded
_ when opening manager, animation runs briefly then freezes
_ DetailPanel setContribution() being called 4x for each contrib on startup
_ during install of contrib, progress is halting during the install
_ probably too much happening on the EDT that should not be
_ StatusPanel seems to be recreated entirely
_ StatusPanel being reset twice on each click
_ is checking for previous, but apparently that's not working
_ AvailableContribution.install() needs status handler
_ can either be the StatusPanel *or* EditorStatus *or* console (during startup)
_ needs to be EditorStatus when double-clicking a .pdex file
_ this is also why Base.handleOpen() does statusError() calls during pdex load
_ add indicator for the stats of libraries
_ https://download.processing.org/stats
_ add rank for libraries/modes/tools (use unicode chars?)
_ probably not sort by default to avoid confusion
_ lots of rewriting to use SwingWorker
_ https://docs.oracle.com/javase/tutorial/uiswing/concurrency/worker.html
_ obvious places where this needs to happen, but the code is working for now
_ needs a few hours work to untangle all of it, but worth the regressions?
_ get rid of IgnorableException
_ contrib/mode/lib/example List objects in Base
_ which of these should be Set objects?
_ JProgressBar in StatusPanel is shared by all installing contribs
_ which could make for weird behavior if installs before something has finished
_ work to prevent multiple from colliding
_ (i.e. get rid of ContribProgress class)
X disable hashCode() implementation in Contribution
X was getting in the way of comparisons
_ but need to compare the entries differently so there aren't dupes
_ i.e. it was doing a name comparison, so need to swap by name
_ after library/tool changes, rebuild Help > Library/Tool Reference submenus
_ could not write to temporary directory (virus checker problems)
_ https://github.com/processing/processing/issues/4757
PDE / Manager (3.x notes)
_ “could not move the contribution to the backup folder” message while updating
_ problem is that any sketch that uses a library, the lib is stuck as "in use"
_ https://github.com/processing/processing/issues/4973
_ failed Mode updates leaving around tmp folders (that appear to be legit Modes)
_ https://github.com/processing/processing/issues/5424
_ examples window not updating on install
_ open examples window
_ mode > add mode > libraries > install video
_ did not update the examples window, had to restart pde
_ was able to save over the video capture examples b/c they were a library
_ lib examples not properly marked as read-only
_ "Could not find a examples in the downloaded file" is a poorly worded message
_ 'version' should be x.y or x.y.z, not some extra long string
_ enforce this by disallowing spaces? on the import script?
_ Progress bar height on macOS is too thin
_ https://github.com/processing/processing/issues/4734
_ proper error handling when downloading contribs listing
_ https://github.com/processing/processing/issues/4732
_ update CM entries when sketchbook location changes
_ https://github.com/processing/processing/issues/3927
_ ugly white gap at the top of scroll bar
_ the table header doesn't extend far enough
_ scrolling "past" top/bottom causes the screen to jiggle (OS X and Trackpad)
_ looks like ContributionListing.getScrollableUnitIncrement() returns early
_ Examples window closes and re-opens during library install/remove
_ https://github.com/processing/processing/issues/3304
_ several TODO items listed in ContributionPanel
_ ability to cancel a download/install
_ why wasn't Library moved to LibraryContribution?
_ or that LibraryContribution needs to be a wrapper around it?
_ classpath conflicts..
_ getPackageList.. from Library... maybe others?
_ really need to make sure that a weird core.jar isn't being imported
_ coffeescript was doing this and breaking the pde
_ contrib library examples are not read-only
_ another point for doing .zip files to prevent overwriting
_ add BookContribution?
_ will offer to open the contrib manager even though it's already open
_ though this was looking at libraries, and there may have been modes
_ is there an "all" view for the mgr that shows libs, modes, etc?
_ update button only showing up when item is selected feels awkward
_ "update all" would be useful
_ "Update 4 items" as a button name
_ new libraries not picked up when changing sketchbook location
_ make sure contrib manager can run w/o a network connection
_ or if a bad document comes through, it can recover
PDE / Preferences
_ need to do the Mode prefs separately
_ since we can't have per-Mode constants (the pref names) in PreferencesFrame
_ Editor.applyFrame() may not have a valid 'editor' object to work with
_ if windows closed, and prefs altered, NPE thrown
_ make sure editor isn't trying to apply prefs when no editor is open
_ (on mac os x, due to the change for no windows open)
_ clear up prefs so that multiple editors don't trash each other's prefs
_ when are prefs saved? could instead save whenever changes are made
_ and then if the file gets modified, it'll put up an error message
_ also, this may be part of why other sketches aren't reloading properly
_ simple prefs implementation to set key/value pairs using a JTable
_ https://github.com/processing/processing/issues/5425
_ prefs window doesn't swap ok/cancel properly for mac vs. windows/linux
_ don't bother having a "cancel" for the prefs window
_ make prefs dialog modal?
PDE / Runner
_ if RuntimeException thrown, needs to check if it's a wrapped exception
_ for instance, if there's a crash inside makeGraphics()
_ this inside the handling that comes from the JVM, which makes it tricky
_ draw mode apps do not shut off the run button when finished
_ need to talk to VM and read when 'finished' var is set
_ does closing the window call stop()?
_ need to make sure hitting stop button and closing window explicitly call
_ set finished to true, then join() the animation thread
_ dispose handlers not called when stop button pressed
_ https://github.com/processing/processing/issues/4445
_ need to set dock icon title on osx
_ changing number of screens between run causes things to show up off-screen
_ so when running, check to make sure that things are out of the area
PDE / Debug
_ mouse events (i.e. toggle breakpoint) seem to be firing twice
_ wonder if this is mousePressed and mouseClicked?
_ this may also be the cause of the double entries in files
_ fix background color for selected lines in VariableInspector
_ https://github.com/processing/processing/issues/3925
_ deactivate step, continue, stop when not running?
_ disable the debug toggle menu while running
_ otherwise could run in one mode, then try to stop in another
PDE / Multiple Monitors
_ changing modes brings the PDE back on the second screen
_ the Find window (also the save windows) also have the same problem
PDE / Tweak
_ TweakMode listener mess in JavaTextArea
_ https://github.com/processing/processing/issues/4605
PDE / Sketch & Sketchbook
_ Saving sketch with the same name as a class
_ https://github.com/processing/processing/pull/4033
_ fix up the code for sketchbook building
_ is it time to make the internal representation into a tree object
_ and then build the GUI versions separately (on the EDT)
_ Base.checkSketchFolder() is used to identify sketches for the sketchbook frame
_ but it assumes that it's folder name + default extension as the name for it
_ that should be moved into the Mode class as a "is this folder a sketch" call
_ (so that Modes can work differently too)
_ Mode.rebuildLibraryList() called too many times on startup?
_ and when sketches saved as well?
_ makes saving *really* slow with a lot of libraries
_ New/Rename/Save As is reloading the whole sketchbook, argh
_ improve start time by populating sketchbook/libraries on threads
_ https://github.com/processing/processing/issues/2945
_ Large number of files in sketchbook folder can cause slow startup
_ and/or errors with launch4j
_ https://github.com/processing/processing/issues/1190
_ error that sketch is read-only can't be canceled
_ hitting cancel (or ESC?) still brings up the save dialog
_ ArticulatePrint-070103a.pde from ArticulatePrint-070103a loads ok
_ but when opening the sketch, it leaves out the file
_ because there's a dash in the name
_ and instead only loads StemCell.pde
_ show progress dialog during export and save
_ hitting ESC on "create this, move file, continue" opened anyway
PDE / Commander
_ command line complaints
_ https://github.com/processing/processing/issues/6129
_ emacs style errors in commander aren't quite right
_ https://github.com/processing/processing/issues/2158
_ better command line support/basic language server support?
_ make it easier to use with other editors
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
TOOLS / Movie Maker
_ downloader for ffmpeg instead of including in download
_ would save ~20-25 MB in the download
_ should prompt the user before starting the download (not nice to use bandwidth)
_ need to disable creation of movies until the download has finished
_ handle failed downloads as well
_ make sure there are no signing problems on macOS after downloading
TOOLS / Ideas
_ eclipse import/export
_ simple mechanism to export to eclipse
_ don't worry about subversion stuff, just export with libraries
_ something clever to import back from eclipse
_ could keep the .svn files in with the libs and all
_ then when exporting for eclipse, people can update as necessary
_ -> dan et al say better to do fixed versions and have it work simply
_ import sketch from url (takes a zip from archive sketch)
_ archive sketch direct to bug report
_ shared code
_ Integrator / FloatThing / CameraStuff -- Update
_ to pull code from a local folder
_ update will update classes from shared in the current folder
TOOLS / Auto Format
_ Reas: comments go nasty when auto-formatted
_ Switch block cases not indented
_ https://github.com/processing/processing/issues/1042
_ do a better job of maintaining cursor
_ only auto-format a particular section of code
_ set the 'tabs' var based on how many spaces on previous line
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1087227217
LIBRARIES / General
_ need to unpack InvocationTargetException in xxxxxxEvent calls
_ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=VideoCamera;action=display;num=1116850328#3
_ go through libraries and clean things up
protected void finalize() throws Throwable {
try {
close();
} catch (Exception e) {
// do something
} finally {
super.finalize();
// more code can be written here as per need of application
}
}
LIBRARIES / Net
_ modernize Client/Server code to use synchronized lists
_ do we let people use the public vars in Server and Client?
_ are they documented?
MODES / Python 2
X add JavaFX handler
X opening an example throws an NPE
_ update Export to Application to use the new window
_ add changes for the eawt mess? (too tricky)
_ https://github.com/jdf/processing.py/issues/398
_ submit a PR
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
DIST
How the environment gets packed up, downloaded, and installed.
DIST / General
_ when lib downloads (batik) go dead, fallback to download.processing.org
_ or for now, tell users how to do it manually
_ batik and ant have both broken the build when old versions were removed
_ move processing-java inside the Java Mode?
_ make a Tool that installs it for all platforms, not just OS X
_ not really part of the 'build' anymore
_ line ending issues
_ doesn't really help on Windows since we use Cygwin
_ but it would be helpful for people not using it (ant/other LF issues)
_ https://help.github.com/articles/dealing-with-line-endings
_ http://stackoverflow.com/questions/170961/whats-the-best-crlf-handling-strategy-with-git
_ add means to move changes from desktop to Android (and vice-versa)
_ add bootclasspath for 1.6
_ would require --install for command line on OS X
_ and unpacking the JVM earlier in the build process
_ not sure if it's worth the addl complexity
_ add additional caveats about incompletion to javadoc
_ drag and drop
_ including the number of items added to sketch would be especially nice
_ implement automatic update
_ https://github.com/processing/processing/issues/100
_ need exported application icons
_ need more comprehensive list of 'known bugs'
_ need more comprehensive list of 'known suggestions'
_ write notes about running p5 on another platforms
_ this was some feedback from running on bsd:
_ /usr/local/jdk1.3.1/bin/java -cp lib:lib/build:lib/pde.jar:lib/kjc.jar:lib/oro.jar:java/lib/ext/comm.jar PdeBase
_ need to use the 1.3 vm, and get a fake platform name
_ otherwise, goes looking for lib/pde_.properties or something
_ about box
_ bring up information about gpl, lgpl, and ibmpl
_ jedit syntax is under mit license
_ http://www.opensource.org/licenses/mit-license.php
_ add proper copyright and license information for all included projects
_ https://github.com/processing/processing/issues/224
_ write up guidelines for modes
_ i.e. don't mess with Sketch menu, put it in the mode menu
_ p5 assets need to be licensed differently from the source
DIST / Windows
_ Resolve “Successfully created” and “illegal reflective access” errors from launch4j
_ https://github.com/processing/processing4/issues/137
_ windows batch file would be a good idea (debugging is hard)
_ how to leave the window open when running a script
_ if files removed by Defender, the launcher may not know
_ would be good to auto-generate this from the config (avoid double updates)
_ .\java\bin\java.exe -cp lib/pde.jar;core/library/core.jar;lib/jna.jar;lib/jna-platform.jar;lib/antlr-4.7.2-complete.jar;lib/ant.jar;lib/ant-launcher.jar -Djna.nosys=true -Dsun.java2d.uiScale.enabled=false -Djna.boot.library.path=lib -Djna.nounpack=true -Dsun.java2d.d3d=false -Dsun.java2d.ddoffscreen=false -Dsun.java2d.noddraw=true processing.app.Base
_ "Required files could not be found" when trying to run from the .zip file
_ https://github.com/processing/processing/issues/5022
_ use an installer instead?
_ does launching p5 from inside the .zip folder cause it to quit immediately?
_ how can we provide an error message here?
_ extra warning for Eclipse Adoptium "certain features turned off"
_ need a better way to handle this/warn users/avoid it altogether
_ launch4j doesn't work from folders with non-native charsets
_ anything in CP1252 on an English Windows system is fine
_ but anything else reports "font sadness" b/c it's using the system JRE
_ https://github.com/processing/processing/issues/3543
_ move to javapackager or another option?
_ http://www.excelsiorjet.com/kb/35/howto-create-a-single-exe-from-your-java-application
_ Export Application fails on machines w/ non-ASCII chars in user name
_ at least give a warning about this?
_ https://github.com/processing/processing/issues/4736
_ related: https://github.com/processing/processing/issues/3543
_ windows anti-malware leaves browser stuck at 100%
_ https://github.com/processing/processing/issues/5893
_ sign releases on Windows to avoid SmartScreen warnings/errors
_ https://github.com/processing/processing4/issues/25
_ https://stackoverflow.com/q/252226
_ https://cheapsslsecurity.com/sslproducts/codesigningcertificate.html
_ https://stackoverflow.com/a/66582477
_ https://www.microsoft.com/security/
blog/2018/08/16/partnering-with-the-industry-to-minimize-false-positives/
_ https://shop.certum.eu/open-source-code-signing-code.html
_ how to handle double-clicked files on windows?
_ big deal for psk and others
_ this may already work with SingleInstance stuff
DIST / macOS
appbundler
_ appbundler broken when built on something later than Mojave
_ https://github.com/processing/processing4/issues/284
_ https://github.com/google/filament/pull/1959/files
_ also need separate appbundler versions because Monterey build won't run on x86_64
_ https://github.com/processing/processing4/issues/364
_ fix appbundler problems due to rollback
_ https://github.com/processing/processing/issues/3790
_ the rollback re-introduces two bugs (serial export and scrolling)
_ and any other changes later than 16 November 2014:
_ https://github.com/processing/processing/commits/master/build/macosx/appbundler.jar
_ https://github.com/processing/processing/commits/master/build/macosx/appbundler/native/main.m
_ https://github.com/processing/processing/commit/fa27b983e76fdbc5c4c1451a1f0d854c652b1639
_ https://bitbucket.org/infinitekind/appbundler
_ update appbundler? https://github.com/TheInfiniteKind/appbundler
_ might be broken though https://github.com/TheInfiniteKind/appbundler/issues/70
_ symlink https://github.com/TheInfiniteKind/appbundler/issues/1
_ startup chatter (from appbundler?)
_ Processing[25059:13082813] int launch(char *, int, char **) Launchpath
_ Find a long-term solution for OS X bundler to address signing/symlink issues
_ https://github.com/processing/processing/issues/2967
_ don't re-copy JRE into work folder if already exists
other
_ Opening a sketch from the Desktop folder can result in several macOS access prompts
_ https://github.com/processing/processing4/issues/523
_ if a sketch is in the Desktop folder, try triggering macos access dialog once
_ do it once for the root, then see if it allows the folders inside as well
_ (opening p5jsMode sketch on Desktop causes a zillion dialog boxes)
_ https://developer.apple.com/library/archive/documentation/Security/Conceptual/AppSandboxDesignGuide/DesigningYourSandbox/DesigningYourSandbox.html
_ https://stackoverflow.com/questions/12153504/accessing-the-desktop-in-a-sandboxed-app
_ reliable getLibraryFolder() and getDocumentsFolder() methods in MacPlatform
_ https://github.com/processing/processing4/issues/9
_ disable "notifications" prompt on startup for macOS
_ https://github.com/processing/processing4/issues/234
_ we're not posting any, can we suppress the "allow notifications" message?
_ https://developer.apple.com/documentation/usernotifications
_ https://developer.apple.com/documentation/usernotifications/asking_permission_to_use_notifications
_ Java bug prevents us from setting the dock name of a sketch run from the PDE
_ https://github.com/processing/processing/issues/5045
_ client properties
_ https://developer.apple.com/library/mac/technotes/tn2007/tn2196.html
_ built-in images: http://nadeausoftware.com/articles/2008/12/mac_java_tip_how_access_mac_specific_nsimage_icons
_ Update QuickLook plugin for Processing 3
_ https://github.com/processing/processing/issues/3261
_ more OS X-specific hackery for improved appearance
_ https://developer.apple.com/library/mac/technotes/tn2007/tn2196.html
_ possible better option for doing retina?
_ g.getFontRenderContext().getTransform().equals(AffineTransform.getScaleInstance(2.0, 2.0))
_ LWJGL forum discussion
_ http://lwjgl.org/forum/index.php/topic,4711.225.html
_ change cmd line for OS X to use symlink?
_ otherwise updates are going to require reinstall..
_ or that it's gonna need to parse and say "update command line?"
_ we're breaking some mac human interface guidelines
_ should be using a menu factory to create menubar for all sub-windows
_ http://developer.apple.com/technotes/tn/tn2042.html
_ and the general warning dialogs are just ass ugly
_ (i.e. we really need those replacements for JOptionPane)
_ Exiting a sketch with Command-Q or File > Quit doesn't call stop() on OS X
_ https://github.com/processing/processing/issues/186
DIST / Linux
_ implement more document icons on Linux
_ Need better method than reflection for setting application name
_ https://github.com/processing/processing4/issues/349
_ update install.sh for .pdex and .pdez file associations
_ https://github.com/processing/processing4/issues/239
_ update installation guide for Linux
_ https://github.com/processing/processing-docs/issues/645
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
DOC / Misc
_ thread safety with color() et al
_ https://github.com/processing/processing4/issues/431#issuecomment-1057979636
_ thread safety for drawing functions in general
_ words on how key/mouse events are queued to the end of draw so they're safe
_ make reference build process part of dist
_ https://github.com/processing/processing-docs/issues/85
_ separate ant target, but only require them for dist
_ as separate targets, folks can build explicitly if they'd like
_ processing-docs/java_generate/ReferenceGenerator/processingrefBuild.sh
_ find in reference for copy() (on image) tries to open PVector.copy()
_ might need disambiguation pages?
_ if a reference page is missing, throws a bunch of exceptions
_ i.e. PVector.copy() not in the reference
_ yahoo search example is out of date (included in the examples? the book?)
_ stop() to shut down a sketch (but not quit/close window)
_ actually pause/resume
_ MIN_FLOAT, MAX_FLOAT, also the difference from the Java functions
_ also MIN_INT and MAX_INT, even though those are more similar
_ update the reference to cover parseXxxx() stuff
_ also add notes about parseInt/Float(blah, otherwise)
_ also parseInt and parseFloat, how they can return another number or NaN
_ should the default be NaN or 0?
_ get/set are faster way draw screen space images, but no tint, no translations
_ make sure the docs include "beginShape() cannot be nested"
_ also add error messages to the renderers
_ also note that ellipse() et al use beginShape()
_ and that java2d should complain if people try it
_ method to go from function name to the included examples where used?
_ encourage use of set() instead of point() in the drawing api
_ https://forum.processing.org/beta/num_1114204116.html
_ noLoop() isn't the same as "finished", though it's sometimes used that way
_ to finish, use exit() (though that will make the window close)
_ add this to ref once halt() is finished
_ errors in pdf/index.html examples
_ probably remove these, move the useful ones to the examples folder
_ that way people will read the reference
_ explanation of how we see libraries in the PDE
_ We're making an assumption that the idea of a "library" refers to a block of Java-based code. The reasoning is that from within the PDE, we anticipate that it will be Java-compatible versions of other languages (such as Jython, JRuby, or Scala) as opposed to more generic languages. In the future we could open this up, but we'd rather not complicate things for the moment.
_ add to troubleshooting
_ problem with big floats: https://forum.processing.org/alpha/board_Syntax_action_display_num_1061302380.html
_ problem with small floats: https://forum.processing.org/beta/num_1115500448.html
_ console stored in prefs location
_ console may be useful for debugging
DOC / Text
_ how to use textMode(SHAPE) with opengl
_ things will be extremely slow (fix later)
_ things will also be very ugly on-screen
_ text being nicer in java2d
_ use createFont() to load the font or use a font from your machine
_ note that createFont() is no good for applets/export to web
_ textMode(SCREEN) for P2D and P3D for nice fast text in screen space
_ currently slow in JAVA2D and OPENGL, but this will improve
_ what is the vlw font file format?
_ shapes from 3D type
_ the way to do it (will improve later) is to use some undocumented features
_ 1) you have to use the OPENGL renderer
_ 2) use textMode(SHAPE);
_ 3) use createFont() (which you already are)
_ this will convert all the shape data from the fonts for writing.
_ it will be *extremely* slow, which is part of why it's not documented yet.
_ but it will work with beginRaw().
_ improve documentation of the pdf stuff
_ be clearer about the font setup stuff
_ fonts by default not working that well?
DOC / Other
_ why strong typing? (link also to language thing on main page)
_ we cannot commit to any sort of timeframe on releases
_ under the hood - basic
_ it's all java
_ don't use awt
_ most things are imported by default
_ under the hood - complex
_ how to get started with coding
_ everything subclasses PApplet
_ if you need a particular name, add it with "extends PApplet"
_ all code from tabs is joined to one sketch
_ if you want it separate, then you have to make .java files
_ in doing so, you'll lose access to 'g'
_ add main() to your app to make it run on its own
_ preproc stuff.. have to make setup() into public void setup()
_ (same for key events and all that)
_ is there a way to do xxx?
_ advanced users who are outgrowing the basic reference:
_ be sure to check the "complete" reference
_ change bugs.html to issues.html
_ and add a redirect in httpd.conf
_ need to document how subclass of pgraphics works
_ what are the necessary bits that need to be subclassed
_ simple handling of colors, what fields are available
_ how to get the matrices
_ simple endshape handler
_ also mention in keyPressed docs that ASCII key codes will not be coded
_ it's just how java is (maybe this is already in there?)
_ add note about adding libraries to the sketchbook to the reference
_ add note in environment reference about how to add something to the sketch
_ (code, .java files, etc)
_ make sure that psound has been removed (from docs, ref, mentions)
DOC / Examples
_ add to key reference a pointer to an example that tracks all keys
_ write simple example that tracks all keys
_ making things fast with pixel operations
_ write a threading example
_ show an example of how to handle callback into the app
X or handle this some more intelligent way, super.stop() is needed.
X registerDispose() does the trick
_ https://forum.processing.org/alpha/board_Syntax_action_display_num_1083574943.html
_ https://forum.processing.org/alpha/board_Syntax_action_display_num_1067383998.html
_ scripts: how to make a long setup() sleep so that things don't lock way up
_ write an example that uses HashMap (or Hashtable)
_ write an example that uses ArrayList properly
_ get xml library example in there
_ simple method for having a clickable region or sprite with rollover
_ POST to web url example
_ particularly for uploading image data
_ along with php script to handle receive
_ this is in hacks, but
_ (broken link) http://processing.org/discourse/yabb_beta/YaBB.cgi?board=VideoCamera;action=display;num=1117194066#7
_ write a timer class/example library
_ how do i add gui to a sketch?
_ don't use awt components
_ how to use swing and embed components inside p5
_ explain how to integrate code with swing
_ use a separate environment, call init(), use noLoop(), redraw()
_ use JPopupMenu.setDefaultLightWeightPopupEnabled(false); for zorder
_ https://forum.processing.org/beta/num_1147670059.html
_ eclipse
_ document how to properly integrate with eclipse
_ add runtime args to opengl library so that it sets path properly
_ add explanation for using subclipse to get p5
_ make a src folder, data folder location
_ export to eclipse
_ how to do this with subclipse instructions?
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
FUTURE
Notes for some indefinite later release...
_ force indentation - implement an option for beginners especially
_ indents and loops
_ or make the area light up gray as it's being worked on
_ language server refactoring
_ https://github.com/processing/processing4/issues/117
_ https://theia-ide.org/
_ https://medium.com/ballerina-techblog/implementing-a-language-server-how-hard-can-it-be-part-2-fa65a741aa23