What is the difference between GitVersion.Tool and GitVersionTask - gitversion

I see that there are two nuget packages GitVersion.Tool and GitVersionTask
What is the difference between the two and what to use when.
I also see that GitVersion, but looks like this is deprecated, because the last update was two and half years ago. So lets ignore that.

I believe I am right in saying that the GitVersion package can be ignored. This is no longer used, or recommended.
GitVersion.Tool is a .Net Global Tool version of GitVersion. You can install this using globally on your machine using the following:
dotnet tool install --global GitVersion.Tool
This requires the prior install of the .Net Core CLI tools in order for it to work. With both of these things installed, you can then run dotnet-gitversion to assert the version number of your repository.
GitVersionTask is a NuGet package that you would add to your project within Visual Studio. It includes MSBuild Targets which runs GitVersion during the compilation stage, asserting the version numbers of the repository, which can then be used in other parts of the MSBuild build.
GitVersion.CommandLine is similar to the GitVersion.Tool package, with the exception that this is intended for use with full .Net Framework, and not .Net Core.
GitVersion.portable is essentially the same as the GitVersion.CommandLine package, but it is shipped as a Chocolatey package. This means that you can install is globally on your machine using the command:
choco install gitversion.portable

Related

Update TFS2017 task to latest version

I am working on a build to run a powershell script on a remote machine, using the VSTS task :
I currently am using TFS2017 on premise, and this is version 1 of that task.
There is a version 3 available on github here :
https://github.com/Microsoft/azure-pipelines-tasks/tree/master/Tasks/PowerShellOnTargetMachinesV3
I am having an issue with this task failing, and I have read elsewhere that this version has a fix for my issue, so I want to update it if possible.
I tried a few ways to do this, but I cannot work out what I am supposed to be doing. You would think there would be an update button in TFS!
Well, there is, but it requests that you provide a .VISX file. Which the repo in GIT does not have.
I've tried running the steps in this other post:
How to update the built-in Microsoft task library in TFS 2017?
But running the command "npm run package -- --version " doesn't generate the VISX.
I tried running :
npm run package --PowerShellOnTargetMachinesV3 --version 3.1.3
That responds with the output:
5.6.0
Which I am not sure what to do with!
I have seen another post that says I need to use the tfs-cli?
I'm very confused.
Any help is appreciated!
Since you are working on TFS on-premise, the task version will not auto update. You need to manually install "PowerShell on Target Machines" task version 3.0
You just need to download the source code and package it as an extension, finally upload and install your extension. There are some steps updated:
Get the package tool (tfx-cli)
You can install or update the TFS Cross Platform Command Line Interface (tfx-cli) using npm, a component of Node.js, from your command line.
npm i -g tfx-cli
Package your extension in a .vsix file
tfx extension create --manifest-globs vss-extension.json
More details please refer this official tutorial: Package, publish extensions.

How to freeze all Cordova dependencies?

I'm building a Cordova app where tight control over the build environment is part of the spec/business requirements.
I'd like to (a) figure out the version and binary file and url for EVERY dependency, and (b) make sure they NEVER update automatically.
I'd like to use this to set up a Docker image for a build, and/or a local mirror of all dependencies. If the Docker image can be regenerated from the mirror that is best; if the Docker image works fine without a network connection (including cordova platform rm/add...) that is a close second.
Unfortunately, the number of dependencies (including dependencies of dependencies etc) is massive, and worse, there are many completely different kinds of packages with different package management systems.
Some of the things I know about:
npm packages -> list in package.json, installed in node_modules/, downloaded from npmjs.com
cordova platforms -> list in config.xml, installed in platforms/ (from npm?)
cordova plugins -> list in config.xml, installed in plugins/ (from npm?)
gradle? from https://services.gradle.org/distributions/
bintray packages?
maven packages?
for Android - platform-tools, build-tools etc, downloaded using tools/bin/sdkmanager from ?
for iOS - Xcode and a bunch of other things?
How can I get a handle on all of these? Is this an already solved problem (and how)?
It seems like this would be something that everyone who cares about versioning but wants to use Javascript/Node-type tools would need to solve; however there seems to be an almost total lack of documentation on it.

How to set Node.js and NPM version numbers in a hosted VSO Build Agent?

In Visual Studio Online you can now set build dependencies on the General tab of a build definition.
But.. is there a way to set the version of Node.js and NPM?
It seems like a hosted build agent is currently using Node.js v0.12.7 and NPM v2.11.3 but I need Node.js v4.2+ and NPM v3.3+. Is there a way to enforce it?
P.S.: On-premise VSO build agent is not an option.
There is now a Node Tool installer available. The link to software inventory shared by Daniel was very helpful, and I discovered the installer digging into the Node specs for Hosted VS2017 agent.
Finds or downloads and caches the specified version of Node.js and adds it to the PATH
Try adding a Node Tool installer step before your node/npm steps.
It seems like there's a lot of misunderstanding as to what "demands" are. A build with a specific demand does not change what software is available on the build agent. A "demand" is simply a method of a build task expressing what requirements it has, so it can run on an agent that has the desired demands satisfied (these are the build agent's "capabilities").
This list of software is what's on the hosted build agent. If it's not there, and you can't install it via npm or the like, then you're out of luck.

How to install kate5

I tried to install the latest version of kde editor kate, but nothing changed.
I took the source code: git clone git://anongit.kde.org/kate;
I followed http://kate-editor.org/get-it/'s instructions;
Now, when I run ~/kde/usr/bin/kate-v is the same version that was:
$ ~/kde/usr/bin/kate -v
Qt: 4.8.6
Plataforma de desenvolvimento KDE: 4.14.1
Kate: 3.14.1
How I do to install the lastest version?
Grateful
First of all: the version in the About dialog is built from the KDE version, so it does not all reflect whether you are running a self-compiled one or not. Second, you should run Kate with all environment variables properly set - just running the executable will probably load the wrong ktexteditor.so library.
The easiest way to get Kate5 is to install a distribution that ships Kate5 (probably along with Plasma 5).
If you already have a KDE Frameworks 5 (KF5) environment available, then you can also build Kate5 from sources by following the build instructions. These were updated in June 2015.
If you are still on KDE 4.x and you have no KDE Frameworks 5 packages installed, then you also need to build KDE Frameworks 5 from sources. In this case, you have to follow the KF5 build instructions. If you've questions, feel free to ask on kde-frameworks-devel#kde.org and/or on the Kate mailing list.

How do I install Brackets IDE from behind a firewall on Linux?

We are behind a firewall.
We have a self-hosted central npm repository, that doesn't have all the packages (most, but not all).
It seems the grunt build process (to compile from source) relies on phantomjs to be built via npm. I have phantomjs 1.9.2 built from source and available, but the process specifies that it needs to be installed via npm to work.
My goal is to build so I can use the IDE in my environment. There is a .app, and a .msi available for Wndows and Mac, but for Linux I have to compile from source (we have a .deb, but I'm on CentOS).
Any help is appreciated.
It looks like you don't actually need PhantomJS for building Brackets -- I see it's a dependency in the package.json, but I don't actually see a mention in the Brackets source code where it may be called.
So could you just try building Brackets without having PhantomJS installed and see if it works?

Resources