To answer my own question (funny how that happens!), the NPM config
package.json needs the versions pinned for both angular and angular-mocks:
diff --git a/opennms-webapp/package.json b/opennms-webapp/package.json
index e166995..298482b 100644
--- a/opennms-webapp/package.json
+++ b/opennms-webapp/package.json
@@ -5,7 +5,8 @@
"postinstall": "./node_modules/bower/bin/bower install"
},
"devDependencies": {
- "angular-mocks": "^1.5.8",
+ "angular-mocks": "~1.5.8",
+ "angular": "~1.5.8",
"bower": "^1.7.9",
"gulp": "*",
"gulp-rename": "^1.2.2”,
Cheers,
Chris
> On 24 Mar 2017, at 11:53 am, Chris Foote <[email protected]> wrote:
>
> Hi OpenNMS devs.
>
> I’m trying to build RPMs from source for 19.0.1 on CentOS 7 and the
> opennms-webapp fails tests to do with angular and angular-mocks modules:
>
> [INFO] --- frontend-maven-plugin:1.0:karma (execute karma tests) @
> opennms-webapp ---
> [INFO] Running 'karma start karma.conf.js' in
> /build/opennms-src/target/rpm/BUILD/opennms-19.0.1-0.20170221.1/opennms-webapp
> [INFO] 24 03 2017 11:55:49.535:INFO [karma]: Karma v1.5.0 server started at
> http://0.0.0.0:9876/
> [INFO] 24 03 2017 11:55:49.539:INFO [launcher]: Launching browser PhantomJS
> with unlimited concurrency
> [INFO] 24 03 2017 11:55:49.557:INFO [launcher]: Starting browser PhantomJS
> [INFO] 24 03 2017 11:55:49.824:INFO [PhantomJS 2.1.1 (Linux 0.0.0)]:
> Connected on socket mr_GJvKbDKZ1RT5cAAAA with id 74107250
> [INFO] PhantomJS 2.1.1 (Linux 0.0.0) ERROR
> [INFO] TypeError: undefined is not a function (evaluating
> 'angular.module('ngAnimateMock', ['ng'])
> [INFO] .info({ angularVersion: '1.6.3' })')
> [INFO] at node_modules/angular-mocks/angular-mocks.js:800
>
> It appears to be an issue with Angular being version 1.6.3 and angular-mocks
> being version 1.5.8. According to the angular-mocks documentation, the
> version must match Angular.
>
> The bower.json config specifies version 1.5.8 of both modules, but 1.6.3 gets
> installed by maven & bower:
>
> [opennms@opennms-build opennms-webapp]$ ./node_modules/bower/bin/bower info
> angular
> bower angular#* cached
> https://github.com/angular/bower-angular.git#1.6.3
> bower angular#* validate 1.6.3 against
> https://github.com/angular/bower-angular.git#*
>
> {
> name: 'angular',
> version: '1.6.3',
> license: 'MIT',
> main: './angular.js',
> ignore: [],
> dependencies: {},
> homepage: 'https://github.com/angular/bower-angular'
> }
> [snip]
>
> I am thinking that there might be some npm dependency that has brought in the
> newer version of Angular. I’m very inexperienced with nodejs, npm and bower,
> so I’m lost for ideas.
>
>
> Has anyone got a fix for this ?
>
>
> According to bower, version 1.6.3 of Angular isn’t installed:
>
> [opennms@opennms-build opennms-webapp]$ ./node_modules/bower/bin/bower list
> bower check-new Checking for new versions of the project dependencies...
> opennms /build/opennms-src/opennms-webapp
> ├── angular#1.5.8 (latest is 1.6.4-build.5327+sha.233f47b)
> ├─┬ angular-animate#1.5.8 (latest is 1.6.4-build.5327+sha.233f47b)
> │ └── angular#1.5.8 (latest is 1.6.4-build.5327+sha.233f47b)
> ├─┬ angular-bootstrap#2.1.3 (latest is 2.5.0)
> │ └── angular#1.5.8 (1.6.4-build.5327+sha.233f47b available)
> ├─┬ angular-cookies#1.5.8 (latest is 1.6.4-build.5327+sha.233f47b)
> │ └── angular#1.5.8
> ├─┬ angular-growl-v2#0.7.9
> │ └── angular#1.5.8 (1.6.4-build.5327+sha.233f47b available)
> ├─┬ angular-loading-bar#0.9.0
> │ └── angular#1.5.8 (1.6.4-build.5327+sha.233f47b available)
> ├─┬ angular-mocks#1.5.8 extraneous (latest is 1.6.4-build.5327+sha.233f47b)
> │ └── angular#1.5.8
> ├─┬ angular-resource#1.5.8 (latest is 1.6.4-build.5327+sha.233f47b)
> │ └── angular#1.5.8
> ├─┬ angular-route#1.5.8 (latest is 1.6.4-build.5327+sha.233f47b)
> │ └── angular#1.5.8
> ├─┬ angular-sanitize#1.5.8 (latest is 1.6.4-build.5327+sha.233f47b)
> │ └── angular#1.5.8
> ├─┬ bootbox#4.4.0
> │ └─┬ bootstrap#3.3.1 (4.0.0-alpha.6 available)
> │ └── jquery#2.2.4 (3.2.1 available)
> ├── bootstrap#3.3.1 (latest is 4.0.0-alpha.6)
> ├─┬ bootstrap-sass-official#3.3.1 (latest is 3.3.7)
> │ └── jquery#2.2.4 (3.2.1 available)
> ├─┬ c3#0.4.11
> │ └── d3#3.5.17 (latest is 4.7.3)
> ├── d3#3.5.17 (latest is 4.7.3)
> ├─┬ flot#0.8.3
> │ └── jquery#2.2.4 (3.2.1 available)
> ├── flot-axislabels#0d6ae9a793
> ├─┬ flot-datatable#1.0.6
> │ ├── d3#3.5.17 (latest is 4.7.3)
> │ └─┬ flot#0.8.3
> │ └── jquery#2.2.4
> ├─┬ flot-legend#2.0.0
> │ ├── d3#3.5.17
> │ └─┬ flot#0.8.3
> │ └── jquery#2.2.4
> ├── flot-navigate#v1.3-CUSTOM
> ├── flot-saveas#1.0.0
> ├── flot.tooltip#0.8.7 (latest is 0.9.0)
> ├── font-awesome#4.6.3 (latest is 4.7.0)
> ├── ionicons#2.0.1
> ├── ip-address#5.8.2 (latest is 5.8.6)
> ├── jquery#2.2.4 (latest is 3.2.1)
> ├── jquery-sparkline#2.1.3
> ├─┬ jquery-treegrid#0.3.0
> │ ├── jquery#2.2.4
> │ └─┬ jquery.cookie#1.4.1
> │ └── jquery#2.2.4 (3.2.1 available)
> ├─┬ jquery-ui#1.12.0 (latest is 1.12.1)
> │ └── jquery#2.2.4 (3.2.1 available)
> ├── leaflet#1.0.2 (latest is 1.0.3)
> ├─┬ leaflet.markercluster#1.0.0 (latest is 1.0.4)
> │ └── leaflet#1.0.2 (1.0.3 available)
> ├── requirejs#2.2.0 (latest is 2.3.3)
> └── underscore#1.8.3
>
>
>
> —
> Repeating build:
>
> git checkout master
> git checkout opennms-19.0.1-1
> ./clean
> ./makerpm.sh
>
> Doing a `/build/opennms-src/maven/bin/mvn compile -X` in the opennms-webapp
> directory reveals:
> [INFO] --- frontend-maven-plugin:1.0:karma (execute karma tests) @
> opennms-webapp ---
> [DEBUG] Configuring mojo com.github.eirslett:frontend-maven-plugin:1.0:karma
> from plugin realm
> ClassRealm[plugin>com.github.eirslett:frontend-maven-plugin:1.0, parent:
> sun.misc.Launcher$AppClassLoader@70dea4e]
> [DEBUG] Configuring mojo
> 'com.github.eirslett:frontend-maven-plugin:1.0:karma' with basic configurator
> -->
> [DEBUG] (f) installDirectory = /build/opennms-src/opennms-webapp/target
> [DEBUG] (f) karmaConfPath = karma.conf.js
> [DEBUG] (f) project = MavenProject: org.opennms:opennms-webapp:19.0.1 @
> /build/opennms-src/opennms-webapp/pom.xml
> [DEBUG] (f) repositorySystemSession =
> org.eclipse.aether.DefaultRepositorySystemSession@1c93b51e
> [DEBUG] (f) skip = false
> [DEBUG] (f) skipTests = false
> [DEBUG] (f) testFailureIgnore = false
> [DEBUG] (f) workingDirectory = /build/opennms-src/opennms-webapp
> [DEBUG] (f) execution = com.github.eirslett:frontend-maven-plugin:1.0:karma
> {execution: execute karma tests}
> [DEBUG] -- end configuration --
> [INFO] Running 'karma start karma.conf.js' in
> /build/opennms-src/opennms-webapp
> [INFO] 24 03 2017 12:15:20.505:INFO [karma]: Karma v1.5.0 server started at
> http://0.0.0.0:9876/
> [INFO] 24 03 2017 12:15:20.509:INFO [launcher]: Launching browser PhantomJS
> with unlimited concurrency
> [INFO] 24 03 2017 12:15:20.525:INFO [launcher]: Starting browser PhantomJS
> [INFO] 24 03 2017 12:15:20.760:INFO [PhantomJS 2.1.1 (Linux 0.0.0)]:
> Connected on socket qkOGseLtFytJJumoAAAA with id 97315042
> [INFO] PhantomJS 2.1.1 (Linux 0.0.0) ERROR
> [INFO] TypeError: undefined is not a function (evaluating
> 'angular.module('ngAnimateMock', ['ng'])
> [INFO] .info({ angularVersion: '1.6.3' })')
> [INFO] at node_modules/angular-mocks/angular-mocks.js:800
> [INFO]
> [INFO]
> [INFO]
> ------------------------------------------------------------------------
> [INFO] BUILD FAILURE
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Total time: 17.774 s
> [INFO] Finished at: 2017-03-24T12:15:20+11:00
> [INFO] Final Memory: 50M/521M
> [INFO]
> ------------------------------------------------------------------------
> [ERROR] Failed to execute goal
> com.github.eirslett:frontend-maven-plugin:1.0:karma (execute karma tests) on
> project opennms-webapp: Failed to run task: 'karma start karma.conf.js'
> failed. (error code 1) -> [Help 1]
>
> Regards,
> Chris
>
>
>
>
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Please read the OpenNMS Mailing List FAQ:
> http://www.opennms.org/index.php/Mailing_List_FAQ
>
> opennms-devel mailing list
>
> To *unsubscribe* or change your subscription options, see the bottom of this
> page:
> https://lists.sourceforge.net/lists/listinfo/opennms-devel
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Please read the OpenNMS Mailing List FAQ:
http://www.opennms.org/index.php/Mailing_List_FAQ
opennms-devel mailing list
To *unsubscribe* or change your subscription options, see the bottom of this
page:
https://lists.sourceforge.net/lists/listinfo/opennms-devel