Itmay be that your codemay break, not becuase of python itself, but becuase you will need to upgrade packages you depend on to versions that support python 3.11. Package upgrades have, in my experience, been the main focus of porting efforts.
I understand the concern, but the difference between Python 3.6 and Python 3.11 (why not Python 3.12?) is much smaller than the difference between Python 2.6/7 and any version of Python 3. I think a lot of worries people have stem from thinking that every Python upgrade is going to break some existing code, rather than being largely a superset of the previous version.
So long as you have a good quality test suite for your code this is a low risk upgrade to make.
And as I said before upgrading packages is the bigger risk than python itself. But to fix CVEs you will have to upgrade packages.
It seems you are mainly concerned with fixing CVEs for dependencies running in older versions of Python, and your solution is to upgrade to a more recent version of Python, which then needs to be evaluated for compatibility issues.
If your repository is on GitHub then you can easily enable Dependabot alerts, even for private repositories - this will result in automatic CVE alerts/notifications for your dependencies. There is also an option for Dependabot to automatically open PRs to fix these CVEs. But you could also create the fixes manually, if you prefer.
I suppose if you wanted to examine the differences, assuming you have a 2.7 code base, you could use the conversion tools in both 3.6 & 3.11, then compare the results. As others have indicated though, you will find next to no syntactic differences. Any changes would likely be new converters or bug fixes in the conversion tools between 3.6 & 3.11.
This guide is intended for administrators and software engineers of Adobe Commerce. It includes detailed information about installation of the Upgrade Compatibility Tool, as well as its configuration and management. It assumes a basic understanding of the core Commerce configuration and functionality.
The Upgrade Compatibility Tool is a tool that checks an Adobe Commerce customized instance against a specific version by analyzing all modules and core code installed in it. It returns a list of critical issues, errors, and warnings that must be addressed before upgrading to a newer version of Adobe Commerce.
To connect with the Upgrade Compatibility Tool team, contact us on the Engineering Slack channel #upgrade-compatibility-tool. We want to hear your feedback, issues, and suggestions to help us improve the tool.
The Upgrade Compatibility Tool uses rules defined within our Coding Standards to ensure that your project is following Adobe Commerce best practices and to help you improve and extend the Upgrade Compatibility Tool.
To help developers with that challenge, I propose a tool that constantly looks at the code of a project and generates a compatibility report, highlighting in real time what parts of the code are problematic for certain platforms and painting a picture of what the overall mininum browser requirements are.
MDN is a gold mine of information and, from what I understand, the team is moving towards making compatibility information available programatically. I think this would be another great opportunity to link the two projects.
This tool does not intend to replace any cross-browser testing, of course, which will always be the ultimate way of understanding how something works across the various environments, but I believe it would warn developers of potential issues as they arise, allowing them to test, tackle or dismiss them with more confidence.
What would you think about splitting this in a few parts and keep them separated from DevTools per se? E.g. one module that looks at code, another one which renders results, etc. This would allow us to test the code faster than inside the tools, and also reuse it in multiple ways. It could be a cli runner, so you could run it on continuous integration systems like Travis, and it could also be a WebExtension so it would run both in Firefox, Chrome and other browsers that support these standard addons.
Perhaps this tool will be super useful and everyone wants to install it, or perhaps not. My line of thought with the modularisation/extensibility was so that we could use its features in as many places as possible.
Off topic, but your work here reminds me of something similar I started that would give users warnings when they use valid CSS that is useless (e.g. setting a width on an inline element). Similarly to your approach, it has a list of rules, reads CSS, and when it finds something that matches a rule emits a message.
On top of that, it might be useful if there were some libraries to help work with these data stores. Tools to do the fetching of data, interpreting it in likely-commonly-used ways, and so forth. For instance, JavaScript, Node and Python libraries that take as input a term and return the appropriate data about it. Or, possibly more interestingly yet, take a term, browser name(s), and version number (or min/max versions) and simply reports if that feature works in that version of the specified browser(s).
Eric Shepherd
Senior Technical Writer
Mozilla
Mozilla Developer Network Mozilla Developer NetworkThe Mozilla Developer Network (MDN) provides information about Open Web technologies including HTML, CSS, and APIs for both Web sites and HTML5 Apps. It also documents Mozilla products, like Firefox OS.
There are no network requests being made to MDN. Currently, the compatibility data from the browser-compat-data repo is being pre-packaged with the extension, which raises the question of how to get updates to this data. Something to think about
Forward Phase - Also known as leading edge, incandescent, MLV, or triac-based dimming. The vast majority of dimmers installed today are this type. This is a line-voltage dimming method.
Reverse Phase - Also known as trailing edge, ELV, or FET-based dimming. Luminaries with electronic supplies are best controlled with these types of dimmers.
3-Wire - A line-voltage dimming method where power is delivered over a dedicated Switched Hot wire, and the phase control dimming signal is sent over a separate line-voltage Dimmed Hot wire.
0-10V - A low-voltage dimming protocol defined in IEC standard 60929-E2. Luminaries that use this standard provide a voltage, which the control forces to 10V for high end and 1V for low end. All fixtures on the same 0-10V link must go to the same light level.
PWM - A low-voltage dimming protocol defined in IEC standard 60929-E3. It uses the duty-cycle of a signal to communicate light level to a fixture. All fixtures on the same PWM link must go to the same level.
DMX - A low-voltage dimming protocol, formally called USITT DMX512-A. It provides high-speed individual control of up to 512 fixtures over a digital link.
EcoSystem - A digital protocol developed by Lutron and based of the DALI standard (IEC60929-E4). It provides individual fixture control for up to 64 fixtures over a digital link.
Switched - Fixtures designated as Switched are unable to be adequately dimmed with Lutron dimmers.
Please note: Bulb variations in lamp design and construction affect performance. Bulb manufacturers can modify their bulbs at any time, without notice to Lutron. This prevents Lutron from ensuring ongoing compatibility. For up-to-date specifications, performance, and/or any related recall information about the bulb, please visit the bulb manufacturer's website.
This tool provides information from manufacturers who are not Lutron agents or affiliates. The listing of a manufacturer or the existence of any external link to another website does not suggest that Lutron is endorsing the linked company, its products and/or its services. Purchasers should ask appropriate questions and request references before buying any products and/or entering a contract with any party. The information contained in this document is intended for illustrative and comparative purposes only, and is subject to change at any time. Lutron does not warrant that (a) the list of manufacturers is all-inclusive; (b) the information is complete, up-to-date, accurate and/or error-free; (c) the products and Lutron controls listed will always be compatible; and (d) that the information provided will be a viable or appropriate solution for your project needs. You are entirely responsible for and assume all risk for the use of the information.
Next up in our Automating your vSphere Upgrade blog series is your VMware Tools and VM Compatibility. Upgrading these both have different requirements so we will cover when and how you should upgrade your VMware Tools and VM compatibility in the below post.
Before we can start to update our VMware Tools it might be a good idea to understand which VMs in our environment are currently out of compliance, the easiest way to check if a VM if out of compliance is to view it via the vSphere Client and it will show you details such as the version and compliance.
Using this PowerCLI one-liner we are able to see more information at scale, we can see that within our folder we actually have 3 VMs that are out of compliance. To remediate these to the latest version its actually quite simple with PowerCLI as well.
Now that we know which VMs need tools update we can actually go forth and upgrade tools. That is quite simple we can do this using the Update-Tools PowerCLI cmdlet. Using our existing one-liner from above we will just append Update-Tools to update the VMs with tools currently out of compliance.
You may have noticed that all the VMs had their updates kicked off at the same time and this may not be ideal, this is one way that the Update-Tools cmdlet works, however we can get around this by storing the VMs within a variable and then using a loop process them one at a time. This is definitely preferable as it will limit the impact to the environment.
Here we can see which VMs have the automatic upgrade set and which ones are configured for manual. Utilizing a filter we can look for objects that are set for manual and then configure them to be set for upgradeAtPowerCycle
3a8082e126