text:
wrap default value to distinguish from explicitly passed arguments

Together with the referenced PRs this addresses #274.
Add concept of wrapped default values in order to distinguish them from explicitly passed arguments. The wrapped values aim to have as similar behavior as possible to the original value type.

Codecov Report

Merging #288 into master will decrease coverage by 0.11%.
The diff coverage is 65.21%.

@@            Coverage Diff             @@
##           master     #288      +/-   ##
==========================================
- Coverage   79.99%   79.88%   -0.12%
==========================================
  Files          54       55       +1
  Lines        3149     3171      +22
  Branches      523      525       +2
==========================================
+ Hits         2519     2533      +14
- Misses        589      595       +6
- Partials       41       43       +2

Impacted Files
Coverage Δ

colcon_core/package_discovery/path.py
100% <100%> (ø)
:arrow_up:

colcon_core/argument_default.py
60% <60%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update eb4e51a...c00a8ce. Read the comment docs.

authors: codecov-io dirk-thomas

repo: colcon/colcon-core


text:
Img2Img

Very good results, however is there a way to use it for Img2Img?

This needs to be implemented more natively to allow for the combination with other modules, like Latent and KSampler. That will be an even better work, and I'm looking forward to it as well.

@omarei @deng-wei Im currently trying to get the model and vae to work with ksamplers, loras etc. The architecture of the model is different to what those nodes are expecting so the challenge is converting it.

any news?

any news?

Been a bit busy at my day job, but I've been having issues getting it to properly denoise a supplied latent image, if its an empty latent it works fine. Once, I'll revisit it again today, and see if I can figure out why.

source: gharchive/issue

authors: cold-hand deng-wei loboere omarei

repo: cold-hand/ComfyUI-FlashFace

license: MIT

license_type: permissive

license_source: github-api


text:
Add a missing  tag to App.vue

ERROR in ./~/vue-loader/lib/template-compiler.js?id=data-v-cb749f28!./~/vue-loader/lib/selector.js?type=template&index=0!./demo/App.vue
(Emitted value instead of an instance of Error)
  Vue template syntax error:

  tag <div> has no matching end tag.

 @ ./demo/App.vue 9:2-154
 @ ./demo/main.js
 @ multi (webpack)-dev-server/client?http://localhost:8000 ./demo/main.js

Thanks!

source: gharchive/pull-request

authors: AlbinoDrought colinf

repo: colinf/modal-vue


text:
Various utilities to use with asQ

This is a collection of things which we will want to reuse with asQ, but which are not part of the asQ library.
So far this includes:

units: this avoids silly things like nhours = nseconds*60*6
mg: this is for multigrid on a manifold sphere, includes factory for the mesh, and the transfer managers
shallow water: usual forms for linear and non-linear shallow water equations
williamson: constants and initial conditions for setting up williamson test cases 2 and 5

Would be nice if there could be a quick test of some of this - maybe just some diagnostics on the initial conditions (total energy, total mass).

Tests now added for:

values at random samples of williamson2 velocity and elevation profiles
check that williamson5 profiles match williamson2 profiles
williamson2 with nonlinear swe gives a reasonably steady solution

repo: colinjcotter/asQ


text:
STATUS: Add tests for pregnancy status method

Add unit tests for #244 in the pregnancy model.

Resolved in #252 (thanks @ajohnson052 !)

license: mit

license_source: bigquery


text:
ActiveRecord::yaml_new raises DeserializationError if object not found

This silently overrides yaml standard logic thus breaks existing functionality (it is not required by yaml to have a persistent ar object to be able to load it from yaml representation by default and this should not be changed by a gem).
This is basically the same request with this one: https://github.com/collectiveidea/delayed_job/pull/282 but a bit refactored. The pull request was closed but not implemented previously. So the BUG is still present in the master branch.

this raise error make unexpected noise
if object was not found, there should be an other handler to capture it

Hi! If object not found it should be loaded by yaml anyway. And delayed_job should handle this case without raising an exception.


text:
Windows support

Hi all!
Thank you for creating this Github Action! We started using it with our self-hosted runners for https://github.com/vectordotdev/vector when we ran into issues with disk space.
I was just curious if you'd be open to contributions adding support for Windows? We have self-hosted Windows runners that it would be nice to use this with too.
Thank you!

@jszwedko
I personally would not be opposed to supporting Windows for this action (the more the merrier!), but I don't think it is possible without drastically changing the way the action works unfortunately.
Running containers via normal means with GitHub Actions are only supported on Linux according to GitHub:

https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idcontainer
https://docs.github.com/en/actions/creating-actions/creating-a-docker-container-action#introduction
https://github.com/actions/runner/issues/904#issuecomment-760484077

As this action is container-based (and there isn't any way of doing a "mixed" action to my knowledge), supporting Windows would require transitioning this action to be of type JavaScript or composite, both of which have other downsides.
If any of this changes in the future (or if there is some opportunity I missed), I would be happy to add (or accept a PR for) the functionality!

authors: jszwedko nafarlee

repo: colpal/actions-clean


text:
UI: Make sidebar expandable

Make the sidebar with filtering widgets expandable, to enable more space for the main content.
The following components might help:
https://vuetifyjs.com/en/components/toolbars/
https://vuetifyjs.com/en/components/navigation-drawers/
This is especially important for mobile viewing.

937a2536f5b66f5c8dbf5fc051d23be0daeece61
51da0ec7bee9e869d0127d1ced14694794caa85b

@Oceanos1 check it out now and if it looks good we can close this

We should fix how the sidebar looks on mobile and add a close button in that case


text:
mill-contrib-playlib: java.lang.NoClassDefFoundError: mill/playlib/api/RouteCompilerWorkerApi

mill.scalalib.GenIdea.idea java.lang.NoClassDefFoundError: mill/playlib/api/RouteCompilerWorkerApi
    java.lang.ClassLoader.defineClass1(Native Method)
    java.lang.ClassLoader.defineClass(ClassLoader.java:756)
    java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
    java.net.URLClassLoader.access$100(URLClassLoader.java:74)
    java.net.URLClassLoader$1.run(URLClassLoader.java:369)
    java.net.URLClassLoader$1.run(URLClassLoader.java:363)
    java.security.AccessController.doPrivileged(Native Method)
    java.net.URLClassLoader.findClass(URLClassLoader.java:362)
    mill.api.ClassLoader$$anon$1.findClass(ClassLoader.scala:23)
    java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    mill.playlib.RouteCompilerWorker.bridge(RouteCompilerWorkerApi.scala:27)
    mill.playlib.RouteCompilerWorker.compile(RouteCompilerWorkerApi.scala:48)
    mill.playlib.RouterModule.$anonfun$compileRouter$2(RouterModule.scala:62)
    mill.define.ApplyerGenerated.$anonfun$zipMap$3(ApplicativeGenerated.scala:9)
    mill.define.Task$MappedDest.evaluate(Task.scala:392)
    mill.eval.Evaluator.$anonfun$evaluateGroup$13(Evaluator.scala:476)
    scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
    scala.Console$.withErr(Console.scala:193)
    mill.eval.Evaluator.$anonfun$evaluateGroup$12(Evaluator.scala:476)
    scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
    scala.Console$.withOut(Console.scala:164)
    mill.eval.Evaluator.$anonfun$evaluateGroup$11(Evaluator.scala:475)
    scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
    scala.Console$.withIn(Console.scala:227)
    mill.eval.Evaluator.$anonfun$evaluateGroup$8(Evaluator.scala:474)
    mill.eval.Evaluator.$anonfun$evaluateGroup$8$adapted(Evaluator.scala:426)
    scala.collection.immutable.Vector.foreach(Vector.scala:1794)
    mill.eval.Evaluator.evaluateGroup(Evaluator.scala:426)
    mill.eval.Evaluator.evaluateGroupCached(Evaluator.scala:329)
    mill.eval.Evaluator.$anonfun$sequentialEvaluate$2(Evaluator.scala:110)
    scala.collection.IterableOnceOps.foreach(IterableOnce.scala:553)
    scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:551)
    scala.collection.AbstractIterator.foreach(Iterator.scala:1279)
    mill.eval.Evaluator.sequentialEvaluate(Evaluator.scala:93)
    mill.eval.Evaluator.evaluate(Evaluator.scala:79)
    mill.scalalib.GenIdeaImpl.$anonfun$xmlFileLayout$90(GenIdeaImpl.scala:379)
    scala.collection.immutable.Vector1.map(Vector.scala:1824)
    scala.collection.immutable.Vector1.map(Vector.scala:348)
    mill.scalalib.GenIdeaImpl.xmlFileLayout(GenIdeaImpl.scala:373)
    mill.scalalib.GenIdeaImpl.run(GenIdeaImpl.scala:36)
    mill.scalalib.GenIdea$.$anonfun$idea$2(GenIdea.scala:14)
    scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)

Can you post your build.sc or some minimized repro?

import coursier.maven.MavenRepository
import mill._
import scalalib._
import scalajslib._
import publish._
import mill.modules.Jvm.createAssembly
import $ivy.com.lihaoyi::mill-contrib-playlib:$MILL_VERSION
import mill.playlib._
object server extends PlayModule {
//config
override def scalaVersion = T {
"2.12.10"
}
override def playVersion = T {
"2.7.5"
}
override def twirlVersion = T {
"1.4.2"
}
override def ivyDeps = T {
super.ivyDeps() ++ Agg(ws(), filters())
}
object test extends PlayTests
}

This is mill 0.7.3, it is ok at 0.6x

Does your project compile successfully? mill __.compile

I can't reproduce your issue. I can successfully generate a IDEA project with mill 0.7.3 and the above posted build.sc.

I've seen it too, or at least I think it is the same classloader issue.
Using 0.7.3
On Darwin
Using Zulu Java 8, 11, 14
./mill core.compileRouter
Exception in thread "MillServerActionRunner" java.lang.NoClassDefFoundError: mill/playlib/api/RouteCompilerWorkerApi
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151)
at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:514)
at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:422)
at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:416)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:691)
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:415)
at mill.api.ClassLoader$$anon$1.findClass(ClassLoader.scala:23)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at mill.playlib.RouteCompilerWorker.bridge(RouteCompilerWorkerApi.scala:27)
at mill.playlib.RouteCompilerWorker.compile(RouteCompilerWorkerApi.scala:48)
at mill.playlib.RouterModule.$anonfun$compileRouter$2(RouterModule.scala:62)
at mill.define.ApplyerGenerated.$anonfun$zipMap$3(ApplicativeGenerated.scala:9)
at mill.define.Task$MappedDest.evaluate(Task.scala:392)
at mill.eval.Evaluator.$anonfun$evaluateGroup$13(Evaluator.scala:476)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
at scala.Console$.withErr(Console.scala:193)
at mill.eval.Evaluator.$anonfun$evaluateGroup$12(Evaluator.scala:476)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
at scala.Console$.withOut(Console.scala:164)
at mill.eval.Evaluator.$anonfun$evaluateGroup$11(Evaluator.scala:475)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
at scala.Console$.withIn(Console.scala:227)
at mill.eval.Evaluator.$anonfun$evaluateGroup$8(Evaluator.scala:474)
at mill.eval.Evaluator.$anonfun$evaluateGroup$8$adapted(Evaluator.scala:426)
at scala.collection.immutable.Vector.foreach(Vector.scala:1794)
at mill.eval.Evaluator.evaluateGroup(Evaluator.scala:426)
at mill.eval.Evaluator.evaluateGroupCached(Evaluator.scala:329)
at mill.eval.Evaluator.$anonfun$sequentialEvaluate$2(Evaluator.scala:110)
at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:553)
at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:551)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1279)
at mill.eval.Evaluator.sequentialEvaluate(Evaluator.scala:93)
at mill.eval.Evaluator.evaluate(Evaluator.scala:79)
at mill.main.RunScript$.evaluate(RunScript.scala:202)
at mill.main.RunScript$.$anonfun$evaluateTasks$1(RunScript.scala:188)
at scala.util.Either.map(Either.scala:382)
at mill.main.RunScript$.evaluateTasks(RunScript.scala:187)
at mill.main.RunScript$.$anonfun$runScript$4(RunScript.scala:66)
at ammonite.util.Res$Success.flatMap(Res.scala:62)
at mill.main.RunScript$.runScript(RunScript.scala:65)
at mill.main.MainRunner.$anonfun$runScript$1(MainRunner.scala:115)
at mill.main.MainRunner.watchLoop2(MainRunner.scala:64)
at mill.main.MainRunner.runScript(MainRunner.scala:90)
at mill.MillMain$.main0(MillMain.scala:239)
at mill.main.MillServerMain$.main0(MillServerMain.scala:67)
at mill.main.Server.$anonfun$handleRun$1(MillServerMain.scala:154)
at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: java.lang.ClassNotFoundException: mill.playlib.api.RouteCompilerWorkerApi
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at mill.api.ClassLoader$$anon$1.findClass(ClassLoader.scala:22)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)

@svefors Your not even trying to generate the IDEA files. It looks to me the issue is in the playlib contrib module. If I run the same command with mill 0.7.3 on the above build.sc, I get a different error. I guess I still need more info to reproduce the issue:
10:27:49 θ60° lefou:/tmp/mill-playlib 3s $ mill -i __.compileRouter
Compiling /tmp/mill-playlib/build.sc
[10/11] server.routeFiles
1 targets failed
server.routeFiles java.nio.file.NoSuchFileException: /tmp/mill-playlib/server/conf
    os.walk$stream$.attrs(ListOps.scala:198)
    os.walk$stream$.apply(ListOps.scala:161)
    os.walk$.apply(ListOps.scala:95)
    mill.playlib.RouterModule.$anonfun$routeFiles$3(RouterModule.scala:16)
    scala.collection.StrictOptimizedIterableOps.flatMap(StrictOptimizedIterableOps.scala:117)
    scala.collection.StrictOptimizedIterableOps.flatMap$(StrictOptimizedIterableOps.scala:104)
    scala.collection.immutable.Vector.flatMap(Vector.scala:113)
    mill.playlib.RouterModule.$anonfun$routeFiles$2(RouterModule.scala:16)
    mill.define.Task$MappedDest.evaluate(Task.scala:392)

But of course, generating the IDEA files works.
10:30:53 lefou:/tmp/mill-playlib 130 $ mill -i mill.scalalib.GenIdea/idea
[1/1] mill.scalalib.GenIdea.idea
Analyzing modules ...
[36/37] server.test.ideaCompileOutput
Writing IDEA project files ...

@svefors This seems to be unrelated to generating the IDEA files. It looks to me the issue is in the playlib contrib module. If I run the same command with mill 0.7.3 on the above build.sc, I get a different error though. I guess I still need more info to reproduce the issue:
10:27:49 θ60° lefou:/tmp/mill-playlib 3s $ mill -i __.compileRouter
Compiling /tmp/mill-playlib/build.sc
[10/11] server.routeFiles
1 targets failed
server.routeFiles java.nio.file.NoSuchFileException: /tmp/mill-playlib/server/conf

I think you have to add the play directories to the project.

@svefors This seems to be unrelated to generating the IDEA files. It looks to me the issue is in the playlib contrib module.

I think you are right about the playlib contrib module. I see some change in there related to an upgrade of Mill to scala 2.13. There is a comment in the pull request that since Play 2.6 and 2.7 don't support scala 2.13 it will work in a different way than the other modules.
"Only scalanativelib and playlib cannot be upgraded to 2.13 due to dependencies; we leave those in 2.12, and turn their respective *.api modules into pure Java modules so they can be shared between both the Scala 2.12 *Worker an the Scala 2.13 *Module modules"
the "mill/playlib/api/RouteCompilerWorkerApi" was a scala file but is now a java.

I can confirm that mill 0.7.3 fails for the given project.
08:48:09 lefou:/tmp/mill-play-sample master ± mill --mill-version 0.6.2 __.compile
[77/77] core.test.compile
08:48:13 lefou:/tmp/mill-play-sample master 2s ± mill --mill-version 0.6.2 clean
[1/1] clean
08:48:18 lefou:/tmp/mill-play-sample master ± mill --mill-version 0.7.3 __.compile
Mill version changed (0.6.2 -> 0.7.3), re-starting server
Compiling /tmp/mill-play-sample/build.sc
[18/76] core.compileRouter
Exception in thread "MillServerActionRunner" java.lang.NoClassDefFoundError: mill/playlib/api/RouteCompilerWorkerApi
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
        at mill.api.ClassLoader$$anon$1.findClass(ClassLoader.scala:23)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        at mill.playlib.RouteCompilerWorker.bridge(RouteCompilerWorkerApi.scala:27)
        at mill.playlib.RouteCompilerWorker.compile(RouteCompilerWorkerApi.scala:48)
        at mill.playlib.RouterModule.$anonfun$compileRouter$2(RouterModule.scala:62)
        at mill.define.ApplyerGenerated.$anonfun$zipMap$3(ApplicativeGenerated.scala:9)
        at mill.define.Task$MappedDest.evaluate(Task.scala:392)
        at mill.eval.Evaluator.$anonfun$evaluateGroup$13(Evaluator.scala:476)
        at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
        at scala.Console$.withErr(Console.scala:193)
        at mill.eval.Evaluator.$anonfun$evaluateGroup$12(Evaluator.scala:476)
        at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
        at scala.Console$.withOut(Console.scala:164)
        at mill.eval.Evaluator.$anonfun$evaluateGroup$11(Evaluator.scala:475)
        at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
        at scala.Console$.withIn(Console.scala:227)
        at mill.eval.Evaluator.$anonfun$evaluateGroup$8(Evaluator.scala:474)
        at mill.eval.Evaluator.$anonfun$evaluateGroup$8$adapted(Evaluator.scala:426)
        at scala.collection.immutable.Vector.foreach(Vector.scala:1794)
        at mill.eval.Evaluator.evaluateGroup(Evaluator.scala:426)
        at mill.eval.Evaluator.evaluateGroupCached(Evaluator.scala:329)
        at mill.eval.Evaluator.$anonfun$sequentialEvaluate$2(Evaluator.scala:110)
        at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:553)
        at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:551)
        at scala.collection.AbstractIterator.foreach(Iterator.scala:1279)
        at mill.eval.Evaluator.sequentialEvaluate(Evaluator.scala:93)
        at mill.eval.Evaluator.evaluate(Evaluator.scala:79)
        at mill.main.RunScript$.evaluate(RunScript.scala:202)
        at mill.main.RunScript$.$anonfun$evaluateTasks$1(RunScript.scala:188)
        at scala.util.Either.map(Either.scala:382)
        at mill.main.RunScript$.evaluateTasks(RunScript.scala:187)
        at mill.main.RunScript$.$anonfun$runScript$4(RunScript.scala:66)
        at ammonite.util.Res$Success.flatMap(Res.scala:62)
        at mill.main.RunScript$.runScript(RunScript.scala:65)
        at mill.main.MainRunner.$anonfun$runScript$1(MainRunner.scala:115)
        at mill.main.MainRunner.watchLoop2(MainRunner.scala:64)
        at mill.main.MainRunner.runScript(MainRunner.scala:90)
        at mill.MillMain$.main0(MillMain.scala:239)
        at mill.main.MillServerMain$.main0(MillServerMain.scala:67)
        at mill.main.Server.$anonfun$handleRun$1(MillServerMain.scala:154)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: mill.playlib.api.RouteCompilerWorkerApi
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        at mill.api.ClassLoader$$anon$1.findClass(ClassLoader.scala:22)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        ... 51 more

Any updates? Play framework cannot be built using Mill now because of this issue 😒

There where PRs trying to fix this in the past. Unfortunately all went silent, but some were reviewed with useful info how to fix it.

Fixed by #1324

Issue still not properly fixed, but I create a new PR #1330.

authors: dkovalenko imxieshuang lefou svefors

repo: com-lihaoyi/mill


text:
Overhaul IDE and Installation page

Added screenshots to the getting started steps for IntelliJ and VSCode

Put IDE support first, on the assumption that most people will be using an example project with a bootstrap script already set up

Put global installation last, since it's both very verbose and also unlikely to be used (since we encourage bootstrap scripts)

Removed a bunch of the command line bloop/bsp instructions, since this is now done transparently by the IDE and wont be of interest to users

Removed some of the blurb about millw. Having two bootstrap scripts cannot avoid being confusing, we should merge them so there is only one choice going forward.

Added screenshots to the getting started steps for IntelliJ and VSCode

Nice

Put IDE support first, on the assumption that most people will be using an example project with a bootstrap script already set up

This assumption don't really match my personal taste or how I digest/consume products.

Removed some of the blurb about millw. Having two bootstrap scripts cannot avoid being confusing, we should merge them so there is only one choice going forward.

One property of millw is, it provides support for all Mill versions and all operating systems. It also has some convenience features like finding/using the latest released Mill version automatically. In previous discussions we had about this topic, you were against keeping support for older versions in the in-repo script and wanted a rather lean script. That at least is my personal takeaway.
So, having millw follow its own versioning makes sense. It's definitely not the most user friendly setup.
Ideally, we only have one script, and keep the latest version of it as a copy in root of the Mill repo. That follows the scheme we propose as best practice in our documentation.

authors: lefou lihaoyi


text:
Fix property handling and add tests and docs

Fixes https://github.com/com-lihaoyi/mill/issues/3789. We just accidentally flipped the conditional and didn't have any tests that verify this behavior, so I added some example tests that also serve to explain the feature in the docs

@lihaoyi Were you able to reproduce issue #3789 with these test cases, before you fixed it? How?

@lefou yeah the test cases failed without the included fix


text:
build(deps): Bump minimum Go version to v1.23

Closes #4039
cometbft-db PR: https://github.com/cometbft/cometbft-db/pull/194

PR checklist

[ ] Tests written/updated
[x] Changelog entry added in .changelog (we use unclog to manage our changelog)
[x] Updated relevant documentation (docs/ or spec/) and code comments

This error is also new:
panic: test timed out after 6m40s
	running tests:
		TestBroadcastEvidence_DuplicateVoteEvidence (6m40s)

And it also fails locally.

Another new test failure:
FAIL	github.com/cometbft/cometbft/light	460.023s
CometBFT running!
coverage: 65.7% of statements
panic: test timed out after 6m40s
	running tests:
		TestProvider (6m40s)

Also fails locally.

==================
WARNING: DATA RACE
Write at 0x00c000396570 by goroutine 25:
  github.com/cometbft/cometbft/internal/autofile.(*Group).RotateFile()
      /Users/antonk/work/informal/cometbft/internal/autofile/group.go:317 +0x214
  github.com/cometbft/cometbft/internal/autofile.(*Group).checkHeadSizeLimit()
      /Users/antonk/work/informal/cometbft/internal/autofile/group.go:255 +0x78
  github.com/cometbft/cometbft/internal/autofile.(*Group).processTicks()
      /Users/antonk/work/informal/cometbft/internal/autofile/group.go:235 +0xa0
  github.com/cometbft/cometbft/internal/autofile.(*Group).OnStart.gowrap1()
      /Users/antonk/work/informal/cometbft/internal/autofile/group.go:141 +0x34

Previous read at 0x00c000396570 by goroutine 20:
  github.com/cometbft/cometbft/internal/autofile.(*Group).MaxIndex()
      /Users/antonk/work/informal/cometbft/internal/autofile/group.go:184 +0x84
  github.com/cometbft/cometbft/internal/consensus.(*BaseWAL).SearchForEndHeight()
      /Users/antonk/work/informal/cometbft/internal/consensus/wal.go:244 +0x30
  github.com/cometbft/cometbft/internal/consensus.TestWALTruncate()
      /Users/antonk/work/informal/cometbft/internal/consensus/wal_test.go:76 +0x414
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/antonk/go/pkg/mod/github.com/syndtr/goleveldb@v1.0.1-0.20210819022825-2ae1ddf74ef7/leveldb/storage/file_storage.go:458 +0x364
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/fmt/scan.go:143 +0x94
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/fmt/scan.go:114 +0x1ec
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/antonk/go/pkg/mod/github.com/syndtr/goleveldb@v1.0.1-0.20210819022825-2ae1ddf74ef7/leveldb/storage/file_storage.go:657 +0x138
  fmt.(*ss).doScanf()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/fmt/scan.go:1230 +0x328
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/fmt/scan.go:143 +0x94
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/fmt/scan.go:114 +0x130
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/antonk/go/pkg/mod/github.com/syndtr/goleveldb@v1.0.1-0.20210819022825-2ae1ddf74ef7/leveldb/storage/file_storage.go:643 +0x74
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/antonk/go/pkg/mod/github.com/syndtr/goleveldb@v1.0.1-0.20210819022825-2ae1ddf74ef7/leveldb/storage/file_storage.go:458 +0x364
  github.com/syndtr/goleveldb/leveldb.(*DB).checkAndCleanFiles()
      /Users/antonk/go/pkg/mod/github.com/syndtr/goleveldb@v1.0.1-0.20210819022825-2ae1ddf74ef7/leveldb/db_util.go:52 +0x1d0
  github.com/syndtr/goleveldb/leveldb.openDB()
      /Users/antonk/go/pkg/mod/github.com/syndtr/goleveldb@v1.0.1-0.20210819022825-2ae1ddf74ef7/leveldb/db.go:136 +0x674
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/antonk/go/pkg/mod/github.com/syndtr/goleveldb@v1.0.1-0.20210819022825-2ae1ddf74ef7/leveldb/storage/file_storage.go:458 +0x364
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/fmt/scan.go:143 +0x94
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/fmt/scan.go:114 +0x130
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/antonk/go/pkg/mod/github.com/syndtr/goleveldb@v1.0.1-0.20210819022825-2ae1ddf74ef7/leveldb/storage/file_storage.go:643 +0x74
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/antonk/go/pkg/mod/github.com/syndtr/goleveldb@v1.0.1-0.20210819022825-2ae1ddf74ef7/leveldb/storage/file_storage.go:458 +0x364
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/fmt/scan.go:143 +0x94
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/fmt/scan.go:114 +0x130
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/antonk/go/pkg/mod/github.com/syndtr/goleveldb@v1.0.1-0.20210819022825-2ae1ddf74ef7/leveldb/storage/file_storage.go:643 +0x74
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/antonk/go/pkg/mod/github.com/syndtr/goleveldb@v1.0.1-0.20210819022825-2ae1ddf74ef7/leveldb/storage/file_storage.go:458 +0x364
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/fmt/scan.go:143 +0x94
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/fmt/scan.go:114 +0x1ec
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/antonk/go/pkg/mod/github.com/syndtr/goleveldb@v1.0.1-0.20210819022825-2ae1ddf74ef7/leveldb/storage/file_storage.go:657 +0x138
  fmt.(*ss).doScanf()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/fmt/scan.go:1230 +0x328
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/fmt/scan.go:143 +0x94
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/fmt/scan.go:114 +0x130
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/antonk/go/pkg/mod/github.com/syndtr/goleveldb@v1.0.1-0.20210819022825-2ae1ddf74ef7/leveldb/storage/file_storage.go:643 +0x74
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/antonk/go/pkg/mod/github.com/syndtr/goleveldb@v1.0.1-0.20210819022825-2ae1ddf74ef7/leveldb/storage/file_storage.go:458 +0x364
  github.com/syndtr/goleveldb/leveldb.(*DB).recoverJournal()
      /Users/antonk/go/pkg/mod/github.com/syndtr/goleveldb@v1.0.1-0.20210819022825-2ae1ddf74ef7/leveldb/db.go:482 +0x84
  github.com/syndtr/goleveldb/leveldb.openDB()
      /Users/antonk/go/pkg/mod/github.com/syndtr/goleveldb@v1.0.1-0.20210819022825-2ae1ddf74ef7/leveldb/db.go:131 +0x668
  github.com/syndtr/goleveldb/leveldb.Open()
      /Users/antonk/go/pkg/mod/github.com/syndtr/goleveldb@v1.0.1-0.20210819022825-2ae1ddf74ef7/leveldb/db.go:203 +0x274
  fmt.Fscanf()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/fmt/scan.go:143 +0x94
  fmt.Sscanf()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/fmt/scan.go:114 +0x130
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /Users/antonk/go/pkg/mod/github.com/syndtr/goleveldb@v1.0.1-0.20210819022825-2ae1ddf74ef7/leveldb/storage/file_storage.go:643 +0x74
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /Users/antonk/go/pkg/mod/github.com/syndtr/goleveldb@v1.0.1-0.20210819022825-2ae1ddf74ef7/leveldb/storage/file_storage.go:458 +0x364
  github.com/syndtr/goleveldb/leveldb.(*session).recover.func1()
      /Users/antonk/go/pkg/mod/github.com/syndtr/goleveldb@v1.0.1-0.20210819022825-2ae1ddf74ef7/leveldb/session.go:134 +0xb4
  runtime.deferreturn()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/runtime/panic.go:605 +0x5c
  github.com/syndtr/goleveldb/leveldb.Open()
      /Users/antonk/go/pkg/mod/github.com/syndtr/goleveldb@v1.0.1-0.20210819022825-2ae1ddf74ef7/leveldb/db.go:189 +0xb0
  github.com/syndtr/goleveldb/leveldb.OpenFile()
      /Users/antonk/go/pkg/mod/github.com/syndtr/goleveldb@v1.0.1-0.20210819022825-2ae1ddf74ef7/leveldb/db.go:225 +0x6c
  github.com/cometbft/cometbft-db.NewGoLevelDBWithOpts()
      /Users/antonk/go/pkg/mod/github.com/cometbft/cometbft-db@v0.15.0/goleveldb.go:32 +0xa8
  github.com/cometbft/cometbft-db.NewGoLevelDB()
      /Users/antonk/go/pkg/mod/github.com/cometbft/cometbft-db@v0.15.0/goleveldb.go:27 +0x48
  github.com/cometbft/cometbft/abci/example/kvstore.NewPersistentApplication()
      /Users/antonk/work/informal/cometbft/abci/example/kvstore/kvstore.go:65 +0x2c
  github.com/cometbft/cometbft/internal/consensus.WALGenerateNBlocks()
      /Users/antonk/work/informal/cometbft/internal/consensus/wal_generator.go:34 +0xfc
  github.com/cometbft/cometbft/internal/consensus.TestWALTruncate()
      /Users/antonk/work/informal/cometbft/internal/consensus/wal_test.go:66 +0x350
  testing.tRunner()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/testing/testing.go:1690 +0x184
  testing.(*T).Run.gowrap1()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/testing/testing.go:1743 +0x40

Goroutine 25 (running) created at:
  github.com/cometbft/cometbft/internal/autofile.(*Group).OnStart()
      /Users/antonk/work/informal/cometbft/internal/autofile/group.go:141 +0xe8
  github.com/cometbft/cometbft/libs/service.(*BaseService).Start()
      /Users/antonk/work/informal/cometbft/libs/service/service.go:146 +0x4a8
  github.com/cometbft/cometbft/internal/consensus.(*BaseWAL).OnStart()
      /Users/antonk/work/informal/cometbft/internal/consensus/wal.go:134 +0xa4
  github.com/cometbft/cometbft/libs/service.(*BaseService).Start()
      /Users/antonk/work/informal/cometbft/libs/service/service.go:146 +0x4a8
  github.com/cometbft/cometbft/internal/consensus.TestWALTruncate()
      /Users/antonk/work/informal/cometbft/internal/consensus/wal_test.go:52 +0x2a0
  testing.tRunner()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/testing/testing.go:1690 +0x184
  testing.(*T).Run.gowrap1()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/testing/testing.go:1743 +0x40

Goroutine 20 (running) created at:
  testing.(*T).Run()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/testing/testing.go:1743 +0x5e0
  testing.runTests.func1()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/testing/testing.go:2168 +0x80
  testing.tRunner()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/testing/testing.go:1690 +0x184
  testing.runTests()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/testing/testing.go:2166 +0x6e0
  testing.(*M).Run()
      /opt/homebrew/Cellar/go/1.23.1/libexec/src/testing/testing.go:2034 +0xb74
  github.com/cometbft/cometbft/internal/consensus.TestMain()
      /Users/antonk/work/informal/cometbft/internal/consensus/replay_test.go:44 +0x168
  main.main()
      _testmain.go:259 +0x114
==================

authors: cason melekes

repo: cometbft/cometbft


text:
HEVC log file not created correctly during CARLA simulation.

Describe the bug
When I run a simulation on CARLA, I get the log video files in hevc.mkv format. When I try to open the video with VLC, only a quick visualization of the video is shown (less than half a second). Then the video stops.
How to reproduce or log data
It happens every time I run a simulation and a video/log files are created. To do this I followed the installation instructions.
Expected behavior
A creation of a correct HEVC file.
Additional context
I tried to find the problem by checking the VLC log file. It says "mkv error: cannot use the segment". Then I tried to extract the frames of the video using ffmpeg. I only could get 2 frames. However, the video file that I used is +40 Mb, which corresponds to around 20 seconds of simulation.
The bz2 log file seems to be ok.
Operating system: Ubuntu 20.04

HVECs are currently encoded using OMX which I don't think has a PC version. So on the computer we store the logs as raw.
If you want to implement this you need another implementation of VideoEoncoder in selfdrive/loggerd powered by something like ffmpeg and use that on the PC.

Would implementing libde265 be a viable solution?

Since it's for development only I don't attach too much value to the exact backend. As long as it's not too much code and nicely abstracted in a VideoEncoder class it's fine.

Closing this as there's nothing really to track here. This is more of a nice to have.

repo: commaai/openpilot


text:
Toyota: use common brake pressed signal

A PR for the Lexus ES (https://github.com/commaai/openpilot/pull/19638) was to use a bit now on a message called BRAKE_2, to fix occasions where BRAKE_MODULE didn't catch brake presses.
However there exists another bit on PCM_CRUISE_2 that seems to be common across all platforms (need to verify from a lot of data): https://github.com/commaai/opendbc/pull/551
If it is, and it matches the BRAKE_2 message on the Lexus ES, then we can use that bit in openpilot and panda.

It appears this signal is sometimes 1 when the normal brake pressed bit is 0 when when there's a build-up of brake pressure that the ACC system (nor the user) isn't requesting. Might be able to check for mismatches for the Sienna issue here: #24146

Unclear if this is feasible and not needed at the moment.

@sshane still valuable to keep this open?

authors: adeebshihadeh sshane


text:
I want to add a vehicle
Hyundai 2023 Staria
발음듣기복사하기

(Ecu.fwdRadar, 0x7D0, None): [
b'\xf1\x00US4_ RDR ----- 1.00 1.00 99110-CG000 ',
],
(Ecu.cornerRadar, 0x7B7, None): [
b'\xf1\x00US4 BCW RR 2.00 , 2.00 (xT\x97#\x01S\x06\x14',
],
(Ecu.fwdCamera, 0x7C4, None): [
b'\xf1\x00US4 MFC AT KOR LHD 1.00 1.06 99211-CG000 230524',
],
(Ecu.hvac, 0x7B3, None): [
b'\xf1\x00US4 97255-CG160CONTROL UNIT 1.02.00US4DATC(-)0.9 ',
],

What is your dongle id? Can you open a pull request with a car port? Generally, Hyundai car ports are rather simple

What is your dongle id? Can you open a pull request with a car port? Generally, Hyundai car ports are rather simple, as long as it has ACC and LKAS.
Closing if we get no response as this isn't actionable without more info.

This is being actively worked on. Can close this issue for now.

What is your dongle id? Can you open a pull request with a car port? Generally, Hyundai car ports are rather simple, as long as it has ACC and LKAS.
Closing if we get no response as this isn't actionable without more info.

This is being actively worked on. Can close this issue for now.

I placed an order to install comma 3x on my Straa vehicle. When my product arrives, I want to share the data.


text:
fix wrong order of cleanup calls

delete Context before publisher can potentially hang forever

Killing old publisher: androidLog
Killing old publisher: androidLog
Killing old publisher: androidLog
Killing old publisher: androidLog
Killing old publisher: androidLog
Killing old publisher: androidLog

Hmm, we should fix this in cereal.

authors: deanlee geohot


text:
CI: add option to build a scons cache docker image

If we build a docker image that contains the scons cache, we can use --mount in buildkit to use this cache in other docker images, without it bloating the size of the image

Might be nice to break out all those docker helper environment variables into scripts in order to make running locally easier.

Btw, this doesn't quite seem to make sense to split up. If I understand this right, this PR on its own doesn't do anything?

Btw, this doesn't quite seem to make sense to split up. If I understand this right, this PR on its own doesn't do anything?

yep it just adds the option to setup, but its disabled by default. I'll just close this one and move to https://github.com/commaai/openpilot/pull/29436


text:
Flawed Examples

@mizipzor @nemec @ericnewton76 @gimmemoore @Thilas
Hi, the example code on the project home page here is flawed. There's a comma missing after false in the Options class and the compiler cannot resolve RunOptionsAndReturnExitCode. I also see numerous problems reported by others about examples in general that have not been responded to for over a year!
In fact neither RunOptionsAndReturnExitCode nor HandleParseError appear when I search your source code whereas WithParsed for example is clearly part of the source.
I installed this from NuGet and have version 2.3.0 for .Net 4.6 installed. Bear in mind I'm seeking a solid library here that we can use for all of our console apps going forward, these initial frustrations do not inspire confidence.
If this project has been abandoned or is not being maintained please let us know, at this stage I have no option but to look at alternatives (or even develop my own).

Hi @Korporal, RunOptionsAndReturnExitCode and HandleParseError are just placeholders for you to place your own delegates. They are not part of the library. If you want something you can copy-paste without touching, try the QuickStart.

@nemec - OK thanks for that note and yes the simple quick start is fine. Perhaps someone can update that README to emphasize the presence of place holders as well as explain a little about what they represent?

Readme is fixed.

authors: Korporal moh-hassan nemec

repo: commandlineparser/commandline


text:
Demo - Customize Ocean

@tomt1664
I've so far replaced BTC with CBT as the host coin and changed the creation time to generate a custom genesis block.
There's currently an initial issuance of 21Mil CBT which is OP_TRUE (available to any wallet). I guess we'll need to change this in such a way that only the central node can spend these, so probably signing these with a private key which will then be imported to the main node wallet?

Yes, they can be transferred to the master node key. They can then be released with a peg-in from another blockchain.

repo: commerceblock/ocean


text:
NextAuth.js の仕様の調査

フロントエンド側で SaaS を使ったログイン管理をしたいとのことだったので、その場合に API 側でどんな実装が必要になるか調査。
軽い話として jwt をつけてリクエストする、といったことを聞いた気がするが、その jwt 自体はこちらの API ではない場所で作成されるかのような話に聞こえた。
その辺よくわかってないので、まずは NextAuth.js の仕様・機能の調査。
API 側での実装方針については、仕様調査後に別の issue を立てる予定。

デフォルトでの暗号化のアルゴリズム。
参考: https://next-auth.js.org/faq#json-web-tokens

Does NextAuth.js use JSON Web Tokens?
...
Since v4 all our JWT tokens are now encrypted by default with A256GCM.

参考: next-auth-example のプロジェクト内ソース

    FacebookProvider({
      clientId: process.env.FACEBOOK_ID,
      clientSecret: process.env.FACEBOOK_SECRET,
    }),

この process.env.FACEBOOK_SECRET が jwt のシグニチャ部分を生成の際に使用するシークレットの様子。
参考 URL の周辺コードを見ると、OAuth プロバイダごとに別々の secret を設定する様子に見える。
これらの secret をフロントエンドとバックエンドで共通で持つ必要がありそう。
(#4 に関わりそう)
また jwt のペイロードの中で
{
  "oauth_provider": "Google"
}

みたいな情報も含めてもらわないと、API 側で復号するときにどの secret を使ったら良いか判別できない気がする。

私もまだよくわかってないのですが、共有する必要があるのは https://next-auth.js.org/configuration/options#secret くらいだけじゃないかと思います。
FacebookProviderに渡しているのは、Facebook側のAPI用のトークンとかで、JWTには関係ないのではないかと。
で、バックエンドからはどこの認証プロバイダ経由で認証していても関係ないので、そちらも大丈夫な気がしてます。
@keitakn すみません、私こんなあやふやな理解しかないんですが、合ってますでしょうか……？

@HAYASHI-Masayuki
https://github.com/commew/timelogger-api/issues/6#issuecomment-1408444298
こちらで合っております！
APIの認証に関しては Authorization ヘッダーにJWTトークンを付けてリクエストするので、その中身を検証して頂き、正常であればリクエストを通して頂くという形になるかと思います。
どのプロバイダ（Google、　Facebook, etc）で認証したかについてですが、初期リリースでは必要ないと思います。
ですが今後、複数のプロバイダで登録が可能になると、Myページなどから別のプロバイダの紐付けを行う機能などを実装する場合はフロント側からどのプロバイダで認証したかの情報をバックエンドに伝える必要が出てくると思います。
※以下はQiitaのMyページで1つのQiitaアカウントにGitHub、Twitter、Googleなどの複数のプロバイダの紐付けが可能になっています。

どちらにせよ、https://github.com/commew/timelogger-web/issues/13 が終わった段階でこちらから必要な情報を改めて提供させて頂きます。

ご確認ありがとうございます。
確かに、 https://github.com/commew/timelogger-api/issues/6#issuecomment-1408444298 こちらの通りですね！

どのプロバイダ（Google、　Facebook, etc）で認証したかについてですが、初期リリースでは必要ないと思います。

ですが今後、複数のプロバイダで登録が可能になると、Myページなどから別のプロバイダの紐付けを行う機能などを実装する場合はフロント側からどのプロバイダで認証したかの情報をバックエンドに伝える必要が出てくると思います。

どちらにせよ、https://github.com/commew/timelogger-web/issues/13 が終わった段階でこちらから必要な情報を改めて提供させて頂きます。

こちらも共有いただきありがとうございます。
@HAYASHI-Masayuki さん、@keitakn さんにご確認いただいて仕様は理解できましたので、こちらの issue は完了としたいと思います。
お二人ともありがとうございました！

authors: HAYASHI-Masayuki HaruyaFujimoto keitakn

repo: commew/timelogger-api


text:
Use newer ruamel.yaml

avoiding stdout printout
xxy values_iter
xxy values_iter
xxy values_iter
xxy values_iter
xxy values_iter
which obviously broke --print-rdf

Seems to have related to https://bitbucket.org/ruamel/yaml/pull-requests/13/commentspy-remove-debug-message/diff

repo: common-workflow-language/cwlviewer


text:
Gallery only shows latest 3 images

Summary:
Gallery only shows latest 3 images, seemingly no way to see more.
Steps to reproduce:

Open the app with an account that has 100+ uploads
Only the last 3 ones can be seen

Expected behavior:
I expect to be able to see my past pictures too.
Observed behavior:
Only 3 pictures visible.
Device and Android version:
Android 7.1.2
Commons app version:
Commons app 2.6.7

Working on this issue.

I can't seem to reproduce this. Do you have Set Recent Upload Limit in settings on by chance?

wow you're right I did not remember about this setting haha
I was reacting to this comment from a user:

in the past the app allowed people to see a list of their own (latest) uploads. I restarted the app and now I can't even do that.
Maybe they did the same mistake as me?

repo: commons-app/apps-android-commons


text:
Tap "Contributions" to go back to top

Scroll down to your 359th contribution. Now wish to go back up to the top. I say that touching the word "Contributions" at the top of the screen should scroll it all the way back up to the top again.

(There is another word  "Contributions" at the bottom of the screen, but I guess fixing one is enough.)

Pressing "Back" on the contributions screen takes you back to the top. It is the same as in the Facebook app.
I agree that tapping both "Contributions" labels (at the top and bottom) should also take back to the top contribution.

Pressing "Back" on the contributions screen takes you back to the top. It is the same as in the Facebook app.

But in other apps, pressing the cellphone's back button might even throw us out of the app, users are afraid to try.

Hi, I'm participating in this year's hacktoberfest. I've set up the project locally, familiarized myself with the codebase and come up with a working solution. Could you please assign this to me and put the hacktoberfest label on this issue?
Proposed solution, please let me know if this is feasible:
From MainActivity.java, call public method scrollToTop() in ContributionsFragment.java which calls another public scrollToTop() in ContributionsListFragment.java which finally calls rvContributionsList.smoothScrollToPosition(0).

authors: Open-Sorcerer jidanni nicolas-raoul


text:
Upload via Nearby: must not ask "Is this a picture of ..."

https://github.com/user-attachments/assets/959ca058-b3be-4fae-b894-fbd1cd1dab98

Hi @nicolas-raoul , was "mtst nft" a typo by any chance? 😅

I would like to work on this issue.

@angrezichatterbox It's yours, thanks. :)

I would like to know if this issue requires me to delete the line or replace it with something else.

"Is this a picture of ..." should still appear (when relevant) for uploads initiated from other places than Nearby, for instance from the + button.
The whole popup should not be shown when uploading via Nearby.
Is that clearer?

"Is this a picture of ..." should still appear (when relevant) for uploads initiated from other places than Nearby, for instance from the + button.
The whole popup should not be shown when uploading via Nearby.
Is that clearer?

Yes it is clear now. Thanks  :)

When uploading an image from the nearby. I am not able to replicate this. I followed the exact steps shown in the video.


text:
Fix achievements activity share option (#2416)

Fixes #2416
What changes did you make and why?

Use fileProvider instead of Uri.fromFile()
As Uri.fromFile() will not work on Android 7.0+, with a targetSdkVersion of 24 or higher, throws FileUriExposedException

Codecov Report

Merging #2478 into master will decrease coverage by <.01%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           master   #2478      +/-   ##
=========================================
- Coverage    5.81%   5.81%   -0.01%
=========================================
  Files         257     257
  Lines       12210   12213       +3
  Branches     1097    1097
=========================================
  Hits          710     710
- Misses      11442   11445       +3
  Partials       58      58

Impacted Files
Coverage Δ

...nrw/commons/achievements/AchievementsActivity.java
0% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0ef60e0...9a8c618. Read the comment docs.


text:
Failed to get type, Permission Denial, Unable to find configured strategy, requires com.google.android.gm.permission.READ_GMAIL

Hi there,
I tried to reproduce your demo. But I am facing some strange issues here.
All I want is to share the PDFs in my assets.
AndroidManifest.xml:
<provider
    android:name="com.commonsware.cwac.provider.StreamProvider"
    android:authorities="d.a.h.v"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="com.commonsware.cwac.provider.STREAM_PROVIDER_PATHS"
        android:resource="@xml/paths"/>
    <meta-data
        android:name="com.commonsware.cwac.provider.USE_LEGACY_CURSOR_WRAPPER"
        android:value="true"/>
    <meta-data
        android:name="com.commonsware.cwac.provider.USE_URI_FOR_DATA_COLUMN"
        android:value="true"/>
</provider>

paths.xml:
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">

    <asset
        name="in the 'assets' the 'pdfs' folder is shared"
        path="pdfs"/>

</paths>

PdfHelper.java:
public final class PdfHelper {

    private static final String AUTHORITY = "d.a.h.v";
    private static final Uri PROVIDER = Uri.parse("content://" + AUTHORITY);
    private static final String ASSETS = "assets/";

    public static Intent getPdfIntent(final String pdfName) {

        final String path = ASSETS + pdfName;

        final Uri uri = PROVIDER
                .buildUpon()
                .appendPath(StreamProvider.getUriPrefix(AUTHORITY))
                .appendPath(path)
                .build();

        final Intent intent = new Intent(Intent.ACTION_VIEW, uri);
        intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        return intent;
    }
}

Logcat:
d.a.h.v.fragment.DetailDrugFragment - starting intent: Intent { act=android.intent.action.VIEW dat=content://d.a.h.v/ac0c5618-0f1e-4618-baed-4bdfc3b0f692/assets/Gebrauchsinformation Calmvalera Hevert.pdf flg=0x1 }

W/ContentResolver: Failed to get type for: content://d.a.h.v/ac0c5618-0f1e-4618-baed-4bdfc3b0f692/assets%2FGebrauchsinformation%20Calmvalera%20Hevert.pdf (Unable to find configured strategy for content://d.a.h.v/assets/Gebrauchsinformation%20Calmvalera%20Hevert.pdf)

W/ActivityManager: Permission Denial: starting Intent { act=android.intent.action.VIEW dat=content://d.a.h.v/ac0c5618-0f1e-4618-baed-4bdfc3b0f692/assets/Gebrauchsinformation Calmvalera Hevert.pdf flg=0x1 cmp=com.google.android.gm/.browse.TrampolineActivity } from ProcessRecord{d745ec8 14374:d.a.h.v/u0a173} (pid=14374, uid=10173) requires com.google.android.gm.permission.READ_GMAIL

E/AndroidRuntime: FATAL EXCEPTION: main
Process: d.a.h.v, PID: 14374
java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.VIEW dat=content://d.a.h.v/ac0c5618-0f1e-4618-baed-4bdfc3b0f692/assets/Gebrauchsinformation Calmvalera Hevert.pdf flg=0x1 cmp=com.google.android.gm/.browse.TrampolineActivity } from ProcessRecord{d745ec8 14374:d.a.h.v/u0a173} (pid=14374, uid=10173) requires com.google.android.gm.permission.READ_GMAIL
at android.os.Parcel.readException(Parcel.java:1684)
at android.os.Parcel.readException(Parcel.java:1637)
at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:3347)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1690)
at android.app.Activity.startActivityForResult(Activity.java:4289)
at android.app.Activity.startActivityForResult(Activity.java:4247)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:820)
at android.app.Activity.startActivity(Activity.java:4586)
at android.app.Activity.startActivity(Activity.java:4554)
at d.a.h.v.fragment.DetailDrugFragment$5.onClick(DetailDrugFragment.java:210)
at android.view.View.performClick(View.java:5669)
at android.view.View$PerformClick.run(View.java:22546)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6334)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

Best regards,
DaRolla

by the way: the PDF file has spaces in its name...

This is an issue tracker. It is not a support board. There are multiple support options listed in the project documentation. Please use them.
Use appendPath() and appendEncodedPath(), rather than +, when assembling the Uri using the Uri.Builder. I don't know if pdfName is already encoded or not; I am guessing that it is not. So, that would give you:
    final Uri uri = PROVIDER
            .buildUpon()
            .appendPath(StreamProvider.getUriPrefix(AUTHORITY))
            .appendPath("assets")
            .appendPath(pdfName)
            .build();

Well, thanks for your response. I think I got the issue. It's the name in the paths.xml:
Using this causes the problems:
<asset
    name="in the 'assets' the 'pdfs' folder is shared"
    path="pdfs"/>

Using this solves them:
<asset
    name="assets"
    path="pdfs"/>

I learned (from FileProvider) that the name doesn't matter that much.
So is this an issue or not :-)
Greetings,
DaRolla

I assumed that was a copy-paste error in the question, and that the name was assets, since that was what you had in your Java code.

So is this an issue or not :-)

Well , this does point out that I should add some tests for strange name values (spaces, punctuation), and that I should update the docs to point out that name values ought to be simple identifiers. I have filed issue #36 to track that.
Thanks for following up!

authors: DaRolla commonsguy

repo: commonsguy/cwac-provider


text:
QtTesting

Record Macro in Slicer should ask for the file to write AFTER the macro is recorded, not before.

@benjaminlong Could you confirm this is something you already implemented ?

No we only discute of this, because it wasn't a high priority

Ok - Thanks for clarifying.

authors: benjaminlong finetjul jcfr

repo: commontk/CTK


text:
BUG: avoid app freeze on mac

After recent changes to allow native file browsers,
clicking the button would apparently create a dialog
on mac but it was not visible.  Because it was modal
the app would be alive but unresponive.
This change replaces show() and raise() which work
for QDialog with exec() which is apparently needed
for the native dialog to work properly.
https://discourse.slicer.org/t/slicer-is-freezing-on-macos-when-clicking-on-import-dicom-files/18624
Co-authored-by: Andras Lasso lasso@queensu.ca

We could probably don't need this->ImportDialog->setWindowModality(Qt::ApplicationModal); (I think this is the default for modal popups already).
We may also consider using exec() for the query popup, too (instead of raise+show).

We could probably don't need this->ImportDialog->setWindowModality(Qt::ApplicationModal); (I think this is the default for modal popups already).

At least with raise and show this change made the dialog appear, but you could still click on buttons and interact with the app even though the dialog remained on top, so very unconventional behavior.

We may also consider using exec() for the query popup, too (instead of raise+show).

I never saw bad behavior with that one, probably because it's a non-native dialog, so I left it as-is.

I never saw bad behavior with that one, probably because it's a non-native dialog, so I left it as-is.

OK. Maybe just add a comment there, that exec may work better if issues are observed (appears on the wrong monitor, etc.).

May want to already begin using open() over exec(). The note in the documentation says

Note: Avoid using this function; instead, use open(). Unlike exec(), open() is asynchronous, and does not spin an additional event loop. This prevents a series of dangerous bugs from happening (e.g. deleting the dialog's parent while the dialog is open via exec()). When using open() you can connect to the finished() signal of QDialog to be notified when the dialog is closed.

https://doc.qt.io/qt-5/qdialog.html#exec

May want to already begin using open() over exec().

This behaves the same as raise() and show() (at least on mac with current Qt).  Probably because it's a native dialog so let's stick with exec for now.
It turns out ctkDICOMQueryRetrieveWidget is a QWidget not a QDialog so it doesn't have an exec().
So I think we're good with this and ready to merge.

I agree, the current content of the PR looks good to me.

authors: jamesobutler lassoan pieper


text:
feat: rename folders with new convention

The first step of DE-223 is to rename the folders to reflect our updated desired names:
1_cta_full_refresh or 1_cta_incremental
There should be no 1_cta_base
2_partner_matviews
The only reason 2_partner_views should exist in a project is if `2_partner_matviews also exists.
If these things look true, then I'd love to get this merged into main before digging into each of the syncs to tidy up their dbt.

@emily-flambe especially interested in your eyes on this one! Once we get this one merged in then the sync specific dbt work will begin for DE-223.

@kanelouise wowowow so many renamed files!! This seems correct to me - can we try a dev deployment first and re-run the dev DAGs to check for any fun surprises? If that goes well then I will approve 🙌

The Mobilize sync worked.
Action Builder and Action Network are going to take a bit more work (read: will have to be built first in Airbyte + added to the dev dag to test).

authors: emily-flambe kanelouise

repo: community-tech-alliance/dbt-cta


text:
CCLA Manager can see all projects and whitelist all projects associated with their company

Summary
A CCLA Manager can see all projects and whitelist all projects associated with their company.
Background
The current implementation of the system allows ALL CCLA Managers of the company (e.g. the users defined in the company_acl) to see ALL the projects the company is associated with.  As a result, they can view and manage the company whitelist of a project they are not affiliated with.  The project/company ACL is defined in the CCLA signature record signature_acl column. This ticket is to adjust the corporate console UX page permissions to prevent CCLA Managers from viewing and managing projects they are not associated with.
Expected behavior
A CCLA Manager should be able to see and whitelist ONLY the projects they are assigned to and not all the projects of that company.
Use Cases
As a CCLA Manager, I should only see projects that I am affiliated with.
Acceptance Criteria
Showcase access control restrictions to stakeholders.
References
N/A

Needs a code walk-through on the corporate console permissions. Ultimately, only CLA managers (scope project_id + company_id + user in the signature_acl - should not look at company_acl) should be able to perform actions on the console.

Note that the "Use Cases" section in the issue as reported above is incorrect:

As a CCLA Manager, I should only see projects that I am affiliated with.

It is not a problem if a CLA Manager at a company can see other projects for that company for which they are not a CLA Manager. Read-only access is fine.
The problem is that a CLA Manager should not be able to edit the whitelist or edit the CLA Manager list for a project, unless they are already a CLA Manager for that project, for that company.
The only people who should have write access to a company's whitelist or CLA Manager list for a project are CLA Managers for that project.

@ngozi-ekekwe Based on our discussions and feedback from @swinslow we will:

@dealako I think the above comment is clear, I would only add that this would also apply to the CLA Managers list.
If user not in signature_acl list, then CLA Manager list is read only.
If user in signature_acl list, then CLA Manager list edit, add, delete is enabled.

@dealako
Tested and observed that CLA Manager who does not have access to the project has Read Only Access. However the whitelisted data and CLA Manager details are not displayed. Is this expected behaviour
CLA Manager who does not have access to Project

Primary CLA Manager of the Project

@dealako @nirupamav I have tested the above use case and below are my observation.

User can see all the projects but we are showing the Request Access link if he is not authorized.
All the whitelisted menu (Domain, Email, Github ...) are read-only when user is not authorized.
CLA managers list also comes empty from the backend when the user is not authorized.

Do you want any change in the above scenario?

The current behavior is ok for now.

authors: WillsonHG amolsontakke3576 dealako nirupamav pranab-bajpai swinslow

repo: communitybridge/easycla


text:
Stuck at installation

I've tried installing it per below
ubuntu 16.04
ip by dhcp
fail2ban installed
ssh installed
ran apt update/upgrade/rebooted

**node 8 installation**
nvm is for managing multiple node versions, we need 8 specifically according to compactd manual
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
restart ssh session
nvm install 8 (managed node versions)

**couchdb installation**
*through repo (leaves it configured, kaput?)*
sudo add-apt-repository ppa:couchdb/stable
sudo apt update
sudo apt install couchdb

*from source*
dependencies for couchdb (json database software)
sudo apt-get --no-install-recommends -y install \
    build-essential pkg-config erlang erlang-reltool \
    libicu-dev libmozjs185-dev libcurl4-openssl-dev \
		python-sphinx

git clone https://github.com/apache/couchdb.git
cd couchdb
./configure
*stupid workaround for stuck at docs*
(while in ~/couchdb)
mkdir -p src/docs/build/man/
mkdir -p src/docs/build/html/
cd src/docs/build/man/
touch apachecouchdb.1
cd ~/couchdb
make release
cd rel
sudo mkdir -p /var/lib/couchdb
sudo chown -R couchdb couchdb
sudo chown -R couchdb /var/lib/couchdb
sudo -i -u couchdb /home/zaggynl/couchdb/rel/couchdb/bin/couchdb
switch to new ssh session

**latest ffmpeg installation**
sudo add-apt-repository ppa:mc3man/xerus-media -y  && sudo apt-get update && sudo apt-get install ffmpeg -y && sudo apt-get install frei0r-plugins -y

**installing compactd**
sudo apt install make g++
npm install --global compactd
compactd --configure

  Thanks for downloading compactd 1.2.0 !

  This wizard will guide you through the configuration of compactd
  This should only take one or two minutes...

  ✔ FFprobe and FFmpeg found in /usr/bin/ffmpeg
  ✔ You secret is secure (entropy: 1227)
  ✔ Folder /home/zaggynl/.compactd/ is writable
  ✔ CouchDB is available on port 5984

     All good! You can now start configuring compactd

  Now compactd is going to secure you CouchDB collection by setting a password,
  creating the standard collections and adding validation and permissions.

? Do you wish to continue Yes
  ⠐ Configuring database
   Couldn't finish configuration

  ⠠ Configuring database

ssh session with couchdb shows below repeating every 10 seconds or so:
`{database_does_not_exist,[{mem3_shards,load_shards_from_db,"_users",[{file,"src/mem3_shards.erl"},{line,403}]},{mem3_shards,load_shards_from_disk,1,[{file,"src/mem3_shards.erl"},{line,378}]},{mem3_shards,load_shards_from_disk,2,[{file,"src/mem3_shards.erl"},{line,407}]},{mem3_shards,for_docid,3,[{file,"src/mem3_shards.erl"},{line,91}]},{fabric_doc_open,go,3,[{file,"src/fabric_doc_open.erl"},{line,38}]},{chttpd_auth_cache,ensure_auth_ddoc_exists,2,[{file,"src/chttpd_auth_cache.erl"},{line,187}]},{chttpd_auth_cache,listen_for_changes,1,[{file,"src/chttpd_auth_cache.erl"},{line,134}]}]}
`

Can you try to run
compactd --configure --verbose

I'm using Ubuntu 17.10, Node 8.9.1 using nvm. I built and installed couchdb 2.2.1 using the guide on the README. I'm also getting the same error about database_does_not_exist in couchdb. The configuration gets stuck and keeps retrying so I just killed it.
In the couchdb log, the databases creation was successful but compactd cannot access them.
$ compactd --configure --verbose
2017-11-24T04:44:32.406Z           storyboard INFO  ┌── ROOT STORY: Node.js 8.9.1 on Linux 64-bit, SB 3.1.3 [CREATED]
2017-11-24T04:44:32.406Z           storyboard INFO  Log filter: *:DEBUG
2017-11-24T04:44:32.470Z           storyboard INFO  Log filter is now: *:*

  Thanks for downloading compactd 1.2.0 !

  This wizard will guide you through the configuration of compactd
  This should only take one or two minutes...

  ✔ FFprobe and FFmpeg found in /usr/bin/ffmpeg
  ✔ You secret is secure (entropy: 1227)
  ✔ Folder /home/cereal/.compactd/ is writable
  ✔ CouchDB is available on port 5984

     All good! You can now start configuring compactd

  Now compactd is going to secure you CouchDB collection by setting a password,
  creating the standard collections and adding validation and permissions.

? Do you wish to continue Yes
  ⡀ Configuring database
  [object Object]

   Couldn't finish configuration

  ⠠ Configuring database^C

Hmm, can youtry running theses commands and run configure again?
curl -X PUT http://127.0.0.1:5984/_users

curl -X PUT http://127.0.0.1:5984/_replicator

curl -X PUT http://127.0.0.1:5984/_global_changes

@vinz243

Also, why install make and g++ at the end?
sorry old note, can be ignored
Apt install couchdb should not leave it configured, since the default state is with admin party which is what you want to run the configure command
Can you try this tutorial: https://linoxide.com/linux-how-to/install-couchdb-futon-ubuntu-1604/ and stop at $ curl localhost:5984 then run compactd configure

reset my snapshot to clean installation and went through below:
sudo add-apt-repository ppa:couchdb/stable
sudo apt-get update
sudo apt-get install couchdb
sudo chown -R couchdb:couchdb /usr/bin/couchdb /etc/couchdb /usr/share/couchdb
sudo chmod -R 0770 /usr/bin/couchdb /etc/couchdb /usr/share/couchdb
sudo systemctl restart couchdb
curl localhost:5984
{"couchdb":"Welcome","uuid":"d26cc289fdaa763280175d97616ab1ae","version":"1.6.1","vendor":{"name":"Ubuntu","version":"16.04"}}
sudo add-apt-repository ppa:mc3man/xerus-media -y  && sudo apt-get update && sudo apt-get install ffmpeg -y && sudo apt-get install frei0r-plugins -y
npm install --global compactd

gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.

sudo apt install python
npm install --global compactd

gyp ERR! stack Error: not found: make

sudo apt install make
npm install --global compactd

make: g++: Command not found

sudo apt install g++
npm install --global compactd
compactd --configure --verbose
Please start this script again to configure
compactd --configure --verbose
  ✘ CouchDB is already configured
  Error
   Couldn't finish configuration
2017-11-24T12:11:15.674Z           storyboard INFO  └── ROOT STORY: Node.js 8.9.1 on Linux 64-bit, SB 3.1.3 [CLOSED]

zaggynl@compactd:~$ curl -X PUT http://127.0.0.1:5984/_users
{"error":"file_exists","reason":"The database could not be created, the file already exists."}
zaggynl@compactd:~$ curl -X PUT http://127.0.0.1:5984/_replicator
{"error":"file_exists","reason":"The database could not be created, the file already exists."}
zaggynl@compactd:~$ curl -X PUT http://127.0.0.1:5984/_global_changes
{"error":"illegal_database_name","reason":"Name: '_global_changes'. Only lowercase characters (a-z), digits (0-9), and any of the characters _, $, (, ), +, -, and / are allowed. Must begin with a letter."}

Before configure
$ curl -X PUT http://127.0.0.1:5984/_users
{"ok":true}
cereal@ns500530:~$ curl -X PUT http://127.0.0.1:5984/_replicator
{"ok":true}
cereal@ns500530:~$ curl -X PUT http://127.0.0.1:5984/_global_changes
{"ok":true}

After configure
$ curl -X PUT http://127.0.0.1:5984/_users
{"error":"unauthorized","reason":"You are not a server admin."}
$ curl -X PUT http://127.0.0.1:5984/_replicator
{"error":"unauthorized","reason":"You are not a server admin."}
$ curl -X PUT http://127.0.0.1:5984/_global_changes
{"error":"unauthorized","reason":"You are not a server admin."}

@squaresmile did those commands fixed your issue? If not, did it changed the configure script output? the error after the configure are normal btw
@zaggynl the version is outdated, my bad. Can you try:
echo "deb https://apache.bintray.com/couchdb-deb xenial main" | sudo tee -a /etc/apt/sources.list
curl -L https://couchdb.apache.org/repo/bintray-pubkey.asc | sudo apt-key add -
sudo apt-get update && sudo apt-get install couchdb

then running configure command directly

Unfortunately, the verbose configuration still has the same error and output. However, I think couchdb threw a different error, saying the user doesn't have the permission to change the document.
Nov 24 14:37:37 couchdb[23946]: [error] 2017-11-24T19:37:37.873846Z couchdb@127.0.0.1 <0.2822.0> -------- OS Process Error <0.2888.0> :: {<<"Error">>,{[{<<"stack">>,<<"(\"value\",0,[object Array])@validate_doc_update:1\n([object Object],[object Object],[object Object],null,[object Object],_a,_f,_i)@validate_doc_update:1\n([object Object],null,[object Object],[object Object])@validate_doc_update:1\n(function (d, o, u) {\nfunction _f(t, a) {if (null == t) {throw new TypeError(\"\\\"t\\\" is null or not defined\");}var b = Object(t), c = b.length >>> 0;if (\"function\" != typeof a) {throw new TypeError(\"predicate must be a function\");}for (var d = arguments[1], e = 0; e < c;) {var f = b[e];if (a.call(d, f, e, b)) {return f;}e++;}}\n\n\nfunction _i(r, n, e) {if (null == r) {throw new TypeError(\"\\\"arr\\\" is null or not defined\");}var t = Object(r), a = t.length >>> 0;if (0 === a) {return false;}for (var i = 0 | e, u = Math.max(i >= 0 ? i : a - Math.abs(i), 0); u < a;) {if (t[u] === n) {return true;}u++;}return false;}\n\n\nfunction _a(a, b) {\"use strict\";if (null == a) {throw new TypeError(\"Cannot convert undefined or null to object\");}for (var c = Object(a), d = 1; d < arguments.length; d++) {var e = arguments[d];if (null != e) {for (var f in e) {Object.prototype.hasOwnProperty.call(e, f) && (c[f] = e[f]);}}}return c;}\n\n(function (sc, pe, pr, old, user, assign, find, includes) {var base = [\"_id\", \"_rev\", \"_revisions\", \"_deleted\"];var keys = Object.keys;var doc = assign({}, old || {}, pr || {});var err = find(keys(sc).map(function (k) {return eval(\"(\" + sc[k] + \")\")(k, doc[k]);}), function (el) {return el !== \"\";});if (err) {throw {forbidden: err};}var ex = keys(pr).filter(function (k) {return !includes(base, k);}).filter(function (k) {return !~keys(sc).indexOf(k);});if (ex.length) {throw {forbidden: \"Keys \" + ex.join(\", \") + \" aren't allowed\"};}if (!pe) {return;}if (!old) {var perm = pe.create;for (var i = 0; i < user.roles.length; i++) {var role = user.roles[i];if (perm[role]) {return;}}throw {forbidden: \"User is
Nov 24 14:37:37 couchdb[23946]: not allowed to create documents\"};}var perm = pe.read;var ok = false;for (var i = 0; i < user.roles.length; i++) {var role = user.roles[i];if (perm[role]) {ok = true;}}if (!ok) {throw {forbidden: \"User is not allowed to update documents\"};}for (var i = 0; i < keys(pr).length; i++) {var key = keys(pr)[i];var val = pr[key];if (val !== old[key] && !~pe.upd_fd.indexOf(key) && !includes(base, key)) {throw {forbidden: \"Not allowed to update \" + key};}}}({value: \"function () {\\n return '';\\n }\"}, {read: {_admin: true, end_user: true, user: true}, update: {_admin: true, end_user: true, user: true}, create: {_admin: true, end_user: true, user: true}, upd_fd: [\"value\"]}, d, o, u, _a, _f, _i));},[object Object],[object Array])@./share/server/main.js:1291\n(\"_design/validator\",[object Array],[object Array])@./share/server/main.js:1537\n()@./share/server/main.js:1582\n()@./share/server/main.js:1603\n@./share/server/main.js:1\n">>},{<<"message">>,<<"call to eval() blocked by CSP">>},{<<"fileName">>,<<"validate_doc_update">>},{<<"lineNumber">>,1}]}}
Nov 24 14:37:37 couchdb[23946]: [notice] 2017-11-24T19:37:37.876843Z couchdb@127.0.0.1 <0.2555.0> 4f4cba1a88 127.0.0.1:5984 127.0.0.1 undefined PUT /config/statistician.suggestions.enable 500 ok 468

This seems to be a problem with this code https://github.com/compactd/compactd/blob/e3a69ae781aee292c0a05d5a48b7af678bf78210/server/src/features/configure/DatabaseConfigurator.ts#L40
ill try to add more logging and remove those parts which  are not being used anyway and release a new version

@squaresmile can . you try again with version 1.2.1? Use
npm update --global compactd

to update and then run script with --verbose flag

@vinz243
Got a bit further now:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
restart ssh session
nvm install 8
echo "deb https://apache.bintray.com/couchdb-deb xenial main" | sudo tee -a /etc/apt/sources.list
curl -L https://couchdb.apache.org/repo/bintray-pubkey.asc | sudo apt-key add -
sudo apt-get update && sudo apt-get install couchdb
selected none on couchdb setup question
sudo add-apt-repository ppa:mc3man/xerus-media -y  && sudo apt-get update && sudo apt-get install ffmpeg -y && sudo apt-get install frei0r-plugins -y
sudo apt install make g++
npm install --global compactd
compactd --configure --verbose
2017-11-25T15:10:15.817Z           storyboard INFO  ┌── ROOT STORY: Node.js 8.9.                                                                          1 on Linux 64-bit, SB 3.1.3 [CREATED]
2017-11-25T15:10:15.819Z           storyboard INFO  Log filter: *:DEBUG
2017-11-25T15:10:15.832Z           storyboard INFO  Log filter is now: *:*

  Thanks for downloading compactd 1.2.0 !

  This wizard will guide you through the configuration of compactd
  This should only take one or two minutes...

  ✔ FFprobe and FFmpeg found in /usr/bin/ffmpeg
  ✔ You secret is secure (entropy: 1227)

  Please start this script again to configure

2017-11-25T15:10:18.254Z           storyboard INFO  └── ROOT STORY: Node.js 8.9.                                                                          1 on Linux 64-bit, SB 3.1.3 [CLOSED]
zaggynl@compactd:~$ compactd --configure --verbose
2017-11-25T15:10:21.266Z           storyboard INFO  ┌── ROOT STORY: Node.js 8.9.                                                                          1 on Linux 64-bit, SB 3.1.3 [CREATED]
2017-11-25T15:10:21.267Z           storyboard INFO  Log filter: *:DEBUG
2017-11-25T15:10:21.280Z           storyboard INFO  Log filter is now: *:*

  Thanks for downloading compactd 1.2.0 !

  This wizard will guide you through the configuration of compactd
  This should only take one or two minutes...

  ✔ FFprobe and FFmpeg found in /usr/bin/ffmpeg
  ✔ You secret is secure (entropy: 1227)
  ✔ Folder /home/zaggynl/.compactd/ is writable
  ✔ CouchDB is available on port 5984

     All good! You can now start configuring compactd

  Now compactd is going to secure you CouchDB collection by setting a password,
  creating the standard collections and adding validation and permissions.

? Do you wish to continue Yes
  ⢀ Configuring database
  [object Object]

   Couldn't finish configuration

  ⠈ Configuring database
/var/log/couchdb/couchdb.log shows:
[error] 2017-11-25T15:30:51.105300Z couchdb@127.0.0.1 <0.7914.0> -------- OS Process Error <0.8027.0> :: {<<"Error">>,{[{<<"stack">>,<<"(\"value\",0,[object Array])@validate_doc_update:1\n([object Object],[object Object],[object Object],null,[object Object],_a,_f,_i)@validate_doc_update:1\n([object Object],null,[object Object],[object Object])@validate_doc_update:1\n(function (d, o, u) {\nfunction _f(t, a) {if (null == t) {throw new TypeError(\"\\\"t\\\" is null or not defined\");}var b = Object(t), c = b.length >>> 0;if (\"function\" != typeof a) {throw new TypeError(\"predicate must be a function\");}for (var d = arguments[1], e = 0; e < c;) {var f = b[e];if (a.call(d, f, e, b)) {return f;}e++;}}\n\n\nfunction _i(r, n, e) {if (null == r) {throw new TypeError(\"\\\"arr\\\" is null or not defined\");}var t = Object(r), a = t.length >>> 0;if (0 === a) {return false;}for (var i = 0 | e, u = Math.max(i >= 0 ? i : a - Math.abs(i), 0); u < a;) {if (t[u] === n) {return true;}u++;}return false;}\n\n\nfunction _a(a, b) {\"use strict\";if (null == a) {throw new TypeError(\"Cannot convert undefined or null to object\");}for (var c = Object(a), d = 1; d < arguments.length; d++) {var e = arguments[d];if (null != e) {for (var f in e) {Object.prototype.hasOwnProperty.call(e, f) && (c[f] = e[f]);}}}return c;}\n\n(function (sc, pe, pr, old, user, assign, find, includes) {var base = [\"_id\", \"_rev\", \"_revisions\", \"_deleted\"];var keys = Object.keys;var doc = assign({}, old || {}, pr || {});var err = find(keys(sc).map(function (k) {return eval(\"(\" + sc[k] + \")\")(k, doc[k]);}), function (el) {return el !== \"\";});if (err) {throw {forbidden: err};}var ex = keys(pr).filter(function (k) {return !includes(base, k);}).filter(function (k) {return !~keys(sc).indexOf(k);});if (ex.length) {throw {forbidden: \"Keys \" + ex.join(\", \") + \" aren't allowed\"};}if (!pe) {return;}if (!old) {var perm = pe.create;for (var i = 0; i < user.roles.length; i++) {var role = user.roles[i];if (perm[role]) {return;}}throw {forbidden: \"User is not allowed to create documents\"};}var perm = pe.read;var ok = false;for (var i = 0; i < user.roles.length; i++) {var role = user.roles[i];if (perm[role]) {ok = true;}}if (!ok) {throw {forbidden: \"User is not allowed to update documents\"};}for (var i = 0; i < keys(pr).length; i++) {var key = keys(pr)[i];var val = pr[key];if (val !== old[key] && !~pe.upd_fd.indexOf(key) && !includes(base, key)) {throw {forbidden: \"Not allowed to update \" + key};}}}({value: \"function () {\\n return '';\\n }\"}, {read: {_admin: true, end_user: true, user: true}, update: {_admin: true, end_user: true, user: true}, create: {_admin: true, end_user: true, user: true}, upd_fd: [\"value\"]}, d, o, u, _a, _f, _i));},[object Object],[object Array])@./share/server/main.js:1291\n(\"_design/validator\",[object Array],[object Array])@./share/server/main.js:1537\n()@./share/server/main.js:1582\n()@./share/server/main.js:1603\n@./share/server/main.js:1\n">>},{<<"message">>,<<"call to eval() blocked by CSP">>},{<<"fileName">>,<<"validate_doc_update">>},{<<"lineNumber">>,1}]}}

Can you try running :

npm install --global compactd@1.2.1
compactd --configure --verbose

because you still have version 1.2.0

The configuration finished successfully with a lot of warnings.
When I ran serve, it said:
  Please upgrade your database to the latest version
  You may want to use compactd --upgrade

So I ran compactd --upgrade and here is the output
However, running compactd --serve doesn't start anything. There's no new process running.

Nice, the warnings itself just indicate that some artworks couldn't be found.
 Please upgrade your database to the latest version
  You may want to use compactd --upgrade

is a bug tho, need to fix it
anyway you should be able to do curl  localhost:9000

Unfortunately, there's nothing listening on port 9000. curl localhost:9000 just returned Connection refused.  serve doesn't have any error and said Successfully started compactd in the background.

Install pm2 using npm install --global pm2 then run
pm2 start --name compactd  $(dirname $(readlink -f $(which compactd)))/server/index.js

Thanks a lot, compactd is running in pm2 now!
However, a different issue arises. When I go to localhost:9000, it says "socket.io is now connected'' and "An error happened during database sync for artists: undefined". In the console of firefox, it says
Object { status: 500, name: "indexed_db_went_bad", message: "unknown", error: true, reason: "Failed to open indexedDB, are you in private browsing mode?", result: {…}, stack: "" }
application.js:24:207686
An error happened during database sync for artists: undefined

Thank you for the quick response. Should I open a new issue for this one?

This is really weird ... What version of firefox are you running ? What OS ?  Did you change any specific setting? If you have it, can you try in chrome?

Firefox 57 Windows 10.
I tried again with Chrome 63 Beta Windows (my stable Chrome 62 is kinda broken at the moment) and I got a different error.  The loading circle got about to 40%:. Here is the log in pm2:
0|compactd | 2017-11-25T21:15:14.948Z                 http INFO  GET /database/artworks/artworks%2Flibrary%2Fyahagi-sayuri/large?rev=1-7f5571fdc3d7ffbb35b2ee15ddd0e84b -> http://127.0.0.1:5984/artworks/artworks%2Flibrary%2Fyahagi-sayuri/large?rev=1-7f5571fdc3d7ffbb35b2ee15ddd0e84b
0|compactd | 2017-11-25T21:15:15.009Z                 http INFO  GET /database/artworks/artworks%2Flibrary%2Fyahagi-sayuri/small?rev=1-7f5571fdc3d7ffbb35b2ee15ddd0e84b -> http://127.0.0.1:5984/artworks/artworks%2Flibrary%2Fyahagi-sayuri/small?rev=1-7f5571fdc3d7ffbb35b2ee15ddd0e84b

Checking the corresponding file, it has a 299KB 1417x1948 jpeg cover so I guess it caused the issue.

You might want to report the issue with Firefox on PouchDB... can you email me one of the file with this artist so I can try and imrpove the artwork agent ? Also when the circle gets stuck at 40%, do you get any error in the browser console?

Here are the errors in the Chrome console:
Failed to load resource: the server responded with a status of 403 (Forbidden)
i {code: "ETIMEDOUT", status: 0, result: {…}}code: "ETIMEDOUT"result: {ok: false, start_time: Sat Nov 25 2017 16:49:37 GMT-0500 (Eastern Standard Time), docs_read: 0, docs_written: 0, doc_write_failures: 0, …}status: 0__proto__: Error
An error happened during database sync for artworks: ETIMEDOUT

Here is the file with the artist as the only artist. This one has pretty normal 600x600 jpeg cover.
Here is the file with the artist as one of artists in the artist field. This one has a 1417x1948 jpeg (BD size) cover (the cover is also NSFW)

Using the network tab, can you locate the URL which has a 403 error? And the one with the timedout error?

Console tab
Network tab

Hmm, seems like some database are not being created. I'm gonna create a virtual machine similar to your env and try install it, I think it will be for the better

Tried
$  curl -X PUT http://admin:password@localhost:5984/trackers
{"ok":true}

Looks like it's working now :D

Nice, just make sure you padssword is actually something else than password ;)
@zaggynl did you try the fixes here?

nvm install 8  echo "deb https://apache.bintray.com/couchdb-deb xenial main" | sudo tee -a /etc/apt/sources.list curl -L https://couchdb.apache.org/repo/bintray-pubkey.asc | sudo apt-key add - sudo add-apt-repository ppa:mc3man/xerus-media -y sudo apt-get update && sudo apt-get install couchdb ffmpeg frei0r-plugins make g++ cifs-utils -y npm install --global compactd@1.2.1 (why does 'npm install compactd' not pull latest by default?) npm install --global pm2 fstab entry: //192.168.1.220/dump/MUSIC /mnt/MUSIC cifs guest,uid=zaggynl,gid=users 0 0 sudo mount -a compactd --configure --verbose compactd --configure --verbose set user/password music path to /mnt/MUSIC *indexing* (plenty of warnings) compactd --serve (nothing served as checked per sudo netstat -lp) compactd --upgrade Running upgrade...{ error: 'unknown_error',  reason: 'undefined',   name: 'unknown_error',   status: 500,   message: 'undefined' }  ⠐ Running upgrade... (taking a long while, 1h+, seeing writes to /var/lib/couchdb/shards/<filenames>)

The serve script does not work. Can you try to start
node $(dirname $(readlink -f $(which compactd)))/server/index.js

and if it runs without error run:
pm2 start --name compactd  $(dirname $(readlink -f $(which compactd)))/server/index.js

Appears to work now!
How do I get it to start listening on LAN IP address instead of localhost?

nano $(dirname $(readlink -f $(which compactd)))/serverr/dist/config.js
changed 127.0.0.1 to LAN IP address

You  should be editing ~/.compactd/config.json and add an IP value with either you lan IP adress or 0.0.0.0. Just wondering how large is your library? Mine has 547 tracks. To count tracks, you can do in your browser console:
[...document.getElementsByClassName('album-counter')].reduce((acc, val) => acc + (val.innerHTML.split(' ')[0] -0), 0)

And can you eleborate what you mean by slow?

Just paste:
    ip: {
        doc: "The IP address to bind.",
        format: "ipaddress",
        default: "192.168.1.50",
        env: "COMPACTD_IP_ADDRESS",
    },

into ~/.compactd/config.json ?
3185 files going by folder properties
[...document.getElementsByClassName('album-counter')].reduce((acc, val) => acc + (val.innerHTML.split(' ')[0] -0), 0)
did not return anything

Your config file should just contain a line "ip": "192.168.1.50"
Nevermind it doesn't work. i guess i haven't tried yet to optimize for huge libraries, since I dont have one. Can you recreate a quick issue about this problem, since this is no longer linked to the installation? Thanks

For the performance issue, a friend will be giving me around 3000 files so I can try and imrpove performance and I  already know what I have to improve

authors: squaresmile vinz243 zaggynl

repo: compactd/compactd


text:
setmcp: nblock=0 issue when running rmcdhf_mpi on HPC cluster

Hello,
I am trying to use GRASP2018 on my university's HPC cluster. I managed to compile the package correctly and the non-mpi versions of the programs work as expected in an interactive session.
Now, say I want to submit a job file to the HPC cluster (which is controlled by Sun Grid Engine) consisting in a single run of rmcdhf_mpi on 16 cores with the script below:

The executables are on the path, and the job is launched from the directory containing all needed files (mcp.*, isodata, etc as well as the 'disks' file).
What I understand from the output of SGE (text file attached) is that rmcdhf_mpi gets launched and understands where to store the temporary data according to the disks file, but doesn't seem to understand where to get the input files and therefore set the number of blocks to 0 which aborts the calculation.
job_output.txt
Any idea how to solve that? I am probably making very stupid mistakes but I am only a beginner. 😄
Thanks,
Rodolphe

Hi Radolphe,
Great that you're trying out GRASP for HPC. Can you show us what your disks file look like? The first line specifies the runtime directory (where the i/o files are stored).
All the best,
Jon

Hi,
Please find the disks file here-after:
disks.txt
The first line:  '/work/icb/ro0028mo/atst/test/' is the directory I run the job from, the 16 other lines are for the temporary files as I understood from the GRASP2018 manual (I put here /work/icb/ro0028mo/ only for testing purposes, although each machine of the cluster has a proper /tmp directory).
Before the job crashes, folders 000 to 015 are created by rmcdhf_mpi in the directory specified in the disks file. Nota bene that I just ran rangular (not rangular_mpi) to obtain all the MCP files, which are therefore located in my "test" directory, along with isodata and the other requested files.
As I understood, the command mpiib is a specific command for our HPC cluster and is used to run mpi processes through the infiniband network. As can be seen from the crash report, it is equivalent to mpirun -dapl -np 16 rmcdhf_mpi
Hope my answer will be useful to you, thanks for giving me such a quick feedback.
Best,
Rodolphe

Alright, so you need to run rangular_mpi with the same disks file then :)
Cheers,
Jon

I tried... and it worked! Thanks again Jon for giving such an helpful and quick feedback. 😄
All the best,
Rodolphe

No worries Radolphe, happy to help! Let me/us know if you have further problems or need advice on how to set up your correlation model. Cheers!

I am a (1st year) PhD student working with Prof. Claude Leroy (Dijon, France), Pr. David Sarkisyan and Pr. Aram Papoyan (Yerevan, Armenia): https://www.researchgate.net/profile/Rodolphe-Momier if you want to have a look!
I am just getting familiar with GRASP, the goal being the computation of some HFS parameters for states where experimental data is missing. 😄

authors: jongrumer momierr

repo: compas/grasp


text:
Handle conan.cmake download failures gracefully

This patch adds code to CMakeLists.txt to detect failure to download conan.cmake and handle it gracefully.
CMake's file(DOWNLOAD ...) command appears to retain an empty or corrupt file even when the download failed, and it does this silently without issuing any sort of errors or warnings. Currently, once the download failed, subsequent configures and reconfigures will all read from this bad conan.cmake until the build directory is wiped (not even deleting the cache helps). To fix this, we detect download failures explicitly, remove the bad file, and report the error to the user.
Also added a SHA256 check to the download command; this is usually redundant with TLS_VERIFY ON, but can be helpful against very bad MITM actors (sometimes seen in corporate environments).

Sorry we never got to this; seems the underlying CMake setup changed substantially and uses a newer way of accessing conan.

authors: fghzxm mattgodbolt

repo: compiler-explorer/asm-parser


text:
WIP: Code placement and Common Subexpression Elimination

Implements CodePlacement à la Libfirm with some changes

[x] use frequency analysis instead of loop nesting depth as placement heuristic
[x] since CodePlacement computes all valid placements for an expression, perform
common subexpression elimination as an additional heuristic. Prefer placements
that can eliminate expressions. This effectively results in global common subexpression elimination using a block-local common subexpression elimination
[ ] (optional) only perform GCSE in some cases: e.g. Subexpression A dominates Subexpression B, or Subexpression B dominates Subexpression A, maybe if both expressions post dominate a common block? This needs some testing.

bors r=problame

bors r+

repo: comprakt/comprakt


text:
tags wind up with spaces before them

I think when posts are saved, because there is a space after the comma in the tag list, a space gets added when the new tags are added. There needs to be some type of whitespace trim to prevent this

Still present in v0.1.11

fixed as of: 97f5ece35f11e7503c466c7fafc541970cb2525c

repo: compscidr/goblog


text:
chapter on model complexity?

some subchapter should really go into this
quite a bunch of work, but needed?
keep this VERY SHORT
we HAVE material in cim2 and rcourses
Model Complexity, Curse of Dim and Overfitting
Curse of Dim and Highdim Data
Overtitting
Regularisierung
Bias Variance
TODO for BB? get some help?

we already talk about this a bit in

polyreg (effect of d)
knn (effect ok)

(which is fine!)

There is also a little bit in slides-evaluation-overfitting.
I think this is enough for i2ml. Maybe more can be done in CIM

authors: HeidiSeibold berndbischl


text:
Cannot scroll

Describe the bug
Unable to scroll normally on DraggableFlatList. However, dragging and auto-scrolling works perfectly. I have added GestureHandlerRootView as well, but no luck.
To Reproduce
Default (unchanged) example provided in documentation
Platform & Dependencies
Please list any  applicable dependencies in addition to those below (react-navigation etc).

react-native-draggable-flatlist version: 4.0.0
Platform: Android 10.0
React Native or Expo version: 0.65.0
Reanimated version: 2.13.0
React Native Gesture Handler version: 2.8.0

Additional context
Probably does not work because of some dependency / platform issues.

This turned to be an Android Emulator issue.

Upgraded react native to 0.68.5
Created a new emulator image with Android 32
Invalidated caches and restarted Android emulator

These fixed the issue.


text:
🛑 store.datalad.org is down

In 8d7d5ef, store.datalad.org (https://store.datalad.org/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: store.datalad.org is back up in 49531f6 after 30 minutes.

repo: con/upptime


text:
Support $config->scripts and $config->styles as arguments to CSS() and J...

Support passing of $config->scripts and $config->styles as arguments for
AIOM::CSS() and AIOM::JS() which are of type FilenameArray. Previously those standard ProcessWire variables could not be passed directly to AIOM.
This now allows to do this:
<link rel="stylesheet" href="<?=AllInOneMinify::CSS($config->styles)?>">
<script type="text/javascript" src="<?=AllInOneMinify::JS($config->scripts)?>"></script>

The Pull Request has been merged to the repository AIOM-3.2-dev

Sorry, there was a small cut/paste bug when introduced the new feature to support passing the $config->scripts array to the JS() method which I only found today. See pull request https://github.com/conclurer/ProcessWire-AIOM-All-In-One-Minify/pull/36 for fix.

authors: hwmaier marvinscharle


text:
Update delayed job

This updated version of delayed job should prevent it from crashing when a unicode char comes through.  Based on local testing it also seems to handle the unicode chars better, but this all might be a difference in database configurations.
This PR also fixes an issue with xray and delayed_job web. Previously when xray was enabled the delayed_job web route /delayed_job would crash. This was only a problem in dev mode. Upgrading xray-rails fixed this problem.

@knowuh can you take a quick look at this? I'd like to merge and test it out on staging today if possible.

@scytacki  the Gemfile looks good.
I was able to bundle install and run local dev server no problem.
I was able to use x-ray in the browser.
I was able to run bundle exec ./script/delayed_job start
Everything seemed fine.
:+1:

authors: knowuh scytacki

repo: concord-consortium/rigse


text:
Remove password from 'Run with Other Students' to allow SSO users.

[#152206081]

@pjanik I'm adding you as reviewer because it looks like you've worked with this area of the code in the past. Please review. Thanks.
Some comments: It might be better to pass an array of integer id rather than the array of object hash { id:  } but I don't know if it makes sense to refactor the implementations of the "services" object methods or if any callers rely on the format of attribute :students, Array[Hash]
Also there has been some debate over the PT story whether to require password for non-SSO collaborators. If that requirement changes it would make sense to continue to pass the hash. (And in the future could add any other attributes for selecting/filtering on collaborators.)

Adding @scytacki as reviewer.