New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Scripts versioning #99
Comments
"ideal" solution would be to only change timestamp when first component is updated, complex because last component is calculated on build time and you need the last build to be able to read the last component (timestamp) you built time ago another shoulution would be to not inject timestamp, or to do it only on test versions |
Exactly. |
I'll add that we need to reduce the number of dots to the version number. Some userscripts managers report an error
|
I like this solution. And I need to remove point between date and time. |
So I propose to remove |
But there is another option: what if 'datetime' would be not just 'build time', but actual timestamp of every file? Bonus: it let us to (re)build only actually changed files. ingress-intel-total-conversion/build.py Lines 174 to 176 in d77562b
|
One reason where the @@datetimeversion@@ could make sense is the following use case. Some code in the @@PLUGINEND@@ or @@PLUGINSTART@@ is changed the script itself is a newer version. In This case you need to bump the version of each script manually, otherwise the script itself won't be updated and the new code in the start and endsection wouldn't be changed. One other way could be to change from @@datetimeversion@@ to something like the revison number. |
…mber We do not specify the type of build, so the time is specified including for releases. But I do not think this is bad. #99
There is not so simple with #135, but anyway I think that it would be better just to get rid of
May be we can keep |
Agreed. That's how semantic versioning works, and I think you should stick with this too. |
So I propose to remove timestamp component from release build. Also I propose to remove garbage like this: |
Refactor build system into several modules: - `settings.py`: to provide common settings (from `buildsettings.py` / `localbuildsettings.py`) - `build_plugin.py`: to build single plugin formats userscript metablock, preprocesses sources - makes templates substitutions, inlines dependencies js/css/img - and wraps into wrapper (from `pluginwrapper.py`) - `build_mobile.py`: to build android apk (embedding scripts from given directory) - `build.py`: to build all: main IITC script, all plugins, and (optionally) Android apk. Each module can be used independently as cli utility. Escape macros in code in order to keep js-validity, fix IITC-CE#50. Simplify userscripts source template, completely get rid of these ugly substitutions: - `@@metainfo@@` - `@@PLUGINSTART@@` - `@@PLUGINEND@@` - `.@@DATETIMEVERSION@@` - `[@@Buildname@@-@@BUILDDATE@@]` Rename plugin sources: `*.user.js` -> `*.js` Close IITC-CE#150: use template from settings instead of url harcoding. Close IITC-CE#99: remove timestamp component from `version` of Release scripts.
Refactor build system into several modules: - `settings.py`: to provide common settings (from `buildsettings.py` / `localbuildsettings.py`) - `build_plugin.py`: to build single plugin formats userscript metablock, preprocesses sources - makes templates substitutions, inlines dependencies js/css/img - and wraps into wrapper (from `pluginwrapper.py`) - `build_mobile.py`: to build android apk (embedding scripts from given directory) - `build.py`: to build all: main IITC script, all plugins, and (optionally) Android apk. Each module can be used independently as cli utility. Escape macros in code in order to keep js-validity, fix IITC-CE#50. Simplify userscripts source template, completely get rid of these ugly substitutions: - `@@metainfo@@` - `@@PLUGINSTART@@` - `@@PLUGINEND@@` - `.@@DATETIMEVERSION@@` - `[@@Buildname@@-@@BUILDDATE@@]` Rename plugin sources: `*.user.js` -> `*.js` Close IITC-CE#150: use template from settings instead of url harcoding. Close IITC-CE#99: remove timestamp component from `version` of Release scripts.
Refactor build system into several modules: - `settings.py`: to provide common settings (from `buildsettings.py` / `localbuildsettings.py`) - `build_plugin.py`: to build single plugin formats userscript metablock, preprocesses sources - makes templates substitutions, inlines dependencies js/css/img - and wraps into wrapper (from `pluginwrapper.py`) - `build_mobile.py`: to build android apk (embedding scripts from given directory) - `build.py`: to build all: main IITC script, all plugins, and (optionally) Android apk. Each module can be used independently as cli utility. Escape macros in code in order to keep js-validity, fix IITC-CE#50. Simplify userscripts source template, completely get rid of these ugly substitutions: - `@@metainfo@@` - `@@PLUGINSTART@@` - `@@PLUGINEND@@` - `.@@DATETIMEVERSION@@` - `[@@Buildname@@-@@BUILDDATE@@]` Rename plugin sources: `*.user.js` -> `*.js` Close IITC-CE#150: use template from settings instead of url harcoding. Close IITC-CE#99: remove timestamp component from `version` of Release scripts.
Refactor build system into several modules: - `settings.py`: to provide common settings (from `buildsettings.py` / `localbuildsettings.py`) - `build_plugin.py`: to build single plugin formats userscript metablock, preprocesses sources - makes templates substitutions, inlines dependencies js/css/img - and wraps into wrapper (from `pluginwrapper.py`) - `build_mobile.py`: to build android apk (embedding scripts from given directory) - `build.py`: to build all: main IITC script, all plugins, and (optionally) Android apk. Each module can be used independently as cli utility. Escape macros in code in order to keep js-validity, fix IITC-CE#50. Simplify userscripts source template, completely get rid of these ugly substitutions: - `@@metainfo@@` - `@@PLUGINSTART@@` - `@@PLUGINEND@@` - `.@@DATETIMEVERSION@@` - `[@@Buildname@@-@@BUILDDATE@@]` Rename plugin sources: `*.user.js` -> `*.js` Close IITC-CE#150: use template from settings instead of url harcoding. Close IITC-CE#99: remove timestamp component from `version` of Release scripts.
Refactor build system into several modules: - `settings.py`: to provide common settings (from `buildsettings.py` / `localbuildsettings.py`) - `build_plugin.py`: to build single plugin formats userscript metablock, preprocesses sources - makes templates substitutions, inlines dependencies js/css/img - and wraps into wrapper (from `pluginwrapper.py`) - `build_mobile.py`: to build android apk (embedding scripts from given directory) - `build.py`: to build all: main IITC script, all plugins, and (optionally) Android apk. Each module can be used independently as cli utility. Escape macros in code in order to keep js-validity, fix IITC-CE#50. Simplify userscripts source template, completely get rid of these ugly substitutions: - `@@metainfo@@` - `@@PLUGINSTART@@` - `@@PLUGINEND@@` - `.@@DATETIMEVERSION@@` - `[@@Buildname@@-@@BUILDDATE@@]` Rename plugin sources: `*.user.js` -> `*.js` Close IITC-CE#150: use template from settings instead of url harcoding. Close IITC-CE#99: remove timestamp component from `version` of Release scripts.
Refactor build system into several modules: - `settings.py`: to provide common settings (from `buildsettings.py` / `localbuildsettings.py`) - `build_plugin.py`: to build single plugin formats userscript metablock, preprocesses sources - makes templates substitutions, inlines dependencies js/css/img - and wraps into wrapper (from `pluginwrapper.py`) - `pluginwrapper_noinject.py` - alternative wrapper, useful for debugging scripts. Sample usage in `buildsettings.py`, for build name 'tmdev'. - `build_mobile.py`: to build android apk (embedding scripts from given directory) - `build.py`: to build all: main IITC script, all plugins, and (optionally) Android apk. - `--watch` mode (auto-rebuild on sources changes) Each module can be used independently as cli utility. Escape macros in code in order to keep js-validity, fix IITC-CE#50. Simplify userscripts source template, completely get rid of these ugly substitutions: - `@@metainfo@@` - `@@PLUGINSTART@@` - `@@PLUGINEND@@` - `.@@DATETIMEVERSION@@` - `[@@Buildname@@-@@BUILDDATE@@]` Close IITC-CE#150: use template from settings instead of url harcoding. Close IITC-CE#99: remove timestamp component from `version` of Release scripts. Rename plugin sources: `*.user.js` -> `*.js` Additional dev utilities: - `web_meta_gen.py` to generate meta.json for IITC-Button. Can be used as standalone cli, or as part of build process. - `web_server_local.py` to start local webserver for specified build name.
Refactor build system into several modules: - `settings.py`: to provide common settings (from `buildsettings.py` / `localbuildsettings.py`) - `build_plugin.py`: to build single plugin formats userscript metablock, preprocesses sources - makes templates substitutions, inlines dependencies js/css/img - and wraps into wrapper (from `pluginwrapper.py`) - `pluginwrapper_noinject.py` - alternative wrapper, useful for debugging scripts. Sample usage in `buildsettings.py`, for build name 'tmdev'. - `build_mobile.py`: to build android apk (embedding scripts from given directory) - `build.py`: to build all: main IITC script, all plugins, and (optionally) Android apk. - `--watch` mode (auto-rebuild on sources changes) Each module can be used independently as cli utility. Escape macros in code in order to keep js-validity, fix IITC-CE#50. Simplify userscripts source template, completely get rid of these ugly substitutions: - `@@metainfo@@` - `@@PLUGINSTART@@` - `@@PLUGINEND@@` - `.@@DATETIMEVERSION@@` - `[@@Buildname@@-@@BUILDDATE@@]` Close IITC-CE#150: use template from settings instead of url harcoding. Close IITC-CE#99: remove timestamp component from `version` of Release scripts.
Refactor build system into several modules: - `settings.py`: to provide common settings (from `buildsettings.py` / `localbuildsettings.py`) - `build_plugin.py`: to build single plugin formats userscript metablock, preprocesses sources - makes templates substitutions, inlines dependencies js/css/img - and wraps into wrapper (from `pluginwrapper.py`) - `pluginwrapper_noinject.py` - alternative wrapper, useful for debugging scripts. Sample usage in `buildsettings.py`, for build name 'tmdev'. - `build_mobile.py`: to build android apk (embedding scripts from given directory) - `build.py`: to build all: main IITC script, all plugins, and (optionally) Android apk. - `--watch` mode (auto-rebuild on sources changes) Each module can be used independently as cli utility. Escape macros in code in order to keep js-validity, fix IITC-CE#50. Simplify userscripts source template, completely get rid of these ugly substitutions: - `@@metainfo@@` - `@@PLUGINSTART@@` - `@@PLUGINEND@@` - `.@@DATETIMEVERSION@@` - `[@@Buildname@@-@@BUILDDATE@@]` Close IITC-CE#150: use template from settings instead of url harcoding. Close IITC-CE#99: remove timestamp component from `version` of Release scripts.
Refactor build system into several modules: - `settings.py`: to provide common settings (from `buildsettings.py` / `localbuildsettings.py`) - `build_plugin.py`: to build single plugin formats userscript metablock, preprocesses sources - makes templates substitutions, inlines dependencies js/css/img - and wraps into wrapper (from `pluginwrapper.py`) - `pluginwrapper_noinject.py` - alternative wrapper, useful for debugging scripts. Sample usage in `buildsettings.py`, for build name 'tmdev'. - `build_mobile.py`: to build android apk (embedding scripts from given directory) - `build.py`: to build all: main IITC script, all plugins, and (optionally) Android apk. - `--watch` mode (auto-rebuild on sources changes) Each module can be used independently as cli utility. Escape macros in code in order to keep js-validity, fix IITC-CE#50. Simplify userscripts source template, completely get rid of these ugly substitutions: - `@@metainfo@@` - `@@PLUGINSTART@@` - `@@PLUGINEND@@` - `.@@DATETIMEVERSION@@` - `[@@Buildname@@-@@BUILDDATE@@]` Close IITC-CE#150: use template from settings instead of url harcoding. Close IITC-CE#99: remove timestamp component from `version` of Release scripts.
Refactor build system into several modules: - `settings.py`: to provide common settings (from `buildsettings.py` / `localbuildsettings.py`) - `build_plugin.py`: to build single plugin formats userscript metablock, preprocesses sources - makes templates substitutions, inlines dependencies js/css/img - and wraps into wrapper (from `pluginwrapper.py`) - `pluginwrapper_noinject.py` - alternative wrapper, useful for debugging scripts. Sample usage in `buildsettings.py`, for build name 'tmdev'. - `build_mobile.py`: to build android apk (embedding scripts from given directory) - `build.py`: to build all: main IITC script, all plugins, and (optionally) Android apk. - `--watch` mode (auto-rebuild on sources changes) Each module can be used independently as cli utility. Escape macros in code in order to keep js-validity, fix IITC-CE#50. Simplify userscripts source template, completely get rid of these ugly substitutions: - `@@metainfo@@` - `@@PLUGINSTART@@` - `@@PLUGINEND@@` - `.@@DATETIMEVERSION@@` - `[@@Buildname@@-@@BUILDDATE@@]` Close IITC-CE#150: use template from settings instead of url harcoding. Close IITC-CE#99: remove timestamp component from `version` of Release scripts.
Refactor build system into several modules: - `settings.py`: to provide common settings (from `buildsettings.py` / `localbuildsettings.py`) - `build_plugin.py`: to build single plugin formats userscript metablock, preprocesses sources - makes templates substitutions, inlines dependencies js/css/img - and wraps into wrapper (from `pluginwrapper.py`) - `pluginwrapper_noinject.py` - alternative wrapper, useful for debugging scripts. Sample usage in `buildsettings.py`, for build name 'tmdev'. - `build_mobile.py`: to build android apk (embedding scripts from given directory) - `build.py`: to build all: main IITC script, all plugins, and (optionally) Android apk. - `--watch` mode (auto-rebuild on sources changes) Each module can be used independently as cli utility. Escape macros in code in order to keep js-validity, fix IITC-CE#50. Simplify userscripts source template, completely get rid of these ugly substitutions: - `@@metainfo@@` - `@@PLUGINSTART@@` - `@@PLUGINEND@@` - `.@@DATETIMEVERSION@@` - `[@@Buildname@@-@@BUILDDATE@@]` Close IITC-CE#150: use template from settings instead of url harcoding. Close IITC-CE#99: remove timestamp component from `version` of Release scripts.
Refactor build system, simplify templates and escape macros in code - Refactor build system into several modules (can be used as cli utilities). Implement `watch` mode to auto-rebuild on source changes. - Escape macros in code in order to keep js-validity, fix #50. Use template from settings instead of url harcoding (closes #150). - Simplify userscripts source template, rename plugin sources: `*.user.js` -> `*.js`, rearrange source directories. - Remove timestamp component from `version` of Release scripts (closes #99). - Additional dev tools: `web_meta_gen.py`, `web_server_local.py`, `tampermonkey_stubs_gen.py`.
- Update most upstream sources, and significantly enhance several plugins IITC-CE#134 (a lot of changes, follow the link to see) - Fix performance drop when displaying a large number of ornaments IITC-CE#181 - Improve RegionScoreboard IITC-CE#179 © McBen + some fixes - Remove confusing message from artifacts dialog IITC-CE#216 - Portal info: display coordinates without angled brackets IITC-CE#233 - Leaflet controls: prevent mobile style on desktop IITC-CE#189 - Increase map renderer padding (and make value customizable) IITC-CE#201 - Portal info: `shielding` tooltip: round mitigation `excess` to cope with lack of js float precision IITC-CE#279 - Fix miscellaneous bugs in core and plugins IITC-CE#157 - Change default intel url (to match stock) IITC-CE#267 - Implement plugins priority control IITC-CE#205 - Stop console 'spam' using customizable logger IITC-CE#235 - Consistent errors throwing IITC-CE#248 - API for local files (up|down)loading IITC-CE#243 - Remove some unused stuff from window object IITC-CE#101 - Refactor to use common function `window.makePermalink` (utils_misc.js) IITC-CE#198 - Isolate every core module in separate IIFE IITC-CE#234 - Move wrapper template to separate file IITC-CE#238 - DEFAULT_ZOOM = 15 (to match stock intel) IITC-CE#281 - IITC-CE#229: - Refactor build system into several modules (can be used as cli utilities). Implement `watch` mode to auto-rebuild on source changes. - Escape macros in code in order to keep js-validity, fix IITC-CE#50. Use template from settings instead of url harcoding (closes IITC-CE#150). - Simplify userscripts source template, rename plugin sources: `*.user.js` -> `*.js`, rearrange source directories. - Remove timestamp component from `version` of Release scripts (closes IITC-CE#99). - Additional dev tools: `web_meta_gen.py`, `web_server_local.py`, `tampermonkey_stubs_gen.py`. - Other - see IITC-CE#134 (solve IITC-CE#70: Manage upstream externals) - Update docs IITC-CE#264, remove outdated (info transferred to [wiki](https://github.com/IITC-CE/ingress-intel-total-conversion/wiki)) - Improve scale-bar and scoreboard plugins IITC-CE#158 - Improve styles of text labels (portal-level-numbers, portal-names, portal-names, regions, keys-on-map) IITC-CE#104 - Other - draw-tools, bookmarks: (make use of IITC-CE#243) support file import/export on desktop too - see IITC-CE#134: significantly enhance several plugins : overlay-kml, minimap, basemap-bing, basemap-yandex, tidy-links, pan-control, etc (see commit messages) - sync: fix and update IITC-CE#212 - draw-tools: fix mobile-related bugs; add Circle again IITC-CE#175 - bookmarks: fix iitc download url IITC-CE#150 - portals-list: filter out portal without real data (bug in intel) IITC-CE#265 - Other: see IITC-CE#157 (cache-portals-on-map, layer-count, draw-tools, bookmarks, missions) - 'Support DeX desktop mode' option IITC-CE#161 - Add 'Plugins' shortcut to main menu IITC-CE#266 - fix bugs on login page IITC-CE#164 - fix some bugs in plugins handling IITC-CE#245 - fix 'Send screenshot' function IITC-CE#169 - fix error that made it difficult to pick plugin file IITC-CE#239 - fix plugin initialization bug IITC-CE#270 - better handling of uploads IITC-CE#250
# Release notes ## IITC main script ### enhancements - Update most upstream sources, and significantly enhance several plugins IITC-CE#134 (a lot of changes, follow the link to see) - Fix performance drop when displaying a large number of ornaments IITC-CE#181 - Improve RegionScoreboard IITC-CE#179 © McBen + some fixes - Remove confusing message from artifacts dialog IITC-CE#216 - Portal info: display coordinates without angled brackets IITC-CE#233 - Leaflet controls: prevent mobile style on desktop IITC-CE#189 - Increase map renderer padding (and make value customizable) IITC-CE#201 - Portal info: `shielding` tooltip: round mitigation `excess` to cope with lack of js float precision IITC-CE#279 ### bugfixes - Fix miscellaneous bugs in core and plugins IITC-CE#157 - Change default intel url (to match stock) IITC-CE#267 ### development - Implement plugins priority control IITC-CE#205 - Stop console 'spam' using customizable logger IITC-CE#235 - Consistent errors throwing IITC-CE#248 - API for local files (up|down)loading IITC-CE#243 - Remove some unused stuff from window object IITC-CE#101 - Refactor to use common function `window.makePermalink` (utils_misc.js) IITC-CE#198 - Isolate every core module in separate IIFE IITC-CE#234 - Move wrapper template to separate file IITC-CE#238 - DEFAULT_ZOOM = 15 (to match stock intel) IITC-CE#281 - IITC-CE#229: - Refactor build system into several modules (can be used as cli utilities). Implement `watch` mode to auto-rebuild on source changes. - Escape macros in code in order to keep js-validity, fix IITC-CE#50. Use template from settings instead of url harcoding (closes IITC-CE#150). - Simplify userscripts source template, rename plugin sources: `*.user.js` -> `*.js`, rearrange source directories. - Remove timestamp component from `version` of Release scripts (closes IITC-CE#99). - Additional dev tools: `web_meta_gen.py`, `web_server_local.py`, `tampermonkey_stubs_gen.py`. - Other - see IITC-CE#134 (solve IITC-CE#70: Manage upstream externals) - Update docs IITC-CE#264, remove outdated (info transferred to [wiki](https://github.com/IITC-CE/ingress-intel-total-conversion/wiki)) ## Plugins ### enhancements - Improve scale-bar and scoreboard plugins IITC-CE#158 - Improve styles of text labels (portal-level-numbers, portal-names, portal-names, regions, keys-on-map) IITC-CE#104 - Other - draw-tools, bookmarks: (make use of IITC-CE#243) support file import/export on desktop too - see IITC-CE#134: significantly enhance several plugins : overlay-kml, minimap, basemap-bing, basemap-yandex, tidy-links, pan-control, etc (see commit messages) ### bugfixes - sync: fix and update IITC-CE#212 - draw-tools: fix mobile-related bugs; add Circle again IITC-CE#175 - bookmarks: fix iitc download url IITC-CE#150 - portals-list: filter out portal without real data (bug in intel) IITC-CE#265 - Other: see IITC-CE#157 (cache-portals-on-map, layer-count, draw-tools, bookmarks, missions) ## IITC-Mobile app ### enhancements - 'Support DeX desktop mode' option IITC-CE#161 - Add 'Plugins' shortcut to main menu IITC-CE#266 ### bugfixes - fix bugs on login page IITC-CE#164 - fix some bugs in plugins handling IITC-CE#245 - fix 'Send screenshot' function IITC-CE#169 - fix error that made it difficult to pick plugin file IITC-CE#239 - fix plugin initialization bug IITC-CE#270 ### development - better handling of uploads IITC-CE#250
bump version to 0.30 # Release notes ## IITC main script ### enhancements - Update most upstream sources, and significantly enhance several plugins #134 (a lot of changes, follow the link to see) - Fix performance drop when displaying a large number of ornaments #181 - Improve RegionScoreboard #179 © McBen + some fixes - Remove confusing message from artifacts dialog #216 - Portal info: display coordinates without angled brackets #233 - Leaflet controls: prevent mobile style on desktop #189 - Increase map renderer padding (and make value customizable) #201 - Portal info: `shielding` tooltip: round mitigation `excess` to cope with lack of js float precision #279 ### bugfixes - Fix miscellaneous bugs in core and plugins #157 - Change default intel url (to match stock) #267 ### development - Implement plugins priority control #205 - Stop console 'spam' using customizable logger #235 - Consistent errors throwing #248 - API for local files (up|down)loading #243 - Remove some unused stuff from window object #101 - Refactor to use common function `window.makePermalink` (utils_misc.js) #198 - Isolate every core module in separate IIFE #234 - Move wrapper template to separate file #238 - DEFAULT_ZOOM = 15 (to match stock intel) #281 - #229: - Refactor build system into several modules (can be used as cli utilities). Implement `watch` mode to auto-rebuild on source changes. - Escape macros in code in order to keep js-validity, fix #50. Use template from settings instead of url harcoding (closes #150). - Simplify userscripts source template, rename plugin sources: `*.user.js` -> `*.js`, rearrange source directories. - Remove timestamp component from `version` of Release scripts (closes #99). - Additional dev tools: `web_meta_gen.py`, `web_server_local.py`, `tampermonkey_stubs_gen.py`. - Other - see #134 (solve #70: Manage upstream externals) - Update docs #264, remove outdated (info transferred to [wiki](https://github.com/IITC-CE/ingress-intel-total-conversion/wiki)) ## Plugins ### enhancements - Improve scale-bar and scoreboard plugins #158 - Improve styles of text labels (portal-level-numbers, portal-names, portal-names, regions, keys-on-map) #104 - Other - draw-tools, bookmarks: (make use of #243) support file import/export on desktop too - see #134: significantly enhance several plugins : overlay-kml, minimap, basemap-bing, basemap-yandex, tidy-links, pan-control, etc (see commit messages) ### bugfixes - sync: fix and update #212 - draw-tools: fix mobile-related bugs; add Circle again #175 - bookmarks: fix iitc download url #150 - portals-list: filter out portal without real data (bug in intel) #265 - Other: see #157 (cache-portals-on-map, layer-count, draw-tools, bookmarks, missions) ## IITC-Mobile app ### enhancements - 'Support DeX desktop mode' option #161 - Add 'Plugins' shortcut to main menu #266 - Adapt to changes in Google authorization #283 ### bugfixes - fix bugs on login page #164 - fix some bugs in plugins handling #245 - fix 'Send screenshot' function #169 - fix error that made it difficult to pick plugin file #239 - fix plugin initialization bug #270 ### development - better handling of uploads #250
Currently every version number contains date/time stamp as it's last component.
So with every build every script get newer version, even if it's content stays the same.
With this system if we turn on auto-updating feature - it will fire unconditionally, on every new build.
I don't think that it is good design, as typically we want to update changed scripts only.
The text was updated successfully, but these errors were encountered: