Comments (3)
Making use of the full pull request functionality in Azure DevOps would be difficult as we would need to block the Development Hub while a pull request was pending. This introduces a dependency from the merging process on the source control process and also means that we'd have to move unreviewed solution changes to the master instance in order to create the PR. In order to avoid this, we'd need one PR/commit for the source branch and one commit for the solution changes after the source branch had been approved. Having these two separate commits would be an issue as we'd then trigger any CI/CD processes twice.
The review of the source branch in the solution merge should form part of the solution merge review (as this is in effect the pull request replacement) but I appreciate this means we lose out on some of the Azure DevOps pull request functionality e.g. comment resolution and validation builds. I suspect the main issue is the lack of PR validation build.
My suggestion would be that we capture an Azure DevOps build definition ID on the solution records in a Validation Build field and have a Flow trigger this build for the source branch when a solution merge is created. The result of that build could then be fed back to the solution merge record.
from development-hub.
It would be a lot more complicated, but there is probably a way that we could automatically create a PR when a solution merge is created with a source branch (allowing for line-by-line comments and other PR functionality) then trigger the merge process only after both the solution merge is approved and all policies are resolved on the pull request. The same PR could then be updated post-merge and completed automatically. A line could be added to the PR description requesting that it not be completed as it is an automated PR.
from development-hub.
then trigger the merge process only after both the solution merge is approved and all policies are resolved on the pull request
@markcunninghamuk @ksulikow after discussing with Kriss, we might be able to go even further than this and offer the solution extract changes with the pull request. This would involve changing the process so that there is in effect no 'Approve' or 'Reject' at the point of creating the solution merge, but instead we do something like the following:
- Create a solution merge as 'Queued'
- Check if any solution merge is 'Creating pull request', 'Rejected' or 'Awaiting review' - if not, then continue to 3
- Update status to 'Creating pull request' (for example)
- Merge the development solution into the target environment
- Trigger a pipeline which creates a pull request with the extracted changes (along with any code changes if a source branch is supplied)
- On approval of the pull request, update the solution merge to 'Merged' OR on reject of the pull request, update the solution merge to 'Rejected'
This then results in the following scenarios:
Merged
If a solution merge was created after this one, start the merge process.
Rejected
The following buttons appear on the solution merge:
- Update - merge and push further updates to the development solution (e.g. to fix pull request comments)
- Cancel - reset the target instance, set the solution merge to an inactive status, and start the merge process on any solution merge created after this one
This would be a significant change to how the Development Hub has been envisaged to work up until now, but it would greatly improve the review/validation process and would highlight any unexpected changes that could come through with the development solution. The branch could also be used to deploy from in order to run automated tests. In addition, it would solve #31.
from development-hub.
Related Issues (20)
- Work item ID requirement should be configurable HOT 1
- Development solution imports that fail after 2 minutes needlessly retry for an hour HOT 1
- Pull requests created with merge conflicts when source branch is provided
- Extract pipeline occasionally stuck on exporting solution
- Setup should be simplified
- Failed to create solution merge commit flow HOT 1
- Signing in to Azure DevOps across tenants
- Specify a Solution Package mapping file to exclude mapped components
- Solution merge stuck on 'Merging' when the source branch has conflicts with the target branch
- Ribbon button to open the development solution HOT 2
- Extract Pipeline can't be ran due to validation errors HOT 5
- Extract Pipeline sometimes fails to link work item HOT 3
- Cloning into folders which have spaces in the path HOT 1
- Conflicts reported when two development solutions contain an entity as a container only
- Allow Solution Merge Approver to confirm Manual Steps are complete HOT 1
- Solution Merge: Awaiting Changes status
- TypeScript does not build as part of PrepareDevelopmentEnvironment task
- Master environment per solution merge
- Flow will never start.. HOT 1
- Support for Azure DevOps Server
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from development-hub.