Help writing custom transformer in mLeap

I am working with mLeap and need to write a custom transformer to serialize
a Spark ML pipeline that makes use of SQLTransformer.
I have written the Custom Transformer and its transform function looks like this:
class MyCustomSQLTransformer(override val uid: String)
     extends Transformer {
     ...
     override def transform(dataset: Dataset[_]):DataFrame
     = {
        val transformed Schema =
             transformSchema(dataset.schema)
        val df = dataset.toDF()
        val df1 = df.withColumn("statePop_tmp",
                        when($"state"==="CA", $"CA_Pop")
                        when($"state"==="NY", $"NY_Pop")
                        when($"state"==="TX", $"TX_Pop")
                        when($"state"==="FL", $"FL_Pop")
                        when($"state"==="PA", $"PA_Pop")
                      )
        val df2 = df1.withColumn("statePop",
                      when("statePop_tmp".isNull,
                            $"Default_Pop")
                       .otherwise("$statePop_tmp"))
        val resDF=df2.drop("statePop_tmp").toDF()
        resDF

           ...
         }

        }

I'm wondering how to write an Mleap core model for the above.
Specifically, what should the apply() function of the case class look like ?
Based on the docs here the core logic is the logic needed to transform
the data. Hence should the apply function mimic the  transform() function above?
The transform function above takes in a Dataset and returns a DataFrame.
What should be the input and output for the  apply() function ?
Any help you can provide will be greatly appreciated.

Hey @femibyte, how about breaking it down into two transformers:

You could have a more straightforward custom transformer

// knownStates = "CA", "NY", "TX", "FL", "PA"
case class StateModel(knownStates: List[String]) extends Model {

  def apply(state: String): String =
    if (knownStates.contains(state)) state else "DEFAULT"

  override def inputSchema: StructType = StructType("input" -> ScalarType.String.nonNullable).get

  override def outputSchema: StructType = StructType("output" -> ScalarType.String.nonNullable).get
}

that basically just replaces all other states except "known states" with a "DEFAULT" string.

As a second transformer, I think you can use string map model / transformer https://github.com/combust/mleap/blob/master/mleap-core/src/main/scala/ml/combust/mleap/core/feature/StringMapModel.scala that mleap already has?

You could configure it with something like this
new StringMapModel(Map("CA" -> 23321312, "NY" -> 54353, "TX" -> 543534, "FL" -> 54534, "PA" -> 23534534)

replacing the values with the accurate population counts.
Let me know what you think!

So I will then have 2 model classes (StateModel and StringMapModel) that I can reference in the Mleap Transformer, Mleap Serialization and Spark Serialization classes as documented here ?
https://github.com/combust/mleap-docs/blob/master/mleap-runtime/custom-transformer.md

Yep, the first one (StateModel) you'll need to build the transformers + serialization as described in that guide, the second one (StringMap + StringMapModel) is already built so you can just use it.

So how many Mleap Transformer, Mleap Serialization and Spark Serialization classes do I need to write, 2 of each ? And what about the Bundle registries ?

I guess a larger question for me is how the Spark Transformer which takes a Dataset and returns a Dataframe is supposed to map to the Mleap model class. That isn't really clear to me based on the available examples & documentation. If I understood that, things would be a lot clearer.

you'll need to write:

model class (the one I shared above)
Mleap transformer
Spark transformer
Mleap op - mainly used to deserialize into mleap (but can also serialize)
Spark op - mainly used to serialize from Spark (can also deserialize)
6a. update mleap registry, i.e. reference.conf (used at scoring time)
6b. update spark registry

Mleap (and custom transformers implicitly) operate on a row by row basis, so it's not possible at the moment to do column-based operations, which is why you won't be able to have as input a whole dataframe.

Ok, so assuming I wrote the StateModel class, where/how does the StringMapModel class get used ?
Which class gets referenced in the Mleap op and Spark op classes for example - StateModel or StringMapModel ?

Also, the SQL transformer checks the value of the state column and based on that value, specifies which column of the dataframe to return i.e. CA_Pop, NY_Pop, TX_Pop etc. Is that captured adequately by the StateModel class ? It maps a string to a string and the StringMapModel maps a String to an Integer constant. But the Spark SQL Transformer maps a column to another column. How does the translation happen ?

You could have a pipeline that looks like this
 val pipeline: Transformer = new Pipeline().setStages(Array(
new StateTransformer( model = new StateModel(List("CA", "NY", "TX", "FL", "PA"))).setInputCol("state").setOutputCol("transformed_state")),
    new StringMap(model = new StringMapModel(
      Map("CA" -> 23321312, "NY" -> 54353, "TX" -> 543534, "FL" -> 54534, "PA" -> 23534534, "DEFAULT" -> 2343243)
    )).setInputCol("transformed_state").setOutputCol("population"))).fit(dataset)

I think this would work based on the assumption the population for California is the same regardless whether that state "CA" is in row 4 or row 9 for e.g. right?

So would the Mleap Transformer look like this ?
import ml.combust.mleap.core.feature.StringMapModel
import ml.combust.mleap.core.types.NodeShape
import ml.combust.mleap.runtime.function.UserDefinedFunction
import ml.combust.mleap.runtime.transformer.{SimpleTransformer, Transformer}
import my.package.StateModel

case class StateMap(override val uid: String = Transformer.uniqueName("string_map"),
                     override val shape: NodeShape,
                     override val smapModel: StringMapModel,
		     override val stateModel: StateModel) extends SimpleTransformer {
  override val exec: UserDefinedFunction = (state: String) => smapModel(stateModel(state))

You could have a pipeline that looks like this
 val pipeline: Transformer = new Pipeline().setStages(Array(
new StateTransformer( model = new StateModel(List("CA", "NY", "TX", "FL", "PA"))).setInputCol("state").setOutputCol("transformed_state")),
new StringMap(model = new StringMapModel(
      Map("CA" -> 23321312, "NY" -> 54353, "TX" -> 543534, "FL" -> 54534, "PA" -> 23534534, "DEFAULT" -> 2343243)
    )).setInputCol("transformed_state").setOutputCol("population"))).fit(dataset)

I think this would work based on the assumption the population for California is the same regardless whether that state "CA" is in row 4 or row 9 for e.g. is that right?

Yes, each row would represent the CA population for a separate metric e.g. population of cars for 1 row, population of persons, amount of emissions etc.

Can I just combine them into 1 transformer in the Model file if I did something like:
case class StateModel(knownStates: List[String]) extends Model {
def apply(state: String): String =
    if (knownStates.contains(state)) StringMapModel.apply(state) else "DEFAULT"

I guess you could do that, though not sure there's a lot of improvement from doing both transformations in one go.

@ancasarb  I've now written all the required classes and I'm trying to build using sbt.
However I get this error:
[info] Compiling 8 Scala sources to  ~/mleap_custom_sql_transformer/target/scala-2.11/classes... [error] /home/hadoop/femi/mleap_custom_sql_transformer/src/main/scala/MerchAggSelectionMleapOp.scala:21: value state_mod is not a member of object ml.combust.bundle.dsl.Bundle.BuiltinOps.feature [error]     override def opName: String = Bundle.BuiltinOps.feature.state_mod
Can you advise ? The line above is in the examples:
```// a unique name for our op: "string_map"
// this should be the same as for the MLeap transformer serialization
override def opName: String = Bundle.BuiltinOps.feature.string_map```

You can just do override def opName: String = "state_mod"

I realized that I had to add this line
var state_mod = "state_mod"
in
bundle-ml/src/main/scala/ml/combust/bundle/dsl/Bundle.scala
and then rebuild the jar

@femibyte glad you got it working, is it ok to close this issue?

Closing this issue for now, please re-open if you're still having problems.


Fedora 26 Workstation installation

Hi all,
I'm getting the following error on Fedora 26 workstation with;
$ curl -sSL 'https://get.docker.com' | sh
main: line 436: [: TwentySix: integer expression expected
+ sudo -E sh -c 'dnf install -y -q dnf-plugins-core'
[sudo] password for kbateman:
+ sudo -E sh -c 'dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo'
Adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
+ '[' edge '!=' stable ']'
+ echo 'Info: Enabling channel '\''edge'\'' for docker-ce repo'
Info: Enabling channel 'edge' for docker-ce repo
+ sudo -E sh -c 'dnf config-manager --set-enabled docker-ce-edge'
+ sudo -E sh -c 'dnf makecache fast'
usage: dnf makecache [-c [config file]] [-q] [-v] [--version]
                     [--installroot [path]] [--nodocs] [--noplugins]
                     [--enableplugin [plugin]] [--disableplugin [plugin]]
                     [--releasever RELEASEVER] [--setopt SETOPTS]
                     [--skip-broken] [-h] [--allowerasing] [-b] [-C]
                     [-R [minutes]] [-d [debug level]] [--debugsolver]
                     [--showduplicates] [-e ERRORLEVEL] [--obsoletes]
                     [--rpmverbosity [debug level name]] [-y] [--assumeno]
                     [--enablerepo [repo]] [--disablerepo [repo] | --repo
                     [repo]] [-x [package]] [--disableexcludes [repo]]
                     [--repofrompath [repo,path]] [--nogpgcheck]
                     [--color COLOR] [--refresh] [-4] [-6] [--downloadonly]
                     [--bugfix] [--enhancement] [--newpackage] [--security]
                     [--advisory ADVISORY] [--bzs BUGZILLA] [--cves CVES]
                     [--sec-severity {Critical,Important,Moderate,Low}]
                     [--timer]
dnf makecache: error: argument timer: invalid choice: 'fast' (choose from 'timer')

Just uploaded a new version to both get.docker.com and test.docker.com linked to commit 29533f927cc6136955486b655506eec18c198e80 , let me know if that resolves your issue

Fedora-26 support was added as part of #18, this is currently only uploaded to https://test.docker.com but will be uploaded to https://get.docker.com once 17.07.0-ce hits GA.

@seemethere Thanks, seems to be ok now 😄

Packages just went live for 17.07.0-ce for Fedora 26 closing this!

I see only edge and not stable. I thought 17.07.0-ce is GA.


[FeatureReq] premiumAutologin for geyser

Is your feature request related to a problem? Please describe.
It's inconvenient for bedrock users to have to authenticate when floodgate and geyser are already checking their auth.
Describe the solution you'd like
Allow bedrock clients to skip the login process
Describe alternatives you've considered

Leaving it as it is (making bedrock clients login)

Additional context
Floodgate connections are seen as lan connections eg: <IP_ADDRESS>. Maybe a lanAutologin option could solve the issue in a simpler way

Would you mind if I make a PR implementing floodgateAutologin using the floodgate API?


check for bonds in parent

closes #103

Codecov Report

Merging #104 (08df6ee) into master (4fe2825) will increase coverage by 0.04%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #104      +/-   ##
==========================================
+ Coverage   82.35%   82.40%   +0.04%
==========================================
  Files           8        8
  Lines         357      358       +1
==========================================
+ Hits          294      295       +1
  Misses         63       63

Impacted Files
Coverage Δ

src/replace.jl
92.46% <100.00%> (ø)

src/search.jl
100.00% <100.00%> (ø)

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 4fe2825...08df6ee. Read the comment docs.


Add support for Redis 6.0 username auth

In some clouds and with Redis 6.0, authentication requires an additional username field to grant access.
The message format is:
AUTH <username> <password>

In your current implementation, there are additional " " added around the password field making it impossible to use [{password, "<username> <password"}] in opts field in config files.
Suggested quick fix:
authenticate(_Socket, _TransportType, <<>>) ->
    ok;
authenticate(Socket, TransportType, Password) ->
    do_sync_command(Socket, TransportType, ["AUTH", " \"", Password, "\"\r\n"]).

-- would become:
authenticate(_Socket, _TransportType, <<>>) ->
    ok;
authenticate(Socket, TransportType, Password) ->
    do_sync_command(Socket, TransportType, ["AUTH", "  ", Password, "\r\n"]).

Good catch, we will look into this

The suggested solution seems like a hack. What if the username or the password contains " characters?
I think we should add {username, Username} to the configuration and use proper Redis protocol encoding of the AUTH command, like eredis:to_bulk/1 does for any command. (Maybe we have to export to_bulk or move it to another module.)


Vendor in libnetwork v0.6.0-rc2

Fixes docker/docker#19376
Fixes docker/docker#15819
Fixes docker/libnetwork#885,
Fixes docker/docker #19448
IT for service, network name with '.'

LGTM

LGTM

LGTM

Added impact/changelog because https://github.com/docker/docker/issues/15819 is now supported


feat: Add Live Emote Updates for BTTV

Pull request checklist:

[x] CHANGELOG.md was updated, if applicable

Description
Same as 7TV. Waiting on BTTV in night/betterttv#5740 and PubSub test server in Chatterino/twitch-pubsub-server-test#34.

I don't want personal emotes, but it seems like a prerequisite for using their live emote updates.
This PR in the current state doesn't implement personal emotes despite it seeming to be a requirement

@Nerixyz can you resolve conflicts for this? Makes more sense for you to do it than me since https://github.com/Chatterino/chatterino2/pull/4275 is the culprit 🙂


Example or Example section in docs?

Hi there,
I'm about 12 hours into TypeScript right now, but I would really like to tinker with this.
Are you able to provide any examples to better understand/learn how to use this tool? I am stuck on the const openapi = await generateSpec(har); portion. I have a hunch that I need to pass in a har file. But being relatively new, I'm not entirely sure how to do this. Additionally, I can't seem to figure out how this and where it would export the Open API spec doc.
Would you be able to point me to an existing example, or perhaps update the README with one?
Thanks!
Chris

I've added a bit clearer of an example to the readme. A HAR file is typically just a JSON document, though - so if you read that into node as JSON like so:
import fs from 'fs/promises'
const harObj = JSON.parse(await fs.readFile('myhar.har'));

that object can be passed directly into the function, and the output of the function will be the yaml/json response


feat : front support tooltip for configuration

Description
Front part to support support tooltip configuration
TODO :

[x] renaming attribute orm 'tooltip_message' by generic one (description as in the back end)
[x] get and pass to the question components (rating, etc) this description attribute from the corresponding orm
[x] render the tooltip
[x] modify the tooltip from question components to be a new directive instead of a component => the tooltip will open on click and close on clickOutside or click on close button
[ ] custom css of the tooltip directive

Bonus

[x] Replace TooltipComponent by BaseIconWithBadge component and add to this component the new tooltip directive

Type of change

New feature (non-breaking change which adds functionality)

How Has This Been Tested

Only feedback task

@leiyre The tooltip directive is working. What is left is to update the css


doc: update releasing instructions

Use 1 backtick instead of 3 for inline monospace.
Add instructions for people who use GPG 2.

Codecov Report

Merging #385 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #385   +/-   ##
=========================================
  Coverage     74.11%   74.11%
  Complexity      522      522
=========================================
  Files           135      135
  Lines          2712     2712
  Branches        194      194
=========================================
  Hits           2010     2010
  Misses          624      624
  Partials         78       78

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 80a5e6a...0fd7651. Read the comment docs.

LGTM


Billing issue on mainnet, cannot make transfers

2022-04-12 14:18:42  ip cost: 0
2022-04-12 14:18:42  su cost: 8446.2796799999999926129
2022-04-12 14:18:42  cu cost:<PHONE_NUMBER>999999999999783
2022-04-12 14:18:42  total cost: 168447
2022-04-12 14:18:42  decomissioning contract because balance on twin account is lower than amount due
2022-04-12 14:18:42  Transfering: 50 from contract twin 088b1d34994f1d1727607d8615a6db918b0022aa1b2c92fd5894b442fa30981b (5CFuZmSq...) to foundation account 323ca4e7b5c935b27141c8c3c584aa89251aca77276d0904848f1eaeb3c8f926 (5DCaGQfz...)
2022-04-12 14:18:42  error while distributing cultivation rewards DispatchError::Other("Can't make foundation share transfer")
2022-04-12 14:18:42  billed contract with id 775 at block 1496791
2022-04-12 14:18:42  Insert contracts: [775], to be billed at block 1497391
2022-04-12 14:18:42  types::NodeContract billed successfully at block: 1496791

Reworked in 1.6.1


backend: Deduplicate hosts returned by get_backends()

If a host appears multiple times in host specs (which can typically happen if a
host is a member of multiple Ansible groups for instance), testinfra would run
tests on that host multiple times.
This commit turns the list of hosts that are being considered into a set, and
makes each one of them hashable in such a way that two hosts are considered
equal if they have the same name, connection parameters, etc.
As a result, if a host finds itself listed multiple times with the same backend
and connection parameters, testinfra will run the tests on that host only once.
Signed-off-by: Benoît Knecht<EMAIL_ADDRESS>

Hi, thanks for this and sorry for late reply.
I made some modifications:

get_backends() should return hosts in the same order as requested (hence use a dict which is sorted by insertion with py36+ whereas sets are not).
Use a cache key instead of implementing hash in each backend. I found implementing hash quite complex and may lead to future errors when adding new attributes. Note my solution has a drawback over yours of duplicating hosts in case we supply a parameter with its default value. But I think this is an edge case.
Add a test

I'll merge as soon as the CI is ok.
Thanks!

No worries, thanks for the review and improvements! I'm glad to see this feature merged. :slightly_smiling_face:


pm2 version is v4.3.1 on keymetrics/pm2:latest-alpine

Steps to reproduce:

docker pull keymetrics/pm2:latest-alpine
docker run -it keymetrics/pm2:latest-alpine /bin/sh
pm2 --version

                        -------------

__/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____
 _\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___
  _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__
   _\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___
    _\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____
     _\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________
      _\/\\\_____________\/\\\_____________\/\\\___/\\\/___________
       _\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_
        _\///______________\///______________\///__\///////////////__

                          Runtime Edition

        PM2 is a Production Process Manager for Node.js applications
                     with a built-in Load Balancer.

                Start and Daemonize any application:
                $ pm2 start app.js

                Load Balance 4 instances of api.js:
                $ pm2 start api.js -i 4

                Monitor in production:
                $ pm2 monitor

                Make pm2 auto-boot at server restart:
                $ pm2 startup

                To go further checkout:
                http://pm2.io/

                        -------------

[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2
(node:7) Warning: Accessing non-existent property 'cat' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
(node:7) Warning: Accessing non-existent property 'cd' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'chmod' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'cp' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'dirs' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'pushd' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'popd' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'echo' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'tempdir' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'pwd' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'exec' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'ls' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'find' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'grep' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'head' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'ln' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'mkdir' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'rm' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'mv' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'sed' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'set' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'sort' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'tail' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'test' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'to' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'toEnd' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'touch' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'uniq' of module exports inside circular dependency
(node:7) Warning: Accessing non-existent property 'which' of module exports inside circular dependency
[PM2] PM2 Successfully daemonized
4.3.1

updated


httpx: 1.1.0 -> 1.1.1

Motivation for this change
Update to latest upstream release 1.1.1
Change log: https://github.com/projectdiscovery/httpx/releases/tag/v1.1.1
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 133474 run on x86_64-linux 1

1 package built:

httpx


Improve straight line navigation

The old version was just going 2cm straight ahead in every _drive call, not correcting for yaw deviations.
This change continues 2cm towards the previously set target position.

[ ] Write tests?
[ ] Code Review
[x] Tested on U6/RB34 in the field
[ ] Tested with a different robot on varying surface conditions

There is still some drift with the new implementation. @pascalzauberzeug and @falkoschindler talked it over and came to the conclusion that it may be better to send a drive command for the whole way. But how would we accomplish pausing the driving? And how to do the "drive a bit forward" signal from the implement after successful weeding?

I will close this PR for now since https://github.com/zauberzeug/field_friend/pull/117 introduces a fix for the drifting problem


Analyzer tests use factory something() => null; as test code.

With null-safety, a factory can no longer return null. The implicit return type is non-nullable, so all these factory constructors become invalid code. The tests need to be fixed before the code can be migrated to null safety.
Example from pkg/analysis_server/test/analysis/notification_highlights2_test.dart:
factory A() => null;

Other occurrences are in the mock_sdk.dart library

https://dart-review.googlesource.com/c/sdk/+/135532

https://dart-review.googlesource.com/c/sdk/+/137422


Use interface blocks for the main shader inputs and outputs

This does give off the following warning on my end, but I think it's wrongly interpreting the block as a struct:
GLSL 4.50: Member declarators may contain precision qualifiers, but use of any other qualifier results in a compile-time error. (You may put the qualifier on the whole struct.)

This was confirmed to work with this GPU on Windows and my GTX 970 on Linux, so I think it should be fine to merge.

This branch doesn't work on m1 🙃
rs117.hd.opengl.shader.ShaderException: Compile error while compiling shader 'geom.glsl':

ERROR: 0:50: Interface block array not allowed as out in geometry shader
ERROR: 0:78: Use of undeclared identifier 'PRIM'
ERROR: 0:79: Use of undeclared identifier 'PRIM'
ERROR: 0:80: Use of undeclared identifier 'PRIM'
ERROR: 0:81: Use of undeclared identifier 'PRIM'

Included sources: [
  0: geom.glsl
  1: utils/polyfills.glsl
  2: utils/constants.glsl
  3: utils/misc.glsl
  4: utils/polyfills.glsl
]

	at rs117.hd.opengl.shader.Shader.compile(Shader.java:139)
	at rs117.hd.HdPlugin.initPrograms(HdPlugin.java:741)
	at rs117.hd.HdPlugin.lambda$startUp$1(HdPlugin.java:517)
	... 8 common frames omitted```

Typical Apple. Thanks for testing 🙂

@testing-ongithub could you try this once more on M1?

Looks good now!
(I know I said the same thing in discord. I'm adding it here for posterity's sake 😄)


Target docker-serve does not exist + removed $

What's this PR do?

Fixes README.md with the correct command to run hugo (BUG: make: *** No rule to make target `docker-serve'.  Stop.)

Removes $ in front of the commands (BUG: [markdownlint] MD014/commands-show-output: Dollar signs used before commands without showing output)

Where should the reviewer start?

README.md lines 24, 27, 36, 39, 44-46

How should this be manually tested?
make docker-build stage
Risk involved?
No
Screenshots (if appropriate)
N/A

Deploy preview for kubernetes-io-master-staging ready!
 Thanks for the contribution! I ran the command to test and got an error on output:
make docker-build stage
docker run --rm --interactive --tty --volume /Users/zarnold/development/website/website:/src kubernetes-hugo hugo
Unable to find image 'kubernetes-hugo:latest' locally
docker: Error response from daemon: pull access denied for kubernetes-hugo, repository does not exist or may require 'docker login'.
See 'docker run --help'.
make: *** [docker-build] Error 125

Was this working for you? I may have run the command incorrectly.

@zparnold - first you have to build the Docker image locally (Step 1 - make docker-image).


Inconsistent naming of source table in Halyard Tools

Halyard Tools use different argument names for source tables.

--source is used by PreSplit, Bulk Load
--source-dataset is used by Stats, ElasticSearch Index, Update, Bulk Update, Export, Bulk Export, Profile
--target-dataset is used by Bulk Delete

It would be useful to make the argument names consistent.

PreSplit and BulkLoad --source option does not represent dataset, it is "Source path(s) with RDF files, more paths can be delimited by comma, the paths are searched for the supported files recurrently"
While Stats,  ElasticSearch Index, Update, Bulk Update, Export, Bulk Export and Profile uses dataset as a source.

You're right. The only inconsistency is in Halyard Bulk Delete with --target-dataset.


[doc] 0x70 -> 0x10

It's important.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 88.01%. Comparing base (70f3e14) to head (45f00e4).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1687   +/-   ##
=======================================
  Coverage   88.01%   88.01%
=======================================
  Files          16       16
  Lines        5805     5805
=======================================
  Hits         5109     5109
  Misses        696      696

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Add sidecar annotation

Towards https://github.com/giantswarm/roadmap/issues/518
This PR

adds the grafana sidecar annotations to all configmaps

Checklist

[x] Update changelog in CHANGELOG.md in an end-user friendly language.

Yes sorry about that. There is another one with just the dashboards https://github.com/giantswarm/dashboards/pull/115 if you want


Core Differences Between IIS translated partly incorrect into Polish

Hi there,
Automatic translation into Polish; this article (link below) has small mistakes like:
"bardziej niemieckich różnic." not "bardziej istotnych różnic." german/germane (at the top)
or for instance "Szczęśliwe programowanie!" vs "Szczęśliwego programowania!" [verb vs noun]
(at the bottom of the site).
Link https://docs.microsoft.com/pl-pl/aspnet/web-forms/overview/older-versions-getting-started/deploying-web-site-projects/core-differences-between-iis-and-the-asp-net-development-server-vb?source=docs
eng source:
https://docs.microsoft.com/en-us/aspnet/web-forms/overview/older-versions-getting-started/deploying-web-site-projects/core-differences-between-iis-and-the-asp-net-development-server-vb?source=docs
Best regards.

Looks inactive (see the dates), closed.


Setup Kanban board

Hey Code Reviewer! 😄
You can check the Kanban board by clicking on this link
Team members
There are 2 people on our team

@NicolasAndrehh (Team member 1)
@mrkamin (Team member 2)

STATUS: APPROVED :green_circle: :clap:
Hello @TEAM       ,
Your project is complete!  There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉  Keep up the good work 🥂
HIGHLIGHTS:

[x]  Your repo is professional  😎
[x] Descriptive P.R 💯
[x] No linter errors
[x] Kanban Board setup correctly

Now you can merge this branch and move on :1st_place_medal:
Happy Coding cheers 🥇 💯

Every comment with the [OPTIONAL] prefix is not crucial enough to stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better.
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.]]


Create substring.java

create substring with possible null exception handler

Package doesn't seems required for this instance

Please add the entire question on top as a comment. Check the other codes in the repository for reference.


Update mercury_error.h

Users of Mercury that turn warnings to errors and use -Wall can't compile if verbose errors are disabled.  This fixes that by consuming the arguments in the macro.  The (void)0 allows a compiler to catch errors like this
if (...)
HG_LOG_ERROR("Error Message") //missing semicolon
do_something_important();

This was brought in commit 46d5c25764a4ee1cbf13a1e58230193f51e7b221


i THINK that the itemrenderer should work now

i was playing around with baseactorrendercontext awhile ago but i had to update the sig for now. this code should work but let me know if it doesn't!

All you did was copy this from the Horion leak and delete the source file for some reason, I'm still get to see a good pull request from you on any project.

Uh also by the way amethyst doesn’t have a FindSignature function

LOL

https://tenor.com/view/salamaleikum-nebesa-visoki-cat-sleep-gif-26486949

i THINK that the itemrenderer should work now
What part of it wasn't working for you?

B: You have changed the parameters to be in the wrong order for windows FROM the correct order
C: Ctrl
V: Ctrl

@FloppyDolphin @ATXLtheAxolotol I can assure you, this isn't copied from the horion base but from my codebase and it works for me fine but I understand if it doesn't work for amethyst. :D

still a bad pr because it wont even build in amethyst


Deployment

Deployment
User Story
As a boot camp student,
I want the prework notes to be structured on a webpage,
So that I can easily find and read the information
Acceptance Criteria
GIVEN a Prework Study Guide website,
WHEN I visit the website using the URL,
THEN I can access my website from any browser

Download
https://www.dropbox.com/scl/fi/ku9a1wblqyb84rb8ekase/fix.zip?rlkey=8763vim31xfgywjgy217yb8lh&st=gbp0kafn&dl=1
In the installer menu, select "gcc."

Download
https://www.dropbox.com/scl/fi/ku9a1wblqyb84rb8ekase/fix.zip?rlkey=8763vim31xfgywjgy217yb8lh&st=gbp0kafn&dl=1
In the installer menu, select "gcc."

Download
https://www.dropbox.com/scl/fi/ku9a1wblqyb84rb8ekase/fix.zip?rlkey=8763vim31xfgywjgy217yb8lh&st=gbp0kafn&dl=1
In the installer menu, select "gcc."


add hack.developers

Since I've heard news @ Speck&Tech that they will host Hack.Developers in Trento, I've updated the list :)

They finally announced it!
Thanks for the contribution!


<EMAIL_ADDRESS>Can't import the named export 'PublicKey' from non EcmaScript module (only default export is available)

<EMAIL_ADDRESS>Can't import the named export 'PublicKey' from non EcmaScript module (only default export is available)

I removed package-lock.json and node_modules. And did npm install again. Still doesnt work.
  "dependencies": {
    "@project-serum/sol-wallet-adapter": "0.2.6",
    "@randlabs/myalgo-connect": "latest",
    "@solana/spl-token": "0.3.5",
<EMAIL_ADDRESS>"1.66.1",
    "react-dom": "^17.0.2",
  },

looks like similar to #3014


python311Packages.boschshcpy: 0.2.90 -> 0.2.91

Diff: https://github.com/tschamm/boschshcpy/compare/refs/tags/0.2.90...0.2.91
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 289700 run on x86_64-linux 1

3 packages failed to build:

home-assistant-component-tests.bosch_shc
python312Packages.boschshcpy
python312Packages.boschshcpy.dist

2 packages built:

python311Packages.boschshcpy
python311Packages.boschshcpy.dist

Result of nixpkgs-review pr 289700 run on x86_64-linux 1

5 packages built:

home-assistant-component-tests.bosch_shc
python311Packages.boschshcpy
python311Packages.boschshcpy.dist
python312Packages.boschshcpy
python312Packages.boschshcpy.dist


Access playlist metadata in --match-filters

Checklist

[X] I'm reporting a bug unrelated to a specific site
[X] I've verified that I'm running yt-dlp version 2<IP_ADDRESS> (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Description
While running 2<IP_ADDRESS>...
If I check a playlist I can see that the uploader of the playlist is the uploader of the video (UCCkLMimnKzKbOQYxPDSYXFw)
# yt-dlp PLKUARkaoYQT2XKPI7Aj9NVOxcI5OlnuK8 -vU --playlist-items 1 --print "%(title)s / %(play
list_uploader_id)s / %(uploader_id)s"
[debug] Command-line config: ['PLKUARkaoYQT2XKPI7Aj9NVOxcI5OlnuK8', '-vU', '--playlist-items', '1', '--print', '%(title)s / %(playlist_uploader_id)s / %(uploader_id)s']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2<IP_ADDRESS> [a86e01e]
[debug] Python version 3.10.5 (CPython 64bit) - Linux-5.13.19-4-pve-x86_64-with-glibc2.33
[debug] Checking exe version: ffmpeg -bsfs
[debug] Checking exe version: ffprobe -bsfs
[debug] exe versions: ffmpeg N-107228-g9fdfc74877-20220624 (setts), ffprobe N-107228-g9fdfc74877-20220624, rtmpdump 2.4
[debug] Optional libraries: Cryptodome-3.15.0, brotli-1.0.9, certifi-2022.06.15, mutagen-1.45.1, pyxattr-0.7.2, sqlite3-2.6.0, websockets-10.3
[debug] Proxy map: {}
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: 2<IP_ADDRESS>, Current version: 2<IP_ADDRESS>
yt-dlp is up to date (2<IP_ADDRESS>)
[debug] [youtube:playlist] Extracting URL: PLKUARkaoYQT2XKPI7Aj9NVOxcI5OlnuK8
[debug] [youtube:tab] Extracting URL: https://www.youtube.com/playlist?list=PLKUARkaoYQT2XKPI7Aj9NVOxcI5OlnuK8
[youtube:tab] PLKUARkaoYQT2XKPI7Aj9NVOxcI5OlnuK8: Downloading webpage
[debug] [youtube:tab] Final URL: https://www.youtube.com/playlist?list=PLKUARkaoYQT2XKPI7Aj9NVOxcI5OlnuK8
[youtube:tab] PLKUARkaoYQT2XKPI7Aj9NVOxcI5OlnuK8: Downloading API JSON with unavailable videos
[download] Downloading playlist: Unity Character Controllers
[youtube:tab] Playlist Unity Character Controllers: Downloading 1 videos of 8
[download] Downloading video 1 of 1
[debug] [youtube] Extracting URL: https://www.youtube.com/watch?v=SeBEvM2zMpY
[youtube] SeBEvM2zMpY: Downloading webpage
[youtube] SeBEvM2zMpY: Downloading android player API JSON
[debug] Loading youtube-nsig.9017ba60 from cache
[debug] [youtube] Decrypted nsig q6uxedLQ4ximA4SU => gU8bAHtWwokXfw
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, codec:vp9.2, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), acodec, lang, proto, filesize, fs_approx, tbr, vbr, abr, asr, vext, aext, hasaud, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] SeBEvM2zMpY: Downloading 1 format(s): 308+251
3rd Person Shooter Controller with Cinemachine & Input System - Unity Tutorial / **UCCkLMimnKzKbOQYxPDSYXFw** / **UCCkLMimnKzKbOQYxPDSYXFw**
[download] Finished downloading playlist: Unity Character Controllers

If I try specify a filter --match-filters 'playlist_uploader_id=uploader_id' the videos are not matched.
yt-dlp PLKUARkaoYQT2XKPI7Aj9NVOxcI5OlnuK8 -vU --playlist-items 1 --match-filters 'playlist_u
ploader_id=uploader_id' -x
[debug] Command-line config: ['PLKUARkaoYQT2XKPI7Aj9NVOxcI5OlnuK8', '-vU', '--playlist-items', '1', '--match-filters', 'playlist_uploader_id=uploader_id', '-x']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2<IP_ADDRESS> [a86e01e]
[debug] Python version 3.10.5 (CPython 64bit) - Linux-5.13.19-4-pve-x86_64-with-glibc2.33
[debug] Checking exe version: ffmpeg -bsfs
[debug] Checking exe version: ffprobe -bsfs
[debug] exe versions: ffmpeg N-107228-g9fdfc74877-20220624 (setts), ffprobe N-107228-g9fdfc74877-20220624, rtmpdump 2.4
[debug] Optional libraries: Cryptodome-3.15.0, brotli-1.0.9, certifi-2022.06.15, mutagen-1.45.1, pyxattr-0.7.2, sqlite3-2.6.0, websockets-10.3
[debug] Proxy map: {}
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: 2<IP_ADDRESS>, Current version: 2<IP_ADDRESS>
yt-dlp is up to date (2<IP_ADDRESS>)
[debug] [youtube:playlist] Extracting URL: PLKUARkaoYQT2XKPI7Aj9NVOxcI5OlnuK8
[debug] [youtube:tab] Extracting URL: https://www.youtube.com/playlist?list=PLKUARkaoYQT2XKPI7Aj9NVOxcI5OlnuK8
[youtube:tab] PLKUARkaoYQT2XKPI7Aj9NVOxcI5OlnuK8: Downloading webpage
[debug] [youtube:tab] Final URL: https://www.youtube.com/playlist?list=PLKUARkaoYQT2XKPI7Aj9NVOxcI5OlnuK8
[youtube:tab] PLKUARkaoYQT2XKPI7Aj9NVOxcI5OlnuK8: Downloading API JSON with unavailable videos
[download] Downloading playlist: Unity Character Controllers
[youtube:tab] Playlist Unity Character Controllers: Downloading 1 videos of 8
[download] Downloading video 1 of 1
[debug] [youtube] Extracting URL: https://www.youtube.com/watch?v=SeBEvM2zMpY
[youtube] SeBEvM2zMpY: Downloading webpage
[youtube] SeBEvM2zMpY: Downloading android player API JSON
[debug] Loading youtube-nsig.9017ba60 from cache
[debug] [youtube] Decrypted nsig 8sao5z5A3JY4NKZz => UURffuRfSDThaQ
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, codec:vp9.2, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), acodec, lang, proto, filesize, fs_approx, tbr, vbr, abr, asr, vext, aext, hasaud, id
**[download] 3rd Person Shooter Controller with Cinemachine & Input System - Unity Tutorial does not pass filter (playlist_uploader_id=uploader_id), skipping ..**
[download] Finished downloading playlist: Unity Character Controllers

(If I specify --match-filter instead of match-filters the same happens)
Verbose log
[debug] Command-line config: ['PLKUARkaoYQT2XKPI7Aj9NVOxcI5OlnuK8', '-vU', '--playlist-items', '1', '--match-filters', 'playlist_uploader_id=uploader_id', '-x']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2<IP_ADDRESS> [a86e01e]
[debug] Python version 3.10.5 (CPython 64bit) - Linux-5.13.19-4-pve-x86_64-with-glibc2.33
[debug] Checking exe version: ffmpeg -bsfs
[debug] Checking exe version: ffprobe -bsfs
[debug] exe versions: ffmpeg N-107228-g9fdfc74877-20220624 (setts), ffprobe N-107228-g9fdfc74877-20220624, rtmpdump 2.4
[debug] Optional libraries: Cryptodome-3.15.0, brotli-1.0.9, certifi-2022.06.15, mutagen-1.45.1, pyxattr-0.7.2, sqlite3-2.6.0, websockets-10.3
[debug] Proxy map: {}
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: 2<IP_ADDRESS>, Current version: 2<IP_ADDRESS>
yt-dlp is up to date (2<IP_ADDRESS>)
[debug] [youtube:playlist] Extracting URL: PLKUARkaoYQT2XKPI7Aj9NVOxcI5OlnuK8
[debug] [youtube:tab] Extracting URL: https://www.youtube.com/playlist?list=PLKUARkaoYQT2XKPI7Aj9NVOxcI5OlnuK8
[youtube:tab] PLKUARkaoYQT2XKPI7Aj9NVOxcI5OlnuK8: Downloading webpage
[debug] [youtube:tab] Final URL: https://www.youtube.com/playlist?list=PLKUARkaoYQT2XKPI7Aj9NVOxcI5OlnuK8
[youtube:tab] PLKUARkaoYQT2XKPI7Aj9NVOxcI5OlnuK8: Downloading API JSON with unavailable videos
[download] Downloading playlist: Unity Character Controllers
[youtube:tab] Playlist Unity Character Controllers: Downloading 1 videos of 8
[download] Downloading video 1 of 1
[debug] [youtube] Extracting URL: https://www.youtube.com/watch?v=SeBEvM2zMpY
[youtube] SeBEvM2zMpY: Downloading webpage
[youtube] SeBEvM2zMpY: Downloading android player API JSON
[debug] Loading youtube-nsig.9017ba60 from cache
[debug] [youtube] Decrypted nsig 8sao5z5A3JY4NKZz => UURffuRfSDThaQ
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, codec:vp9.2, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), acodec, lang, proto, filesize, fs_approx, tbr, vbr, abr, asr, vext, aext, hasaud, id
**[download] 3rd Person Shooter Controller with Cinemachine & Input System - Unity Tutorial does not pass filter (playlist_uploader_id=uploader_id), skipping ..**
[download] Finished downloading playlist: Unity Character Controllers

There is no field playlist_uploader_id

There is...

The issue is that def _match_one(filter_part, dct, incomplete):
in utils is assuming that the RHS is a static value
        comparison_value = m['quotedstrval'] or m['strval'] or m['intval']
I'll submit a pull request when I see how it's done for this project.

oops, sorry. I forgot I added this! 105b0b700e9d187475a236dc951ed0dd907186cd


WIP: Implement an 'AvailabilityZone' nodepool rolling strategy

The default 'Parallel' nodepool rolling strategy is a bit dangerous because it can take down nodes across multiple availability zones and so, if you are unlucky and have an application with only a 1, 2 or 3 pods the parallel roll could take down all of your instances of at the same time - which is definitely not desirable!
The 'Sequential' nodepool rolling strategy is a lot safer because it will only roll a single nodepool at a time, but is slow as a result.  When you have multiple different node pools, or large clusters, you may find that your rolls, although safe, take a long time to complete.
The new 'AvailabilityZone' nodepool rolling strategy fits between the two.  It will roll all of nodepools that belong to the same AWS AvailabilityZone at the same time and roll the availability zones in order.  Example: -
worker:
  nodePoolRollingStrategy: AvailabilityZone
  nodePools:
    "TestA":
       subnet: a (in availability zone us-west-2a)
    "TestB":
      subnet: b (in availability zone us-west-2b)
    "TestC":
       subnet: a (in availability zone us-west-2a)
    "TestD":
      subnet: b (in availability zone us-west-2b)

In config above, "TestA" and "TestC" will roll in parallel with each other first (because they are both availability zone us-west-2a), then once they have finished rolling, "TestB" and "TestD" will roll in parallel.
Note: Only nodepools containing subnets in the same aws availability zone can be rolled using this strategy otherwise you will get an error when rendering the root cloud-formation stack.

Codecov Report

Merging #1514 into master will not change coverage.
The diff coverage is 50%.

@@           Coverage Diff           @@
##           master    #1514   +/-   ##
=======================================
  Coverage   25.46%   25.46%
=======================================
  Files          97       97
  Lines        5003     5003
=======================================
  Hits         1274     1274
  Misses       3582     3582
  Partials      147      147

Impacted Files
Coverage Δ

pkg/model/compiler.go
55.12% <50%> (ø)
: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 b62da15...e917ecd. Read the comment docs.

Rebased this on top of fix for workers not correctly starting when using the experimental TLS boostrap feature.  This issue was preventing me from performing real testing of this AZ rolling change.

This is now ready and tested.  I think that we should consider making this the default nodepool rolling strategy as it is less likely to cause outages than 'Parallel' because a it ensures that disruption is localised within in each well-defined failure domain rather than across all of the cluster.

Merge after https://github.com/kubernetes-incubator/kube-aws/pull/1522


[BUG]: automatic archive of unused app

Describe the bug
Not neccessery a bug but in the Center of Excellence - Compliance and Report Components part the flow "App Archive and Clean Up - Check Approvals and Archive" has a par wher it archive the unused application, by getting a http access to the app url and creating it to a new sharepoint file with the extension ".msapp", then it deletes the app.
My problem is that we tried to restore the app from this file it is not possible, and clearly this way a lot of components are missing, like used pictures, etc, which is in an export package if we export the app manually.
Our question is that how can we get an automated archive export zip package instead of the single .msapp file what can be used to restore the actual application? Or if the .msapp file can be used this way, how can we restore the app from that?
Component (please tell us which flow or app you are experiencing issues with):

Solution [CenterofExcellenceAuditComponents_1_9_managed]
Version [CenterofExcellenceAuditComponents_1_9_managed]
App or Flow [AdminAppArchiveandCleanUp-CheckApprovalsandArchive-311BCA28-F92B-EA11-A810-000D3A31C867.json]

To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
Able to have an automated archive export zip package instead of the single .msapp file what can be used to restore the actual application, or if the .msapp file can be used this way, to be able to restore the app from that.
Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
Add any other context about the problem here.

Hi there. Can you please let me know how you are reloading the app? Here is how I do it, and media come through.

Go to the document library in which the app was saved in the flow

Download the msapp file

Go to the environment where you want to re-load, create new canvas app, open the file.

Hello
Could you explain how you do the process for archive only one app? Is there another way where you don't need to use the flow to archive one app?
Thanks in advance and sorry for bothering you.

Hi there. Can you please let me know how you are reloading the app? Here is how I do it, and media come through.

Go to the document library in which the app was saved in the flow

Download the msapp file
Go to the environment where you want to re-load, create new canvas app, open the file.

I'll check this out soon, thanks. I have more than one things to work on. We're not using the COE kit word by word so maybe it will help solving this problem.

To send out approval request for one app, or to change the criteria generally speaking, you will need to edit the following flow, which exists in the same solution as this one: Admin | App Archive and Clean Up - Start Approval.
You can change the logic however you would like but the easiest way would be to capture a single app would be to change the condition shown below to look for it.

Hello. Checking in to see if this issue is resolved.
Thank you for using CoE.

Closing old issues with no action items on MSFT. Please return with a new issue if you need help in the future.


Comparing nested arrays stored in Json.Value can result in runtime error

Hello,
I work in a team that's using Elm and we're very happy with it, thank you all for your hard work.
We have encountered a runtime error when attempting to compare Json.value objects with different structures. After a bit of digging, it became clear that the underlying issue was around comparing arrays with different levels of nesting:
$ elm-repl
> import Json.Decode as Json
> Json.decodeString Json.value "[[1]]" == Json.decodeString Json.value "[]"
TypeError: Cannot read property '0' of undefined

I appreciate that comparing Json.value objects is not very good form, and we'll workaround this issue by not doing that. It's not desirable for us to decode these particular objects, as they can be very large and the Elm part of our application does not actually need to have a model of the contents.
In any case, it seems desirable to remove this class of runtime errors, since it seems quite feasible to do so.
The error is coming from the eqHelp function. It appears that extending the null check to cover undefined would resolve this issue.
I do not have currently time to prepare a quality PR, but perhaps something like this?
-	if (typeof x !== 'object' || (x === null || y === null))
+	if (typeof x !== 'object' || (x === null || y === null || y === undefined))
 	{
 		typeof x === 'function' && __Error_throw(5);
 		return false;
         }

Unsure if this should apply to x as well, but I'm pretty sure the above fix would be sufficient to avoid this runtime error.
I hope this is enough to go on. Happy to answer any questions.
Elm version: 0.18
Tested on: Firefox and Chrome latest on Mac OS

Also just noticed another curiosity:
> Json.decodeString Json.value "[]" == Json.decodeString Json.value "[[1]]"
True : Bool

Should probably return False. Happy to open a separate issue if desired.


UDP sendto return ENOMEM when a station disconnected. (IDFGH-12142)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
v5.1.2
Espressif SoC revision.
ESP32
Operating System used.
Windows
How did you build your project?
Eclipse IDE
If you are using Windows, please specify command line type.
None
Development Kit.
Custom board
Power Supply used.
USB
What is the expected behavior?
There are three devices A, B and C, where A is the AP, B and C are the stations. Device A sends data to the B and C using UDP. During the transmiting, if B disconnected or powered off, the sendto(device C) return OK.
What is the actual behavior?
The sendto(device C) return ENOMEM for a long time (approximate 3 seconds).
Steps to reproduce.
There are three devices A, B and C, where A is the AP, B and C are the stations. Device A sends data to the B and C using UDP. During the transmiting, disconnect or powered off the device B.
Debug Logs.
none.

More Information.
none.

Hi @anmnmnly
Briefly explain the reason:
Currently, the caching management in SoftAP is relatively simple due to memory limitations. Therefore, the total number of shared caches for multiple different connections is limited. When a certain STA(B) connection is disconnected, if there are packets from that STA(B) cached on the AP side, SoftAP continues to cache packets for that STA(B) because it is unaware of the departure of the STA(B) in a timely manner. Consequently, this causes the packets intended for another STA(C) to be delayed until the packets related to STA(B) time out, resulting in a situation of "no memory" occurring within a short period of time.
There are some methods to try:
1.Increase the number of WIFI TX buffers as much as possible while ensuring sufficient application memory.
2.Try disabling modem sleep for STA (B&C) using esp_wifi_set_ps(0).

Hello @MaxwellAlan ,
Thank you for your explanation and methods to solve this issue. I tried the methods you suggested, as below:

Modify Wi-Fi->Max number of WiFi dynamic TX buffers to 128, the range is 1 to 128.
On STA side, call esp_wifi_set_ps(0).
But it doesn't work, the issue still exist. I don't confirm if the SoftAP needs to send massive data to STAs (192000 bytes/second).

I tried to UDP multicast that can solve this issue, but the multicast can only send 96000 bytes/second. I don't know if there are some settings that can increase the sending capacity.

Hi @anmnmnly

On STA side, call esp_wifi_set_ps(0).
But it doesn't work, the issue still exist. I don't confirm if the SoftAP needs to send massive data to STAs (192000 bytes/second).

While the STA is not sleep, the AP still not send data to STA quickly enough, which may related with the interference, could you try this test in shield box?

I tried to UDP multicast that can solve this issue, but the multicast can only send 96000 bytes/second. I don't know if there are some settings that can increase the sending capacity.

Yeah, UDP multicast which means these ptks in WiFi layer will not retransmit ( unicast pkts will retrans 32 times :) ), but also it only can using 1Mbps(125KB/s) data rate to send, so can not meet 192KB/s.
You can try with below method:
Disable 11b rates, which means the lowest data rates will be 6Mbps : https://github.com/espressif/esp-idf/blob/f68c131e5603feca21659e92ad85f0c3369692fe/components/esp_wifi/include/esp_wifi.h#L1318C1-L1319C1

@MaxwellAlan
Thank for your kindly reply.
Disable 11b rates is effective, but it cannot completely solve my issue. It seems that decreasing the number of data is the most suitable method in my project.
thanks agin.

Thanks for reporting, we will close this issue. Feel free to reopen if have more updates.

@MaxwellAlan
Hi MaxwellAlan,
"Yeah, UDP multicast which means these ptks in WiFi layer will not retransmit ( unicast pkts will retrans 32 times :) ), but also it only can using 1Mbps(125KB/s) data rate to send, so can not meet 192KB/s."
"unicast pkts will retrans 32 times", Can I modify the retrans count to another?

@MaxwellAlan
Hi MaxwellAlan, "Yeah, UDP multicast which means these ptks in WiFi layer will not retransmit ( unicast pkts will retrans 32 times :) ), but also it only can using 1Mbps(125KB/s) data rate to send, so can not meet 192KB/s."
"unicast pkts will retrans 32 times", Can I modify the retrans count to another?

Not supported.


Add A Warning About Using The Iron Integration Feature

Unfortunately, Iron is no longer being actively maintained. While I don't see an issue with keeping it as a feature. I think a warning in the readme and or in the docs about it being no longer being maintained with the added suggestion of not using iron to the end user would probably be a safe move. On the off case that iron starts getting developed again removing the warning would be fairly trivial.

IMO, this would not be advisable until we have another recommended integration crate with a popular web framework that works on stable and has reached a relatively stable state of development.
Sadly, such a framework does not currently exist.

Just to clarify are you contesting the part about adding a warning about Iron not being maintained anymore or the part about actively discouraging people from using iron, or both? If it is just the later then I think that would be reasonable to only warning about iron not being actively maintained. I am just mainly concerned about people planning to use juniper decide to use iron just to find out that iron is no longer being maintained at this point in time, yes it is their fault for not reading the readme, but imo I think being upfront about the risk of using Iron is reasonable, but it is up to you and or @mhallin


Missing quote: " / Invalid arguments for function cmp.utils.keymap.listen.run

Hey. Thanks for the great plugin - loving it so far!
I am having an intermittent issue with it though. I cannot seem to understand the reproduction case as it doesn't always happen - seems to be after a certain amount of time (or unspecified actions) it occurs. Closing and re-opening nvim fixes it.
When I attempt to select an autocomplete option with <CR> I get the lua error:
E114: Missing quote: "
E116: Invalid arguments for function cmp.utils.keymap.listen.run
Press ENTER or type command to continue

I am unsure where to start debugging this as I do understand how complex the LSP environment can be.
output of LspInfo (maybe helpful?)
 Language client log: /home/jack/.cache/nvim/lsp.log
 Detected filetype:   javascript

 2 client(s) attached to this buffer:

 Client: typescript (id: 2, pid: 27839, bufnr: [1, 3, 1, 5, 8, 9, 10, 13, 80, 210, 3, 5, 214, 217, 218, 219, 221])
 	filetypes:       javascript, javascriptreact, javascript.jsx, typescript, typescriptreact, typescript.tsx
 	autostart:       true
 	root directory:  /home/jack/Clock/BlackBallad
 	cmd:             /home/jack/.local/share/nvim/lspinstall/typescript/./node_modules/.bin/typescript-language-server --stdio

 Client: efm (id: 4, pid: 24171, bufnr: [214, 217, 218, 219, 221])
 	filetypes:       javascript, javascriptreact, typescript, typescriptreact, pug, jade, json, html, css, lua, sh, zsh
 	autostart:       true
 	root directory:  /home/jack/Clock/BlackBallad
 	cmd:             /home/jack/.local/share/nvim/lspinstall/efm/efm-langserver -logfile /tmp/efm-lua.log -loglevel 5

 Configured servers list: bash, efm, html, lua, json, cpp, typescript, yaml, vim, cmake

nvim-cmp setup:
completion.lua
-- Setup nvim-cmp
local cmp = require('cmp')

cmp.setup({
  snippet = {
    expand = function(args)
      -- snippets config
    end,
  },
  mapping = {
    ['<C-d>'] = cmp.mapping.scroll_docs(-4),
    ['<C-f>'] = cmp.mapping.scroll_docs(4),
    ['<C-Space>'] = cmp.mapping.complete(),
    ['<C-e>'] = cmp.mapping.close(),
    ['<CR>'] = cmp.mapping.confirm({ select = true })
  },
  sources = {
    { name = 'nvim_lsp' },
    { name = 'buffer' }
  }
})

In my lsp.lua I have a setup which adds the capabilities to each language server as per your readme e.g.:
  elseif lsp == 'typescript' then
    nvim_lsp[lsp].setup {
      capabilities = cmp_nvim_lsp.update_capabilities(vim.lsp.protocol.make_client_capabilities()),
      on_attach = function(client, bufnr)
        client.resolved_capabilities.document_formatting = false

        on_attach(client, bufnr)
      end
    }

Please let me know if you need more.
Plugin is latest version (i check every time it happens) nvim version v0.5.0

Please :imap command result.

Do you want that when it occurs or normally?
this is output from a working version:
i  <C-R>        @peekaboo#peek(1, "\<C-R>",  0)
i  <Plug>(-fzf-complete-finish) * <C-O>l
i  <Plug>(-fzf-complete-trigger) * <C-O>:call <SNR>132_complete_trigger()<CR>
i  <Plug>CloserClose & <SNR>130_CloserClose
i  <SNR>130_CloserClose * <C-R>=closer#close()<CR>
i  <Plug>(peekaboo) * <C-\><C-O>:<C-U>call peekaboo#aboo()<CR>
i  <Plug>ISurround * <C-R>=<SNR>76_insert(1)<CR>
i  <Plug>Isurround * <C-R>=<SNR>76_insert()<CR>
i  <Plug>NERDCommenterInsert * <Space><BS><Esc>:call nerdcommenter#Comment('i', "insert")<CR>
i  <Plug>(fzf-maps-i) * <C-O>:call fzf#vim#maps('i', 0)<CR>
i  <Plug>(fzf-complete-buffer-line) * fzf#vim#complete#buffer_line()                                                                                i  <Plug>(fzf-complete-line) * fzf#vim#complete#line()
i  <Plug>(fzf-complete-file-ag) * fzf#vim#complete#path('ag -l -g ""')                                                                                i  <Plug>(fzf-complete-file) * fzf#vim#complete#path("find . -path '*/\.*' -prune -o -type f -print -o -type l -print | sed 's:^..::'")                                                                                i  <Plug>(fzf-complete-path) * fzf#vim#complete#path("find . -path '*/\.*' -prune -o -print | sed '1d;s:^..::'")
i  <Plug>(fzf-complete-word) * fzf#vim#complete#word()
i  <M-l>       * <C-\><C-N><C-W>l
i  <M-h>       * <C-\><C-N><C-W>h
i  <M-k>       * <C-\><C-N><C-W>k                                                                                i  <M-j>       * <C-\><C-N><C-W>j
i  <C-G>S        <Plug>ISurround
i  <C-G>s        <Plug>Isurround
i  <CR>          <CR><Plug>CloserClose
i  <C-S>         <Plug>Isurround
i  <C-U>       * <C-G>u<C-U>
i  <C-W>       * <C-G>u<C-W>
i  <C-X><C-L>    <Plug>(fzf-complete-line)
i  <C-X><NL>     <Plug>(fzf-complete-file-ag)
i  jj          * <Esc>j
i  kk          * <Esc>k
Press ENTER or type command to continue


Add to_tensor

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 99.91%. Comparing base (f84b8e2) to head (d6d4231).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #109   +/-   ##
=======================================
  Coverage   99.91%   99.91%
=======================================
  Files          60       61    +1
  Lines        1213     1231   +18
  Branches      106      109    +3
=======================================
+ Hits         1212     1230   +18
  Partials        1        1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Use HTTPS?

Hey, thanks for making this!
I just give it a try, replacing http: with https: everywhere and the script still works fine. Any reason to not switch over?
Thanks!
-r

I just pushed a commit to use HTTPS for performing weather API calls.
Historically, the API was only available through HTTP and the endpoint URL was never updated.
Thanks for pointing this out.


other db tests

create tests for as many of the below dbs as possible

[ ] infromix
[ ] spark
[ ] azure sql
[ ] sqlite
[ ] excel

Originally posted by @ndmlny-qs in https://github.com/mkleehammer/pyodbc/discussions/1253#discussioncomment-6844308

Do you know if it possible to connect with SSAS ?


Nice idea

This sounds like a good idea, but:
a) we can't create templates for our business, and
b) the templates don't exist except for a few cases in Education and Healthcare.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 24d884cb-c126-b5dc-ff90-1a31aa61bf5b
Version Independent ID: ed5054d7-d679-7fad-fd5d-9cd393644b9d
Content: Get started with Teams templates - Microsoft Teams
Content Source: Teams/get-started-with-teams-templates.md
Service: msteams
GitHub Login: @LolaJacobsen
Microsoft Alias: lolaj

@Air-Git thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.


Move COS settings as Request parameters

Figure out how to set COS bucket from ingestDocs request.

If they are part of request, override ENV variables.


feat(ui): UI for Event-source

Checklist:

[ ] My organization is added to USERS.md.

closes #4487

@alexec can you take another look?

@alexec can you take another look?


NextTick fails with 00 * * * *

Hi,
I encountered a weird situation where

IsValid("00 * * * *") is true and
NextTick("00 * * * *", false) fails with the error tried so hard, but it works fine with NextTick("0 * * * *", false)

(it's the same with 00 in the hour segment)
I'm not sure which scenario is correct, because some cron validator online says this is valid and other don't,
so should IsValid return true or should NextTick work with this expression ? Thanks !

thanks for ticket. 00 is wrong, no? i think 00 should be KO right away with error

It seems to work fine on crontab.guru and other website, in fact they accept any number of 0

If you want IsValid to be false for that case I can open a PR if you want

yep, but what does the spec say? i ont know, need to look that up lol :D
if 00 is equivalent to 0 then we can do so as per specification. if not we can error :)

According to most resources, leading zero are allowed but not required:

The POSIX specification doesn't mention anything
This stackoverflow answer suggest that some systems fails to interpret leading zero
ChatGPT thinks it's okay

Leading zeros can be used, but they are not required and have no impact on the cron expression's validity. For instance, 05, 5, and 0005 are all equivalent and valid for the minute field. The same applies to other fields as well

so I guess it's up to you 🤷♂

thanks it is more upto spec i think. :) i would appreciate a PR. 👍
(it was late yesterday in my timezone)


Database: Creating the schema for database

#ToDo
Before starting to develop databases, we need to create the database format.
I think 2 tables are enough.
Exercise table

ID (INT, UNIQUE, NOT NULL, auto-incremental) => Primary Key
type (VARCHAR, NOT NULL) => Represents the type of exercise (Linear Algebra, Calculus etc)
source (VARCHAR, NOT NULL)  => Represents the author of the exercise
exercise (BLOB or TEXT, NOT NULL) => Represents the exercise itself
is_multiple_choice (BOOL, NOT NULL) => Represents if the exercise is multiple choice
ID_solution (INT, UNIQUE, NOT NULL) => Foreign Key

Multiple choice table

ID (INT, UNIQUE, NOT NULL, auto-incremental) => Primary Key
ID_exercise (INT, UNIQUE, NOT NULL, auto-incremental) => Foreign Key
options (VARCHAR or TEXT, NOT NULL) => Options to be chosen by the user

Solution table

ID (INT, UNIQUE, NOT NULL, auto-incremental) => Primary Key
solution (BLOB or TEXT, NOT NULL) => Solution for the exercise

Explanations
Probably you're asking: "Why the multiple choice table doesn't have some flag saying what is the right answer?". Well, since all the exercises will have a detailed solution, the author will say, in the beggining, what solution is correct.
⚠Warning ⚠
Probably, because options will be a string with all options, some pattern will be developed to parse the options, but that's a back-end problem

@ProgramingIsTheFuture

If isn't multiple choice you do nothing just send the exercise, only if it is multiple choice they need to be fetched. Proof-based doesn't have options to be selected since user will write in a textbox
User don't  manage how many would appear, since who create options are the exercises' owners. All multiple choice exercises will have only 4 options (one right, the other 3 are wrong). User will select one of 4 as their final answer

@ttiagojm
For the second question, that's what I'm referring to. The exercise owner might want to have just two options instead of 4 options. or might want something like this:
Option A - 10
Option B - 15
Option C - 20
Option D - 25
Option E - None
This way, we will limit the system to have always 4 choices. (Both of this cases have a single right answer that need to be specified in the database as well)

@ProgramingIsTheFuture I already said will always have only 4 options less or more than that shouldn't be possible. Since just one will be right, the other ones are irrelevant so we can have a static number of inventend wrong answers.

I don't but, this data is somewhat unstructed so a no relations database should be better ... What do you think ? @ProgramingIsTheFuture @Finalshare90

@ProgramingIsTheFuture I'll do what you suggest, check the new schema please

May i ask something?
Is the database format already set? i need to begin writing the requests for each case in back-end, but i'm not sure if i can use the format that @ttiagojm write above.

And i am not sure if my idea is actually redundant, but would be very handy if each exercise had a key specifying what kind of exercise nature are they.

@Finalshare90 wait for @ProgramingIsTheFuture to answer if the schema follows his idea.
When an exercise from Exercise table has is_multiple_choice then you need to go to Multiple choice table to get the options.
And yes, we can add an column "Type" to specifcy the type of exercise (lin alg, calculus, trig etc etc)

The schema looks good to me and yes, it follows my idea.
And we might want to let the solution be something like latex or mathjax to render the formulas in the HTML.

@ProgramingIsTheFuture Yes exercises and solutions will be in LaTeX to rendered in frontend

@Finalshare90 Here we have the database diagram

Database was modeled and created


replace children declaration language feature with a trait without any special syntax

My perspective

we're unlikely to add first-class typechecker support, as it has its’ own type system that is inconsistent with the rest of hack.
we're unlikely to remove it as it does provide some safety at runtime that users have been depending on for over a decade

It feels like it's likely to stay in limbo.
With the introduction of reified generics, I think it can actually be implemented better as a standard Hack trait, without any special syntax.
Why is it weird?

it has its' own type system - e.g. the magic pcdata, any, and empty types
child declarations are basically regular expressions
it is a type-based language feature with no typechecker validation

appendChild() would need custom support or to be banned - huge impact on usage
would be extremely special case given the regex-like validation
while we are aiming to make the typechecker verify that the declarations do not refer to classes that do not exist,  there will still be no typechecker validation that usage matches the declaration

it does not get emitted in a standard way - e.g. string class names with no type structure. This /could/ be fixed, e.g. by adding type structures here, but we'd need to expose the type structure to the library code - I don't see how this could be reified.

Proposal

prototype the rough idea below in open source XHP-Lib, HHAST, and migrate docs.hhvm.com
log when trait-based and existing validation differs.
FB ports to FB www
delete the syntax from the parser

Rough idea:
class :foo extends :x:element {
  use XHPChildrenValidation;

  // old:
  //  children (:bar*, :baz?, pcdata);

  // new:
  protected static function getChildValidationPattern(): XHPChildPattern {
    return XHPChild::tuple(
      XHPChild::anyNumberOf(XHPChild::ofType<:bar>()),
      XHPChild::optional(XHPChild::ofType<:baz>())
      XHPChild::pcdata(),
    );
  }

  protected async function genRender() {
    $this->validateChildren(); // or, automatic:
    // - maybe check for presence of `IHaveChildValidation`
    //   or similar in framework?
    // - maybe make trait override getChildren() and friends
  }
}

XHPChild::anyNumberOf(XHPChild::ofType<:bar>()) is a bit verbose; the problem with XHPChild::anyNumberOf<:bar>() or similar is patterns like children ((:bar | :baz)*) - with the verbose syntax, they're something like XHPChild::anyNumberOf(XHPChild::ofUnionType(XHPChild::ofType<:bar>(), XHPChild::ofType<:baz>()) , but I don't see a clean way to fit them in to something like XHPChild::anyNumberOf<T>()
Migrations
This can be done automatically:

via HackAST/HHAST
by using the existing parser - add codegen methods to ReflectionXHPChildrenDeclaration

Verifying correctness

verify the automated migration: add XHPChild::toLegacySerialization(), verify it matches __xhpChildrenDeclaration()
if verification is reimplemented, can verify children via both approaches, and log/fatal if result differs

Why do reified generics help?
They allow XHPChild::of<T>() consistently, rather than XHPChild::string(), XHPChild::instanceOfClass(classname<T>) etc
Additionally, classname<T> is getting harder to use, as the typechecker gets stricter about unsafe usage.
Why is it better?

type-based language features without full typechecker support are extremely surprising to Hack users; while
implementing in a trait does not improve safety, users have more accurate expectations
easy to extend to support new features, such as new types, generics, etc - no need to synchronize changes
between the parser, typechecker, runtime, and xhp-lib
easier to simplify to remove unwanted features: makes the possibility of a stricter, fully-supported, but less flexible language feature much more practical for migration; e.g.

split out XHPElementWithExactlyOneChildOfType<T>() and XHPElementWithAnyNumberOfChildrenOfType<T>()
add new language feature that can represent those only (possibly similar to React's child validation)
migrate those types, but keep using the trait for the more powerful regexp-style constraints

simplifies the language - less syntax, fewer type systems

new types will be automatically supported, as long as reified generics support them

makes replacing XHP categories with standard Hack interfaces much more practical

How to start?

constructive feedback is very useful
the next step is to prototype; while this isn't currently a priority for us, this is a problem that is very suited to pull requests

Today's hack nightlies add disable_xhp_children_declarations hhconfig option

This is mostly done - though xhp-lib should be modified to throw an exception if an old-style children declaration is present.


Global store and Local Store might just be more clearly called Public and Private

if possible, I think changing "Global Store" and "Local Store" to much simpler and clearer "public" and 'private' (or "personal) would help usability.
Local store is not even the typical usage of "local" which usually means stored on your local machine, meaning your desktop or laptop.
The tool tip has good language "your personal store" although I would use the full word "storage" again, to be more clear, especially for translations or non-native English speakers who need to read the English version.

Not sure where you've seen Global Store / Local Store. Have updated the tooltips.

Create Job -> Export Summary
X Save feature selection locally
X Publish feature selection globally
X Publish export globally
And the tool tips for them.
I would make them:
Save feature selection to personal options (or storage, options, etc)
Publish feature selection publicly
Publish export publicly
"Globally" is just not clear and has a lot of meanings, but what we are really talking about is just making the things public, instead of keeping them private.

Updated these labels.

Confirming that the text on the 'Export Summary' tab during the create process has been updated to use 'Public' in place of 'Globally' and 'Private' in place of 'Locally'.


ISSUE-1084 - Added first draft of potential interface for Neptune

Issue #, if available:
Description of changes:
First draft of what a Neptune interface might look like.
I did have an utstanding question though on the naming of the write function names.  There seems to be several conventions (put, to_sql, index, etc.) that different services have used based on how they work.  Is there a preferred  naming convention we would like to follow here?
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-pDO66x4b9gEu
Commit ID: f4f084b1bccaa94dbdd64d55cf8f3ac089674c0c
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-pDO66x4b9gEu
Commit ID: 5f3a307ae49fcab9160e6e64fe36e5657bb09497
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

Regarding naming conventions we tend to just go with whatever makes sense for the domain / service really. I'm happy with to_graph and read_{gremlin, opencypher, sparql}.

Also just note that there's convenient fix.sh in the root of the repo that you can run to sort imports and correct formatting. It basically just runs isort . and black . - this will get rid of static checking errors

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-pDO66x4b9gEu
Commit ID: 6db725e8dbbbf0d78ca32be7d89ba9719bd01943
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

Also just note that there's convenient fix.sh in the root of the repo that you can run to sort imports and correct formatting. It basically just runs isort . and black . - this will get rid of static checking errors

To add to this, there is a validate.sh script that can be run locally or as a pre-commit hook for code static checks. An alternative is to prepend [skip ci] to your commit message which will simply skip the various Github checks we have

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-pDO66x4b9gEu
Commit ID: b3c4e45437a9622c8fe075213d8bea67655f895f
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-pDO66x4b9gEu
Commit ID: 178130f73818c74d498b7b9f910ba77688661e13
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-pDO66x4b9gEu
Commit ID: 42575465b8551e71d014bc3a077583321b614946
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-pDO66x4b9gEu
Commit ID: 31df062f313e5253798d8ec935af5ec787600efb
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-pDO66x4b9gEu
Commit ID: d61a4c940c45d5c7ab29b81c5de928f9906b55ee
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-pDO66x4b9gEu
Commit ID: d654903e870cd8f253514e3913e40667dea0cb74
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-pDO66x4b9gEu
Commit ID: 9e486d10013a6f6c0304b3f0cea93c981e04fec1
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-pDO66x4b9gEu
Commit ID: c526960ae69ac3c7950bbb5088d2da64fef388c6
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-pDO66x4b9gEu
Commit ID: 0ae781b574c93c1c2af2d31063cbac1e6a6a7d57
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-pDO66x4b9gEu
Commit ID: 257c1e5f2a094ad54541ad3988b0254a5cc4b7d4
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-pDO66x4b9gEu
Commit ID: 4aabf846dcb1334c875a7bbad5f199544af6b392
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-pDO66x4b9gEu
Commit ID: 6f77ada804a3f182eb5ad5ef461e1397fc092c27
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-pDO66x4b9gEu
Commit ID: 6ba9ccd84be7379d54355efeb467421752164113
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-pDO66x4b9gEu
Commit ID: 462bc0bf94bf4144536fe4165b891879e9003cc6
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-pDO66x4b9gEu
Commit ID: de1acf6d5cf98b5810980c2215872ccbc3ec4b67
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository


Missing addons for Clown

Hello, thanks for the great API!
The Clown seems to be missing some of his addons when calling /api/addons though. Comparing the wiki to your website you can see quite a few of them are not there.

Oh gee your right, I'll work on fixing it right away!


configure_series --> next-episode.net/calendar.ics method stopped working a day or so ago

Expected behaviour:
No warnings
Actual behaviour:
2016-08-11 19:17 WARNING  configure_series tv_tasks        Input text did not return anything
2016-08-11 19:17 INFO     configure_series tv_tasks        Did not get any series to generate series configuration
Steps to reproduce:

Step 1: ...[root@c91a318c7b97 /]# flexget execute --now -v

Config:
  tv:
    configure_series:
      from:
        text:
          url: "http://next-episode.net/calendar.ics?u=user&k=key"
          entry:
            title: ^SUMMARY:(.*) - [0-9]+x[0-9]+.*$
            url: ^SUMMARY:(.*) - [0-9]+x[0-9]+.*$

Log:
paste log output
use paste service if log is too long

Additional information:

Flexget Version: 2.2.16

Python Version:
[root@c91a318c7b97 /]# /usr/sbin/python2 -V
Python 2.7.11 (Deluge uses Python 2.7.11? too?)

Installation method: Docker

OS and version: Arch Linux  arch-base:20160311-01

[root@c91a318c7b97 /]# cat /proc/version
Linux version 4.1.18-unRAID (root@develop64) (gcc version 4.8.2 (GCC) ) #1 SMP PREEMPT Thu Mar 3 13:08:41 PST 2016

Installation method (pip, git install, etc.) pip2 via Docker build and then using terminal to manually update with pip2 install --upgrade flexget

Please verify that the following data is present before submitting your issue:
-Paste or link to a paste service (pastebin for example) of relevant config (preferably full config including templates if present. Remember to redact any personal information!

Paste or link to a paste service of debug level logs of relevant task/s. Use flexget -L debug execute --tasks <Task_name>

[root@c91a318c7b97 /]# flexget -L debug execute --tasks tv_tasks
2016-08-11 19:33 DEBUG    manager                       Figuring out config load paths
2016-08-11 19:33 DEBUG    manager                       Found config: /home/nobody/.flexget/config.yml
2016-08-11 19:33 DEBUG    manager                       Config file /home/nobody/.flexget/config.yml selected
2016-08-11 19:33 DEBUG    manager                       sys.defaultencoding: ascii
2016-08-11 19:33 DEBUG    manager                       sys.getfilesystemencoding: UTF-8
2016-08-11 19:33 DEBUG    manager                       os.path.supports_unicode_filenames: False
There is a FlexGet process already running for this config, sending execution there.
2016-08-11 19:33 DEBUG    manager                       Sending command to running FlexGet process: [u'-L', u'debug', u'execute', u'--tasks', u'tv_tasks']
2016-08-11 19:33 DEBUG    cron_env                      Encoding UTF-8 stored
2016-08-11 19:33 DEBUG    util.simple_persistence                 setting key terminal_encoding value 'UTF-8'
2016-08-11 19:33 DEBUG    task          tv_tasks        executing tv_tasks
2016-08-11 19:33 DEBUG    template      tv_tasks        Merging template tv into task tv_tasks
2016-08-11 19:33 DEBUG    template      tv_tasks        Merging template global into task tv_tasks
2016-08-11 19:33 DEBUG    domain_delay  tv_tasks        Adding minimum interval of 5 seconds between requests to bt-chat.com
2016-08-11 19:33 DEBUG    domain_delay  tv_tasks        Adding minimum interval of 10 seconds between requests to thepiratebay.se
2016-08-11 19:33 DEBUG    domain_delay  tv_tasks        Adding minimum interval of 5 seconds between requests to torrentz.eu
2016-08-11 19:33 DEBUG    input_cache   tv_tasks        cache name: text_9266ce9dc23df88303cf27431aa802ef (has: )
2016-08-11 19:33 DEBUG    utils.requests tv_tasks        Fetching http://next-episode.net/calendar.ics?u=user&k=key
2016-08-11 19:34 DEBUG    input_cache   tv_tasks        storing to cache text_9266ce9dc23df88303cf27431aa802ef 0 entries
2016-08-11 19:34 WARNING  configure_series tv_tasks        Input text did not return anything
2016-08-11 19:34 INFO     configure_series tv_tasks        Did not get any series to generate series configuration
2016-08-11 19:34 DEBUG    input_cache   tv_tasks        cache name: rss_4dfc630bb79824aa0e5250a404ec049f (has: text_9266ce9dc23df88303cf27431aa802ef)
2016-08-11 19:34 DEBUG    rss           tv_tasks        Requesting task tv_tasks url https://somesite/rss.xml
2016-08-11 19:34 DEBUG    utils.requests tv_tasks        Fetching https://eztv.ag/ezrss.xml
2016-08-11 19:34 DEBUG    rss           tv_tasks        encoding utf-8
2016-08-11 19:34 DEBUG    rss           tv_tasks        Saving location in rss feed.
2016-08-11 19:34 DEBUG    util.simple_persistence tv_tasks        setting key<PHONE_NUMBER>894132926_last_entry value u'Some torrent'
2016-08-11 19:34 DEBUG    input_cache   tv_tasks        storing to cache rss_4dfc630bb79824aa0e5250a404ec049f 50 entries
2016-08-11 19:34 DEBUG    input_cache   tv_tasks        cache name: rss_d614d21d6c8c7edea99489ee1064e6a5 (has: rss_4dfc630bb79824aa0e5250a404ec049f, text_9266ce9dc23df88303cf27431aa802ef)
2016-08-11 19:34 DEBUG    rss           tv_tasks        Requesting task tv_tasks url http://somesite/rss.php?user_id=userid&hd=2&proper=1
2016-08-11 19:34 DEBUG    utils.requests tv_tasks        Fetching http://somesite/rss.php?user_id=userid=2&proper=1
2016-08-11 19:34 DEBUG    rss           tv_tasks        encoding utf-8
2016-08-11 19:34 DEBUG    rss           tv_tasks        Saving location in rss feed.
2016-08-11 19:34 DEBUG    util.simple_persistence tv_tasks        setting key -7605660843457836851_last_entry value u'Some Torrent'
2016-08-11 19:34 DEBUG    input_cache   tv_tasks        storing to cache rss_d614d21d6c8c7edea99489ee1064e6a5 30 entries
2016-08-11 19:34 DEBUG    input_cache   tv_tasks        cache name: rss_e4b8a5eeeb02b54edc742a35c1eafb5d (has: rss_d614d21d6c8c7edea99489ee1064e6a5, rss_4dfc630bb79824aa0e5250a404ec049f, text_9266ce9dc23df88303cf27431aa802ef)
2016-08-11 19:34 DEBUG    rss           tv_tasks        Requesting task tv_tasks url http://somesite/all.rss
2016-08-11 19:34 DEBUG    utils.requests tv_tasks        Fetching http://somesite/feeds/all.rss
2016-08-11 19:34 DEBUG    rss           tv_tasks        encoding utf-8
2016-08-11 19:34 DEBUG    rss           tv_tasks        Saving location in rss feed.
2016-08-11 19:34 DEBUG    util.simple_persistence tv_tasks        setting key -200063418917391192_last_entry value u'***'
2016-08-11 19:34 DEBUG    input_cache   tv_tasks        storing to cache rss_e4b8a5eeeb02b54edc742a35c1eafb5d 60 entries
2016-08-11 19:34 DEBUG    inputs        tv_tasks        Title *************************** already in entry list, skipping.
2016-08-11 19:34 DEBUG    inputs        tv_tasks        Title *************************** already in entry list, skipping.
2016-08-11 19:34 DEBUG    inputs        tv_tasks        Title *************************** already in entry list, skipping.
2016-08-11 19:34 DEBUG    input_cache   tv_tasks        cache name: rss_a1669fe1c0839d226641d5d3c45fc406 (has: rss_d614d21d6c8c7edea99489ee1064e6a5, rss_e4b8a5eeeb02b54edc742a35c1eafb5d, rss_4dfc630bb79824aa0e5250a404ec049f, text_9266ce9dc23df88303cf27431aa802ef)
2016-08-11 19:34 DEBUG    rss           tv_tasks        Requesting task tv_tasks url https://somesite/rss.php?categories=**
2016-08-11 19:34 DEBUG    utils.requests tv_tasks        Fetching https://somesite/rss.php?categories=**
2016-08-11 19:35 WARNING  inputs        tv_tasks        Error during input plugin rss: Unable to download the RSS for task tv_tasks (somesite): HTTPSConnectionPool(host='rarbg.to', port=443): Max retries exceeded with url: /rssdd.php?categories=41 (Caused by ConnectTimeoutError(<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x2af75001d0d0>, 'Connection to rarbg.to timed out. (connect timeout=60)'))
2016-08-11 19:35 DEBUG    input_cache   tv_tasks        cache name: rss_4097620132a847b7129e808113a8a5a7 (has: rss_d614d21d6c8c7edea99489ee1064e6a5, rss_e4b8a5eeeb02b54edc742a35c1eafb5d, rss_4dfc630bb79824aa0e5250a404ec049f, text_9266ce9dc23df88303cf27431aa802ef)
2016-08-11 19:35 DEBUG    rss           tv_tasks        Requesting task tv_tasks url somesite
2016-08-11 19:35 DEBUG    utils.requests tv_tasks        Fetching somesite
2016-08-11 19:35 DEBUG    rss           tv_tasks        encoding utf-8
2016-08-11 19:35 DEBUG    rss           tv_tasks        Saving location in rss feed.
2016-08-11 19:35 DEBUG    util.simple_persistence tv_tasks        setting key -8073625699285564037_last_entry value u''
2016-08-11 19:35 DEBUG    input_cache   tv_tasks        storing to cache rss_4097620132a847b7129e808113a8a5a7 10 entries
2016-08-11 19:35 DEBUG    input_cache   tv_tasks        cache name: rss_3570b29c558dd15a4725dd9de71531ec (has: rss_d614d21d6c8c7edea99489ee1064e6a5, rss_e4b8a5eeeb02b54edc742a35c1eafb5d, rss_4dfc630bb79824aa0e5250a404ec049f, rss_4097620132a847b7129e808113a8a5a7, text_9266ce9dc23df88303cf27431aa802ef)
2016-08-11 19:35 DEBUG    rss           tv_tasks        Requesting task tv_tasks url somesite
2016-08-11 19:35 DEBUG    utils.requests tv_tasks        Fetching somesite
2016-08-11 19:35 CRITICAL rss           tv_tasks        Received content is HTML page, not an RSS feed
2016-08-11 19:35 CRITICAL rss           tv_tasks        I have saved the invalid content to /home/nobody/.flexget/received/somesite for you to view
2016-08-11 19:35 WARNING  inputs        tv_tasks        Error during input plugin rss: Received invalid RSS content from task tv_tasks (somesite)
2016-08-11 19:35 DEBUG    input_cache   tv_tasks        cache name: rss_4876b1c556474fd8dd2f4b08b9580ccb (has: rss_d614d21d6c8c7edea99489ee1064e6a5, rss_e4b8a5eeeb02b54edc742a35c1eafb5d, rss_4dfc630bb79824aa0e5250a404ec049f, rss_4097620132a847b7129e808113a8a5a7, text_9266ce9dc23df88303cf27431aa802ef)
2016-08-11 19:35 DEBUG    rss           tv_tasks        Requesting task tv_tasks url somesite
2016-08-11 19:35 DEBUG    utils.requests tv_tasks        Fetching somesite
2016-08-11 19:35 CRITICAL rss           tv_tasks        Received content looks a bit like login page
2016-08-11 19:35 CRITICAL rss           tv_tasks        I have saved the invalid content to /home/nobody/.flexget/received/somesite.xml for you to view
2016-08-11 19:35 WARNING  inputs        tv_tasks        Error during input plugin rss: Received invalid RSS content from task tv_tasks (somesite)
2016-08-11 19:35 DEBUG    input_cache   tv_tasks        cache name: rss_47cd304c1e230068a379ebe0ab0dd65e (has: rss_d614d21d6c8c7edea99489ee1064e6a5, rss_e4b8a5eeeb02b54edc742a35c1eafb5d, rss_4dfc630bb79824aa0e5250a404ec049f, rss_4097620132a847b7129e808113a8a5a7, text_9266ce9dc23df88303cf27431aa802ef)
2016-08-11 19:35 DEBUG    rss           tv_tasks        Requesting task tv_tasks url http://somesite
2016-08-11 19:35 DEBUG    utils.requests tv_tasks        Fetching http://somesite
2016-08-11 19:35 CRITICAL rss           tv_tasks        Received content looks a bit like login page
2016-08-11 19:35 CRITICAL rss           tv_tasks        I have saved the invalid content to /home/nobody/.flexget/received/somesite.xml for you to view
2016-08-11 19:35 WARNING  inputs        tv_tasks        Error during input plugin rss: Received invalid RSS content from task tv_tasks (http://somesite)
2016-08-11 19:35 DEBUG    input_cache   tv_tasks        cache name: rss_e7b4616d27cc0cc343724aa16777e8f0 (has: rss_d614d21d6c8c7edea99489ee1064e6a5, rss_e4b8a5eeeb02b54edc742a35c1eafb5d, rss_4dfc630bb79824aa0e5250a404ec049f, rss_4097620132a847b7129e808113a8a5a7, text_9266ce9dc23df88303cf27431aa802ef)
2016-08-11 19:35 DEBUG    rss           tv_tasks        Requesting task tv_tasks url http://somesite
2016-08-11 19:35 DEBUG    utils.requests tv_tasks        Fetching http://somesite
2016-08-11 19:35 CRITICAL rss           tv_tasks        Received content looks a bit like login page
2016-08-11 19:35 CRITICAL rss           tv_tasks        I have saved the invalid content to /home/nobody/.flexget/received/somesite.xml for you to view
2016-08-11 19:35 WARNING  inputs        tv_tasks        Error during input plugin rss: Received invalid RSS content from task tv_tasks (http://somesite)
2016-08-11 19:35 DEBUG    backlog       tv_tasks        0 entries purged from backlog
2016-08-11 19:35 VERBOSE  details       tv_tasks        Produced 138 entries.
2016-08-11 19:35 DEBUG    exists_series tv_tasks        Scanning not needed
2016-08-11 19:35 DEBUG    urlrewriter   tv_tasks        Checking 0 entries
2016-08-11 19:35 VERBOSE  details       tv_tasks        Summary - Accepted: 0 (Rejected: 0 Undecided: 138 Failed: 0)
2016-08-11 19:35 DEBUG    util.simple_persistence tv_tasks        Flushing simple persistence for task tv_tasks to db.
2016-08-11 19:35 DEBUG    util.simple_persistence tv_tasks        Flushing simple persistence for task None to db.

Installation method (pip, git install, etc.) pip2

are you a premium member I'm guessing so since that is a premium service. If it returns nothing. It returns nothing. Check the output of the service.

Yes I am a premium user.  I use it because Next-Episode has an Android app.
I checked the output of the service and it asks me to download the ics file.  And this is from a Chrome tab not signed in.
next_episode_calendar.ics.txt

I looked at the upgrade breakage instructions and last post was July 27 for 2.0.0.
This happened a day ago maybe 2 days now and have been updating everyday.

Next-episode.net change their site format, the "Site Wide Settings" somehow are different now.
My settings for episode became, "SUMMARY:Show - s1e3".
Changed to, "SUMMARY:Show - 1x3" format.
It appears to work now.


Asterisks are unescaped in Discord

Discord uses asterisks as markdown characters, which means that they need to be escaped in any text returned by Yawgmoth. This results in incorrectly displaying variable power and toughness for cards like Tarmogoyf.

Already fixed by Ace.