text:
Conflicting cross-version in SBT 1.5.5, however it works in 1.5.4

Hi there,
I am getting this errors after update sbt to 1.5.5.
Thanks
[error] java.lang.RuntimeException: Conflicting cross-version suffixes in: com.lihaoyi:sourcecode, com.lihaoyi:fansi, com.lihaoyi:pprint
2973
[error] 	at scala.sys.package$.error(package.scala:30)
2974
[error] 	at sbt.librarymanagement.ConflictWarning$.processCrossVersioned(ConflictWarning.scala:39)
2975
[error] 	at sbt.librarymanagement.ConflictWarning$.apply(ConflictWarning.scala:19)
2976
[error] 	at sbt.Classpaths$.$anonfun$ivyBaseSettings$71(Defaults.scala:3194)
2977
[error] 	at scala.Function1.$anonfun$compose$1(Function1.scala:49)
2978
[error] 	at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:62)
2979
[error] 	at sbt.std.Transform$$anon$4.work(Transform.scala:68)
2980
[error] 	at sbt.Execute.$anonfun$submit$2(Execute.scala:282)
2981
[error] 	at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:23)
2982
[error] 	at sbt.Execute.work(Execute.scala:291)
2983
[error] 	at sbt.Execute.$anonfun$submit$1(Execute.scala:282)
2984
[error] 	at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
2985
[error] 	at sbt.CompletionService$$anon$2.call(CompletionService.scala:64)
2986
[error] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
2987
[error] 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
2988
[error] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
2989
[error] 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
2990
[error] 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
2991
[error] 	at java.base/java.lang.Thread.run(Thread.java:832)
2992
[error] (script / update) Conflicting cross-version suffixes in: com.lihaoyi:sourcecode, com.lihaoyi:fansi, com.lihaoyi:pprint

I think it's related to this fix https://github.com/sbt/librarymanagement/pull/383, I excluded the _3 version (im on 2.13.x) as a workaround.  I have no idea if it's published correctly though:
"com.lihaoyi" % "ammonite" % Version.Ammonite cross CrossVersion.full exclude ("com.lihaoyi", "sourcecode_3") exclude ("com.lihaoyi", "fansi_3") exclude ("com.lihaoyi", "pprint_3")

The artifact(s) are published incorrectly and are explicitly depending on scala_3 versions of things in scala 2.13.
See: https://search.maven.org/artifact/com.lihaoyi/ammonite-cross-23-util_2.13/2.4.0-19-f4790b61/jar
I don't know if that is an issue in addition to the above, or if they are separate issues. I've filed #1214 which makes it clear that the generated pom is incorrect -- and is not sbt specific.

@alexarchambault probably knows the most about Ammonite and Scala3

Hi @alexarchambault I keep getting the same error, I have created a simple project to help reproduce the error.
https://github.com/mvillafuertem/amm-error
I have tried @dispalt's suggestion using exclude, but I get this error. Some hint? Thanks
Ammonite REPL & Script-Runner, 2.4.1
Exception in thread "main" java.lang.NullPointerException
        at dotty.tools.dotc.core.Types$TypeBounds$.empty(Types.scala:4999)
        at dotty.tools.dotc.core.Definitions.enterBinaryAlias(Definitions.scala:154)
        at dotty.tools.dotc.core.Definitions.andType(Definitions.scala:441)
        at dotty.tools.dotc.ast.untpd$.makeAndType(untpd.scala:503)
        at dotty.tools.dotc.parsing.Parsers$Parser.withTypeRest(Parsers.scala:1548)
        at dotty.tools.dotc.parsing.Parsers$Parser.withType(Parsers.scala:1537)
        at dotty.tools.dotc.parsing.Parsers$Parser.refinedType(Parsers.scala:1524)
        at dotty.tools.dotc.parsing.Parsers$Parser.infixType(Parsers.scala:1513)
        at dotty.tools.dotc.parsing.Parsers$Parser.typ(Parsers.scala:1449)
        at dotty.tools.dotc.parsing.Parsers$Parser.argType$1(Parsers.scala:1720)
        at dotty.tools.dotc.parsing.Parsers$Parser.argTypes$$anonfun$3(Parsers.scala:1747)
        at dotty.tools.dotc.parsing.Parsers$Parser.tokenSeparated(Parsers.scala:555)
        at dotty.tools.dotc.parsing.Parsers$Parser.commaSeparated(Parsers.scala:563)
        at dotty.tools.dotc.parsing.Parsers$Parser.argTypes(Parsers.scala:1747)
        at dotty.tools.dotc.parsing.Parsers$Parser.typeArgs$$anonfun$1(Parsers.scala:1776)
        at dotty.tools.dotc.parsing.Parsers$Parser.enclosed(Parsers.scala:533)
        at dotty.tools.dotc.parsing.Parsers$Parser.inBrackets(Parsers.scala:537)
        at dotty.tools.dotc.parsing.Parsers$Parser.typeArgs(Parsers.scala:1776)
        at dotty.tools.dotc.parsing.Parsers$Parser.simpleTypeRest(Parsers.scala:1656)
        at dotty.tools.dotc.parsing.Parsers$Parser.simpleType1(Parsers.scala:1649)
        at dotty.tools.dotc.parsing.Parsers$Parser.simpleType(Parsers.scala:1619)
        at dotty.tools.dotc.parsing.Parsers$Parser.annotType(Parsers.scala:1553)
        at dotty.tools.dotc.parsing.Parsers$Parser.withType(Parsers.scala:1537)
        at dotty.tools.dotc.parsing.Parsers$Parser.refinedType(Parsers.scala:1524)
        at dotty.tools.dotc.parsing.Parsers$Parser.infixType(Parsers.scala:1513)
        at dotty.tools.dotc.parsing.Parsers$Parser.typ(Parsers.scala:1449)
        at dotty.tools.dotc.parsing.Parsers$Parser.toplevelTyp(Parsers.scala:1323)
        at dotty.tools.dotc.parsing.Parsers$Parser.typedOpt(Parsers.scala:1820)
        at dotty.tools.dotc.parsing.Parsers$Parser.$anonfun$22(Parsers.scala:3355)
        at dotty.tools.dotc.parsing.Parsers$Parser.fromWithinReturnType(Parsers.scala:386)
        at dotty.tools.dotc.parsing.Parsers$Parser.defDefOrDcl(Parsers.scala:3355)
        at dotty.tools.dotc.parsing.Parsers$Parser.defOrDcl(Parsers.scala:3251)
        at dotty.tools.dotc.parsing.Parsers$Parser.templateStatSeq$$anonfun$1(Parsers.scala:3879)
        at dotty.tools.dotc.parsing.Parsers$Parser.checkNoEscapingPlaceholders(Parsers.scala:477)
        at dotty.tools.dotc.parsing.Parsers$Parser.templateStatSeq(Parsers.scala:3887)
        at dotty.tools.dotc.parsing.Parsers$Parser.$anonfun$33(Parsers.scala:3774)
        at dotty.tools.dotc.parsing.Parsers$Parser.enclosed(Parsers.scala:533)
        at dotty.tools.dotc.parsing.Parsers$Parser.inBraces(Parsers.scala:536)
        at dotty.tools.dotc.parsing.Parsers$Parser.inBracesOrIndented(Parsers.scala:547)
        at dotty.tools.dotc.parsing.Parsers$Parser.inDefScopeBraces(Parsers.scala:550)
        at dotty.tools.dotc.parsing.Parsers$Parser.templateBody(Parsers.scala:3774)
        at dotty.tools.dotc.parsing.Parsers$Parser.templateBodyOpt(Parsers.scala:3767)
        at dotty.tools.dotc.parsing.Parsers$Parser.template(Parsers.scala:3744)
        at dotty.tools.dotc.parsing.Parsers$Parser.templateOpt(Parsers.scala:3752)
        at dotty.tools.dotc.parsing.Parsers$Parser.objectDef(Parsers.scala:3506)
        at dotty.tools.dotc.parsing.Parsers$Parser.tmplDef(Parsers.scala:3465)
        at dotty.tools.dotc.parsing.Parsers$Parser.defOrDcl(Parsers.scala:3257)
        at ammonite.compiler.DottyParser.localDef(DottyParser.scala:39)
        at ammonite.compiler.DottyParser.blockStatSeq$$anonfun$1(DottyParser.scala:63)
        at dotty.tools.dotc.parsing.Parsers$Parser.checkNoEscapingPlaceholders(Parsers.scala:477)
        at ammonite.compiler.DottyParser.blockStatSeq(DottyParser.scala:69)
        at ammonite.compiler.Parsers.parseStats(Parsers.scala:29)
        at ammonite.compiler.Parsers.$anonfun$2(Parsers.scala:84)
        at dotty.tools.dotc.reporting.Reporter.withIncompleteHandler(Reporter.scala:94)
        at ammonite.compiler.Parsers.doSplit(Parsers.scala:85)
        at ammonite.compiler.Parsers.$anonfun$9(Parsers.scala:260)
        at scala.collection.immutable.Vector1.map(Vector.scala:1872)
        at scala.collection.immutable.Vector1.map(Vector.scala:375)
        at ammonite.compiler.Parsers.scriptBlocksWithStartIndices(Parsers.scala:279)
        at ammonite.compiler.Parsers.splitScript(Parsers.scala:238)
        at ammonite.interp.Interpreter.splittedScript$lzycompute$1(Interpreter.scala:391)
        at ammonite.interp.Interpreter.splittedScript$1(Interpreter.scala:389)
        at ammonite.interp.Interpreter.processModule(Interpreter.scala:396)
        at ammonite.main.Scripts$.$anonfun$runScript$1(Scripts.scala:32)
        at ammonite.util.Res$Success.flatMap(Res.scala:62)
        at ammonite.main.Scripts$.runScript(Scripts.scala:28)
        at ammonite.Main.runScript(Main.scala:250)
        at ammonite.MainRunner.$anonfun$runScript$1(Main.scala:447)
        at ammonite.MainRunner.watchLoop(Main.scala:433)
        at ammonite.MainRunner.runScript(Main.scala:447)
        at ammonite.Main$.main0(Main.scala:355)
        at ammonite.Main$.main(Main.scala:281)
        at ammonite.Main.main(Main.scala)

authors: dispalt lihaoyi mvillafuertem nbauernfeind

repo: com-lihaoyi/Ammonite


text:
Loading current sbt project in ammonite repl like "sbt console" in current project directory

sbt console in the current sbt project loads the project into to the repl. Is it possible to do the same with ammonite repl as well.
something like this
sbt console

output: loading current sbt project ....
similarly
amm console

output: loading current sbt project....

This is probably made redundant by the fact you can already run Ammonite in any SBT project pretty trivially
http://lihaoyi.github.io/Ammonite/#Ammonite-REPL

thanks :+1:

@lihaoyi i dont think its trivial, i just failed to do this with use of docs description (probably dont know sbt enough and got multi-module project here). while searching for solution to the problem found this ticket.
i think you should reevaluate this feature request. easier level of entry is always welcome i guess.
regards

Another thought: It would be very nice to be able to say "Run this script in the context of this sbt project."
import $sbt:~/Dev/myrepo/

would be very exciting.

This is probably made redundant by the fact you can already run Ammonite in any SBT project pretty trivially
http://lihaoyi.github.io/Ammonite/#Ammonite-REPL

I disagree and agree with @prozz . I'm also trying to figure out how to run ammonite inside an sbt session the same I can sbt 'project myproject' 'console'.
Any directions?

Agreed, just spent close to two hours trying to get Ammonite running and gave up.

Since there's a little recent chatter, I thought I'd add that I found the linked instructions to mostly work... except that sbt kept forking. Adding this line to build.sbt let me start Ammonite with sbt test:run:
Test / run / fork := false

@lihaoyi i dont think its trivial, i just failed to do this with use of docs description (probably dont know sbt enough and got multi-module project here). while searching for solution to the problem found this ticket.
i think you should reevaluate this feature request. easier level of entry is always welcome i guess.
regards

I agree

Sorry, anyone can tell me how to figure this out? The link discussed in the issue is broken.
Thanks!

source: gharchive/issue

authors: akaivola beyondpie estsauver fmv1992 lihaoyi pamu phyllisstein prozz soronpo

license: MIT

license_type: permissive

license_source: github-api


text:
BUG: Using RootModule does not write fastLinkJS main.js file

In the following repo: https://github.com/davesmith00000/shaders
Changing the following line in build.sc to use RootModule allows you to omit shaders from Mill commands - which is great!
-object shaders extends mill.Module {
+object shaders extends mill.RootModule {

So now I can run ./mill demos.campfire.compile instead of ./mill shaders.demos.campfire.compile.
However, if you try running ./mill demos.campfire.fastLinkJS, no main.js file is written to out/demos/campfire/fastLinkJS.dest (the folder is empty). Changing back to a normal module and running ./mill shaders.demos.campfire.fastLinkJS works correctly, the main.js file can be found in out/shaders/demos/campfire/fastLinkJS.dest.
Millw 0.4.7
Mill 0.11.4

Did you also move the code from shaders/demos/campfire/src to demos/campfire/src?
I can't reproduce the issue, it seems to work fine.
Suggestion: I call my RootModule root to make it clearer that it's not an actual directory but the root of the project.

I did not, that'll be the problem, thank you.
Interesting, that didn't align with my existing understanding / intuition around Mill. I think I'll probably leave it as it to keep my build more regular / consistent, and avoid special casing root, in that case.
Thanks again. :smile:

Alternatively, you could overwrite the millSourcePath of your root module to shaders.

authors: davesmith00000 lefou lolgab

repo: com-lihaoyi/mill


text:
Fixes the default args for publish

It seems the default argument for gpgArgs in publish cannot ever resolve to anything but empty. So, if the argument is an empty Seq, replace it with the default gpgArgs.
This allows projects like mine to publish easily.

The motivation for this PR is that publish, as written, requires multiple --gpgArgs to work, as the default is never used. the publishAll command mentioned in the docs is harder for me to use than publish can be, thanks to the fact that publishAll uses a default sonatype url that is not useable for new sonatype publishers (all us newbies are being asked to publish to https://s01.oss.sonatype.org/service/local).

Btw, the PublishModule.publishAll does support a --sonatypeUri.

yes, publishAll has sonatype uri. My problem is I'm trying to use ./mill _.publish "credentials" --release false and getting a gpg error:
gpg: WARNING: no command supplied.  Trying to guess what you mean ...
gpg: no valid OpenPGP data found.
gpg: processing message failed: Unknown system error
1 targets failed
polymorphics.publish os.SubprocessException: CommandResult 2

    os.proc.call(ProcessOps.scala:85)
    mill.scalalib.publish.SonatypePublisher.gpgSigned(SonatypePublisher.scala:178)
    mill.scalalib.publish.SonatypePublisher.$anonfun$publishAll$4(SonatypePublisher.scala:44)
    scala.collection.immutable.List.map(List.scala:246)
    scala.collection.immutable.List.map(List.scala:79)
    mill.scalalib.publish.SonatypePublisher.$anonfun$publishAll$2(SonatypePublisher.scala:43)
    scala.collection.Iterator$$anon$9.next(Iterator.scala:577)
    scala.collection.mutable.Growable.addAll(Growable.scala:62)
    scala.collection.mutable.Growable.addAll$(Growable.scala:57)
    scala.collection.mutable.ArrayBuilder.addAll(ArrayBuilder.scala:66)
    scala.collection.IterableOnceOps.toArray(IterableOnce.scala:1282)
    scala.collection.IterableOnceOps.toArray$(IterableOnce.scala:1276)
    scala.collection.AbstractIterable.toArray(Iterable.scala:926)
    scala.Array$.from(Array.scala:73)
    scala.collection.immutable.ArraySeq$.from(ArraySeq.scala:282)
    scala.collection.immutable.ArraySeq$.from(ArraySeq.scala:273)
    scala.collection.ClassTagIterableFactory$AnyIterableDelegate.from(Factory.scala:671)
    scala.collection.IterableOps$WithFilter.map(Iterable.scala:891)
    mill.scalalib.publish.SonatypePublisher.publishAll(SonatypePublisher.scala:34)
    mill.scalalib.publish.SonatypePublisher.publish(SonatypePublisher.scala:30)
    mill.scalalib.PublishModule.$anonfun$publish$2(PublishModule.scala:177)
    scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)

to fix this I have to write ./mill _.publish "credentials" --release true --gpgArgs --batch --gpgArgs -a --gpgArgs -b  , because the default gpgArgs on the publish task just doesn't work.

Thanks to clarifying.

source: gharchive/pull-request

authors: lefou markehammons


text:
Apple Silicon Support

User Story
As a developer with an Apple Silicon (M1) laptop
I want to run CoMPAS locally
So that I can try it out and eventually work on it
Acceptance criteria

I can start and use CoMPAS on an Apple Silicon Laptop

Hints

@pascalwilbrink can you run it?

for ARM64 based machines, you need to specify the platform:
docker-compose --env-file compas/.env -f compas/docker-compose-postgresql up -d --build --platform linux/amd64

authors: Sander3003 pascalwilbrink trusz

repo: com-pas/compas-deployment


text:
Access a PipelineModel stages

I'm trying to figure out how to access the stages of a loaded model, I see that from the bundle there's a model propery of type PipelineModel and if I call print on it, I can see the list of stages, but  I cannot seem to be able to access them from code, any guidance would be appreaciated

could bundle.root.asInstanceOf[Pipeline].model.stages be what you're looking for?

Closing this, please feel free to re-open if if the suggestion above doesn't fix your issues.

authors: ancasarb dvaldivia

repo: combust/mleap

license_source: bigquery


text:
Spark ML LinearSVC serialization Error

Hi, I am migrating from version 0.7.0 to Version 0.10.2
I am using Spark 2.2.0 and a Python 3.5 kernel with Py4J 0.10.4
MLeap python package is 0.9.4
I have a set of python and scala notebooks that I use to test MLeap serialization and deserialization.
With the new version, the serialization of the Linear Support Vector Machine classifier is returning the following exception, while with the version 0.7.0 this is working fine.
The pipeline is defined as follows (it is merely for testing the library):
import org.apache.spark.ml.classification.LinearSVC
import org.apache.spark.ml.Pipeline
import org.apache.spark.ml.feature.{Binarizer, HashingTF, NGram, IDF, Tokenizer, Word2Vec,
VectorAssembler, StringIndexer, StopWordsRemover, MinMaxScaler, IndexToString}
import org.apache.spark.ml.evaluation.{MulticlassClassificationEvaluator, BinaryClassificationEvaluator, RegressionEvaluator}
import org.apache.spark.ml.tuning.{CrossValidator, ParamGridBuilder}

val tk = new Tokenizer().setInputCol("text").setOutputCol("words")
val rm = new StopWordsRemover().setInputCol(tk.getOutputCol).setOutputCol("filtered")
val ngram = new NGram().setN(2).setInputCol("words")setOutputCol("ngrams")
val wv = new Word2Vec().setInputCol(ngram.getOutputCol).setOutputCol("wordVec").setVectorSize(5)
val scaler_wv = new MinMaxScaler().setInputCol(wv.getOutputCol).setOutputCol("scaledFeaturesvt")
val ht = new HashingTF().setInputCol(rm.getOutputCol).setOutputCol("hashingTF").setNumFeatures(20)
val idf = new IDF().setInputCol(ht.getOutputCol).setOutputCol("TF-IDF").setMinDocFreq(1)
val va = new VectorAssembler().setInputCols(Array(scaler_wv.getOutputCol, idf.getOutputCol)).setOutputCol("features")
val si = new StringIndexer().setInputCol("original_category").setOutputCol("label").setHandleInvalid("skip").fit(training)
val cc = new IndexToString().setInputCol("prediction").setOutputCol("predicted_category").setLabels(si.labels)
val stages_fe = Array(tk, rm, ngram, ht, idf, wv, scaler_wv, va)
val svm = new LinearSVC().setMaxIter(10).setRegParam(0.01)
val nsi = new StringIndexer().setInputCol("original_category").setOutputCol("label_multi")
nsi.fit(training)
val binlab = new Binarizer().setThreshold(7).setInputCol(nsi.getOutputCol).setOutputCol("label")
val pipeline_svm = new Pipeline().setStages(stages_fe ++ Array(nsi, binlab, svm))
val paramGrid = new ParamGridBuilder().addGrid(svm.regParam, Array(0.1, 1.00)).build()
val binary_eval = new RegressionEvaluator().setLabelCol("label").setPredictionCol("prediction").setMetricName("rmse")
val crossval_svm = new CrossValidator().setEstimator(pipeline_svm).setEvaluator(binary_eval).setEstimatorParamMaps(paramGrid).setNumFolds(3)  // Use 3+ in practice
val cvModel_lvm = crossval_svm.fit(training)
val bestModel_svm = cvModel_lvm.bestModel

And i get the following error:
/opt/conda/lib/python3.5/site-packages/mleap/pyspark/spark_support.py in serializeToBundle(self, path, dataset)
     23 def serializeToBundle(self, path, dataset=None):
     24     serializer = SimpleSparkSerializer()
---> 25     serializer.serializeToBundle(self, path, dataset=dataset)
     26
     27

/opt/conda/lib/python3.5/site-packages/mleap/pyspark/spark_support.py in serializeToBundle(self, transformer, path, dataset)
     40
     41     def serializeToBundle(self, transformer, path, dataset):
---> 42         self._java_obj.serializeToBundle(transformer._to_java(), path, dataset._jdf)
     43
     44     def deserializeFromBundle(self, path):

/opt/spark/dist/python/lib/py4j-0.10.4-src.zip/py4j/java_gateway.py in __call__(self, *args)
   1131         answer = self.gateway_client.send_command(command)
   1132         return_value = get_return_value(
-> 1133             answer, self.gateway_client, self.target_id, self.name)
   1134
   1135         for temp_arg in temp_args:

/opt/spark/dist/python/pyspark/sql/utils.py in deco(*a, **kw)
     61     def deco(*a, **kw):
     62         try:
---> 63             return f(*a, **kw)
     64         except py4j.protocol.Py4JJavaError as e:
     65             s = e.java_exception.toString()

/opt/spark/dist/python/lib/py4j-0.10.4-src.zip/py4j/protocol.py in get_return_value(answer, gateway_client, target_id, name)
    317                 raise Py4JJavaError(
    318                     "An error occurred while calling {0}{1}{2}.\n".
--> 319                     format(target_id, ".", name), value)
    320             else:
    321                 raise Py4JError(

Py4JJavaError: An error occurred while calling o35278.serializeToBundle.
: java.util.NoSuchElementException: key not found: org.apache.spark.ml.classification.LinearSVCModel
	at scala.collection.MapLike$class.default(MapLike.scala:228)
	at scala.collection.AbstractMap.default(Map.scala:59)
	at scala.collection.MapLike$class.apply(MapLike.scala:141)
	at scala.collection.AbstractMap.apply(Map.scala:59)
	at ml.combust.bundle.BundleRegistry.opForObj(BundleRegistry.scala:84)
	at ml.combust.bundle.serializer.GraphSerializer$$anonfun$writeNode$1.apply(GraphSerializer.scala:31)
	at ml.combust.bundle.serializer.GraphSerializer$$anonfun$writeNode$1.apply(GraphSerializer.scala:30)
	at scala.util.Try$.apply(Try.scala:192)
	at ml.combust.bundle.serializer.GraphSerializer.writeNode(GraphSerializer.scala:30)
	at ml.combust.bundle.serializer.GraphSerializer$$anonfun$write$2.apply(GraphSerializer.scala:21)
	at ml.combust.bundle.serializer.GraphSerializer$$anonfun$write$2.apply(GraphSerializer.scala:21)
	at scala.collection.IndexedSeqOptimized$class.foldl(IndexedSeqOptimized.scala:57)
	at scala.collection.IndexedSeqOptimized$class.foldLeft(IndexedSeqOptimized.scala:66)
	at scala.collection.mutable.WrappedArray.foldLeft(WrappedArray.scala:35)
	at ml.combust.bundle.serializer.GraphSerializer.write(GraphSerializer.scala:20)
	at org.apache.spark.ml.bundle.ops.PipelineOp$$anon$1.store(PipelineOp.scala:21)
	at org.apache.spark.ml.bundle.ops.PipelineOp$$anon$1.store(PipelineOp.scala:14)
	at ml.combust.bundle.serializer.ModelSerializer$$anonfun$write$1.apply(ModelSerializer.scala:87)
	at ml.combust.bundle.serializer.ModelSerializer$$anonfun$write$1.apply(ModelSerializer.scala:83)
	at scala.util.Try$.apply(Try.scala:192)
	at ml.combust.bundle.serializer.ModelSerializer.write(ModelSerializer.scala:83)
	at ml.combust.bundle.serializer.NodeSerializer$$anonfun$write$1.apply(NodeSerializer.scala:85)
	at ml.combust.bundle.serializer.NodeSerializer$$anonfun$write$1.apply(NodeSerializer.scala:81)
	at scala.util.Try$.apply(Try.scala:192)
	at ml.combust.bundle.serializer.NodeSerializer.write(NodeSerializer.scala:81)
	at ml.combust.bundle.serializer.BundleSerializer$$anonfun$write$1.apply(BundleSerializer.scala:34)
	at ml.combust.bundle.serializer.BundleSerializer$$anonfun$write$1.apply(BundleSerializer.scala:29)
	at scala.util.Try$.apply(Try.scala:192)
	at ml.combust.bundle.serializer.BundleSerializer.write(BundleSerializer.scala:29)
	at ml.combust.bundle.BundleWriter.save(BundleWriter.scala:26)
	at ml.combust.mleap.spark.SimpleSparkSerializer$$anonfun$serializeToBundleWithFormat$2.apply(SimpleSparkSerializer.scala:26)
	at ml.combust.mleap.spark.SimpleSparkSerializer$$anonfun$serializeToBundleWithFormat$2.apply(SimpleSparkSerializer.scala:25)
	at resource.AbstractManagedResource$$anonfun$5.apply(AbstractManagedResource.scala:88)
	at scala.util.control.Exception$Catch$$anonfun$either$1.apply(Exception.scala:125)
	at scala.util.control.Exception$Catch$$anonfun$either$1.apply(Exception.scala:125)
	at scala.util.control.Exception$Catch.apply(Exception.scala:103)
	at scala.util.control.Exception$Catch.either(Exception.scala:125)
	at resource.AbstractManagedResource.acquireFor(AbstractManagedResource.scala:88)
	at resource.ManagedResourceOperations$class.apply(ManagedResourceOperations.scala:26)
	at resource.AbstractManagedResource.apply(AbstractManagedResource.scala:50)
	at resource.DeferredExtractableManagedResource$$anonfun$tried$1.apply(AbstractManagedResource.scala:33)
	at scala.util.Try$.apply(Try.scala:192)
	at resource.DeferredExtractableManagedResource.tried(AbstractManagedResource.scala:33)
	at ml.combust.mleap.spark.SimpleSparkSerializer.serializeToBundleWithFormat(SimpleSparkSerializer.scala:27)
	at ml.combust.mleap.spark.SimpleSparkSerializer.serializeToBundle(SimpleSparkSerializer.scala:17)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
	at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
	at py4j.Gateway.invoke(Gateway.java:280)
	at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
	at py4j.commands.CallCommand.execute(CallCommand.java:79)
	at py4j.GatewayConnection.run(GatewayConnection.java:214)
	at java.lang.Thread.run(Thread.java:748)

Did something change in the way you serialize Spark objects?

support for LinearSVC model has been added, closing issue.

authors: ancasarb mleida-stratio


text:
Fix arch detection

I initialized the architecture variable to uname -mso that it doesn't end up blank if we fall outside of the cases.
On a arm64 mac, the follwoign URL would get generated before: https://github.com/grafana/loki/releases/download/v2.4.1/logcli-darwin-.zip and now it properly becomes https://github.com/grafana/loki/releases/download/v2.4.1/logcli-darwin-arm64.zip

@agirardguittard-plaid Thanks, and apologies for the delay, i'm sorry somehow missed the emails

authors: agirardguittard-plaid comdotlinux

repo: comdotlinux/asdf-loki-logcli


text:
ADR101 - Implement metrics to monitor data companion requests

As proposed in ADR-101 (#82 ), we want a set of metrics to track the requests issued by the data companion for different retain heights.
At the moment the proposed metrics are:

pruning_service_block_retain_height
pruning_service_block_results_retain_height

Closed with #1234

repo: cometbft/cometbft


text:
Add an Exit condition to the Prevote and Precommit steps when it is mathematically impossible to reach +2/3 weight on a single value

Protocol Change Proposal
Summary
Add an additional exit condition (importantly, without requiring timeout) to the Prevote or Precommit steps when it is clear that +2/3 Pre{votes,commits}, for X (whether X is a block or nil) is mathematically impossible.
Notably, this has two benefits:

much faster resolution from several chain-halt scenarios
faster time to finality (by moving through round steps faster) under non-deterministic ProcessProposal logic

Problem Definition
Currently, we exit the Prevote or Precommit steps early (i.e. without requiring a timeout to be reached) once +2/3 Pre{votes,commits} are seen. That is, consensus is reached.
However, I would also argue that consensus is reached once it is clear that +2/3 Pre{votes,commits} is mathematically impossible to achieve. In this case, it is not necessary to wait for a timeout period and the validator can safely proceed to the next step as if nil is consensus.
Once it is true that the number of uncounted Pre{votes,commits} plus the mode (i.e. highest count) of the Pre{votes,commits} values sum to 2/3 or fewer of the total, then it is safe to say that the consensus value is nil.
This has two practical benefits which I mentioned above but will explain more deeply here.
Firstly, there is a faster time-to-resolution for a common chain-halt scenario where +2/3 of validators cannot come to agreement on the AppHash. Let us imagine the scenario where a non-determinism bug in FinalizeBlock results in 50% of validator weight having AppHash=0x1 and 50% of validator weight having AppHash=0x2. This results in a chain-halt where rounds will increase as Prevotes never get +2/3 on any value and therefore all Precommits will be nil. At least 50% of the validators would have to patch their software, roll-back a single block, and then restart consensus from Round 0. However, if the current round got to a very high number, then it will take a very long time for such validators to get back to the highest round. This is because they will need to wait for the Prevote timeout period as no single value ever reached +2/3 weight. This is further exacerbated by the timeout_prevote_delta which increases the timeout period linearly with the number of rounds.
Secondly, under this change, there would be a faster time-to-finality for a blockchain that uses non-deterministic validation of blocks (e.g. ProcessProposal). Once it is certain that the currently proposed block will not reach +2/3 consensus, the network should instantly move-on to allow for a newly-proposed block. This would typically manifest itself in the Prevote step when 1/3+ of Prevotes are for the block B and 1/3+ of Prevotes are for nil. In the existing algorithm, validators have to wait for the entire Prevote timeout period when this occurs.
Proposal
Add an additional exit condition (not requiring a timeout) to the Prevote and Precommit steps here when +2/3 weight on a single value becomes mathematically impossible.

A rapid comment here: when you say that is "mathematically impossible" to reach a given number of votes for a given value, are you considering that Byzantine validators might vote for multiple values in a round step?

While important to consider, I am thinking that is out-of-scope of this issue.
Let me know if you think that is fair or if that completely invalidates my suggestion.

I don't think it invalidates the proposal. This is something that has been reported (e.g. https://github.com/tendermint/tendermint/issues/1496) and for which we should try to find a solution.
But to tell when it is impossible to get a quorum for a given value, you need to strictly define the level of fault-tolerance, namely the maximum voting power on the hands of Byzantine nodes. While Tendermint algorithm is designed for having <1/3 of Byzantine voting power, the implementation covers possible temporary situations on which this limit is not observed.

A similar solution, which would have similar (or the same) effect, is to consider situations in which it doesn't make sense to wait for timeouts to expire, this is particular relevant for a recovering node. A workaround, which is actually possible, is to zero some of the timeouts when restarting a node, in the case of the first scenario. Then, once the critical height is committed, restart the node again to use the standard values for the timeout durations.

The second scenario is a little different, if I understood it correctly. If I did, it aligns with some proposals we had in the past to early give up from a round that can't succeed at all. In this case, it is not just about removing an useless sleep time, but also skipping a round step (namely, from prevote(R) to propose(R+1).

zero some of the timeouts when restarting a node

My engineering senses tells me that it's going to be a much better long-term solution to setting on a general solution rather than to break this up into two special cases.
As a side note, empirically we have seen that restarting the node to alter the timeouts results in starting from Round=0. We haven't had a chance to debug this. Originally it was our understanding that the WAL would hold this consensus information and not force a restart from Round=0.

authors: BrendanChou cason


text:
Do not track timestamps with nanosecond precision

Trivial change to DB structure to remove ns from timestamp + delay data but requires checking that this does not cause conflicts with SystemTime::now() instances elsewhere in the codebase.

resolved

repo: comit-network/hermes


text:
Toyota Flowchart resistor update

Update Toyota Giraffe Switch Settings Flowchart to note cars that require resistor.

Overall looks good, one change that I would suggest. In your list of the cars that require the resistor, since we don't have the 2019 RAV4 upstreamed yet I would remove it. Maybe adding a note like "other cars my need resistor too, check the OP readme" then that way if more cars in the future need the resistor we don't need to keep adding. I'm ok with keeping the Camry and CH-R on there.

Ok, force-pushed that change.

what went wrong when trying to merge this?

It had the wrong image after the merge. Feel free to reopen with the correct one

repo: commaai/neo

license: mit


text:
KIA EV9 steering not working

Describe the bug
Happy new year everybody.
I bought KIA EV9 , and I am trying to use openpilot with c3x.
I success recognizing EV9 with sunnypilot without an error code, but there is a problem with steering(LKA not working), so I would like to ask for help. .
Symptom
--> Even if you press the lane maintenance button on the steering wheel, a ringing sound and a blue border (mad mode) appear at the comma, but there is no response from the vehicle. (The green handle-shaped icon should turn on on the instrument panel, but it does not turn on and the function does not work.)
I have changed files while adding vehicles
-override.yaml: Add EV9 value
-values.py: Add carparam obtained from original dash cam
-interface.py: Add spec value
-sunnypilot_carname_json: EV9 car name
-In addition to the above, other changes were made, such as addition to the CANFD list, EV list, etc.
P.S. Looking at the specifications again, I think it may be because LFA2 was introduced starting from EV9 and has not yet been reflected in Open Pilot(just guess).
It is said that it is currently only applied to EV9, new Santa Fe, and GV80 FL.
I would like to know the cause and solution. Thank you!

Comma connet route which issue occured
1903aefb9b228a7c%7C2023-12-31--22-36-09
Comma connet route which obtain car parameters with original dashcam mode
1903aefb9b228a7c|2023-12-30--20-47-48
1903aefb9b228a7c|2023-12-31--09-36-32
Which car does this affect?
KIA EV9 2023
Provide a route where the issue occurs
1903aefb9b228a7c|2023-12-31--22-36-09
openpilot version
0.9.6
Additional info
No response

I have changed files while adding vehicles

It sounds like you almost have the port finished, we just need to decipher a new steering message. Can you open a PR with all your changes to get us started?

Sorry for late.
Does PR mean pull request?
I have submitted a pull request for changes to files(override, fingerprints, interface, and values) in openpilot's master branch.
I'm not a programmer but just a beginner, so I don't know if I did it well. If there is anything else I need to do, please let me know.

Closing, let's move the discussion to your PR.

authors: adeebshihadeh benign07 sshane

repo: commaai/openpilot


text:
SANTA_FE_2022: add missing FW versions

***** Template: Car port *****
Checklist

[ x] added entry to CarInfo in selfdrive/car/*/values.py and ran selfdrive/car/docs.py to generate new docs
[ ] test route added to routes.py
[ ] route with openpilot:
[ ] route with stock system:

Can you add your dongle id?

Dongle ID:  1ad7728ce54a161d

authors: chrihart sshane


text:
Upgrading from 1.9.71 to 2.2.1

According to Semantic Versioning:

MAJOR version when you make incompatible API changes,

I want to update my package:

It is going a major version number change. Is my project not going to compile? I can't see the changelog.

Is there any update on this matter? I reverted back to the old library because of the issues I encountered.

I agree the structure of the new api seems a little odd to me. It appears that in order to use it you are required to nest calls for via lambdas for a successful parse or unsuccessful parse. This seems to obfuscate the normal control flow of the program. E.g. parse the arguements, if not successful display the help text and return otherwise proceed executing Main().  Unless I am missing something, it looks like I will continue using the older version as the api is much cleaner.

I used the following approach which is buried in the wiki:
public static void Main(string[] args)
{
    Parser.Default.ParseArguments<Options>(args)
       .MapResult(
         options => RunAndReturnExitCode(options),
         _ => 1 ); // This will automatically print an error message based on the meta data if the argument are incorrect
}
public static int RunAndReturnExitCode(ApplicationArguments args)
{
    // add your code here
    return 0;
}

Yes, I found this. But I struggle to get that to work with the code that I have. The whole thing blew up. 😞

From: John Donaghy notifications@github.com
Sent: 26 February 2018 16:24
To: commandlineparser/commandline
Cc: ajtruckle; Author
Subject: Re: [commandlineparser/commandline] Upgrading from 1.9.71 to 2.2.1 (#225)
I used the following approach which is buried in the wiki:
public static void Main(string[] args)
{
Parser.Default.ParseArguments(args)
.MapResult(
options => RunAndReturnExitCode(options),
_ => 1 ); // This will automatically print an error message based on the meta data if the argument are incorrect
}
public static int RunAndReturnExitCode(ApplicationArguments args)
{
// add your code here
return 0;
}
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcommandlineparser%2Fcommandline%2Fissues%2F225%23issuecomment-368558803&data=02|01||70e22da99b1f47ae4b2308d57d3563c7|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636552590607548717&sdata=I1%2FglwuKaY19g7fClY%2FdlKDsD0YhF0%2B9PW%2BDOy1SrcM%3D&reserved=0, or mute the threadhttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAHnYs4Z2VoOejj9or5fszbRPzywjk_80ks5tYtpUgaJpZM4Re-JY&data=02|01||70e22da99b1f47ae4b2308d57d3563c7|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636552590607548717&sdata=0oBrqKZGCzn7IWfZu5yB%2FvuC7R15AdJuwohciYLtjjM%3D&reserved=0.

Did you manage to get a simple example working? How exactly did it blow up?

I've only started looking at the new API and it is definitely confusing. There does not seem to be a way to meet your needs which, if I understand correctly, requires being able to access the parsed object in the case where there are failures. This would allow you to get the path of the log file even if other arguments weren't provided.

Yes. So I am frustrated that this upgrade is so fundamentally code breaking for me.
What we had before worked and I understood. This new way I don’t for my needs. And I don’t know how to change it to accommodate the new dll.
Sent from my iPhone
On 26 Feb 2018, at 18:18, John Donaghy <notifications@github.commailto:notifications@github.com> wrote:
I've only started looking at the new API and it is definitely confusing. There does not seem to be a way to meet your needs which, if I understand correctly, requires being able to access the parsed object in the case where there are failures. This would allow you to get the path of the log file even if other arguments weren't provided.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcommandlineparser%2Fcommandline%2Fissues%2F225%23issuecomment-368597055&data=02|01||3a4a3a13a3464aa9601d08d57d455689|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636552659105077976&sdata=52iPYe3nd%2F0Vzw0tpajbHnpW8doegU0m3XTSsQaQIl8%3D&reserved=0, or mute the threadhttps://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAHnYs5pnVj707HbNOFUTbrlBKy8gRCBjks5tYvVzgaJpZM4Re-JY&data=02|01||3a4a3a13a3464aa9601d08d57d455689|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636552659105077976&sdata=Zh8cqXk%2BtxF3hH3GlsLVCzAa66qJ0J5XCRqRdWg6SO4%3D&reserved=0.

I'm in this exact position, it's extremely frustrating and i also don't know where to go from here. I have a library that has to be ported and the non existent documentation is not helping.

Got to a solution that works using the example from @GuyTe in this issue
Instead of having a [HelpOption] GetUsage method in your options you can print the HelpText directly in the WithNotParsed anonymous function you declare. And do what you want you need to in the WithParsed. I simply broke out what i previously did into a method and called it with the parsed Options as a parameter like so parserResult.WithParsed<MyOptions>(options => DoSomething(options));. I'm quite rushed while writing this so if you want to clarify something or try to do a better example with your code let me know.

A fleshed out example would help me if you have the time. 😊
Thank you!

From: Dundret notifications@github.com
Sent: 28 February 2018 15:46
To: commandlineparser/commandline
Cc: ajtruckle; Author
Subject: Re: [commandlineparser/commandline] Upgrading from 1.9.71 to 2.2.1 (#225)
Got to a solution that works using the example from @GuyTehttps://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fguyte&data=02|01||cb2a63970f534ed7525a08d57ec26da0|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636554295876337749&sdata=YDeLBTx7v9pH3f5wKRJY9EELpBU7%2FXTxAiDqqbVIB70%3D&reserved=0 in this issue https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcommandlineparser%2Fcommandline%2Fissues%2F182&data=02|01||cb2a63970f534ed7525a08d57ec26da0|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636554295876337749&sdata=eAGZ4%2FnGryLLzQ0rU7MAj%2Bs2da%2FcVWoZVm3Mssysxxs%3D&reserved=0
Instead of having a [HelpOption] GetUsage method in your options you can print the HelpText directly in the WithNotParsed anonymous function you declare. And do what you want you need to in the WithParsed. I simply broke out what i previously did into a method and called it with the parsed Options as a parameter like so parserResult.WithParsed(options => DoSomething(options));. I'm quite rushed while writing this so if you want to clarify something or try to do a better example with your code let me know.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcommandlineparser%2Fcommandline%2Fissues%2F225%23issuecomment-369279340&data=02|01||cb2a63970f534ed7525a08d57ec26da0|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636554295876337749&sdata=umC3uAFgTbBmmyQRLrzwGUhtBLJ%2BubEdRJerzABbi1A%3D&reserved=0, or mute the threadhttps://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAHnYs6r1EZCMXMPcJxKgRRtCnQGjgUAYks5tZXNfgaJpZM4Re-JY&data=02|01||cb2a63970f534ed7525a08d57ec26da0|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636554295876337749&sdata=JBX8uzKS3zz6tuPGHCmHxvLh3HMAbaDzJKz4%2BOU548A%3D&reserved=0.

Made an attempt for a better example here, haven't run it so might be some small issue but you should get the gist. And you could probably improve the error handling by some experimentation. Hope it helps.
`static int Main(string[] args)
{
var parserResult = CommandLine.Parser.Default.ParseArguments<Options/Or whatever you've named your options class/>(args);
if(parseResult.Tag == ParserResultType.NotParsed)
{
ReturnErrorCode = ErrorCode.CommandLineArguments;
}
	parserResult.WithParsed(options => OnSuccessfulParse(options));
	parserResult.WithNotParsed(errs =>
                {
                    var helpText = HelpText.AutoBuild(parserResult, h =>
                    {
                        return HelpText.DefaultParsingErrorsHandler(parserResult, h); //This you previously did in the GetUsage method.
                    }, e =>
                    {
                        return e;
                    });
                    Console.WriteLine(helpText);
                }
                );

		}
    }

	private static void OnSuccessfulParse(Options options) //The code you run on a successful parse
	{
		try
        {
                SimpleLog.SetLogFile(logDir: Program.Options.ErrorLogFolder, check: false);

                var program = new Program();
                var task = Task.Run(program.Run);
                task.Wait();

                // We don't need the file anymore
                if(File.Exists(Options.CalendarEventsPath))
                    File.Delete(Options.CalendarEventsPath);
            }
        }
        catch(Exception ex)
        {
            // The problem I have is if the command line parser returns false or
            // raises an exception (argument null). If the log path has not been
            // specified then it will default to the "current working folder".
            // So we display the log folder in the console window.
            SimpleLog.Log(ex);
            Console.WriteLine($"OutlookCalIFConsole: See error logs. Folder: {SimpleLog.LogDir}");
            ReturnErrorCode = ErrorCode.CommandLineArguments;
        }

        return (int)ReturnErrorCode;
	}`

It compiles, thanks. But for some reason line:
if(parserResult.Tag == ParserResultType.NotParsed) //Move this to where it fits
Is always true.

Yes, for some reason once it has parsed my arguments my Options featur eis not filled.

I think I got it. Firstly, I tweaked the code:
        static int Main(string[] args)
        {
            Console.WriteLine(args.ToString());
            var parserResult = CommandLine.Parser.Default.ParseArguments<Options>(args);
            if (parserResult.Tag == ParserResultType.NotParsed)
            {
                ReturnErrorCode = ErrorCode.CommandLineArguments;
            }

            parserResult.WithParsed<Options>(options => OnSuccessfulParse(options));
            parserResult.WithNotParsed<Options>(errs =>
            {
                var helpText = HelpText.AutoBuild(parserResult, h =>
                {
                    return HelpText.DefaultParsingErrorsHandler(parserResult, h);
                }, e =>
                {
                    return e;
                });
                Console.WriteLine(helpText);
            });

            return (int)ReturnErrorCode;
        }

Then I did the following:
        private static void OnSuccessfulParse(Options options)
        {
            try
            {
                Program.Options = options;

                SimpleLog.SetLogFile(logDir: Program.Options.ErrorLogFolder, check: false);

                var program = new Program();
                var task = Task.Run(program.Run);
                task.Wait();

                // We don't need the file anymore
                if (File.Exists(Options.CalendarEventsPath))
                    File.Delete(Options.CalendarEventsPath);
            }
            catch (Exception ex)
            {
                // The problem I have is if the command line parser returns false or
                // raises an exception (argument null). If the log path has not been
                // specified then it will default to the "current working folder".
                // So we display the log folder in the console window.
                SimpleLog.Log(ex);
                Console.WriteLine($"OutlookCalIFConsole: See error logs. Folder: {SimpleLog.LogDir}");
                ReturnErrorCode = ErrorCode.CommandLineArguments;
            }
        }

As you can see, I had to copy the options over into the public options. I don't know why I had to do that? The ones passed into the method were OK and once i copied them my app worked.
Thoughts?

Hmm, i think you can remove
if (parserResult.Tag == ParserResultType.NotParsed)             {                 ReturnErrorCode = ErrorCode.CommandLineArguments;             }
And instead set the ReturnErrorCode = ErrorCode.CommandLineArguments; in the WithNotParsed.
I Would also fix the private static void OnSuccessfulParse(Options options) method to return an int, because if you look in the catch  it sets the ReturnErrorCode = ErrorCode.CommandLineArguments; and then does nothing with it, after some more looking it seems the parserResult.Tag is used mostly in tests together with some other validation on the parse, the two "cases" WithParsed and WithNotParsed should have sufficient logic to handle when the parse is successful and when it's not.
Don't know why you had to copy the options over, you should be able to access them directly, is your Options class not set to public by chance?
Other than that i think it looks fine, i would recommend doing some extensive testing to make sure it does what you expect and want it to do.

Thanks for the suggestions. I have adjusted the first bit like you said:
        static int Main(string[] args)
        {
            var parserResult = CommandLine.Parser.Default.ParseArguments<Options>(args);

            parserResult.WithParsed<Options>(options => OnSuccessfulParse(options));
            parserResult.WithNotParsed<Options>(errs =>
            {
                var helpText = HelpText.AutoBuild(parserResult, h =>
                {
                    return HelpText.DefaultParsingErrorsHandler(parserResult, h);
                }, e =>
                {
                    return e;
                });
                Console.WriteLine(helpText);
                ReturnErrorCode = ErrorCode.CommandLineArguments;
            });

            return (int)ReturnErrorCode;
        }

Out of interest, what would the code look like if we moved it into a OnUnsuccessfulParse method?

I Would also fix the private static void OnSuccessfulParse(Options options) method to return an int

This is fine I think because that variable is decalred liek this:
public static ErrorCode ReturnErrorCode = ErrorCode.NoError;
So it doesn't need to return the value.

Don't know why you had to copy the options over, you should be able to access them directly, is your Options class not set to public by chance?

Is it public. See:
public static Options Options = new Options();

Okay then the ReturnErrorCode is fine. I Didn't mean your instantiated Options variable, i meant your Options class, i scrolled up and saw you pasted it there, it's not set to public class Options, might have something to do with that but not sure, trying to think of what else could cause you not being able to access the options. I haven't tried doing a method that the WithNotParsed calls but you should be able to do the same thing as we do in the WithParsed.

Well, This is the parsing code:
        var parserResult = CommandLine.Parser.Default.ParseArguments<Options>(args);

        parserResult.WithParsed<Options>(options => OnSuccessfulParse(options));
        parserResult.WithNotParsed<Options>(errs =>

So there is no instance above where it actually populates my options variable:
       public static Options Options = new Options();

We then pass options in like this:
       parserResult.WithParsed<Options>(options => OnSuccessfulParse(options));

I am not quite sure what exactly "options" literally is here. Eitherway, it is not my own variable.
Now, I could have adjusted all my code to use the passed in "options" variable in OnSuccessfulParse but I did not see the point in changing my code for that. So I just copied it to the original public variable.

From: Dundret notifications@github.com
Sent: 02 March 2018 09:28
To: commandlineparser/commandline
Cc: ajtruckle; Author
Subject: Re: [commandlineparser/commandline] Upgrading from 1.9.71 to 2.2.1 (#225)
Okay then the ReturnErrorCode is fine. I Didn't mean your instantiated Options variable, i meant your Options class, i scrolled up and saw you pasted it there, it's not set to public class Options, might have something to do with that but not sure, trying to think of what else could cause you not being able to access the options. I haven't tried doing a method that the WithNotParsed calls but you should be able to do the same thing as we do in the WithParsed.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcommandlineparser%2Fcommandline%2Fissues%2F225%23issuecomment-369868171&data=02|01||3de1bad9194141c2cbe808d5801fe8c9|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636555796886443310&sdata=5LxvJnlXclsbMxZ4tu4TjprgcCSBZIRIop2ryVnbksk%3D&reserved=0, or mute the threadhttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAHnYs234L52NjmNJpdnmwb1fQeitKzC7ks5taRClgaJpZM4Re-JY&data=02|01||3de1bad9194141c2cbe808d5801fe8c9|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636555796886443310&sdata=rUrwIGtL%2BYB45IEDug6GyNaZdelFNqasI2zvgB0TFeM%3D&reserved=0.

True true, well then it works and if you're satisfied you can mark another one done on ye old task board ;)

authors: Dundret JDonaghy ajtruckle rufio620

repo: commandlineparser/commandline


text:
Updated Courses heading for better view

Description
Fixes # (issue)
Updated line #29 of style.css
Changed the indentation of the headline of the Courses page for better view.
Type of change

[x] User Interface

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have npm run format before commiting
[x] I replicated the UI with the Design

ScreenShots (if any)
Previously:

Now:

@kaiwalyakoparkar please review this

repo: commclassroom/commclassroom


text:
Update gradle-cucumber-jvm-plugin for gradle 2.14

Update gradle-cucumber-jvm-plugin for gradle 2.14 as the ProgressLoggerFactory and ProgressLogger class files moved to org.gradle.internal.logging.progress package.
Update gradle-wrapper to point to 2.14.
Update nebule-test library to 4.2.2

Detailed:
Issue: Was unable to use the gradle-cucumber-jvm-plugin above gradle v2.13.
Change: Please review. Made changes to make gradle-cucumber-jvm-plugin work with gradle 2.14. Imp: I have commented the codenarcrule on using gradle internal libraries as the files org.gradle.logging.ProgressLogger, org.gradle.logging.ProgressLoggerFactory and org.gradle.logging.ConsoleRenderer are now moved to org.gradle.internal.logging.progress.ProgressLogger, org.gradle.internal.logging.progress.ProgressLoggerFactory and org.gradle.internal.logging.ConsoleRenderer when using gradle 2.14. This was causing issue with plugin.
Updated the gradle wrapper in the project to reflect the same.
Updated nebula-test to 4.2.2 as Spock 1.0.0-groovy-2.3 is not compatible with Groovy 2.4.4.

@santus444 Thank you for this contribution. I had it on my radar to fix this for newer versions of gradle after other current projects i"m involved with settled down. I will be looking to get a few other changes in over the next week or so, then expect to publish a new version.

Sure, thanks @JayStGelais.

@santus444 This has been released as part of version 0.8.

Thanks @JayStGelais


text:
Sort SKU List Items by position attribute

Closes @commercelayer/issues-app#97

What I did

I refactorized the SkuListProvider and some other helpers to avoid the usage of include of has_many relationships according to new internal policies
I fixed the sorting of sku_list_items to sort them by position ascending

Notes
Having splitted the included relationships into separate requests could lead into pagination issues. At the moment I did not managed any pagination for sku_list_items because they seem to be limited to 12 by business logic. Instead I paginated the results of skus and prices. Eventually we could set a custom maximum amount of pages that we want to fetch.
Checklist

[x] Make sure your changes are tested (stories and/or unit, integration, or end-to-end tests).
[ ] Make sure to add/update documentation regarding your changes.
[x] You are NOT deprecating/removing a feature.

Hello, is there any update on this? Is there any way I could help?

Hello, is there any update on this? Is there any way I could help?

Hi!
I am going to close this PR, since this has been solved here and will be released soon:
https://github.com/commercelayer/mfe-microstore/pull/64

authors: gciotola helua pfferrari

repo: commercelayer/mfe-microstore


text:
Request Title When Title Empty In Multi-Upload Share

Title (required)
Fixes Multiple Uploads crashes if user try to upload without title #1734
Description (required)
Fixes Multiple Uploads crashes if user try to upload without title #1734
As in the single upload case, provide a check that validates the title field and displays a toast if title is not provided.
Tests performed (required)
Tested on {API 24 Android 7.0 Physical Device Samsung Nexus S6
Screenshots showing what changed (optional)

Codecov Report

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

@@            Coverage Diff            @@
##           master   #1769      +/-   ##
=========================================
- Coverage    3.63%   3.63%   -0.01%
=========================================
  Files         182     182
  Lines        9154    9157       +3
  Branches      795     796       +1
=========================================
  Hits          333     333
- Misses       8799    8802       +3
  Partials       22      22

Impacted Files
Coverage Δ

...nrw/commons/upload/MultipleUploadListFragment.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 3e5a663...6aa0f25. Read the comment docs.

Yeah, I will make a new string set. I figured we wouldn't have time to do translations for the release so I used the existing string. Do you have instructions on creating new string sets?

I don't think we have instructions, just edit strings.xml :-)

You don't have to do anything :-)
Here is how it works: https://github.com/commons-app/apps-android-commons/wiki/Translating-the-app#how-translations-make-their-way-into-the-app

PR for new string: https://github.com/commons-app/apps-android-commons/pull/1771

authors: albendz codecov-io nicolas-raoul

repo: commons-app/apps-android-commons


text:
Support CAMERA Button

The CAMERA button should trigger the same logic as the FAB while the CameraFragment is in the foreground.

Released in v0.2.0


text:
Example issue

This is an example issue for WatchNTNU.

This is an example comment.

Data move to https://github.com/communityNTNU/Data-for-watchNTNU

repo: communityNTNU/WatchNTNU


text:
Project Management Console - Issues with sorting after data is sorted by Company in View Signatures popup window

Background

Launch Project Management Console
Login as Project Manager
Click on the External Project(Or Foundation)
Click on View Signatures for a Project(CLA Group) which has ICLA and CCLA signatures
Click on Company column
Data is sorted by ascending order of company
Now click on any other column for e.g Github Id or Date
Observed only data of Individual type are sorted

Initially when View Signatures popup window is opened

After Clicking on Company Column

After clicking on Date Column

@hnexokonkwo please review and see if this is still an issue. In needed, please resolve. If not, please ask @nirupamav to retest.

@nirupamav this is resolved. Please retest

Testing blocked by #734

@nirupamav #734 has been fixed, please review

@dealako  Verified and looks fixed.

The old console is deprecated and removed.

authors: amolsontakke3576 dealako hnexokonkwo nirupamav

repo: communitybridge/easycla


text:
UAR-1425 Add new ceased date features to trust details page for GET r…

…equests only - behind feature flag
JIRA link
https://companieshouse.atlassian.net/browse/UAR-1425
Change description
Add ceased date and information box to the trust details page when no eligible BOs are found and you are on the update review journey
Feature flagged as validation, date storage not done yet
Work checklist

[x] Tests added where applicable
[ ] UI changes meet accessibility criteria

Merge instructions
We are committed to keeping commit history clean, consistent and linear. To achieve this, this commit should be structured as follows:
<type>[optional scope]: <description>

and contain the following structural elements:

fix: a commit that patches a bug in your codebase (this correlates with PATCH in semantic versioning),
feat: a commit that introduces a new feature to the codebase (this correlates with MINOR in semantic versioning),
BREAKING CHANGE: a commit that has a footer BREAKING CHANGE: introduces a breaking API change (correlating with MAJOR in semantic versioning). A BREAKING CHANGE can be part of commits of any type,
types other than fix: and feat: are allowed, for example build:, chore:, ci:, docs:, style:, refactor:, perf:, test:, and others,
footers other than BREAKING CHANGE: <description> may be provided.

latest commit is to update the cease trust information box text (see ticket comments from Vern) - also noticed the checkbox text was smaller than all the other titles on the page, it was using a 's' style instead of 'm'. That checkbox file is only used in one place so changed it to 'm' to match the others on the page.

Closing as this is now superceded by https://github.com/companieshouse/overseas-entities-web/pull/1340, that also includes the validation work

repo: companieshouse/overseas-entities-web


text:
🛑 Documentation site is down

In ba73170, Documentation site (https://documentation.networkcanvas.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Documentation site is back up in 60e7f35 after 7 minutes.

repo: complexdatacollective/service-status


text:
Plusieurs lignes par facture

C'est pas encore fini, mais on y travaille
Je créé une PR brouillon pour partager de la visibilité
Fixes #13

J'ai pas fini de tester, donc, je ne me sentirais pas prêt à merge, mais je veux bien ton regard @elegaanz
Je recommande de lire d'abord le changement de type, puis le fichier Facture.svelte, puis actions/githubAsDatabase/store, puis le reste

J'ai fait #30 dans la foulée, comme discuté
Un signe de confiance https://github.com/fausse-echappee-belle/comptabilite/tree/main/exercices ;-)

@elegaanz Je veux bien une revue finale et si c'est bon pour toi, tu peux merger


text:
As a user I want to delete existing content on my notice board

Acceptance criteria (As follows #54 )

[ ] The creator can delete existing content
[ ] The content is updated for users who have access to it
[ ] Content can be deleted by using a "Delete"-Button for every element

Duplicate of #52?

Duplicate of #52?

YES!

repo: conclurer/midnightboard


text:
Portal Authentication

Here's the first part of authentication, just grabbing the user and class names from the Portal. I know it still needs test - I'll work on them before the demo in the morning.
@dougmartin, after a later conversation with @kswenson, I decided to handle unauthenticated users very simply for now. So, any user who isn't authenticated can use the app as an anonymous user. As a user is authenticating, you can see they're anonymous for a second, but it's not very noticeable. What do you think?

I think its good for the demo today but we need to do more work here to support the possible login modes:

Loading the app directly - we should show a dialog asking if the user wants to login (via the portal) or use it anonymously
Loading the app via the portal preview (has domain param but no auth token) - we should just directly into anonymous mode with no authenticating spinner.
Loading the app via student mode (has auth and domain param) - you have that now but we should show a authenticating spinner as you do all the auth/classinfo gets.
Loading the app as a teacher via the portal report button (has offering or class info in url plus domain)

I also think it helps to add the Portal prefix to interfaces for data coming from the portal, like PortalUser since we are eventually going to have user info going to and from the portal, our internal models and Firebase (eg PortalUser, UserModel, and FirebaseUser).

Also in the future you probably want to name the branch 159966202-portal-auth instead of portal-auth so it can be tied back to the PT story.

@dougmartin I suspect the primary users of directly loading the app is likely to be us, i.e. CC developers and team members for whom a dialog would be an inconvenience. I'd be inclined to have it launch into anonymous mode directly but provide a button for signing in. This makes it more like your second option.

@kswenson I should have clarified that the dialog would only show on production.  When running under localhost we would just automatically go into dev mode.

@dougmartin Understood, but I still think the dialog inconveniences anonymous users more than it helps those interesting in signing in, who can click a button to do so.

I don't know how it will be used most, so this might not be relevant. And I don't know the details of the currently behavior.  But this might be useful in decision making:
From our LARA experience it is best to make sure users that expect to be logged are notified clearly if they are not logged in. We've had all kinds of problems where something goes wrong with the browser, computer, or user, and the user ends up on LARA without being logged in. The don't notice this and do all of their work. Which we cannot easily find when they finally realize the problem.
These users are the ones we care about the most. The anonymous users get are getting a free ride so it seems OK to inconvenience them in order to prevent the previous problem.  This is my opinion about LARA, we haven't implemented things in LARA like this though, and I don't have feed back from PIs.  A possible compromise is to have there be something persistent in the URL that indicates if the user is supposed to be logged in or not. And then if the user isn't actually logged in, then tell them about it.

I think that's a good distinction. Every user coming from the portal should have some portal-related URL params, and if they're supposed to be logged in but aren't a dialog is perfectly reasonable. I'm thinking more about the case when someone just types (or navigates to) https://collaborative-learning.concord.org without URL params. That's most likely to be an internal CC person that is doing some testing, but may also be a curious outsider who stumbled onto the GitHub repo. In those cases, the dialog is just noise.

authors: dougmartin ekosmin kswenson scytacki


text:
174374504 — Simplify Interactives and Users index

The interactives page has a " Show/Hide Interactive Descriptions" link, this uses prototype-rails.
The users page has a "Show/Hide User Descriptions", this uses prototype-rails.
These features is not needed, so we should remove it, to make the Rails upgrade possible.
Example page:
https://learn.staging.concord.org/interactives
https://learn.staging.concord.org/interactives
[#174374504]
https://www.pivotaltracker.com/story/show/174374504

This was a simple fix.  Upon closer investigation, the toggle_all does call into prototype_rails_helper methods. So I will also need to update the schools simplification PR and pull out the toggle_all method.
I will remove it from the shared/collection_menu shared view, which will remove it from many collections.

Two feature tests failed, I will investigate these:
rspec ./spec/features/admin_edits_user_spec.rb:70
rspec ./spec/features/admin_edits_user_spec.rb:146

repo: concord-consortium/rigse


text:
Feature: alt drag to duplicate

This PR implements the "Duplicate Absolute Elements" strategy.
Holding alt (option) while dragging an absolute element duplicates it.
Commit Details:

Created new strategy absoluteDuplicateStrategy
Internally absoluteDuplicateStrategy moves the selected element, and creates a clone that is left in place (this is because it is easier to work with the metadata of the existing element, makes life easier for the move and snapping code)
New command DuplicateElement
DuplicateElement uses the old canvas-utils.ts@duplicate function which handles quite some edge cases
I only enable absoluteDuplicateStrategy for multiselection if the dragged elements are siblings. (The behavior in old utopia and figma is to reparent to a common ancestor.) If it turns out we want to remove this restriction, I suggest we revisit after we did work on reparent behaviors.

I think it is counterintuitive that the new element stays and the old one is left behind. We could say that this is an implementation detail, but I'm afraid this is going to leak to the user, e.g. with commenting (the comments will stay on the moved element), or visual scripting, or any extra data which relies on uids.

authors: balazsbajorics gbalint

repo: concrete-utopia/utopia


text:
Fix adding classes on mouse move when className input focused

Fixes #2348
Problem:
Moving mouse while typing classname selects class
Fix:
Remove the deffered setState
Commit Details:

Remove the deffered setState

hey there! thanks so much for taking the time and making pull requests for us :)
I locally checked out your branch and I could still reproduce the bug from #2348
I'm a little bit uncertain because reproduction doesn't seem 100% reliable to me, and I still didn't find the root cause.
But while I was checking things out, I realized we recently touched this code and made a mistake, so I made a PR to fix that. could you try to see if that PR fixes your bug too? the PR is https://github.com/concrete-utopia/utopia/pull/2351

we weren't able to reproduce #2348 since #2351 was merged, so it looks like the bug is fixed. I'm going to close this PR now.
thank you again for taking the time to create the bug ticket with the reproduction video!

authors: BLamy balazsbajorics


text:
Performance regression fix

Problem:
The TitleBar regressed performance by using getProjectContentsChecksums without the Low Priority Store.
Fix:
I made sure it's impossible to accidentally use this without the low priority store ever again:

Commit Details:

The stores have a storeName field
getProjectContentsChecksums -> useGithubFileChanges hook to be reused in the codebase
useGithubFileChanges explicitly throws an error if it's called from outside the low-priority-store
wrap the TitleBar in a LowPriorityStoreProvider

I'm going to merge this pr with one review, to fix performance


text:
Events::dispatch('on_community_store_order', $event);

I used to be able to listen for this event to fire and capture the new generated user.
Has this changed that the new user is created and logged in after this is fired?
If so is this a bug or was it deliberate?
Thanks
Ed

I'd say this was a bug/oversight in the (much needed) refactoring that was done to the order complete process.
I've just pushed up a very small change to adjust when the 'on_community_store_payment_complete' event is dispatched: https://github.com/concrete5-community-store/community_store/commit/e73b0c3e20acacfbc9dfe5ef06824242518664b1
If you are wanting to capture new generated users, the 'on_community_store_order' event doesn't guarantee that a new user would have been created at that point (even if it's an order than will create one). The on_community_store_payment_complete event on the other hand is fired after all the post-order processing, so when the user is created.
The reason it's like this is that you could have an order go through, but on Invoice - users aren't created at that point, they're only created when the order is manually marked as paid.
So you should be able to just update your code with this small change and change over the event listener to on_community_store_payment_complete instead - it returns the same order object.

Ryan,
Perfect thanks, I will have a look tomorrow.

Ryan,
Whilst that works now, did the code used to log the newly created user in after generation.
I can't work out now how to capture the user!
Ed

It should still be logging in the user after they've completed the transaction.
But again keep in mind it's different if it's a transaction the customer has paid for, versus it being marked as paid by the administrator. The later isn't going to log the customer in, but it'll create their account and send them their credentials email.
Calling getCustomerID() on the Order object should return the newly created user's ID, which you can then use to lookup the User/UserInfo object.
So I'd always be looking at the order object to find the related user, rather than trying to find the currently logged in one, because gateways like Paypal, or the Invoice method are going to complete the transaction differently.

Trying this with Paypal sandbox and paying for the goods which is being recorded as paid.
It seems the user is not being logged in after the transaction is completed.

Yes, that's expected, and it's a limitation of the way Paypal handles things.
The transaction complete when Paypal sends a IPN message back to the site. But there's no guarantee that this will happen before the customer returns to the site (and I've found myself that you end up back before the IPN happens).
If there's a way to handle this situation with Paypal in a way where the user can be logged in when they return I'm not aware of it.
A payment method like Stripe or Authorize.Net that handles the transaction directly doesn't have this problem as it logs you in all in the same request as the transaction itself.

authors: Mesuva edbeeny


text:
CSS typo fix - legacy ccm-dialog-tabs style declaration

Margin was set as: 0px 0px 20p 0px. Was missing the 'x'. Corrected to '20px'. Both .less file (legacy.less) + compiled ccm.app.css

Thanks for the catch. Saw this in another pull request.

authors: aembler arcanepain


text:
Prepare MultilingualPageRelations table for upgrading

This should fix the migration problem reported here: http://www.concrete5.org/community/forums/internationalization/multilingual-site-error-after-upgrade-to-8.2

Yep, this works!

Thanks dire checking!!

authors: buurvrouw mlocati


text:
Fix #8308 - Chunked file uploads generate multiple files in the backend

This PR fixes the issue described in #8308.

I can confirm the issue (files > 2MB splitting into smaller parts upon upload) but this fix causes a new JS error for me ( Uncaught TypeError: Cannot set property 'ccm_token' of undefined ) when dragging and dropping a simple jpg file to the file manager interface. This happens for a basic drag-and-drop action; clicking 'upload files' and then drag-and-dropping; or creating an image block instance and then accessing the image upload interface as a modal. I am now unable to upload any files. See the attached image for details.

Happy to help with further bug tracking if required.
concrete5 Version
Core Version - 8.5.2
Version Installed - 8.5.2
Database Version - 20190925072210
Database Information
Version: 5.7.28-31-57-log
SQL Mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
concrete5 Packages
Cookies Notice (1.3.4), ExchangeCore reCAPTCHA (1.1.1), Styled Maps (1.2.0), Table Block (0.9.5), Vivid Carousel (1.0.1)
concrete5 Overrides
[snip]
concrete5 Cache Settings
Block Cache - On
Overrides Cache - On
Full Page Caching - On - If blocks on the particular page allow it.
Full Page Cache Lifetime - Every 6 hours (default setting).
Server Software
Apache
Server API
apache2handler
PHP Version
7.2.28
PHP Extensions
apache2handler, bcmath, bz2, calendar, Core, ctype, curl, date, dom, exif, fileinfo, filter, ftp, gd, gettext, hash, iconv, igbinary, imagick, imap, intl, json, ldap, libxml, mbstring, mcrypt, mysqli, mysqlnd, openssl, pcre, PDO, pdo_dblib, pdo_mysql, pdo_sqlite, Phar, posix, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, sysvmsg, sysvsem, sysvshm, tokenizer, varnish, wddx, xml, xmlreader, xmlwriter, xsl, Zend OPcache, zip, zlib
PHP Settings
max_execution_time - 30
log_errors_max_len - 1024
max_file_uploads - 20
max_input_nesting_level - 64
max_input_time - 60
max_input_vars - 1000
memory_limit - 768M
post_max_size - 8M
upload_max_filesize - 2M
ldap.max_links - Unlimited
mysqli.max_links - Unlimited
mysqli.max_persistent - Unlimited
pcre.backtrack_limit - 1000000
pcre.recursion_limit - 100000
session.cache_limiter - no value
session.gc_maxlifetime - 86400
soap.wsdl_cache_limit - 5
opcache.max_accelerated_files - 4000
opcache.max_file_size - 0
opcache.max_wasted_percentage - 5

@losttheplot See #8492

authors: ahukkanen losttheplot


text:
Update version to 2.0.3

This PR updates the version to 2.0.3.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

authors: brandonwillard conda-forge-linter

repo: conda-forge/aesara-feedstock


text:
Release v0.2.1

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

authors: cheginit conda-forge-linter


text:
MNT: Re-render the feedstock [ci skip]

Hi! This is the friendly conda-forge-admin automated user.
I've re-rendered this feedstock with the latest version of conda-smithy (1.3.3) and noticed some changes.
If the changes look good, then please go ahead and merge this PR.
If you have any questions about the changes though, please feel free to ping the 'conda-forge/core' team (using the @ notation in a comment).
Remember, for any changes to the recipe you would normally need to increment the version or the build number of the package.
Since this is an infrastructural change, we don't actually need/want a new version to be uploaded to anaconda.org/conda-forge, so the version and build/number are left unchanged and the CI has been skipped.
Thanks!

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

authors: conda-forge-admin conda-forge-linter

repo: conda-forge/cheat-feedstock


text:
OSX package

Comment:
I am wondering if there is a specific reason to not build OSX packages here? Or whether this is simply a lack of time to put the effort in it?
Are people simply using cudatoolkit from the anaconda channel as fallback? (we are trying to minimize the number of channels we work with)

CUDA's Mac support is already killed for a few years. There's no way we can support macOS.

CUDA's Mac support is already killed for a few years. There's no way we can support macOS.

@leofang I have a feeling Apple is gonna attach an A-series card to their yet-to-be-released Mac Pro 😆 🤣

authors: hadim leofang ngam

repo: conda-forge/cudatoolkit-feedstock


text:
add dpdata cli

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

authors: conda-forge-linter njzjz

repo: conda-forge/dpdata-feedstock


text:
EQcorrscan Version 0.4.0

Checklist

[x] Used a fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

authors: calum-chamberlain conda-forge-linter

repo: conda-forge/eqcorrscan-feedstock


text:
Rel/1.6.7

Checklist

[ ] Used a fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

authors: conda-forge-linter pauldmccarthy

repo: conda-forge/fsleyes-props-feedstock


text:
Update CODOWNERS and README

Checklist

[x] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

The autobot wasn't re-rendering properly despite the changed maintainer list. So this PR does it manually

@conda-forge-admin, please rerender

repo: conda-forge/geocat-comp-feedstock


text:
arches

add arches
MNT: Re-rendered with conda-build 3.21.7, conda-smithy 3.16.1, and conda-forge-pinning 2022.01.04.17.59.36

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

authors: conda-forge-linter ngam

repo: conda-forge/gnu-units-feedstock


text:
Arch migration

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

authors: conda-forge-linter ryanvolz

repo: conda-forge/gnuradio-iridium-feedstock


text:
Reenable windows

Checklist

[ ] Used a fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

@conda-forge-admin please rerender

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

Failed to even lint the recipe, probably because of a conda-smithy bug :cry:. This likely indicates a problem in your meta.yaml, though. To get a traceback to help figure out what's going on, install conda-smithy and run conda smithy recipe-lint . from the recipe directory.

I get a very cryptic and weird error from conda-build on windows here
    "'{}' is in more than one group.".format(_all_unique))
ValueError: All packages in zip keys must belong to only one group.  'None' is in more than one group.

Not sure what that means at all.  There doesn't seem to be anything wrong with the generated variants as far as I can tell.
Suggestions @msarahan ?

Thanks @mariusvniekerk! 😀

repo: conda-forge/go-feedstock


text:
Upstream 1.56.1 + repin to newer glib

[x] Used a fork of the feedstock to propose changes
[x] Reset the build number to 0 (version changed)
[x] Re-rendered with the latest conda-smithy
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

authors: conda-forge-linter pkgw


text:
Rebuild for ldas-tools-framecpp 2.9

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

authors: conda-forge-linter duncanmmacleod

repo: conda-forge/lalframe-feedstock


text:
langchain-core v0.2.43

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Reviewer information
Git diff output:
% git diff langchain-core==0.2.42 langchain-core==0.2.43 -- libs/core/pyproject.toml
diff --git a/libs/core/pyproject.toml b/libs/core/pyproject.toml
index 8ace02afa..0d4cb6801 100644
--- a/libs/core/pyproject.toml
+++ b/libs/core/pyproject.toml
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"

 [tool.poetry]
 name = "langchain-core"
-version = "0.2.42"
+version = "0.2.43"
 description = "Building applications with LLMs through composability"
 authors = []
 license = "MIT"

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe/meta.yaml:

ℹ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.

For the host section of the recipe, you should usually use python {{ python_min }} for the python entry.
For the run section of the recipe, you should usually use python >={{ python_min }} for the python entry.
For the test.requires section of the recipe, you should usually use python {{ python_min }} for the python entry.
If the package requires a newer Python version than the currently supported minimum version on conda-forge, you can override the python_min variable by adding a Jinja2 set statement at the top of your recipe (or using an equivalent context variable for v1 recipes).

ℹ PyPI default URL is now pypi.org, and not pypi.io. You may want to update the default source url.

authors: conda-forge-admin dlqqq

repo: conda-forge/langchain-core-feedstock


text:
Update for v1.1.0

Checklist

[X] Used a fork of the feedstock to propose changes
[X] Bumped the build number (if the version is unchanged)
[X] Reset the build number to 0 (if the version changed)
[X] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[X] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

authors: conda-forge-linter james-d-mitchell

repo: conda-forge/libsemigroups-feedstock


text:
add posix

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Not going to merge this. Don't think posix name is appropriate here.


text:
force OpenMP usage

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender

authors: MuellerSeb conda-forge-linter

repo: conda-forge/mhm-feedstock


text:
@conda-forge-admin,please add bot automerge

[ ] I read the conda-forge documentation and could not find the solution for my problem there.

Issue:

Environment (conda list):

$ conda list

Details about  conda and system ( conda info ):

$ conda info

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I added bot automerge in conda-forge/mypy_boto3_dynamodb-feedstock#2.

authors: conda-forge-linter maresb


text:
updated nclpy-feedstock to v0.0.10

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

repo: conda-forge/nclpy-feedstock


text:
Scipy

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

repo: conda-forge/nectarchain-feedstock


text:
OpenFF Units v0.1.2

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin please rerender

@conda-forge-admin please rerender

Everything working fine using the build artifacts. I've tested absolutely every case I can think of, so I'm going to pull the trigger.
With OpenMM 7.6:
>>> from openff.units.openmm import from_openmm, to_openmm
>>> from openmm import unit
>>> val = 2.0 * unit.angstrom
>>> from_openmm(val)
<Quantity(2.0, 'angstrom')>
>>> type(from_openmm(val))
<class 'openff.units.units.Quantity'>
>>> to_openmm(from_openmm(val))
Quantity(value=2.0, unit=angstrom)
>>> to_openmm(from_openmm(val)) == val
True
>>> from simtk import unit
>>> val = 2.0 * unit.angstrom
>>> from_openmm(val)
<Quantity(2.0, 'angstrom')>
>>> type(from_openmm(val))
<class 'openff.units.units.Quantity'>
>>> to_openmm(from_openmm(val))
Quantity(value=2.0, unit=angstrom)
>>> to_openmm(from_openmm(val)) == val
True

With OpenMM 7.6 but "old" code:
>>> from openff.units.simtk import from_simtk, to_simtk
/Users/mwt/miniconda3/envs/openff-units-test/lib/python3.9/site-packages/openff/units/simtk.py:36: UserWarning: The openff.units.simtk module is deprecated. Use openff.units.openmm instead.
  warnings.warn(
>>> from simtk import unit
>>> val = 2.0 * unit.angstrom
>>> from_simtk(val)
<Quantity(2.0, 'angstrom')>
>>> type(from_simtk(val))
<class 'openff.units.units.Quantity'>
>>> to_simtk(from_simtk(val))
Quantity(value=2.0, unit=angstrom)
>>> to_simtk(from_simtk(val)) == val
True

With OpenMM 7.5.1:
>>> from openff.units.simtk import from_simtk, to_simtk
/Users/mwt/miniconda3/envs/openff-units-test/lib/python3.9/site-packages/openff/units/simtk.py:36: UserWarning: The openff.units.simtk module is deprecated. Use openff.units.openmm instead.
  warnings.warn(
>>> from simtk import unit
>>> val = 2.0 * unit.angstrom
>>> from_simtk(val)
<Quantity(2.0, 'angstrom')>
>>> type(from_simtk(val))
<class 'openff.units.units.Quantity'>
>>> to_simtk(from_simtk(val))
Quantity(value=2.0, unit=angstrom)
>>> to_simtk(from_simtk(val)) == val
True
>>> from openff.units.openmm import from_openmm, to_openmm
/Users/mwt/miniconda3/envs/openff-units-test/lib/python3.9/site-packages/openff/units/openmm.py:13: UserWarning: Found units module in simtk namespace, not openmm. Use openff.units.simtk instead.
  warnings.warn(

authors: conda-forge-linter mattwthompson

repo: conda-forge/openff-units-feedstock


text:
ENH 11 rc1

Checklist

[x] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin rerender

cc @isuruf

@conda-forge-admin rerender

Pushed to rc branch

authors: beckermr conda-forge-linter isuruf

repo: conda-forge/openmp-feedstock


text:
MNT: Update pinned versions.

Hi! This is the friendly conda-forge-admin automated user.
I've bumped some of the conda-forge pinned versions, and noticed that it impacts this feedstock.
If the changes look good, then please go ahead and merge this PR.
If you have any questions about the changes though, please feel free to ping the 'conda-forge/core' team (using the @ notation in a comment).
Thanks!

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

repo: conda-forge/otpmml-feedstock


text:
EPIC: Make optional dependencies available via conda-forge

Comment:
I noticed that some optional polars dependencies aren't available through conda-forge. It would be nice if all optional dependencies could be installed via conda - so that one doesn't need pip.
Missing (to the best of my knowledge):

[ ] xlsx2csv
[ ] deltalake

Also, it would be good to add the version constraints from https://github.com/pola-rs/polars/blob/master/py-polars/pyproject.toml#L42-L59 as run-constraints to the polars conda-forge recipe
transferred from https://github.com/pola-rs/polars/issues/7585

xlsx2csv and deltalake are both available on conda-forge and are nearly up-to-date (https://github.com/conda-forge/xlsx2csv-feedstock/pull/1 @borchero 👀).
I am not sure how we can map pip's optional dependencies to conda until https://github.com/conda/ceps/pull/55 is accepted, without introducing run_constraints for the package in general.

I recently noticed that fastexcel is missing from conda-forge though, I'll take care in the next couple days.

I merged the xlsx2csv version update, thanks for pointing me to it @0xbe7a

Added fastexcel to the todo-list :)

If I understand run constraints correctly, they can be optional - that's the whole point? That they are not requirements but constraints in case the optional requirement is fulfilled?
@0xbe7a maybe I misunderstand, but to me that's what the docs say pretty explicitly.
See: https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#run-constrained
E.g.

Run_constrained
Packages that are optional at runtime but must obey the supplied additional constraint if they are installed.
Package names should follow the package match specifications.
requirements:
  run_constrained:
    - optional-subpackage =={{ version }}

and

If build and link dependencies need to impose constraints on the run environment but not necessarily pull in additional packages, then this can be done by altering the Run_constrained entries. In addition to weak/strong run_exports which add to the run requirements, weak_constrains and strong_constrains add to the run_constrained requirements. With these, e.g., minimum versions of compatible but not required packages (like optional plugins for the linked dependency, or certain system attributes) can be expressed:

However, the run_constraint is also enforced even if the user is not using the Polars features that depend on these packages. For example, we might have a large environment containing openpyxl 2.* because some other logic makes use of it and is not using the Polars "read excel" functionality. The run_constraint would still enforce openpyxl 3.*. Conda would fail to solve this case, while with pip, we could simply not enable the optional feature.

True, but no package truly always use all the functionality that give rise to a particular constraint. I guess it depends how commonly used the optional dependency is and how tightly you are constrained/constraining. It's always a tradeoff.

The best way to ensure solve issues would be to ensure optional dependencies are as little constrained as possible.

I see your point, and I also think that this should be a tradeoff based on the popularity of the dependency. I am hesitant here, as there is nothing the end-user can do to ignore these potentially "bogus" constraints and create the environment regardless of any constraints. Feel free to open a PR for any potential constraints. I think it's much better to go through this on a case-by-case basis rather than in general.

authors: 0xbe7a borchero corneliusroemer

repo: conda-forge/polars-feedstock