Composer is a free and open source dependency manager for PHP. It allows the user to declare the libraries a project depends on and it will manage (install/update) them. it manages packages on a per-project basis, installing them in a directory (e.g. vendor) inside a project and by default, it does not install anything globally. Thus, it is a dependency manager.
N/A
OpenText Dimensions CM
Score 8.0 out of 10
N/A
Dimensions CM is Software Change and Configuration Management for Agile development, developed by Serena Software and now sold by OpenText.
I do highly recommend it whenever you have some PHP projects, especially if you need to have reusable modules that you want to share across teams. With a good branching an tagging strategy, you can go a long way in making your developers' life easier. They will only need to work on the modules that are of interest of them, and not have to touch the whole codebase.
Also, it's quite necessary if you are planning to use community PHP modules, as the vast majority of them is distributed, and versionned via packagist.org, and thus via composer.
Serena CM is well suited to highly controlled, audited, and process driven environments. It will allow strict segregation of duties, and change traceability. If implemented correctly it will help you quickly build trusts with your auditors. It is also well suited to environments that require constant branching and merging. Due to the complexity of the product and learning curve for your development and operations team it may be overkill in a small shop with loose rules
Code Promotion: Dimensions CM allows supervisors to control changes to code, in that they delegate requests to developers, and act as a gatekeeper prior to promoting to the next environment. This functionality is configurable so you can set up a workflow that best fits the structure and requirements of your own company.
Code Repository for changes and versioning: Code can be checked out by item or by synchronizing folders. Code revisions can be compared against other revisions or work files. Item histories show which developers made which modifications, and which supervisor and operations personnel were involved in assigning the request and promoting the code to each environment. Additionally a pedigree will show a stream diagram which graphically displays branches and merges.
Deployment: Serena Change Management offers help automating deployment including integrations with SVN and Jenkins. Its newer versions also have a powerful graphical deployment automation tool (Serena Deployment Automation- SDA). It comes with a certain amount of licenses built-in. If you have a many nodes to deploy to there will be separate licensing costs for that.
The only major negative that I have encountered with Serena CM product is that the very power and flexibility of the tool means there is a risk that you will make a mess of things. In other words it gives you plenty of rope to tangle yourself with. I recommend careful, well thought out deployments implementing the built in roles and workflows that can be turned on and configured, using a consistent methodology.
My experience with the Serena help desk support has not been impressive. Though reasonably polite and diligent, the technicians were well trained, and often gave bad advise and terrible scripts. On several occasions I had to rewrite scripts they have me; if I had run them as provided they would have caused even more difficulties than the problem I was trying to solve. I speak of the support in the past tense because I conditioned myself not to call them, it was usually just easier to solve nay problems my self. They do have a good account management team though, and for any major issues you can go thru them.
If you're familiar with npm or Yarn, you'll feel right at home with composer. The work in pretty much the same way. You can use a composer.json file in your repo to reference specific version of public community modules, and enterprise internal ones. You can also hook some scripts that you would want to execute, like for testing, building your code ...
Serena CM is superior to Microsoft Team Foundation Server (TFS) in overall functionality, but does not have very good native integration with Microsoft. Therefore in a Microsoft centric shop with no audit needs ,TFS would be better. Otherwise I would choose Serena CM
Serena has facilitated our annual completion of various audit and technology control certifications. These certifications make a huge difference to our company's reputation and bottom line.