nathro / autotransform Goto Github PK
View Code? Open in Web Editor NEWAutoTransform is a framework for large-scale, automated code modification in a production environment.
License: MIT License
AutoTransform is a framework for large-scale, automated code modification in a production environment.
License: MIT License
Continuous runs are automatically scheduled runs that can be used to keep a codebase cleaned-up/maintained over time. Runs could be scheduled hourly, daily, or weekly. The information for scheduling will be contained in a schema's Config.
The updates here will include:
Future functionality:
While not part of the existing plan, in the future we may integrate this type of behavior with Github workflows/actions if possible to allow people using Github to leverage actions to automate this process for them on push/other events.
We can definitely remove the runner from each of these to simplify things, maybe more.
Some organizations may not allow you to merge directly to main, so we need an action that can trigger a rest API for things like merging.
Github Actions isn't the only game in town. For now, it looks like we'll need to use Jenkins for some of our repos at Slack so I'm going to add Jenkins support to AutoTransform.
Make GithubRepo object able to put in comments (including inline comments)
Add a system for logging to AutoTransform that has integration points for custom deployments to leverage logging.
This will be done through the following:
We need to add a system whereby AutoTransform PRs can be automatically approved. Need to decide on the implementation for this such that it is both clean and secure.
Add some Github actions to the repo to make sure it stays in good health by adding actions for:
Right now Change has take_action() method, we should get rid of that and have the actions have a run() method instead. This will prevent needing the million if statements in take_action(). We'll still have methods on the Change for things like merge()/close()/etc...
Existing documentation is lacking a few key things that would make picking up and understanding AutoTransform easier.
This includes 3 new .md files:
In addition, I'll take a pass at existing documentation to make it better, including adding a section to the README that links to all of the documentation files as well as have an explanation on setting up a RemoteWorker in CUSTOM_DEPLOYMENT.
Add CI state checks in addition to review state for manager.
This is a great project! My organization will really benefit from something like this. Any chance you can publish documentation exercising other actions we can take such as generating code, library upgrades, and implementing a custom Transformer?
thank you
Make GithubRepo able to handle creating pull requests when one of the repos involved is a fork.
Adding an initialize script command will make getting started a bit easier. Specifically, I want to support a couple things:
File format:
[
{
"component": "batcher",
"type": "single",
"module": "autotransform.batcher.single",
"class": "SingleBatcher",
"package": "AutoTransform"
},
...
]
The values above would be replaced with the custom component's values (i.e. input if it's an input component).
The initialize script would also pip install the required packages. We could create a schema index like PyPI that would make it easy for share and distribute schemas/components.
Something broke the migration scripts between when I was testing and when I released them, so I need to fix them.
Add a no_empty_batches param to SingleBatcher so that it can have an option to not create a batch when no items are present.
Add a system for change management for changes triggered by AutoTransform. The way this will work is the following:
A changemanager.py script will be run that leverages a ChangeRequestManager class to do the following:
A GithubChangeRequest and GithubChangeRequestManager class will be included for supporting pull requests on Github.
Handling of outstanding requests will be done using ChangeRequestManagerStep classes. Additional steps can be added by an organization to provide their own handling behavior.
In the future, code may be added that will allow organizations to host a webpage that can display information on outstanding change requests. The security/custom stuff required for this may make this too difficult to do generically, meaning organizations will need to host this content themselves if they desire it.
It would be cool if we can set up autotransform to automatically make suggestions on PRs/provide functionality for setting up schemas to run against PRs.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.