Title: library surface reduction · Issue #2991 · apache/cloudstack · GitHub
Open Graph Title: library surface reduction · Issue #2991 · apache/cloudstack
X Title: library surface reduction · Issue #2991 · apache/cloudstack
Description: library interface surfaces should be reduced to improve portability and upgradability. examples of lockins that cloudstack suffers from are gson, stringutils and even the completely Apache internal log4j1.2 to log4j2 upgrade is a problem...
Open Graph Description: library interface surfaces should be reduced to improve portability and upgradability. examples of lockins that cloudstack suffers from are gson, stringutils and even the completely Apache internal...
X Description: library interface surfaces should be reduced to improve portability and upgradability. examples of lockins that cloudstack suffers from are gson, stringutils and even the completely Apache internal...
Opengraph URL: https://github.com/apache/cloudstack/issues/2991
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"library surface reduction","articleBody":"\u003c!--\r\nVerify first that your issue/request is not already reported on GitHub.\r\nAlso test if the latest release and master branch are affected too.\r\nAlways add information AFTER of these HTML comments, but no need to delete the comments.\r\n--\u003e\r\nlibrary interface surfaces should be reduced to improve portability and upgradability. examples of lockins that cloudstack suffers from are gson, stringutils and even the completely Apache internal log4j1.2 to log4j2 upgrade is a problem because of this.\r\njira issue CLOUDSTACK-10089 asks for a log4j update.\r\nother issues have been encountered in teh past (will add references if i encounter them)\r\n##### ISSUE TYPE\r\n\u003c!-- Pick one below and delete the rest --\u003e\r\n * Improvement Request\r\n\r\n##### COMPONENT NAME\r\n\u003c!--\r\nCategorize the issue, e.g. API, VR, VPN, UI, etc.\r\n--\u003e\r\n~~~\r\ncross cutting concern\r\n~~~\r\n\r\n##### CLOUDSTACK VERSION\r\n\u003c!--\r\nNew line separated list of affected versions, commit ID for issues on master branch.\r\n--\u003e\r\n\r\n~~~\r\nall\r\n~~~\r\n\r\n##### CONFIGURATION\r\n\u003c!--\r\nInformation about the configuration if relevant, e.g. basic network, advanced networking, etc. N/A otherwise\r\n--\u003e\r\n\r\n\r\n##### OS / ENVIRONMENT\r\n\u003c!--\r\nInformation about the environment if relevant, N/A otherwise\r\n--\u003e\r\n\r\n\r\n##### SUMMARY\r\n\u003c!-- Explain the problem/feature briefly --\u003e\r\n\r\nI think a number of PR need to be created for the mentioned utilities and maybe others to smoothly get to a maintainable situation.\r\nEach of them must have all functionality used in CloudStack proxied in them.\r\n\r\n##### STEPS TO REPRODUCE\r\n\u003c!--\r\nFor bugs, show exactly how to reproduce the problem, using a minimal test-case. Use Screenshots if accurate.\r\n\r\nFor new features, show how the feature would be used.\r\n--\u003e\r\n\r\n\u003c!-- Paste example playbooks or commands between quotes below --\u003e\r\n~~~\r\nwhen upgrading or migrating from a library to a library of similar funvctionality, changes should only have to be made in one area of the cloudstack code base. This is the ideal situation and may never be true for 3rd party plugins for instance. Big improvements can be made however on the mentioned libraries\r\n* StringUtils\r\n* Gson (json utilities)\r\n* logging\r\n~~~\r\n\r\n\u003c!-- You can also paste gist.github.com links for larger files --\u003e\r\n\r\n##### EXPECTED RESULTS\r\n\u003c!-- What did you expect to happen when running the steps above? --\u003e\r\n\r\n~~~\r\none class or package at most has to be changed when upgrading or migrating\r\n~~~\r\n\r\n##### ACTUAL RESULTS\r\n\u003c!-- What actually happened? --\u003e\r\n\r\n\u003c!-- Paste verbatim command output between quotes below --\u003e\r\n~~~\r\na plethora of hundreds of files need to be changed for each upgrade, risking numerous regressions due to oversights or misinterpretations of coding styles.\r\n~~~\r\n\r\n##### PR list (will be trying to include dependencies in a tree like structure, here)\r\n[ ] #2992","author":{"url":"https://github.com/DaanHoogland","@type":"Person","name":"DaanHoogland"},"datePublished":"2018-11-01T10:16:43.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":3},"url":"https://github.com/2991/cloudstack/issues/2991"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:d2cd8978-1cd6-7685-c403-83fdca6dbb5f |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | E0CC:2371E7:50F7611:71B1942:6A510591 |
| html-safe-nonce | 6df448c7bc71165e2e3cf416d9380c6945235dfa54bde80193d97fd422274291 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFMENDOjIzNzFFNzo1MEY3NjExOjcxQjE5NDI6NkE1MTA1OTEiLCJ2aXNpdG9yX2lkIjoiNjg3MTEzMjA0ODIwOTI4MjQ0OSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | db10d8dfd0ba66d5c85369d71ae92be4cdad54ef8dc9a3648a69105efa291b8d |
| hovercard-subject-tag | issue:376331723 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/apache/cloudstack/2991/issue_layout |
| twitter:image | https://opengraph.githubassets.com/f5939ca6b9c25bc7ca938173bc4e9617c1048366eb72bf7c940a8004f2a5d813/apache/cloudstack/issues/2991 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/f5939ca6b9c25bc7ca938173bc4e9617c1048366eb72bf7c940a8004f2a5d813/apache/cloudstack/issues/2991 |
| og:image:alt | library interface surfaces should be reduced to improve portability and upgradability. examples of lockins that cloudstack suffers from are gson, stringutils and even the completely Apache internal... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | DaanHoogland |
| hostname | github.com |
| expected-hostname | github.com |
| None | b076e100febaa00374cd89239f915d00dd3187f7c68b12bc2b7688181305344d |
| turbo-cache-control | no-preview |
| go-import | github.com/apache/cloudstack git https://github.com/apache/cloudstack.git |
| octolytics-dimension-user_id | 47359 |
| octolytics-dimension-user_login | apache |
| octolytics-dimension-repository_id | 9759448 |
| octolytics-dimension-repository_nwo | apache/cloudstack |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 9759448 |
| octolytics-dimension-repository_network_root_nwo | apache/cloudstack |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 2d129404fc45ea64edb1b98567c53e55b395536f |
| ui-target | canary-2 |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width