-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathchangelog
156 lines (113 loc) · 8.58 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
Things to install:
- mod_h264 for Apache2: https://wiki.paskvil.com/index.php/Install_Apache_and_PHP_to_do_Secure_h264_Pseudo_Streaming
- ssh2 for PHP: https://www.allsupported.com/install-php5-ssh2-on-ubuntu-14/
- doxygen 1.8.6 (used to auto-generate the documentation for the Duckieboard)
Things to talk about in the documentation:
- how to retrieve package-specific images
- installed in packages/*/images
- accessed via HOSTNAME/image.php?package=<s>&image=<s>
- how to retrieve package-specific CSS files
- installed in packages/*/css
- accessed via HOSTNAME/css.php?package=<s>&stylesheet=<s>
- how to retrieve package-specific JS files
- installed in packages/*/js
- accessed via HOSTNAME/js.php?package=<s>&script=<s>
Things to add later in the development:
[ ] - v2.0
[ ] - switch to Bootstrap 4.X
[ ] - replace JSON with ProtoBuf
[ ] - v1.1
[ ] - allow the specification of auxiliary libraries to load for specific pages in the page metadata file
[ ] - make jquery-ui.{css, js} available as auxiliary library and remove it from the duckietown package
[ ] - v1.0
[X] - package configurations are now implemented using DBs
[X] - enable/disable pages is now implemented using DBs
[X] - enable/disable packages is now implemented using DBs
[ ] - clean up the code
[ ] - finish documentation for \system\classes\
[X] - add setup page for \compose\
[X] - add setup pages for newly installed packages
[ ] - add support for package-specific configurable parameters in URL-rewrite rules (e.g., $(param docs_dir))
[ ] - when an admin is logged in, query github and get the versions of all the packages that are compatible with the current version of \compose\
[ ] - define somehow pkg <-> compose compatibility maps
[ ] - Implement Core::sendEmail
[ ] - Core now checks the package dependencies of each package installed and disables it if at least one of the dependencies is not satisfied
[ ] - Add \compose\ and packages version tracking using the recently forked repo Git.php (https://github.com/afdaniele/Git.php)
[ ] - Add cronjob management support (either natively or via package), useful NOTES: (https://stackoverflow.com/a/23617628, Use the following command template `#1 #2 #3 #4 #5 _COMPOSE_META_="<json_string_here>" <your_command>; php <custom_compose_logpoint> "<JOB_SHA>"` )
[ ] - The ENV argument _COMPOSE_META_ contains the key `JOB_SHA` which is computed as the SHA (md5?) of the string "#1 #2 #3 #4 #5 <your_command>". Hopefully this will identify the command uniquely
[ ] - Add page to `http://compose.afdaniele.com` that helps creating configuration files for pages, packages, configurations metadata and API endpoint descriptions. Some sort of interactive way of adding fields (type, description, etc.) and then compile into JSON
[ ] - v0.9
[ ] - we moved the dependencies to the assets-store index, no need to contact github multiple times in `package-store/install`
[X] - no need to modify the file /system/config/configuration.php after installing \compose\
[X] - updated CSS checkbox switch
[X] - Update the API Documentation so that it shows whether an API action is accessible via web/app
[ ] - Update the API Documentation so that we explain the difference between the two authentication modes (web VS app)
[X] - It is now possible to update the status of a user
[X] - implemented error collection and `Debug` page with shortcut to a GitHub New Issue page
[X] - add API Keys to user profile
[X] - implement multi API keys per user with per key enabled API actions
[X] - the RestfulAPI is now managed by the class \system\classes\RestfulAPI.
[X] - update api page
[X] - update api settings page
[X] - update api settings actions
[X] - update api executors
[X] - update web-api index file
[X] - add cache system
[X] - cache Core::$packages
[X] - cache Core::$pages
[X] - cache Core::$api
[X] - cache Core::$settings
[X] - implement maintenance mode
[X] - all the pages will be redirected to maintenance
[X] - implement package-specific data
[X] - public data goes in /data/public
[X] - usually stores things that will come with the package and do not change over time
[X] - automatically create a symlink from /system/packages/<package_name>/data/public/ to /data/<package_name>/
[X] - private data goes in /data/private
[X] - usually stores temporary things. It is also used by the class Database
[X] - /data/public and /data/private do not need to be part of the package repo
[X] - added a list of reserved page names in Core::$RESERVED_PAGES
[ ] - updated the documentation
[X] - since $BASE_URL/data/ is now reserved to packages' public data, create a fake page `data` saying that the file was not found, the .htaccess file will activate the page only when the file does not exist
[X] - add the Google Sign-In API client ID to the list of configurable parameters for the core package
[ ] - return error when trying to enable a page that belongs to a disabled package. Right now it says it succeeded but the status does not change
[ ] - add a fake HTML page to the main level of the repo that tells the user to re-check the DocumentRoot and append /public_html/ to it.
[X] - rewrite the user management by using the new interface Database. User entries will be keys in the database core/users.
[X] - update the documentation so that the position for user entries is updated. It was in system/users before. Make sure it is not reported anywhere.
[X] - implement Database interface to JSON files in package_name/data/private/ directory
[ ] - write documentation about this interface in showdown
[ ] - add the class Database to the doxygen project
[X] - removed old users dir /system/users. Users are now stored in /system/packages/core/data/private/users/
[X] - code refactored so that supported string types and their regex(es) are available from \system\classes\enum\StringType
[X] - objects and string formatting is now handled by the class \system\classes\Formatter
[X] - added support for Docker with docker files in the directory \docker
[X] - implement BlockRenderer abstract class for mission control grids
[ ] - write documentation about this in showdown
[ ] - add the class BlockRenderer to the doxygen project
[X] - implement MissionControl grids class
[ ] - write documentation about this in showdown
[ ] - add the class MissionControl to the doxygen project
[X] - fix bug with guest not being redirected to default page but always to login
[X] - it is possible to choose the default page for each user role in the settings menu
[X] - v0.8
[X] - [core > settings] page
[X] - enable/disable API end-points does reload the page but the user will be taken to the previous spot
[X] - refreshing page does not take the user back to General but to the previous tab
[X] - change the way the package configuration files are handled
[X] - if configuration metadata is empty, then the package is considered not configurable
[X] - configuration.json will not be in the repo anymore, it will only be present in deploy
[X] - configuration.json, if not present, will be created while loading the configuration of the packages and will contain a copy of the default values from the metadata file
[X] - configuration.json will be ignored in the main .gitignore of any package repository
[X] - configuration.json will be unstaged from
[X] - \compose\ core package
[X] - duckietown package
[X] - surveillance package
[X] - server package
[X] - doxygen package
[X] - fixed logo dimension in navbar
[X] - the platform supports white and black logos
[X] - add utility function Core::getImageURL
[X] - v0.7
[X] - first release
[X] - move doxygen documentation to a package
[X] - fix responsiveness of the navbar, $responsive_min_width should be computed based on the number of responsive menu entries