Leave Resource Request Empty Instead of Requesting 0

I recently went through the pipelines-tutorial in the OpenShift org and encountered the following error message:
Missing or invalid Task pipelines-tutorial/s2i-java-8: pods
        "petclinic-deploy-pipelinerun-qwq6k-build-hnq2g-pod-f9e7df" is
        forbidden: [minimum memory usage per Container is 6Mi, but request is
        0., minimum memory usage per Container is 6Mi, but request is 0.,
        minimum memory usage per Container is 6Mi, but request is 0., minimum
        memory usage per Container is 6Mi, but request is 0., minimum memory
        usage per Container is 6Mi, but request is 0., minimum memory usage per
        Container is 6Mi, but request is 0., minimum memory usage per Container
        is 6Mi, but request is 0.]

This occurred because my OpenShift project had a LimitRange with the following specifications:
kind: LimitRange
apiVersion: v1
metadata:
  name: pipelines-tutorial-core-resource-limits
  namespace: pipelines-tutorial
  selfLink: >-
    /api/v1/namespaces/pipelines-tutorial/limitranges/pipelines-tutorial-core-resource-limits
  uid: 492a15c6-9d90-11e9-ae59-0a8e513d9bd0
  resourceVersion: '1063283'
  creationTimestamp: '2019-07-03T12:44:23Z'
spec:
  limits:
    - type: Container
      max:
        memory: 6Gi
      min:
        memory: 6Mi
      default:
        cpu: 500m
        memory: 1536Mi
      defaultRequest:
        cpu: 50m
        memory: 256Mi
    - type: Pod
      max:
        memory: 12Gi
      min:
        memory: 6Mi

Since there were no specifications on the container cpu of resource request for the pipeline, the resource request was set to 0. This caused the pipelinerun as part of the tutorial to fail.
If no amount had been requested, the LimitRange's specifications would have been used for the tasks' containers, and I think this should be the approach moving forward. I believe the source in question can be found here.
In general, I think the error message should be improved to better reflect the situation. Missing or invalid Task pipelines-tutorial/s2i-java-8 is not what was wrong with the pipelinerun. The issue was due to the cpu resource request being 0, which was less than the LimitRange's min value.
More on how I ran into this issue can be found here.
Expected Behavior
Error message should not have Missing or invalid Task pipelines-tutorial/s2i-java-8 as reason pipelinerun failed. It should focus more on the LimitRange aspect of the issue.
The default value for a resource request should be the minimum of a LimitRange instead of 0.
Actual Behavior
Error message in issue description.
Steps to Reproduce the Problem

Set a LimitRange minimum of greater than 0 on an OpenShift 4 cluster namespace and trigger a pipelinerun with the default resource request.

Additional Info
This was run on a Red Hat Product Demo System (RHPDS) OpenShift 4.1 cluster.

In the documentation it states:
The CPU, memory, and ephemeral storage resource requests will be set to zero if the container image does not have the largest resource request out of all container images in the Task. This ensures that the Pod that executes the Task will only request the resources necessary to execute any single container image in the Task, rather than requesting the sum of all of the container image's resource requests.
Obviously if the platform has a LimitRange set that will prevent 0 to be the minimum the task will not run.
This should be fixed by either setting the request as the same value as the container image with the largest resource request or by not setting a value at all, if there's a LimitRange defining a minimum, let the LimitRange apply it.
In the example above, none of the images have a request defined, but it seems the LimitRange has applied to value to the first container created and hence the second will be set to 0.
cc/ @siamaksade

IIRC, the reason we set the requests to 0 explicitly in the fix  for #598 is that if you leave the request unset, the Pod still ends up summing the default values for the containers, and values used for limits become the values for requests (see https://github.com/tektoncd/pipeline/issues/598#issuecomment-479604163 for some discussion of this).
I think the best fix here would be to load the LimitRange for Containers somewhere in pod.go, and then change zeroNonMaxResourceRequests so that if no container sets an explicit request, either the default or minimum request values for the LimitRange are used on one of the containers (I don't think it matters which container is chosen).

That would be good.
I've tried manually setting the resources requests in the Tasks for every image, but what I've found when created a Pipeline and the PipelineRun is that there were more containers defined in the Pod for which I could not easily set the memory.requests.
Some of them are using this image quay.io/openshift-pipeline/tektoncd-pipeline-imagedigestexporter:v0.4.0, this other one quay.io/openshift-pipeline/tektoncd-pipeline-git-init:v0.4.0 and also this other one quay.io/openshift-pipeline/tektoncd-pipeline-nop:v0.4.0) (although for the last one there's no request set to 0 as there is for the other 2) and for those I can not set the requests, so the pipeline can't run with my LimitRange no matter what.

All requests you set on steps in a Task other than the largest one will be replaced with 0.
Depending on exactly how the minimum values for a LimitRange for a Container are enforced (per-container, or per-pod?) It might mean that we actually need to set the minimum on every container. If we did that, then to still have #598 fixed, we'd need to change the largest request from whatever it is (say X), to X - (minimum * (number of tasks - 1)) so that we don't request more resources than necessary.
At that point this all starts looking pretty complicated, so I wonder if there is a better way to control how Pod-level resource requests are computed to fix #598 without having to modify what users have specified.

All requests you set on steps in a Task other than the largest one will be replaced with 0.
I've verified I can set the requests on every container on every step to prevent them to be calculated and henced zeroed. Also, I've verified that the containers the framework adds (and hence I can not explicitly set the requests) are all zeroed, except for the last one I described quay.io/openshift-pipeline/tektoncd-pipeline-nop:v0.4.0 which in the final pod has no request set, even not a zero.

Here's the pod definition and in line 333 you can see the last container without this computed request. I guess this is a bug.
LimitRanges are enforced by cluster-administrators to make sure that the resources are not wasted. Even without discussion whether having a minimum request is a good or bad idea, the reality is that it happens and there's nothing that we can do about it other than understand this fact and compute resources for the TaskRun pod in a mindful way.

I've verified I can set the requests on every container on every step to prevent them to be calculated and henced zeroed

I think they would all be zeroed except for the one with the largest request. In your example pod definition, all requests are zeroed except for the one container which requested 6mi of memory. Is that what you mean?

Here's the pod definition and in line 333 you can see the last container without this computed request. I guess this is a bug.

Yeah, I'm not sure why no requests are set for the nop container, or even why the nop container is even present. I think I can see why that would have been broken before https://github.com/tektoncd/pipeline/commit/ace3ab670b4c6a2e78fec0c4ac1dfa0caba1e316#diff-9177f963c9c62cb8e53097a81c571619L293, since the nop container was added after the resource requests were modified, but it looks like the nop container is no longer added as of that commit, released in 0.5.0. What version of Tekton are you running?

Even without discussion whether having a minimum request is a good or bad idea, the reality is that it happens and there's nothing that we can do about it other than understand this fact and compute resources for the TaskRun pod in a mindful way.

I think we are in agreement here, if you have any thoughts on how to fix it without regressing #598, they would be welcome. Right now the only idea I have is what I mentioned in https://github.com/tektoncd/pipeline/issues/1045#issuecomment-510206550.

LimitRange is used and although a best practice for namespaces where Tekton Tasks are running is to definitely not set a minimum we should still try to honor the request.
I agree that we could certainly get fancy wrt calculating an upper limit on request e.g. maximum - (minimum * (number of tasks - 1)) but I would tend to keep things simple and leave this at maximum at least for now.
For the lower limit though we should  update our request zeroing to explicitly set the request to the LimitRange minimum or 0 if not present. Leaving it blank will use either the LimitRange default or an internal implementation specific default which typically are higher.

I think it’s a good idea to honor a LimitRange minimum before requesting the default value, but I disagree with leaving the default request as 0. I think, despite the fact the LimitRange default is higher than is needed, we need to honor the default value and can’t assume 0. I think it’s a better approach to have the default be empty and trust the LimitRange defaults have been set appropriately by the user. I think users will continue to encounter issues with the 0 request.

The problem is that if set the request to the LimitRange minimum or the default request, #598 becomes a problem again, because now the default/minimum values will be combined to compute the resources required for the Pod even though the containers will only execute one at a time, so the pod requires more resources than it will ever use at a single point in time.
That might be fine if you use the minimum values, because the additional resources required will probably not be significantly different than the maximum value. For example, with that change, say we have 6 steps for a Task, the max memory request is 1Gi, and the LimitRange minimum is 10Mi, then the Pod for the Task will request 6.05Gi even though it only requires 6Gi. If you use the default request values, not the minimums, then the excess could be a lot worse, since the default is probably significantly higher than the minimum.
It seems like the fundamental issue is that we are doing tricky things that are opaque to Kubernetes to make Container act kind of like InitContainer. Because of that, the default behavior for computing Pod resource requests doesn't work well for our use case. I wonder if there is any reasonable upstream change we could make so we don't have to manipulate resource requests to get the behavior we want.

My apologies. I didn’t fully go through the discussions in #598 and now better understand the proposal from @skaegi.
If the goal here is a short term fix, I think it sounds reasonable. I think a question is if it makes sense to require resources be defined for a Task. However, this seems like it would be a poor user experience. Not sure if there had been any discussions around that.

IMHO there should be the ability for the user to explicitly set this values
in every container that tekton adds to the pod, so he can fix the problem
if it arises. Limit range is something that typically a user/developer
doesn't control and a problem not being able to schedule a pipeline can be
really tricky to fix. The user/developer should be able to fix these as
much as possible.
I think that as long as the user can explicitly set this value instead of
renting on the LimitRange in case of problems, then leaving the request as
0 or non-0 should not be a big issue, as it's solvable by the user in case
of problems.


Add possibility to include local files

Please add the possibility to set a files directory as a Terraform argument in order to include local files as in the ct cli tool.

I don't see this making a lot of sense directly in the context of this provider. The plugin allows Terraform to parse Container Linux configs and render Ignition and Terraform has its own support for reading local files already.
data "ct_config" "worker" {
  content      = "${file("worker.yaml")}"
  platform     = "ec2"
  pretty_print = false
}

content can be constructed from a file or using other providers (such as Terraform's template_file). If you're interested in combining multiple valid Container Linux configs, we're thinking of adding that feature in #22.
This project might more appropriately have been called terraform-provider-clc.

Thanks for your feedback!

Does this not make sense? You can only import .yaml files to build the config righ? There are considerable benefits to using the appropriate file extension for the file and importing the contents from a parent yaml, the primary being:

More flexible organisation of config files.
Text editors using the proper context for hinting/linting etc.

It does not. This provider plugin has no bearing on your ability to use files in Terraform. Please read my example and general Terraform docs like file.

@dghubble I believe this issue is in regards to setting the --files-dir ct flag to allow using a config like:
---
storage:
  files:
    - path: /opt/bin/myscript.sh
      filesystem: root
      mode: 0755
      contents:
        local: scripts/myscript.sh

Currently the above snippet results in an error from this provider:
local files require setting the --files-dir flag to the directory that contains the file

Personally I think it would be nice if --files-dir defaulted to terraform's `"${path.module}". Does this change the status of this issue?

@ae-v @danielgormly Here's how to accomplish using local files without the corresponding ct feature. Please note I'm using terraform v.0.12+ syntax which allows directly calling functions etc without enclosing them in "${}".
example.tf
data "ct_config" "base" {
  content = templatefile("${path.module}/ct.yaml",
    {
	my_script = indent(10, file("${path.module}/myscript.sh"))
    }
  )
}

ct.yaml
storage:
  files:
    - path: /opt/bin/myscript.sh
      filesystem: root
      mode: 0755
      contents:
        inline: |
          ${my_script}

myscript.sh
#!/usr/bin/env sh

echo "My script!"


Prisma Panic when using Fluent API for querying

Hi Prisma Team! My Prisma Client just crashed. This is the report:
Versions

Name
Version

Node
v16.13.2

OS
darwin-arm64

Prisma Client
4.2.0

Query Engine
2920a97877e12e055c1333079b8d19cee7f33826

Database
postgresql

Logs
prisma:tryLoadEnv Environment variables loaded from /Users/phuocphan/Work/plot/plot/server/.env
prisma:tryLoadEnv Environment variables loaded from /Users/phuocphan/Work/plot/plot/server/.env
prisma:client dirname /Users/phuocphan/Work/plot/plot/server/node_modules/.prisma/client
prisma:client relativePath ../../../prisma
prisma:client cwd /Users/phuocphan/Work/plot/plot/server/prisma
prisma:client clientVersion 4.2.0
prisma:client clientEngineType library
prisma:client:libraryEngine internalSetup
prisma:client:libraryEngine:loader Searching for Query Engine Library in /Users/phuocphan/Work/plot/plot/server/node_modules/.prisma/client
prisma:client:libraryEngine:loader loadEngine using /Users/phuocphan/Work/plot/plot/server/node_modules/.prisma/client/libquery_engine-darwin-arm64.dylib.node
prisma:client:libraryEngine sending request, this.libraryStarted: false
prisma:client:libraryEngine library starting
prisma:client:libraryEngine library started
prisma:client:libraryEngine sending request, this.libraryStarted: true
prisma:client:libraryEngine sending request, this.libraryStarted: true

Client Snippet
    const createdByUser = await this.prismaService.notification
      .findUnique({
        where: {
          id: notificationId,
        },
      })
      .createdByUser();

Schema
model Notification {
  id        String   @id @default(cuid())
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt

  createdByUser    User   @relation("CreatedBy", fields: [createdByUserId], references: [id])
  createdByUserId  String
  createdForUser   User   @relation("CreatedFor", fields: [createdForUserId], references: [id])
  createdForUserId String

  type   NotificationType
  status NotificationStatus @default(Unread)

  project            Project?          @relation(fields: [projectId], references: [id])
  deliverable        Deliverable?      @relation(fields: [deliverableId], references: [id])
  revision           Revision?         @relation(fields: [revisionId], references: [id])
  feedback           RevisionFeedback? @relation(fields: [revisionFeedbackId], references: [id])
  request            Request?          @relation(fields: [requestId], references: [id])
  comment            Comment?          @relation(fields: [commentId], references: [id])
  projectId          String?
  deliverableId      String?
  revisionId         String?
  revisionFeedbackId String?
  requestId          String?
  commentId          String?

  @@map("notifications")
}

For some reason when querying any of the relation in this model will cause Prisma to panic. It only has issues when I'm querying using Fluent API. If I instead query with include instead then there won't be any problem.
I also use fluent API in multiple places, and none of them seem to have a problem. This Notification model is being added and for some reason it alone is having this issue.

Actually I've resolved this. The issue is a bit hidden. I have another relation between User and Project also called "CreatedBy". This seems to be the root of the issue. There seems to be some uniqueness requirement for the name. Updating the relationship name to be unique resolve the problem


Support for Notification Feed

Support Create/Update/Delete of Notification Feed (Administration -> Integrations -> Notification Feed)

Slack
PagerDuty

not implemented in the product yet


Atom Integrated Terminal does not behave the same as Windows CMD outside of Atom

So this is a very strange error that's occurring for me.  The integrated terminal in atom does not behave the same way as CMD or windows PowerShell outside of Atom.
Background Info:  I'm developing a nodejs app with yeomen's angular-fullstack generator.  My work computer at home runs linux where this package works perfectly as expected.  But my workstation at work runs Windows 10 and figured this package would behave the same way.  I've also tried configuring the integrated platform ide terminal to test both the Windows Powershell and CMD to make sure the same error is reproduced and I can confirm the issue is whether or not the terminal being used is integrated in Atom or running separately.
Problem:  When I run gulp serve or npm install with platform-ide configured to use CMD.exe or PowerShell.exe within atom, the command does not perform as expected.  If i run either command in their respective independent application / window (cmd.exe or plowershell.exe) the commands work perfectly (just as if I was in a linux bash).  But when I use your package within atom  and configured to use either shell,  npm install does not completely install all the modules (specifically non of the dev dependencies).  So I ran npm install in a separate cmd.exe which installed all the modules to see if this was the only issue, but when when I run gulp serve within the platform-ide terminal i get a syntax error saying Unexpected token and its highlighting import express from express .  This does not happen when i run gulp serve in a cmd.exe or windows powershell.exe independently, my nodejs app launches as expected.
Let me know if theres any logs or anything else i can contribute to debug this.  Having a terminal within atom is highly convenient so if this is a quick fix i'd love to make sure i give you enough info to do it.  The package works perfectly on my linux box.

Same error here...
Running for example ng new command it does not install all required modules in "node_modules"-folder. When I run it from the Windows 7 default Command Prompt it install them all.

This could have something to do with #207.

I've observed same error with 2.5.0 package when trying run express within Atom platformio terminal .
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: listen EACCES $PORT
    at Object.exports._errnoException (util.js:1018:11)
    at exports._exceptionWithHostPort (util.js:1041:20)
    at Server._listen2 (net.js:1249:19)
    at listen (net.js:1298:10)
    at Server.listen (net.js:1387:5)
    at Object.<anonymous> (C:\Projects\jira-stackedchart-plugin\app.js:74:24)
    at Module._compile (module.js:570:32)

    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.runMain (module.js:604:10)
    at run (bootstrap_node.js:393:7)
    at startup (bootstrap_node.js:150:9)
    at bootstrap_node.js:508:3

Outside Atom in console or powershell works just fine on Windows 7 and 10. It has nothing in common with busy port which is misleading from the stack trace.  It will be great if fixed because there might be other hidden side effects that decrease my confidence in using the terminal even though I find it very handy.

I have a similar issue using powershell or cmd: when i try to exec any atom commands for example atom --help nothing happens , the same commands works in pshell or cmd outside platformio-terminal.
any suggestion?

Please retest again with platformio-atom-ide-terminal 2.9.0.
These type issues all so far seem fixed with this release due to using node-pty-prebuilt instead unmaintained and outdated pty.js


Predicting output for new sentences with the new model

Hi,
I tried retraining the model, it went on training and showed the loss during every epoch but at the end of the training it  didn't save anything (Model or Word vector file), which I could use for further predictions. Also is there a way to use model and find the sentiment of the input sentence?

The current code print the metrics and losses of train, dev, and test sets at the end of each epoch. If you want to test on other datasets , you need to save the model which the current code dose not support. But you can simply follow the instruction of saving models in Keras and add this part by yourself.  Then you can reload the saved model, and use it to make predictions on new instances.

Thanks for the information @ruidan. Well how to predict the output of some sentence with the current pretrained model that is available?


[FEATURE] dynacli command/feature new

Is your feature request related to a problem? Please describe.
I never remember exact format of command docstring
Describe the solution you'd like
dynacli feature new
dynacli feature mv
dynacli feature rm
dynacli command new   **args <name=type>
dynacli command mv
dynacli command rm
for nested commands/features consider using a dot notation, e.g. feature.command or blank to be consistent feature command (but that might be more tricky to process properly because of argparse limitations).
Describe alternatives you've considered
The only alternative is to continue doing it manually which is error prone
Additional context
dynacli tree to display feature/command tree

did not get the point, could you please clarify a bit?

It's part brand preservation, part productivity. How do I introduce a new feature? mkdir -p , echo  > /init.py. You automate it for me.


non playable characters turn into playable characters when saved

Describe your bug here.
I'm trying to save a character as a nonplayable character but it keeps reverting to a playable character.
Command Prompt/Terminal logs (if existing)
No response
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows
Did you edit anything in this build? If so, mention or summarize your changes.
no

That checkbox is only visual and it does not impact gameplay.


Fine-grained filtering

The current UI for blocking email blocks all email. It would be nice to let users just specify a regular expression (or multiple regexps) to be matched against the supervisor email address. A challenge will be sanitizing the regular expression, however. A globbing pattern would be good enough.

Implemented.


Automated S/T/C calculation

An automated script to run

Default xx, yy, zz on tensile/compression, xy, yz, xz on shear,
choose different supercell size based on the loading condition?
Dump the molecular centers, and PE(eV/molecule)-strain, stress(MPa)-strain curves for quick analysis.

@qzhu2017
I got a way to dump the values of center-of-mass. It just dump the same values to all atoms in each molecule... But we can just for post-analysis use 1 atom per molecule.
compute         cmol all chunk/atom molecule.      # Define the chunk as a molecule
compute         com all com/chunk cmol                # Calculate the center-of-mass per molecule
compute         vcm all vcm/chunk cmol                # Calculate the center-of-mass velocity per molecule
compute         mychunk all chunk/spread/atom cmol c_com[*] c_vcm[*]         # Values are copied to each atom in the molecule.
dump            1 all custom ${dump_steps} shear.*.dump element id mol type x y z c_mychunk[*]
dump_modify     1 element ${ele_string}

@pedroantoniosantosf
Thanks, I have a somewhat more challenging case.
Here I need to compute both the mass center and velocity for every two molecules (e.g., molecular id [1,2], [3, 4], ...)
I want to output these information to a single file like what we did before.
fix             3 all ave/time 2 100 1000 c_mychunk[*] file center.dat mode vector

Can you help? This will be very useful for our data analysis.

@qzhu2017
I was trying but I couldn't find the way to do it in lammps. Wouldn't it be possible to do it before, by modifying the lmp.dat file combining the 2 molecules?

Todo

[ ] Simplify lmp.dat (use replicate function)
[ ] quick scan all of folders / html output
[ ] Run jobs in parallel


Replaced inputs on the left and swapped out overview and scatterplot modules

I modified the left hand card to use the new data model, as well as modified the selectInputs.
I also swapped out both the table and scatterplot found on the overview tab with the new widgets.
Closes #138
Closes #139
Note: I partially finished #143, although I'll still leave it open until we resolve some lingering issues with action clicks. These will require some additional work in gsm and also require the completion of more tabs. For that reason, I commented out most changes to continue work no the next pull request.

Pulling comments over from Teams:
The app corresponding to this PR is live at https://openrbqm.shinyapps.io/gsmApp-pr-144/ !
@taylorrodgers : to make sure I understand what we should expect to see:

The filter panel on the left should work (with data in the gsm v2 format) (#138).
The filter panel should only show fields relative to the current tab (#143).
The Overview Table on the Study Overview tab should display data for the 2 metrics we have in the sample data.
The Scatter Plots on Study Overview should also display for those 2 metrics.
Other tabs are expected to NOT work because we haven't finished updating them to gsm v2.

Does that sound right? I don't want to report broken things if you don't expect them to work 🙃
I'll move forward with the rest of the review assuming those things are true. That all makes sense, but I'm new to this package, so I want to make sure I didn't fundamentally miss anything!

I explicitly "hid" the functions that we aren't using right now (by commenting them out and adding zzz- to the filenames). That way they don't slow things down nor show up in coverage reports, but the code is there when we revise/rewrite that module.

@jonthegeek, I went ahead and removed the css entries that were interfering with the new overview table.


PIV Manager - Windows 10 1703 - 4 Nano (No detection of key)

I can see it in the personalization tool and in windows and have the drivers installed. Was told to create an issue here.

Sorry your support team directed me to this repo.


Issue 17 : Running Dash.NET from scripts

This PR executes the plan outlined on issue #17.
Mainly it moves server dependencies to its own projects Dash.NET.Giraffe and introduces Dash.NET.Suave that allows us to launch Dash applications under F# interactive and dotnet interactive. I've posted a more detailed description of the work under the issue.
Feedback is welcome.

Hey @ademar cool stuff overall!
moving the comments from #17 here:

The Suave app works fine as an application and a script (doing dotnet fsi Script.fs). It does not work in the Visual Studio 2019 F# interactive console as this is broken atm (see for example NuGet package references no longer work in F# Interactive (.NET Framework only) in VS 16.10.0 dotnet/fsharp#11622). They break this with every VS update.

It works for me when i use the Use .NET core scripting setting for FSI. Agreed though, it has happened several times that FSI breaks with VS updates =(

The Giraffe app does not work for me at the moment. We can see Kestrel booting up messages but it fails with "System.IO.IOException: Cannot determine the frame size or a corrupted frame was received."

I get that for http, but https works fine. Not sure where the exact misconfig is locatet though

I've used our own Suave.Html for the html bits in the Suave app. I realize I can probably use Feliz.Engine instead as it seems to be your intention going forward and it will minimize dependencies.

As we use Feliz.engine for components, it woulöd be awesome if we could use it in both Dash.NET.Suave and Dash.NET.Giraffe

There is still some duplication of code we can eliminate.

See above basically, most of the duplication seems to be in the respective Views.fs file, if we can move that to Feliz.Engine, we can move it back into Dash.NET core and get rid of duplication.
As in my review comments, it looks to me like the only real difference is in DashApp.run and DashApp.toHttpHandler / DashApp.toWebPart

I've removed non Dash properties from the DashConfig record; wasn't sure on how to deal with it - I think we could just pass them in in the DashApp.run call.

Agreed on passing as args, but i would model the specific configs via types, see also my review comment
Overall i think this is ready to merge besides the backend specific config modeling, i would suggest we add that before merging as it can become very confusing using the string [] args. Things like using Feliz.Engine can be added downstream, depends on how fast we want to package Dash.NET.Suave. (@jackparmer i suspect you want this out fast though? 😆)

Thanks! I'll take care of these today.

Things like using Feliz.Engine can be added downstream, depends on how fast we want to package Dash.NET.Suave. (@jackparmer i suspect you want this out fast though?

:)
Yeah, it's currently blocking @mr-m-coetzee from merging Installation/Getting Started docs for Dash.NET, so if this could be added in a follow-up PR, I'd prefer that!

Hi @kMutagene
I've made the configuration into typed records and have added the CORS headers to the Suave  app.
I have also splitted the run method into run and runAsync. This could be useful in the future for the interactive visualization and allows to move the browser opening trick to the sample app.
Let me know what you think.
I spent some time trying to move the Views to the Feliz engine but it looks like it might take some time for me to wrap my head around it.

@ademar lgtm!
I realized that there is different behavior between Suave and Giraffe implementations regarding Json serialization:
I copied the code from the Dash.NET.Dev app into the suave script to check if callbacks are working. They do, but the dropdown component did not render. The problem lies here:
https://github.com/plotly/Dash.NET/blob/4c2559e29d6e3dc0c2ecaf0cd0859ba7c376a640/src/Dash.NET/DashComponents/ComponentBase.fs#L115-L122
While these properties are uppercase in that record type, the dash renderer expect the Json properties to be lowercase:

This problem does not appear when using giraffe (which per default is also using Newtonsoft.Json, that's why I'm confused now). It is fixable by adding JsonPropertyAttributes to the record types, but i think it should be investigated why the json configs are different (@plt-joey worked a lot with components, maybe they have some insights here).
So in general I would say that this can be merged, but the serialization issue should be addressed separately before the release of a package (otherwise the suave app cannot render some components). Let's make sure to file an issue and use the exact same Json serializer options for both apps, or this will be a nightmare to maintain, especially if there might be more backend implementations in the future

@kMutagene
Giraffe uses camel casing serialization by default as seen here https://github.com/giraffe-fsharp/Giraffe/blob/master/src/Giraffe/Json.fs#L36
I've added the same settings in the last commit to this PR which solves the issue (ref #26 ).
I tested the dropdown menu renders now.

@ademar okay awesome, ill merge this now, thanks for the great work! 🎉


Failed to establish a new connection

I get the following error message. Do you have any suggestion?
I am using ubuntu  22.04.2 LTS
Thank you!
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/mschulz/Verbify-TTS/command_read.py", line 43, in
r = requests.post(f'http://<IP_ADDRESS>:{config["server_port"]}/api', json=payload)
File "/home/mschulz/.local/lib/python3.10/site-packages/requests/api.py", line 115, in post
return request("post", url, data=data, json=json, **kwargs)
File "/home/mschulz/.local/lib/python3.10/site-packages/requests/api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
File "/home/mschulz/.local/lib/python3.10/site-packages/requests/sessions.py", line 587, in request
resp = self.send(prep, **send_kwargs)
File "/home/mschulz/.local/lib/python3.10/site-packages/requests/sessions.py", line 701, in send
r = adapter.send(request, **kwargs)
File "/home/mschulz/.local/lib/python3.10/site-packages/requests/adapters.py", line 565, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='<IP_ADDRESS>', port=5069): Max retries exceeded with url: /api (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fddf4c3b2b0>: Failed to establish a new connection: [Errno 111] Connection refused'))

Same issue.


Exception in RtlPlugin when  pattern matching mixin is used

with this code
.theme("black") {
}
.theme("black");

A Object reference exception occurs on this line...
https://github.com/dotless/dotless/blob/master/src/dotless.Core/Plugins/RtlPlugin.cs#L134
Not sure how that happens..

Must be a wrong line number.

Reproduced, it looks like we end up with a Rule node with the value "black" but no name -- so the argument of the mixin call gets parsed as a Rule. Not sure if that's what's supposed to happen. Anyway, the exception occurs when we call rule.Name.ToLowerInvariant(), because Name is null.

This is trivially fixed with a (rule.Name ?? "").TLI(); but I'm left wondering as to why the "black" gets parsed as a rule instead of, say, an Expression...

My mistake -- it's not the argument that gets parsed as a Rule, it's the formal parameter of the mixin definition.


[BUG] api v0 doesn't properly handle consecutive games

Current behavior and impact:
trying to play multiple games one after another doesn't work, because the game-state doesn't properly reset
Steps to reproduce:

Post code for playerA
Post code for playerB
game gets simulated, winner is decided
Post code for playerA again, this time for the second game
game gets instantly re-simulated with the old code from playerB still in place

Expected behavior:
The backend waits with starting the game until both players uploaded their code before starting the game and then properly resets the flags and code, as stated in the spec.
Acceptance Criteria:

[x] Code-storage and flags clear after running a game
[x] New testcases have been introduced, that catch thus bug in the future.
[x] The code is formatted properly.

Whats the difference between the two added test cases?


Remove inconsistent use of addons

This is the only place in all of the documentation where addon(s) is used
instead of addons. Even though with brackets it can be read as one or more
addons, it looks strange and inconsistent with the rest of the documentation.

NOTE: Please check the “Allow edits from maintainers” box below to allow
reviewers fix problems on your patch and speed up the review process.
Please delete this note before submitting the pull request.

This change is

I signed it!

I signed it!

ping to retrigger bot - maybe


OMERO.iviewer

Add OMERO.iviewer into OMERO.web basic operational requirement

Installed, requires testing

Added to helm chart and deployed into Dev environment.


community : allow using apikey for PubMedAPIWrapper

Description:

Without an API key, any site (IP address) posting more than 3 requests per second to the E-utilities will receive an error message. By including an API key, a site can post up to 10 requests per second by default.

quoted from A General Introduction to the E-utilities,NCBI : https://www.ncbi.nlm.nih.gov/books/NBK25497/
I have simply added a api_key parameter to the PubMedAPIWrapper that can be used to increase the number of requests per second from 3 to 10.
Twitter handle : @KORmaori

It seems that my pull request hasn’t been reviewed yet. As per the instructions, I’m reaching out to mention one of the maintainers for assistance.
@eyurtsev, would you be able to take a look when you have a chance? Thank you for your time!
Best regards,
Dohoon Park

something going on with vercel build will take a look later

thank you! let me know if I can help in any way.


Travis fork [test]

@mraible Tried different approach https://github.com/oktadeveloper/generator-jhipster-ionic/pull/109/commits/fdb1a687469af2ba4c363f90adcfd95581d3213b but also using TRAVIS_PULL_REQUEST_SLUG. I like yours better to be honest :). So reverting and if this works then I just rebase once more #109

FWIW, I'm currently testing this branch on a fork as well https://github.com/oktadeveloper/generator-jhipster-ionic/pull/110.

My approach did not work either :) So removed last commit from #109 and force pushed one last time.

Closing in favor of #110


Pygrok New API

From v1.0, Pygrok will make big performance enhancement and the API will change, probably new API looks like this:
from pygrok import Grok

pattern = 'load average: %{NUMBER:load_1:float}, %{NUMBER:load_2:float}, %{NUMBER:load_3:float}'

text = 'load average: 1.88, 1.73, 1.49'

grok = Grok(pattern)

m = grok.match(text)

This will output parsed data:
{'load_1': 1.88, 'load_2': 1.73, 'load_3': 1.49}

With precompiled regex pattern inside, you can invoke grok.match thousands of time without too much performance loss.This will address #3.

Pygrok is available in pip now.


Symfony 3 not supported because of security.context

Since Symfony 2.6, the security.context service has been deprecated and split into two new services: security.authorization_checker and security.token_storage.
And now with Symfony 3.0 the security.context service has been totally removed.
I'm using the BazingaHateoasBundle on a profesionnal Symfony 3 project and got stuck because of that.
There is currently a pull request #50 to solve this problem ;)

Thanks!

Do you know when a release will be made for this fix ?

done: https://github.com/willdurand/BazingaHateoasBundle/releases/tag/1.1.1.


Improve download experience by presenting more data reactively

It would be nice to give the user some idea of either size of download or length of time before they click.
Adding some indicator to the download button (Brandon Liu has some examples on his pmtiles site) of how much data will be downloaded is a bare-minimum. Folks should know if they're downloading a few KB vs. tens of megabytes worth of data.
If the data download is particularly long/large, perhaps we give them a stern pop-up warning stating that they're about to take a long time to download the data.

We don't have these APIs on the GeoParquet side yet, but that information exists from the header

The way that app.protomaps.com works: it uses a single web mercator raster PNG file that encodes the approximate number of OSM nodes in each pixel, and compares your selection against that:

So it is a very rough approximation, but it does not actually touch any of the data or servers.


fix indentation for Chain

It would appear that all of the actions that support add_to_chain add 2 extra spaces when beat logging.  The result of this makes for some awkward indentation in the final log.
Admin tries to move to and click on the direct-radio-button, eventually.
    Admin performs a thrilling chain of Actions!
          Move the mouse to the direct-radio-button!
          Click on the direct-radio-button!

When it should look like this:
Admin tries to move to and click on the direct-radio-button, eventually.
    Admin performs a thrilling chain of Actions!
        Move the mouse to the direct-radio-button!
        Click on the direct-radio-button!

At long last, this was fixed in #28!


feat: add LLVM C API bindings

This makes the following changes:

It adds a src/Lean/Compiler/IR/LLVMBindings.lean with the C API bindings required for the LLVM backend
It adds a stub src/Lean/Compiler/IR/EmitLLVM.cpp, to import LLVMBindings and setup the import structure
It adds src/library/compiler/llvm.cpp containing the wrappers around the LLVM C API.
It modifies the CMakeLists.txt to link against LLVM.

This PR is still a draft, since I suspect CI will fail on platforms without LLVM, so I need to get that fixed. Furthermore, the src/library/compiler/llvm.cpp needs some love; it's currently a bunch of copy-pasted code with debugging code thrown in.

I can not find src/Lean/Compiler/IR/EmitLLVM.cpp.

There are no auto-built ARM releases for lack of ARM runners, and LLVM cross-compilation being too crazy for me :) . The current releases are built manually by @gebner for Linux and me for macOS.

@bollu, this build went through: https://github.com/tobiasgrosser/lean4/pull/6

In particular, you need sth like:
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
  find_package(ZLIB REQUIRED)
  message("ZLIB_LIBRARY: ${ZLIB_LIBRARY}")
  cmake_path(GET ZLIB_LIBRARY PARENT_PATH ZLIB_LIBRARY_PARENT_PATH)
  string(APPEND LEAN_EXTRA_LINKER_FLAGS " -L ${ZLIB_LIBRARY_PARENT_PATH}")

  string(APPEND LEANC_STATIC_LINKER_FLAGS " -lleancpp -lInit -lLean -lleanrt ${LLVM_CONFIG_LDFLAGS} ${LLVM_CONFIG_LIBS}")

Btw, why did you give up using the LLVM cmake files instead of llvm-config?

Two reasons:

LLVM's CMake config assumes that the binary/library one is building is configured using CMake's targets. However, Lean's CMakeLists.txt does not seem to use targets to build things like leanc or libleanshared. I was unable to get the library and include commands right. I tried a fair bit, the history in this branch tells the story.

This is minor, but I LLVM's CMake config did not give me all LLVM components with llvm_map_libnames_to_components(all). I was forced to specify precisely the LLVM components I needed. It got tedious to figure out the precise collection of LLVM components I cared about by filtering from:

$ llvm-config --components
aarch64 aarch64asmparser aarch64codegen aarch64desc aarch64disassembler
aarch64info aarch64utils aggressiveinstcombine all all-targets amdgpu
amdgpuasmparser amdgpucodegen amdgpudesc amdgpudisassembler amdgpuinfo
amdgputargetmca amdgpuutils analysis arm armasmparser armcodegen armdesc
armdisassembler arminfo armutils asmparser asmprinter avr avrasmparser
avrcodegen avrdesc avrdisassembler avrinfo binaryformat bitreader
bitstreamreader bitwriter bpf bpfasmparser bpfcodegen bpfdesc bpfdisassembler
bpfinfo cfguard codegen core coroutines coverage debuginfocodeview
debuginfodwarf debuginfogsym debuginfomsf debuginfopdb demangle dlltooldriver
dwarflinker dwp engine executionengine extensions filecheck frontendopenacc
frontendopenmp fuzzmutate globalisel hexagon hexagonasmparser hexagoncodegen
hexagondesc hexagondisassembler hexagoninfo instcombine instrumentation
interfacestub interpreter ipo irreader jitlink lanai lanaiasmparser
lanaicodegen lanaidesc lanaidisassembler lanaiinfo libdriver lineeditor linker
lto mc mca mcdisassembler mcjit mcparser mips mipsasmparser mipscodegen
mipsdesc mipsdisassembler mipsinfo mirparser msp430 msp430asmparser
msp430codegen msp430desc msp430disassembler msp430info native nativecodegen
nvptx nvptxcodegen nvptxdesc nvptxinfo objcarcopts object objectyaml option
orcjit orcshared orctargetprocess passes perfjitevents powerpc powerpcasmparser
powerpccodegen powerpcdesc powerpcdisassembler powerpcinfo profiledata remarks
riscv riscvasmparser riscvcodegen riscvdesc riscvdisassembler riscvinfo
runtimedyld scalaropts selectiondag sparc sparcasmparser sparccodegen sparcdesc
sparcdisassembler sparcinfo support symbolize systemz systemzasmparser
systemzcodegen systemzdesc systemzdisassembler systemzinfo tablegen target
textapi transformutils ve veasmparser vecodegen vectorize vedesc vedisassembler
veinfo webassembly webassemblyasmparser webassemblycodegen webassemblydesc
webassemblydisassembler webassemblyinfo webassemblyutils windowsmanifest x86
x86asmparser x86codegen x86desc x86disassembler x86info x86targetmca xcore
xcorecodegen xcoredesc xcoredisassembler xcoreinfo xray

TL;DR: I knew I could make llvm-config work, and using LLVM's CMake config seemed to require invasive changes to Lean's CMake config, which I was reluctant to perform.

@Kha would you like me to run a full update-stage0, since I do change the src/stage0/CMakeLists.txt?
Running update-stage0 would make the diff much larger. Perhaps we should update stage0 as a chore commit after comitting this one?

since I do change the src/stage0/CMakeLists.txt

Why do we need that?

@Kha  I think you're right, now that we do not forward -DLLVM, -DLLVM_CONFIG to stage0, we don't need a bumped up stage0/src/CmakeLists.txt
I'm still unclear on the CMake option forwarding semantics. Is -DLLVM=ON when configuring cmake passed along to stage0? If so, doesn't the stale stage0/src/CMakeLists.txt do something very different with the option -DLLVM=ON? Thus, I would prefer to be lazy and bump up stage0 rather than having to carefully think through the interactions between the old and new build scripts.
However, AFAIU, since we no longer forward options to stage0, the point is moot.

@Kha I confess, I don't know the FFI well. If I understand the suggestion correctly, since we use raw pointers, we ought to cast the pointers to usize_t when crossing the FFI from C -> Lean, and cast back to the correct pointer type when crossing back from Lean -> C?
How do we encapsulate the fact that a type like Context is al alias for USize? Does opaque Context := USize do the trick?
I imagine that will work, and I'm happy to refactor it to be thus.

we ought to cast the pointers to usize_t when crossing the FFI from C -> Lean, and cast back to the correct pointer type when crossing back from Lean -> C?

Yes, that should do it.

Does opaque Context := USize do the trick?

No, that doesn't work currently.
opaque Context : Type := USize
set_option trace.compiler.ir.result true
def f : Context → Context := id

You can either use abbrev Context := USize or
structure Context where
  rawPtr : USize

They both have the same ABI representation.

This doesn't directly help with the arrays as we don't currently have unboxed USize arrays. It looks like these arrays are relatively small, but if you are concerned about the additional allocations, you should probably introduce a new abstract Lean type for them, though you would need to re-expose the necessary Array functions (see ByteArray).

@Kha I've updated the API to use (Ptr α) as a synonym for USize, and kept the opaque types (BasicBlock, Value, etc) around to index the α .

Ok. As I said above I'm not sure about the value added by Ptr, but it seems fine now.

@Kha , I've fixed the API, and the warts left over in CMakeLists.txt.

Done once again, I've made changes as requested by @Kha , @gebner .

@Kha , if we could merge this, I can make progress on https://github.com/leanprover/lean4/pull/1837, since there's code there I'd like to split across PRs, but the diffs would be too big without this one. I'd like to:

Split up the code that changes building libleanrt into a separate PR

Let's merge then!


BXC-3203 - Access surrogates support

https://jira.lib.unc.edu/browse/BXC-3203

Access surrogates provided to deposit pipeline will be copied to derivatives directory
BinaryMetadataProcessor will use the path and mimetype of the access surrogate if one is detected

Since there is nowhere to store it, the mimetype of the access surrogate is determined using tika

Renames access_copy to  access_surrogate in most places for clarity/consistency
access_surrogate datastream is implicitly indexed to solr, along with all other external datastreams.

@lfarrell If an access surrogate is present, this PR makes it so that surrogate will be used to produce the JP2 and thumbnails instead of the original_file datastream. Its very similar to how we produce thumbnails for collections. The access surrogate is never generated by box-c, it is supplied by users (currently only during cdm migrations). I renamed the datastream to ACCESS_SURROGATE to try to differentiate it from other access copies, since we've often referred to the JP2 as the access copy in the past.

Ah okay. Makes sense


io.UnsupportedOperation when using rez api with pytest

Hi,
I have the following issue when using rez API in my tests with pytest:
2020-10-08 09:27:59,859|setcontext|solve_util|l. 465| ERROR| Context couldn't be resolved.
Traceback (most recent call last):
  File "/app/package/int/setcontext/current/python/setcontext/solve_util.py", line 460, in _resolve
    resolved_context = ResolvedContext(package_list, **kwargs)
  File "/app/package/ext/rez/current/python/rez/resolved_context.py", line 208, in __init__
    for x in config.implicit_packages]
  File "/app/package/ext/rez/current/python/rez/utils/data_utils.py", line 191, in __get__
    result = self.func(instance)
  File "/app/package/ext/rez/current/python/rez/utils/data_utils.py", line 587, in getter
    return self._validate_key(key, attr, key_schema)
  File "/app/package/ext/rez/current/python/rez/config.py", line 614, in _validate_key
    return key_schema.validate(value)
  File "/app/package/ext/rez/current/python/rez/config.py", line 54, in validate
    data = expand_system_vars(data)
  File "/app/package/ext/rez/current/python/rez/config.py", line 783, in expand_system_vars
    return _expanded(data)
  File "/app/package/ext/rez/current/python/rez/config.py", line 778, in _expanded
    return [_expanded(x) for x in value]
  File "/app/package/ext/rez/current/python/rez/config.py", line 778, in <listcomp>
    return [_expanded(x) for x in value]
  File "/app/package/ext/rez/current/python/rez/config.py", line 776, in _expanded
    return scoped_format(value, system=system)
  File "/app/package/ext/rez/current/python/rez/utils/scope.py", line 262, in scoped_format
    return formatter.format(txt, pretty=pretty, expand=expand)
  File "/app/package/ext/rez/current/python/rez/utils/formatting.py", line 182, in format
    return formatter.format(s)
  File "/usr/local/lib/python3.7/string.py", line 186, in format
    return self.vformat(format_string, args, kwargs)
  File "/usr/local/lib/python3.7/string.py", line 190, in vformat
    result, _ = self._vformat(format_string, args, kwargs, used_args, 2)
  File "/usr/local/lib/python3.7/string.py", line 230, in _vformat
    obj, arg_used = self.get_field(field_name, args, kwargs)
  File "/app/package/ext/rez/current/python/rez/utils/formatting.py", line 117, in get_field
    return Formatter.get_field(self, field_name, args, kwargs)
  File "/usr/local/lib/python3.7/string.py", line 301, in get_field
    obj = getattr(obj, i)
  File "/app/package/ext/rez/current/python/rez/utils/data_utils.py", line 191, in __get__
    result = self.func(instance)
  File "/app/package/ext/rez/current/python/rez/system.py", line 52, in os
    r = platform_.os
  File "/app/package/ext/rez/current/python/rez/utils/data_utils.py", line 191, in __get__
    result = self.func(instance)
  File "/app/package/ext/rez/current/python/rez/utils/platform_mapped.py", line 31, in inner
    result = func(*args, **kwargs)
  File "/app/package/ext/rez/current/python/rez/utils/platform_.py", line 33, in os
    return self._os()
  File "/app/package/ext/rez/current/python/rez/utils/platform_.py", line 231, in _os
    stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True
  File "/app/package/ext/rez/current/python/rez/utils/execution.py", line 54, in __init__
    file_no = sys.stdin.fileno()
  File "/app/package/ext/pytest/6.0.2/0195e0b9d4f737afb12e188f1abf4b9e01abb774/python/_pytest/capture.py", line 228, in fileno
    raise UnsupportedOperation("redirected stdin is pseudofile, has no fileno()")
io.UnsupportedOperation: redirected stdin is pseudofile, has no fileno()

Rez version : 2.68.4
Platform and operating system: Linux CentOS 7.6.1810
Contextual information:

Create a file test_main.py with the following content:

#!/usr/bin/env python
# coding: utf-8
"""Test rez log."""
from rez.resolved_context import ResolvedContext

def test_rez_log():
    # You can use another package you have
    context = ResolvedContext(["python"])
    print(context)

test_rez_log()

Run the script with rez API in the environment (I have rez API as a rez package) :

rez env rez --  ./test_main.py

Here is my result:
solved(python ~platform==linux ~arch==64bit ~os==CentOS-7.6.1810 pyarmor_runtime ==> platform-linux[] arch-64bit[] os-CentOS-7.6.1810[] python-3.7-sps.1.1[0] pyarmor_runtime-0.3.0[0])

Now try to run it as a pytest test:

rez env pytest pytest -- python -m pytest ./test_main.py

You should see the error appear. I will propose a Pull Request about this.

fixed by https://github.com/nerdvegas/rez/pull/966


Add sidekiq and configure queue adapter

Closes: https://github.com/comarev/comarev/issues/67

References: /
What?

What this PR is changing in the code.
This Pr adds a queue adapter and sidekiq to the project.

Why?

Why we are performing these changes.
To be able to perform future jobs with a nice performance

How to test it?

Describe how can we test the new feature/fixed bug.

It's easier than I thought 🙌🏻
[Correctable] Bundler/OrderedGems: Gems should be sorted in an alphabetical order within their section of the Gemfile. Gem redis should appear before sidekiq.

@allcontributors add @ericaraujo13 for code and @ronaldoaraujo for review

@allcontributors add @ronaldoaraujo for review


Add support for new channel mention format

Discord added a new channel mention format for lurkable guilds, this new format contains the guild ID and the channel name.
Ref: https://github.com/discordapp/discord-api-docs/pull/1030

The format was completely dropped.


Importing dfgui throws error

When I try to import dfgui i get this Error:
File "C:\Python 3.6.2\lib\site-packages\dfgui\__init__.py", line 2, in <module>
from dfgui import show
ImportError: cannot import name 'show'

You are using Python 3, and I would assume that this is a Python 3 issue. Note that unfortunately wxpython does not support Python 3, and thus, dfgui cannot support Python 3 either (https://github.com/bluenote10/PandasDataFrameGUI/issues/4).

Oh thank you didnt know that


Removing a Duplicate Tract Function

In real world use, the Surgeo model wasn't giving any strong results even though the geocode and surname models seemed to be working fine.
There seems to be an inconsistency in two similarly named functions so this cleans that up and corrects the errors.

Hey, @kindofluke . Appreciate the heads up. I will take a look this weekend and see if we can merge.

Turns out the problem was in adjust_frame which is fixed in https://github.com/theonaunheim/surgeo/pull/17/commits/6827df8d865fef61c48619654a6855b1d4282cb4

Hey, @kindofluke . Thanks for the PR. Will:

Merge;
Increment version in documentation and release notes;
Repackage executable; and,
Push new version to PyPI.


CrashLoopBackOff error on the Weave Net

The Core DNS update is not working and the weave networking also seems not working.
vagrant@master-1:~$ kubectl get pods -n kube-system
NAME                       READY   STATUS              RESTARTS         AGE
coredns-6f4b4bd8fb-gkgpl   0/1     ContainerCreating   0                24h
coredns-6f4b4bd8fb-pf2jz   0/1     ContainerCreating   0                24h
weave-net-jhzs7            1/2     CrashLoopBackOff    144 (118s ago)   39h
weave-net-wxk9r            1/2     CrashLoopBackOff    143 (45s ago)    39h
vagrant@master-1:~$ kubectl logs weave-net-jhzs7 -n kube-system
Defaulted container "weave" out of: weave, weave-npc, weave-init (init)
FATA: 2023/07/05 05:09:36.639718 [kube-peers] Could not get peers: Get "https://<IP_ADDRESS>:443/api/v1/nodes": dial tcp <IP_ADDRESS>:443: i/o timeout
Failed to get peers

I have the same problem.
$ kubectl logs weave-net-gscrg -n kube-system
Defaulted container "weave" out of: weave, weave-npc, weave-init (init)
FATA: 2023/09/01 07:32:44.454828 [kube-peers] Could not get peers: Get "https://<IP_ADDRESS>:443/api/v1/nodes": dial tcp <IP_ADDRESS>:443: i/o timeout
Failed to get peers

Hello
@hashirph The instructions in this lab have not changed since it was last tested. You have most likely made an error in one of the previous steps - check what it says about that in this section https://github.com/mmumshad/kubernetes-the-hard-way#kubernetes-the-hard-way-on-virtualbox
@asdasdqqq Gald you got it to work on proxmox. It should work on any hypervisor, however the instructions here only detail how to configure a VirtualBox network. We couldn't really cover every possible hypervisor solution.


Inventory items names

I need help finding the real name of inventory items in each language

French,
1: "Poké ball",  --->  1: "Poké Ball",
1001: "Pokemon Storage Upgrade",  ---> Extension du stockage de pokémon
http://prntscr.com/bzlipq
1002: "Item Storage Upgrade" ---> Agrandir le sac   or   Extension du stockage des objets

Do you want to setup an ItemID -> Translation file?

Thanks @Oolaruu .
@Afraidium : it is here https://github.com/nicoschmitt/necrobotvisualizer/tree/master/app/assets/json

nico are you active in any discord channels?

yes as niico


Towards Word By Word Attention Model

I am implementing a word by word attention model as proposed in this paper. I had come up with 2 ways of implementing such a model.

The first method I though was to implement an unrolled version of the attention model. This unrolled version has multiple Dense layers that are actually supposed to have the same weigths, but fitting directly may result in different weigths. So I use a callback which, on every batch end, sets the weights of all these Dense layers, that are supposed to be constraint to have the same weights, to the average value of the learnt weights of these layers. (As suggested by @andychisholm in issue #362) This method has been working decently well for me and it takes about 1hr per epoch to train.

The second method I thought was to create a custom recurrent node, which extends the Recurrent class. I made this class by looking at the class definition for SimpleRNN node and LSTM node. I have included this code below. Since time was my only concern here and not memory, I wrote the code (to the best that i could think of) only for consume_less=='cpu', although i later also tried (again to the best that i could think of) for consume_less=='mem' and it did not really give me a time boost. I am running the code on a GPU. This node takes around 1 day per epoch to fit.

This is a very drastic difference in terms of time taken by the 2 methods, considering that both the methods are essentially performing the same thing, even though method 2 is what i understand to be the correct way to implement it. Any suggestions for improving the running time for method 2 or any comments on making method 1 work better are welcome.
attentionModel.txt
Gist for the above code.

can you provide a gist (gist.github.com) of the model?  newlines were slaughtered in that .txt
Also, can you be more specific about your first implementation?  I don't understand the weight tying you are referring to.
Basically, you want a soft attention calculation over the first sentence that gets recalculated for each step in the second sentence?  Also, the r_tp1 is the last soft attention, right?  Interesting they didn't make that more obvious by putting it into the model diagram..

also, if you're using theano, it has a profiling function.  It could help you understand why one model is so slow.  You just pass kwargs into the keras compile function:
theano_kwargs = {'profile':True}
model.compile(loss='categorical_crossentropy', optimizer=optimizer,
                           metrics=['accuracy'], **theano_kwargs)

Here is the gist for the attentionModel.py that I wrote. I didnt know about gists, thanks for introducing me to that.
So in my first implementation method, the weight tying i am referring to comes from equations (11), (12) and (13) from the paper. These equations form a sort of a recurrent layer with the weights W^r, w and W^t. (The weights W^y and W^h can be ignored as u can simply pass the input Y and H through TimeDistributedDense Layers to reach this result). Now when i implement this in Keras in an unrolled fashion, i define all the nodes M_1, M_2, ... M_N, alpha_1, alpha_2, ... alpha_N, r_1, r_2, .... r_N manually which results in there being a group of Dense layers that are all actually supposed to be W^r and a group that are all supposed to be w and a group that are all supposed to be W^t. So within such a group, I have to make all the Dense layers of equal weights.
You are correct in saying that we are calculating the soft attention over the first sentence looking at every word in the second sentence and we are doing this recursively so that the calculation of r_t involves r_{t-1}.

I AM using theano as the backend. Thanks for that tip. Will do check it out.

Hi @SourKream
I think I'm following your code. Let me see if I've deciphered the step function in your rnn:
Y_o = K.dot(self.Y, self.W_y)

h_o = K.dot(x, self.W_h).dimshuffle((0,'x',1))
h_o_repeated = K.repeat_elements(h_o, L, axis=1)

r_o = K.dot(r_tm1, self.U_r).dimshuffle((0,'x',1))
r_o_repeated = K.repeat_elements(r_o,L, axis=1)

M = K.tanh(Y_o + h_o_repeated + r_o_repeated)

alpha = K.dot(M, self.W)
alpha = K.softmax(alpha[:,:,0])
alpha = alpha.dimshuffle((0,'x',1))

rtm1_weighted = K.tanh(K.dot(r_tm1.dimshuffle((0,'x',1)), self.U_t))
Y_attended = T.batched_dot(alpha, self.Y)
output = (Y_attended+rmt1_weighted)[:,0,:]

return output, [output]

At every time step, you are calculating the output as the weighted combination of Y and the premise representation from the last timestep.   the input to the rnn is h_t (x above) and the last hidden rep.  you MLP align the input to M_t, softly attend it, then combine it with a learned weighting of the last rep.
Some things I am confused about (and I am ignoring the batch dimension in the following comments, but it doesn't change the functionality at all)

Why do you expand r_tm1 to 3dims right before you combine it with U_t?  r_t should be a vector and U_t should be a matrix.  The output of W^t * r_tp1 should be a vector as well

I've never really gotten great intuitions on batched dot.  Why is Y_attended a batched dot?  The way I would have done it is K.sum(K.expand_dims(alpha,axis=1) * self.Y), axis=-1)

By the way, here' s a gist of a soft attention implementation I made (anchored at where I calculated the attention scores).  I'm not sure if it's an issue for you, but zero values were an issue for me (masking and such).
https://gist.github.com/braingineer/27c6f26755794f6544d83dec2dd27bbb#file-softattention-py-L78

Hi, @SourKream , did you get the same accuracy in that paper using your first code? I mean the accuracy 82.3 %

Hey @braingineer
Yeah I think you have broken down the step function correctly. To answer you questions,
1. Why do you expand r_tm1 to 3dims right before you combine it with U_t? r_t should be a vector and U_t should be a matrix. The output of W^t * r_tp1 should be a vector as well

I do not expand r_tm1 to 3dims before combining it U_t, but I do so after I have combined it with U_t. This is because I want to repeat r_o, L times, along axis=1 so that it matches in dimension with Y_o when we take the sum for finding M (Same as we have done for h_o_repeated from h_o). Dot product of U_t and r_tm1 gives us a vector of dim (BatchSize, k) and we expand and repeat it to make it (BatchSize, L, k).

2. I've never really gotten great intuitions on batched dot. Why is Y_attended a batched dot? The way I would have done it is K.sum(K.expand_dims(alpha,axis=1) * self.Y), axis=-1)

The intuition of the batched dot is as follows. So for every sample in our batch, we have a different alpha vector, correct? which is (because we have expanded the dimension) of size (1, L). And then for every sample in our batch, we have a Y matrix which is of size (L, k). Now we want to iterate over all the samples in our batch and compute this alpha * Y product for each sample. That is given aplha (BatchSize, 1, L) and Y (BatchSize, L, k) we want to do,

for i in range(BatchSize):
    output[i,:,:] = alpha[i,:,:] * Y[i,:,:])

This is basically what K.batched_dot does.
I'll check out your soft attention model soon and get back to you on it.
I didnt get what you were saying about the Zero values issue. Since the inputs to my model were of varying sizes, I fixed the size of the input and padded all inputs with a "pad_tok" (which is separate from an "unk" token). I initialise the embedding layer for both these tokens to 0 and I think it learns their weights to differentiate between the two.

Hey @LiuAndYang

I am not getting the same accuracy as what is mentioned right now. The best accuracy I could get was around 77-78 %. I trying to figure out what is going wrong and tune the hyper parameters.

My entire code for this project is on github here. However as I am still working on it, it is pretty disorganised and not documented and I am not sure how much you will be able to make from it. Sorry about that. I can point you towards the particular file which contains the code for the first method (here). I have implemented the weight sharing using a callback over here.

I think the particular error you are referring to is because of a dimension miss-match in the weights you are assigning to a matrix. My best bet would be that you are assigning a (300,300) dimension matrix to the biases of the Dense Layer which are supposed to be a vector of size (300). The set_weights function for a  Dense layer takes a list of 2 elements as arguments. The first element is the weight matrix of size (k,k) and the second is the biases of size (k). I think you are passing it a list containing (k,k) and (k,k).


Update reference to renamed font style

Bug/issue #, if applicable: 110085109
Summary
Fixes a minor typography issue introduced with #40 where a font-style was renamed, but the place where it was used was not updated to use the new name.
Testing
Steps:

Run npm run serve and verify that no sass warning messages are emitted
Find example content with a captioned figure and verify that it now has the smaller font-size that it did previously

Checklist
Make sure you check off the following items. If they cannot be completed, provide a reason.

[ ] Added tests (CSS-only change)
[X] Ran npm test, and it succeeded
[X] Updated documentation if necessary

@swift-ci test


run ruff, mypy via pre-commit

switches formatter from black/flake8 to ruff
adds pyupgrade, isort checks (these account for ~all autoformat changes)

since this repo has mypy checks, adds mypy to pre-commit as well

Can i ask we stick to black for now? :D

Yeah, no problem. Should I add isort, pyupgrade separately, too?

yay, thank you @minrk :) I really appreciate your flexibility here.

@yuvipanda look okay, here?

ty!


Print image base address and CPU context in crash handler messages

Scope & Purpose
Print image base address and CPU context (if available) in crash handler messages.
Backport of https://github.com/arangodb/arangodb/pull/12686

[x] :hankey: Bugfix
[x] :pizza: New feature
[ ] :hammer: Refactoring
[x] :book: CHANGELOG entry made
[x] :muscle: The behavior in this PR was manually tested
[x] :computer: The behavior change can be verified via automatic tests

Backports:

[x] No backports required

Testing & Verification

[x] This change is already covered by existing tests, such as recovery.

http://<IP_ADDRESS>:8080/view/PR/job/arangodb-matrix-pr/12103/

http://<IP_ADDRESS>:8080/view/PR/job/arangodb-matrix-pr/12117/

Tests blue


[Refactor] Added support for OpenAI ChatCompletions

This PR adds support for OpenAI ChatCompletion requested by @baberabb in #737

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

This looks great, wondering if you can test this on any task of your choice?

@lintangsutawika Apologies for the late reply, I've fixed my code and but kept running out-of-storage when downloading the dataset for greedy_until. Can you please point me to a guide to run a test on low-resource?

This is great! Thanks for this! It failed to run though as it checks for duplicated aliases and you are re-using openai and gooseai.
After removing those I'm getting: openai.error.InvalidRequestError: '$.prompt' is invalid. Please check the API reference: https://platform.openai.com/docs/api-reference. Also seems there is no way to pass the async arg to the model?
You can always test it out with --limit to save API calls.

Thanks for the help, I've fixed the error.  I've removed the is_async arg, it was just a flag to reuse the same function but with async.

@DaveOkpare So have you run this end-to-end and confirmed it worked?


Change encrypted values to being stored as a binary blob

I think we might be storing encrypted values as base64 encoded text rather than just a binary blob. Let's use the right data types.

As far as I can tell we only use base64 for the keys, the encrypted values are serialised using bincode

You might have been mixed up by, as conor said, our use of base64 for storing the keys.
Alternatively you might have seen:
https://github.com/shotover/shotover-proxy/blob/5acb99307a7295fe0f2fb21ee20412971404f372/shotover/src/transforms/protect/crypto.rs#L41-L43
and gotten concerned due to the encrypted payload being stored as a hex encoded string.
Unfortunately that is just how the cassandra protocol specifies binary values for inserting.
When we read it out again from cassandra, it comes back as a binary blob.
Although thinking about it, we might be able to rewrite the query to store the binary value as a query parameter instead of inline in the query string.
Might be worth an experiment.

Since we are not actively working on the protect transform I'm closing this in favor of a single protect transform issue https://github.com/shotover/shotover-proxy/issues/676


Update conferences.yml, Add ICML 2025

Add ICML 2025

duplicate of #712; note that the deadline date is also wrong here


BackgroundBlendMode not working with Gradient if stacked on a VideoPlayerWidget on Android

Steps to reproduce

Container with gradient and blendMode properties in the BoxDecoration
Stacking this Container on a VideoPlayerView

Expected results
The GradientContainer should blend according to the given config.
Actual results
blendMode property is not working on android platform, but still works for iOS.
Code sample
Dartpad Code Sample
https://dartpad.dev/?id=c89a9037ababa70d6f9b6dc882201036

Screenshots or Video

Screenshots / Video demonstration
https://github.com/flutter/flutter/assets/57137427/a37874d5-1ccf-4281-806b-60f1990d0bb9
https://github.com/flutter/flutter/assets/57137427/ab899e87-df3b-4302-afa1-6e71c411695e
Flutter Doctor output
Doctor output
Logs N/A as tested on dartpad

Hi @cscipher
Which Android device are you checking on? (OS, model)
I checked this on my device Pixel 7, Android 14 but the gradient is rendered as expected (I'm also on Flutter stable 3.22.2)

Demo

Also, can you check what is your current video_player_android version? (the latest is video_player_android: ^2.5.0)

hey @huycozy , I tested it on Pixel 5A and it wasn't working as expected.
I'm also on latest Flutter version 3.22.2and video_player package

Can you confirm you checked video_player_android version from pubspec.lock file? What is OS version of your Pixel 5? (so I can check it from my end with emulators)


Got mentions for my POSSE'd copies

22 minutes ago on https://www.brid.gy/twitter/singpolyma for example see the mention on https://singpolyma.net/actionstream/they-took-our-myths-httpwww/

hey, sorry for the trouble, and thanks for the report! this is due to today's launch of #456 + #51. i'll look into it soon.

bridgy is sending mentions to original post from POSSE copies.
example: https://kartikprabhu.com/notes/philip-brooks-jr

this is hopefully fixed. @kartikprabhu let me know if it happens again!


Configurable handshake invalid texts

Make them translatable or Replace them with meaningful messages (I think)

I am not against configurable message, but I do not want more random setters in MinecraftServer

I am not against configurable message, but I do not want more random setters in MinecraftServer

@TheMode I've moved them back to HandshakePacket


Setting style via function in ol.Feature

According to OpenLayers, ol.Feature should support passing function to setStyle method:
https://openlayers.org/en/latest/apidoc/ol.Feature.html#setStyle
gwt-ol3, however, does not support it.
I'm not very fluent in JsInterop, but I suspect that has something to do with special treatment of keyword this inside that function. On the other hand, ol.Feature::setStyle supports the same ol.StyleFunction as ol.layer.Vector::setStyle that already works fine in current gwt-ol3.
Is there a straightforward way to support this feature? If so, I could try to make a patch, possibly with some guidance on JsInterop specifics.

I think there is a simple solution for this. I will soon make a commit. Would be nice if you could test this.

Done! https://github.com/TDesjardins/gwt-ol3/commit/ad766af7f129ccf24c2ff99c0eeef5939e3968ae
Could you test this?

Partially :)
Functions gets called, but parameters are not right. Looks like OL is passing two parameters to style function (feature and resolution), but my style function gets only second one - resolution, which is only a number, not an feature object (that I need).
Two parameters are indeed in documentation:
https://openlayers.org/en/latest/apidoc/ol.html#.StyleFunction
I verified invocation (ol-debug.js, v4.2.0, around line 61894):
var styles;
var styleFunction = feature.getStyleFunction();
if (styleFunction) {
  styles = styleFunction.call(feature, resolution);  // <-- HERE
} else {
  styleFunction = vectorLayer.getStyleFunction();
  if (styleFunction) {
    styles = styleFunction(feature, resolution);
  }
}

I forgot my Java code:
ol.Feature feature = new ol.format.Wkt().readFeature(backing.getWkt(), wktReadOptions);
feature.setId(backing.getId().toString());
feature.setStyle(object -> getStyle(object));

and style function:
private ol.style.Style[] getStyle(ol.Feature feature) {
   feature.get();   // results in TypeError: feature_0_g$.getId is not a function (indeed it isn't, 'feature' is a number as seen in DevTools)
}

I've tried defining specialized StyleFunction for usage it in Feature::setStyle:
@JsFunction
public interface StyleFunction<R> {
	R call(Feature feature, double resolution);
}

but unfortunately, it still does not work: first parameter is still a number (resolution) and second one is undefined.

Yes, I can reproduce this. Actually that should work but it doesn't. That's weird. The StyleFunction has two params but the implementation should also work with one parameter.
Seems that the problem is a result of jsinterop internals in combination with ol implementation. The function createStyleFunction checks the number of parameters of the StyleFunction (see https://github.com/openlayers/openlayers/blob/master/src/ol/feature.js#L294). The StyleFunction should usually have two parameters. JsInterop wraps the implementation of your functional interface function, which has two params, in another function which has no params. Therfore the correct function will not be called. If I remove the check it works like expected.
Nevertheless it should work if check fails because the method was directly assigned (see https://github.com/openlayers/openlayers/blob/master/src/ol/feature.js#L299). But only the resolution parameter is considered. Strange!
But apart from that I think you don't need any parameter at all because the StyleFunction is a closure and because of that you can access the feature and the resolution from surrounded context.

Maybe we should only include the resolution param. So we could bypass the type errors. The users could access the feature by closure.

I changed the style function to work with resolution only for now to bypass the class cast issue. I am leaving this issue open because maybe this is a JsInterop bug.

@gkresic The style function has now two params and should work as expected.


Add mirror module

Adds the Mirror module so you can begin working with that instead. Ask me if you need help with any of the changes I made.

I originally wanted this to be a standalone mod.... hence why I dont use CTM. Even if I'm not going to use all of it... is that a valid reason to depend on another mod? :/

I mean sure it is, and you do have a lot of code in common with Mirror. The big point with the project was to remove duplicate code that spanned multiple projects. I don't see how depending on another mod is such a bad thing. It leaves more time coding the cool content, and less time worrying about all the extra cruft (which if there is a bug, it will be fixed in all places much quicker).
Also, the only real thing you don't use from this would be the shaders and VBO stuff.

Hmpf, I see

Oh yeah, I changed how the baked models work, in case you want to move that over to mirror

Im still not convinced tho :<

Oh, can I apply a simple alpha color shader to do the same effect as what I do here, using your shader system? @Katrix-
https://github.com/ArekkuusuJerii/Solar/blob/master/src/main/java/arekkuusu/solar/client/util/helper/RenderHelper.java#L165-L175

Should be possible. Mirror currently provides it's own ShaderManager. It's still not the best to use from Java, but I'll look into fixing that. You have two options when working with programs here. Either you can just get a linked program and handle updating and destroying it yourself, (done by calling createProgram), or you can instruct the ShaderManager of how to compile the shader by calling initProgram. You then later get the shader by calling getProgram.
If you instead want something similar to minecraft shaders, Mirror also has a simple wrapper around those in ShaderHelper
I still haven't written much documentation there, so ask if there is anything you're unsure about. Also, don't be afraid to bring it to the Discord.

Niceee I like it. Thanks Kat.


Remove non-existent file import in example/main.js

Prevents example from running locally.

You beat me to it. i don't know how the example is compiling locally for me with this in place.


Use preferredLanguage in R.string

Currently, the generated code uses the NSLocale.currentLocale() in formatted strings, which is the locale the users device is set to.
However, an app can override this to a different preferred language, e.g. by setting AppleLanguage or AppleLocale in the user defaults.
This preferred language is used by NSLocalizedString, but it doesn't change currentLocale.

This example demonstrates the problem:
// nl.proj/Localizable.strings
"someKey" = "Dutch: %.1f"

// en.proj/Localizable.strings
"someKey" = "English: %.1f"

Generated Swift code:
static func someKey(_: Void) -> String {
  return String(format: NSLocalizedString("someKey", comment: ""), locale: NSLocale.currentLocale(), 1234.5)
}

On a Dutch device, with AppleLanguages set to ["en"], we see a mix of Dutch and English decimal marks. Instead of everything in English.
Expected: "English: 1,234.5" (English string and English decimal mark)
Result: "English: 1.234,5" (English string and Dutch decimal mark)

@tomlokhorst Do you know how other library/tools or even a normal app project work with this? We just generate code in the app so a normal app should have the same problems right?

I'm unsure what the best practices are for doing this. I'll look into it some more.

Found this StackOverflow answer: http://stackoverflow.com/a/21937800/586489 Seems preferredLocalizations does respect the environment variables you describe and takes into account the languages the app supports.
Note that preferredLanguages is not what is app is running in, but preferredLocalizations is according to this blog: http://mjtsai.com/blog/2014/12/09/nslocale-preferredlanguages-vs-nsbundle-preferredlocalizations/
This blog also seems interesting with a lot of information: http://maniak-dobrii.com/understanding-ios-internationalization/

Objc.io also has a clear and interesting take on this: https://www.objc.io/issues/9-strings/string-localization/#choosing-the-right-locale

Ultimately it comes down to your judgment of what makes the most sense for a specific use case, but you might want the app’s interface to be localized consistently in some cases. In order to retrieve the locale your app is currently using instead of the user’s systemwide locale, we have to ask the main bundle for its preferred language:

NSString *localization = [NSBundle mainBundle].preferredLocalizations.firstObject;
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:localization];

Conclusion:
If we want to be consistent with the language the app is running in we should use preferredLocalizations from the bundle. If we want to be consistent with the operation system itself we should use currentLocale from NSLocale. I seems to me that in R.swift we want to use preferredLocalizations, so we should change to that I think.

Hi @mac-cain13, thanks again for the great library!
I normally prefer to use the Locale.currentas it makes sure numbers are formatted like the user is used to (and prefers). In an app I'm working on right now I have a couple of localized strings with Int parameters. As the development language of my app is set to 'en' (which is correct), I now get commas as thousands-separator. My own phone is set to en_NL and I prefer to have a period as the separator.
Of course I understand the request in this thread, so would it be possible to add a (command line) config parameter to set the preferred order of the locales?
fileprivate static let applicationLocale = hostingBundle.preferredLocalizations.first.flatMap(Locale.init) ?? Locale.current

@rbresjer There's an open issue for choosing a specific locale for localised strings: https://github.com/mac-cain13/R.swift/issues/219
Does that cover your use case?

@tomlokhorst Thanks for your reply. Not entirely, because I'd like to have the rest of the string in the auto-detected locale.. But my current workaround works good enough.


SWARM-1284: Create a datasource example to demonstrate auto-detect

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

ok to test

retest this please

@bobmcwhirter, seems JAXRS example build failed
[1] https://ci.wildfly-swarm.io/job/wildfly-swarm-examples-uberjar-pull-request-linux/39/org.wildfly.swarm.examples$example-jaxrs-war/


Tabulate fm list output

fm list output is not proper sometimes it show sites in horizontal and sometime vertical.
Revamp the fm list output layout in table form.

Implemented in #91.


Initial commit of safe url resolver

This PR adds a new module to the swagger parser repo: swagger-parser-safe-url-resolver
What is it?
The main class of the package is the PermittedUrlsChecker which has one method: verify(String url).
This method takes in a string URL and performs the following steps:

Gets the hostname portion from the URL
Resolves the hostname to an IP address
Checks if that IP address is in a private/restricted IP address range (and throws an exception if it is)
Returns a ResolvedUrl object which contains
4.1. A String url where the original URL has the hostname replaced with the IP address
4.2. A String hostHeader which contains the hostname from the original URL to be added as a host header

This behavior can also be customized with the allowlist and denylist in the constructor, whereby:

An entry in the allowlist will allow the URL to pass even if it resolves to a private/restricted IP address
An entry in the denylist will throw an exception even when the URL resolves to a public IP address

Why is it needed?
This lib can be used in services that deal with user-submitted URLs that get fetched (like in swagger-parser resolving external URL $refs) to protect against Server-Side Request Forgery and DNS rebinding attacks
Example usage
List<String> allowlist = List.of("mysite.local");
List<String> denylist = List.of("*.example.com:443");
var checker = new PermittedUrlsChecker(allowlist, denylist);

// Will throw a HostDeniedException as `localhost` resolves to local IP and is not in allowlist
checker.verify("http://localhost/example");

// Will return a ResolvedUrl if `github.com` resolves to a public IP
checker.verify("https://github.com/swagger-api/swagger-parser");

// Will throw a HostDeniedException as `*.example.com` is explicitly deny listed, even if it resolves to public IP
checker.verify("https://subdomain.example.com/somepage");

// Will return a `ResolvedUrl` as `mysite.local` is explicity allowlisted
checker.verify("http://mysite.local/example");

Great stuff. LGTM at least. Will there be another PR to enable swagger-parser to be configured to use it?

Great stuff. LGTM at least. Will there be another PR to enable swagger-parser to be configured to use it?

Yes indeed, separate tickets created for parser and codegen implementations that will pull this lib in


Workaround/fix for Chromium issue #41007340

OS/Platform
Arch Linux
Installed
https://ungoogled-software.github.io/ungoogled-chromium-binaries/
Version
123.0.6312.105
Have you tested that this is not an upstream issue or an issue with your configuration?

[ ] I have tried reproducing this issue in Chrome and it could not be reproduced there
[ ] I have tried reproducing this issue in vanilla Chromium and it could not be reproduced there
[ ] I have tried reproducing this issue in ungoogled-chromium with a new and empty profile using --user-data-dir command line argument and it could not be reproduced there

Description
navigator.onLine returns true when VMware network adapters exist
How to Reproduce?

Launch some VM software (e.g. Oracle VM, waydroid, anbox, etc.)
Read navigator.onLine in console
See navigator.onLine gives false positives

Actual behaviour
navigator.onLine returns false positives
Expected behaviour
navigator.onLine returns the correct online status of the system, even when VM software is running.
Since there is no work going on in the Chromium repository to fix this issue (https://issues.chromium.org/issues/41007340), is it possible to implement some workaround or fix inside ungoogled-chromium?
Relevant log output
No response
Additional context
Chromium issue: https://issues.chromium.org/issues/41007340

I doubt we could and should fix this particular issue if Chromium developers are not very eager in fixing it.
I'll leave it open for some time just to gather more opinions.


pywwt/jupyter.py: add support for the JupyterLab application

Overview
Prototype-quality support for connecting pywwt to the freestanding WWT JupyterLab application, as opposed to individual "widgets" associated with specific notebooks.
In order to be able to share image data with this application, we need to make sure to set CORS data-sharing headers for the files that we serve up.

Checklist

[ ] Changed code has some test coverage (or justify why not)
[ ] Changes in functionality documented (or justify why not)

Docs and tests coming, but I want to make a release with the initial support to test out how everything hangs together in production.

CI failed spuriously. Reran in a new job (since our failing jobs uploaded their image debugging artifacts, meaning that subsequent runs would always fail with redundant artifacts) and it's all green.


Add kms_master_key_id to alarm baseline and config-baseline module

Building onto of the great work by @mknapcok in PR #182. As mentioned in the other PR, I think this is as far as we can go till multi-region kms is supported.
Not sure where you'd like the example on how to use this addition
resource "aws_kms_key" "integrations" {
  description = "Operations: Default KMS key for SNS, SQS"
  deletion_window_in_days = 30
  enable_key_rotation = "true"

  policy = data.aws_iam_policy_document.kms-integrations.json
}

data "aws_iam_policy_document" "kms-integrations" {
  policy_id = "Operations: Default KMS key for SNS, SQS"

  statement {
    sid = "ChangePolicyAccess"

    principals {
      type = "AWS"
      identifiers = [
        "arn:aws:iam::${data.aws_caller_identity.current.account_id}:root"
      ]
    }
    actions = [
      "kms:*"]
    resources = [
      "*"]
  }

  statement {
    # https://docs.aws.amazon.com/sns/latest/dg/sns-key-management.html#sns-what-permissions-for-sse
    sid = "AllowAWSServices"

    principals {
      type = "Service"
      identifiers = [
        "cloudwatch.amazonaws.com",
        "config.amazonaws.com",
      ]
    }
    actions = [
      "kms:GenerateDataKey*",
      "kms:Decrypt"
    ]
    resources = [
      "*"]
  }
}

Closes #163

fwiw, kms encryption support for config was just merged yesterday. should be available in the release this coming thursday!

https://github.com/hashicorp/terraform-provider-aws/pull/20800

@willfarrell Thank you, this looks a good intermediary approach until the multi-region key is supported in the upstream.
Let's merge this for now and come back here later when the upstream issue gets resolved!

Sounds good

@nozaq Could you create the next version 0.29.0 with those changes?

@pperzyna Just published v0.29.0 👍🏼

@nozaq This was a breaking change, right? Just want to ensure that it's expected now always set sns_topic_kms_master_key_id variable.

@KnupMan Thanks for the heads up. It didn't break anything in my environment during my test, but let me check again.

@KnupMan Ah, you're right. sns_topic_kms_master_key_id should have a default value of null to be kept as optional. I'm gonna create a PR to fix it.

The fix has been merged and published as v0.29.1.
Thanks @KnupMan for finding it out!


[FLINK-14997] Avoid to call unnecessary delete within RocksDBState's mergeNamespaces implementation

What is the purpose of the change
This helps to improve the performance after FLINK-7700 resolved.
Brief change log
Changes to RocksDBAggregatingState.java, RocksDBListState.java and RocksDBReducingState.java which have the mergeNamespaces method.
Verifying this change
This change is already covered by existing tests.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? not applicable

@flinkbot approve all

Looks good to me, thanks for that patch!
Merging this...


ci: remove travis from all the repos

We once used travis to test arm64 and s390x architecture. However, it has been three years since any build happened because they moved to a billing model and didn't reclassify us as open source (same happened with docker hub iirc). Rather than pretend we are testing, we should remove all traces of travis. That arm64 isn't currently tested anywhere is a half-truth nowadays because Mac silicon ad-hoc covers that. in any case, alternatives including emulation could be setup independently through GHA as I have seen done in other projects including ones I maintain.
https://app.travis-ci.com/github/openzipkin/zipkin

done and also removed github integration


follow up #19 refacto

Signed-off-by: Fahed DORGAA<EMAIL_ADDRESS>
Description of your changes

Fixes #
1- add Configuration field to ProviderConfigSpec  :  to manage the necessary dependencies to run playbook ( In futur PR)
2- fix comments and typo
3 - fixing CI
I have:

[x] Read and followed Crossplane's contribution process.
[x] Run make reviewable to ensure this PR is ready for review.
[ ] Added backport release-x.y labels to auto-backport this PR if necessary.

How has this code been tested

/lgtm


Command(Bank): Add support for passing multiple item names, runelite bank tags

Description:

Add support for passing multiple item names, for example: +bank Shark, Tuna, Bass. You can also pass item IDs, runelite bank tags work too. getOSItem was modified to handle strings more intelligently. It will try to turn the string into a number, if it works it works, if it doesnt then we consider it an item name.

Changes:

List of changes here

[X] I have tested all my changes thoroughly.

Closes #436


Re-enable servant-ruby and wai-middleware-rollbar

Re #3043.
Will nudge this along through CI until it passes.

Thanks!


Update documentation to reflect new copyright approach

The new copyright approach includes using "Copyright  Debezium Authors" and reference to license in the header files and in the README.md file. The copyright year for each file is selected when the file is created, but then is not updated again.

@rhauch actually, I don't think you even need the year in the copyright notice. I had a few discussions with @richardfontana on the subject for Hibernate and the idea is that it's better not to put a date (which is best captured in Git anyways) rather than having obsolete or meaningless dates.
You can check out what we did for Hibernate Validator (ASL 2.0) https://github.com/hibernate/hibernate-validator/blob/master/engine/src/main/java/org/hibernate/validator/HibernateValidator.java#L1

@emmanuelbernard: I agree that not having a copyright statement in files is one approach Richard mentions. The other approach is adding a copyright w/ year of creation per file, but leaving the date unchanged over time.
I slightly prefer the per file for one reason: our use of the Apache License requires anybody that wants to derive works (e.g., fork/copy the file) is required to keep all copyright and attribute notices, and that's more straightforward if each file has a header includes the copyright assignment statement.

Superseded by #3.


Create/document recommendation for file io best practices

We currently have a mix of some functions using ioutil.ReadFile and others using a scanner to read line by line.  Given that some files in procfs change frequently and are not guaranteed to be consistent between successive reads (https://stackoverflow.com/questions/5713451/is-it-safe-to-parse-a-proc-file), should we favor reading a full files and then parsing the data afterwards instead of using a scanner to read line-by-line?

None of the files we read are extremely large. Deprecating scanner and moving to single read calls seems like the best option to me.

Makes sense!

Closing this, since I think there is nothing else to do for now.


Google Summer of Code (GSoC)

During MRITogether I realized that Google has some funding opportunities for open source projects. I think it is a good idea to apply.

[ ] Google Summer of Code
[ ] Google Season of Docs (GSoD)
[ ] NumFOCUS Small Development Grants

Julia has done projects there. We should investigate https://julialang.org/jsoc/.

This was implemented in:

https://github.com/JuliaLang/www.julialang.org/pull/2020


NO-JIRA: e2e: skip ValidKubeVirtInfraNetworkMTU condition check on 4.14 and ea…

4.14 kubevirt presubs are failing with
eventually.go:220: observed *v1beta1.HostedCluster e2e-clusters-qlpcv/example-5sdbz invalid at RV 90020 after 10m0s: missing condition: wanted ValidKubeVirtInfraNetworkMTU=True, did not find condition of this type

This condition was added in 4.15 and shouldn't be checked on earlier releases.

/lgtm


Using this CPP SDK Wrapper

Hi folks,
I talked with the livekit devs as I have a serious use case for ingesting raw frames from CPP into livekit. I'd like to support and test this project, as well as the branch currently in development for raw frames.
How is this library going and what kind of issues are left to solve? Should I run it in my environment and report back how it performs?

hi @robertzsun-dev, I am currently working on implementing the raw frame ingestion as we also in strong demand of the c++ SDK. I am trying to get a simple example worked in my branch. The video stream is not working yet, but we are working on fixing it. I'll keep you posted

Awesome! Is there anything I can do to help?

@robertzsun-dev, I think we are open for any contribution. I will prioritize what we need, mainly for the ability of joining a room, publishing custom local video track and maybe some simple API wrap. So, if you have any feature you need that we don't plan to cover, feel free to add. @theomonnom shows some great examples in the python sdk, so we can follow along easily.

@robertzsun-dev Just an update, the example is working and we have a PR ready and wait for merging


[P2] old glibc produces the error msg: /src/shared/sol-util.c:49:1: error: unknown type name 'locale_t' at compilation time

Compiler error impedes build soletta for Galileo board.
Steps to reproduce the issue:

The procedure followed is the described in the wiki to compile soletta for Galileo plattform:https://github.com/solettaproject/soletta/wiki/Galileo-and-Galileo-Gen2-Instructions).

Below is error returned by make:
./src/shared/sol-util.c:49:1: error: unknown type name 'locale_t
./src/shared/sol-util.c:63:26: error: 'LC_ALL_MASK' undeclared (first use in this function)
The complete output is in the next link: http://pastebin.com/ZrueV2Nm
Thank you.

Fixed in tag 1beta_6.