Ardesco / driver-binary-downloader-maven-plugin

A Maven plugin that will download the WebDriver stand alone server executables for use in your mavenised Selenium project.
Apache License 2.0
92 stars 52 forks source link

Add support for a RepositoryMap.json #19

Open Ardesco opened 10 years ago

Ardesco commented 10 years ago

Just because json is so much nicer than xml.

Ardesco commented 8 years ago

Or maybe YAML, or TOML...

haroon-sheikh commented 6 years ago

@Ardesco I've started working on this with YAML which looks a bit like this?

windows:
  -
    name: chromedriver
    version: 2.33
    fileLocation: https://chromedriver.storage.googleapis.com/2.33/chromedriver_win32.zip
    hash: f6a0d7939355acba00f7b1374bebda50bbead59b
    hashType: sha1
    bitrate:
      - 32bit
      - 64bit
osx:
  -
    name: chromedriver
    version: 2.33
    fileLocation: https://chromedriver.storage.googleapis.com/2.33/chromedriver_win32.zip
    hash: f6a0d7939355acba00f7b1374bebda50bbead59b
    hashType: sha1
    bitrate:
      - 32bit
      - 64bit

Are we happy with YAML? if yes, shall we deprecate xml completely and plan 2.0.0 of the plugin?

Ardesco commented 6 years ago

I've already got a JSON fork which is what I was planning for 2.0.0.

I'm expecting the new structure to look like this:

{
  "linux": [
    {
      "name": "phantomjs",
      "version": "2.1.1",
      "architecture": "64bit",
      "location": "https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-i686.tar.bz2",
      "validation": {
        "hash": "f8afc8a24eec34c2badccc93812879a3d6f2caf3",
        "hashType": "sha1"
      }
    },
    {
      "name": "phantomjs",
      "version": "2.1.0",
      "architecture": "64bit",
      "location": "https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-i686.tar.bz2",
      "validation": {
        "hash": "f8afc8a24eec34c2badccc93812879a3d6f2caf3",
        "hashType": "sha1"
      }
    }
  ]
}
Ardesco commented 6 years ago

Yes I know the data is junk atm, it's just a structure example :)

haroon-sheikh commented 6 years ago

Oh great! I'll just halt YAML then. ;)

How far are you with 2.0.0?

haroon-sheikh commented 6 years ago

Also when versioning, we should keep http://semver.org/ in mind. E.g. Java 8 changes should really have been a breaking change.

Ardesco commented 6 years ago

I'm aware of semver, the only reason the plugin went to java 8 only is because selenium went to java 8 only.

It's technically a breaking change, but there's no java 8 specific code in the plugin. You could still run it with Java 7, but Selenium won't work.

It's not really worth changing the major version number because another project changed their dependencies. nothing has really changed in the plugin.

mpkorstanje commented 6 years ago

While the plugin is not using any java 8 features it is compiled using the java 8 class file format (major version 52). This is not understood by java 7 (major version 51). You can however use java 7 compiled code in java 8.

As long as the project using selenium is using java 8 I would expect selenium to keep on working. So I am not sure why this was done in the first place.

That aside, major version numbers don't cost anything. ;)