Parallel edges and curved arrows

Hi, may I ask if it's possible to have curved arrows and parallel edges in @react-sigma? As far as I have tried out the library, it appears that having multiple edges between two nodes will result in a white screen with an error message prompting that two nodes can only have one edge. For my use case, it would be of great importance, especially with curved arrows for presenting multiple edges between two nodes in a well-readable way.
@dunnock/react-sigma has support for it, though I reckon that adding these features would significantly facilitate the use of Sigma in React.

For the error you've got, I assume it comes from your graphology instance.
When you create a graph with graphology you have to specify :

allowSelfLoops [boolean] true: should the graph allow self-loops?
multi [boolean] false: Should the graph allow parallel edges?
type [string] “mixed”: Type of the graph. One of directed, undirected or mixed.

As you can see, per default multi is false.
In react-sigma, the property graph of the component SigmaContainer is either a graphology instance, or a graph constructor :
https://sim51.github.io/react-sigma/docs/api/core/interfaces/SigmaContainerProps#graph
Perhaps I should add an example for that..
For curved edges, for now it doesn't exist in Sigma v2.

Ahhh I see... I wasn't aware of the options available in graphology so thanks for pointing it out for me! I have been trying to add parallel edges purely in Node.js which seems to work fine after setting multi to true. The same applies to my React app until I'm trying to load the graph via the useLoadGraph hook which seems to force graphology to throw an error stating that I have to set multi to true which has already been done in this instance. Nonetheless, graphology works with parallel edges by commenting out the hook, though it does not render the graph on Sigma in return. 🤔
Here is the error (multi is true):
Uncaught (in promise) UsageGraphError: Graph.addDirectedEdgeWithKey: an edge linking "http://www.asdf.com/graph#Diagram-35b0e713-1b2c-4ef7-bcc9-f698823d515b" to "http://www.asdf.com/graph#Package-fe00adf1-7630-420a-b1e0-4b8cd336b815" already exists. If you really want to add multiple edges linking those nodes, you should create a multi graph by using the 'multi' option.
    at Ct (graphology.umd.min.js:1:1)
    at r.t.generateKey.Wt.<computed> [as addDirectedEdgeWithKey] (graphology.umd.min.js:1:1)
    at graphology.umd.min.js:1:1
    at dt (graphology.umd.min.js:1:1)
    at r.t.<computed> [as forEachEdge] (graphology.umd.min.js:1:1)
    at r.i.import (graphology.umd.min.js:1:1)
    at useLoadGraph.ts:22:1
    at GraphCanvas.tsx:40:1

Can you create an example on codesandbox that reproduce your issue ?

Unfortunately I am unable to access codesandbox due to corporate firewall, though what I can do is sharing the four files underneath that have been anonymised at the very least. I hope that is okay for you?
Major dependencies from package.json
"react": "^17.0.2"
"react-dom": "^17.0.2"
"react-scripts": "5.0.0"
"@react-sigma/core": "^2.0.2"
"graphology": "^0.24.1"
"sigma": "^2.2.0"

GraphContainer.tsx
import {
  ControlsContainer,
  FullScreenControl,
  SigmaContainer,
  ZoomControl,
} from '@react-sigma/core'

import { BiRadioCircleMarked } from 'react-icons/bi'
import {
  BsArrowsFullscreen,
  BsFullscreenExit,
  BsZoomIn,
  BsZoomOut,
} from 'react-icons/bs'
import { GraphContainerParams } from '../types/components'
import { defaultGraphConfig } from '../utils/sigma'
import { GraphCanvas } from './GraphCanvas'

export const GraphContainer = ({
  containerHeight,
}: GraphContainerParams) => (
  <SigmaContainer
    style={{ height: containerHeight }}
    initialSettings={defaultGraphConfig}
  >
    <GraphCanvas />
    <ControlsContainer>
      <FullScreenControl>
        <BsArrowsFullscreen />
        <BsFullscreenExit />
      </FullScreenControl>
      <ZoomControl>
        <BsZoomIn />
        <BsZoomOut />
        <BiRadioCircleMarked />
      </ZoomControl>
    </ControlsContainer>
  </SigmaContainer>
)

GraphCanvas.tsx
import { useLoadGraph, useRegisterEvents, useSigma } from '@react-sigma/core'
import React, { useEffect, useState } from 'react'
import { dataset } from '../data/graphData'

import {
  forceAtlas2Layout,
  getGraphContext,
  loadNodesAndEdgesToGraph,
  shiftNodeCoordinates,
} from '../utils/sigma'

export const GraphCanvas: React.FC<> = () => {
  const graph = getGraphContext()
  const sigma = useSigma()

  const registerEvents = useRegisterEvents()
  const loadGraph = useLoadGraph()

  const [prevNode, setPrevNode] = useState<string>(null)

  let draggedNode: string | null = null

  useEffect(() => {
    const { nodes, edges } = dataset

    loadNodesAndEdgesToGraph(nodes, edges)
    forceAtlas2Layout()
    loadGraph(graph)
  }, [loadGraph])

  useEffect(() => {
    registerEvents({
      downNode: (event) => {
        draggedNode = event.node
        graph.setNodeAttribute(draggedNode, 'highlighted', true)
        sigma.getCamera().disable()
      },
      mousemove: (event) => {
        if (draggedNode) {
          shiftNodeCoordinates(event, sigma, draggedNode)
          loadGraph(graph)
        }
      },
      mouseup: () => {
        if (draggedNode) {
          graph.removeNodeAttribute(draggedNode, 'highlighted')
        }

        draggedNode = null
        sigma.getCamera().enable()
      },
    })
  }, [loadGraph, registerEvents])

  return null
}

sigma.ts
import Graph from 'graphology'
import Sigma from 'sigma'
import { Settings } from 'sigma/settings'
import { MouseCoords } from 'sigma/types'
import { SigmaInputNode, SigmaInputEdge } from '../types/graph'
import { Colour } from './enum'

const graphContext = new Graph({
  multi: true,
})

export const getGraphContext = () => graphContext

export const defaultGraphConfig: Partial<Settings> = {
  renderEdgeLabels: true,
  defaultEdgeColor: Colour.Gray,
  defaultEdgeType: 'arrow',
  labelWeight: 'bold',
  edgeLabelWeight: 'bold',
  edgeLabelColor: { color: Colour.Black },
  edgeLabelSize: 10,
  labelSize: 12,
  defaultNodeColor: Colour.Yellow,
}

export const allocateNodeOnCanvas = (nodeId: string, nodeNumber: number) => {
  const graph = getGraphContext()

  const angle = (nodeNumber * 2 * Math.PI) / graph.order
  graph.setNodeAttribute(nodeId, 'x', 100 * Math.cos(angle))
  graph.setNodeAttribute(nodeId, 'y', 100 * Math.sin(angle))
}

export const loadNodesAndEdgesToGraph = (
  nodes: SigmaInputNode[],
  edges: SigmaInputEdge[]
) => {
  const graph = getGraphContext()

  graph.clear()

  nodes.forEach(({ id, ...rest }) => graph.addNode(id, rest))
  edges.forEach(({ src, dst, ...rest }) => {
    if (!dst.includes('#Model-')) {
      graph.addEdge(src, dst, rest)
    }
  })

  graph.nodes().forEach((nodeId: string, nodeNumber: number) => {
    allocateNodeOnCanvas(nodeId, nodeNumber)
  })
}

export const shiftNodeCoordinates = (
  event: MouseCoords,
  sigma: Sigma,
  draggedNode: string
) => {
  const graph = getGraphContext()

  const { x, y } = sigma.viewportToGraph(event)

  graph.setNodeAttribute(draggedNode, 'x', x)
  graph.setNodeAttribute(draggedNode, 'y', y)
}

graphData.ts
export const dataset = {
  nodes: [
    {
      id: 'http://www.asdf.com/graph#Bank',
      size: 10,
      label: 'Bank',

      properties: [
        {
          name: 'name',
          datatype: 'Literal',
        },
        {
          name: 'established in',
          datatype: 'Literal',
        },
        {
          name: 'valuation',
          datatype: 'Literal',
        },
        {
          name: 'currency',
          datatype: 'Literal',
        },
      ],
    },
    {
      id: 'http://www.asdf.com/graph#Account',
      size: 10,
      label: 'Account',

      properties: [
        {
          name: 'balance',
          datatype: 'Literal',
        },
        {
          name: 'overdraft',
          datatype: 'Literal',
        },
        {
          name: 'credit',
          datatype: 'Literal',
        },
        {
          name: 'type',
          datatype: 'Literal',
        },
      ],
    },
    {
      id: 'http://www.asdf.com/graph#Customer',
      size: 10,
      label: 'Customer',

      properties: [
        {
          name: 'name',
          datatype: 'Literal',
        },
        {
          name: 'dob',
          datatype: 'Literal',
        },
      ],
    },
    {
      id: 'http://www.asdf.com/graph#Card',
      size: 10,
      label: 'Card',

      properties: [
        {
          name: 'name',
          datatype: 'Literal',
        },
        {
          name: 'mmyy',
          datatype: 'Literal',
        },
        {
          name: 'cvv',
          datatype: 'Literal',
        },
        {
          name: 'number',
          datatype: 'Literal',
        },
      ],
    },
    {
      id: 'http://www.asdf.com/graph#HUV',
      size: 10,
      label: 'HUV',
    },
    {
      id: 'http://www.asdf.com/graph#PowerSubsystem',
      size: 10,
      label: 'PowerSubsystem',
    },
    {
      id: 'http://www.asdf.com/graph#BrakeSubsystem',
      size: 10,
      label: 'BrakeSubsystem',
    },
    {
      id: 'http://www.asdf.com/graph#BrakeDisk',
      size: 10,
      label: 'BrakeDisk',
    },
    {
      id: 'http://www.asdf.com/graph#BrakePedal',
      size: 10,
      label: 'BrakePedal',
    },
  ],
  edges: [
    {
      src: 'http://www.asdf.com/graph#Account',
      dst: 'http://www.asdf.com/graph#Bank',
      label: 'managed by',
      size: 4,
    },
    {
      src: 'http://www.asdf.com/graph#Card',
      dst: 'http://www.asdf.com/graph#Bank',
      label: 'supplied by',
      size: 4,
    },
    {
      src: 'http://www.asdf.com/graph#Card',
      dst: 'http://www.asdf.com/graph#Customer',
      label: 'owned by',
      size: 4,
    },
    {
      src: 'http://www.asdf.com/graph#Account',
      dst: 'http://www.asdf.com/graph#Customer',
      label: 'owned by',
      size: 4,
    },
    {
      src: 'http://www.asdf.com/graph#HUV',
      dst: 'http://www.asdf.com/graph#BrakeSubsystem',
      label: 'brakeSubsystem',
      size: 4,
    },
    {
      src: 'http://www.asdf.com/graph#HUV',
      dst: 'http://www.asdf.com/graph#PowerSubsystem',
      label: 'powerSubsystem',
      size: 4,
    },
    {
      src: 'http://www.asdf.com/graph#BrakeSubsystem',
      dst: 'http://www.asdf.com/graph#BrakeDisk',
      label: 'leftBrakeDisk',
      size: 4,
    },
    {
      src: 'http://www.asdf.com/graph#BrakeSubsystem',
      dst: 'http://www.asdf.com/graph#BrakeDisk',
      label: 'rightBrakeDisk',
      size: 4,
    },
    {
      src: 'http://www.asdf.com/graph#BrakeSubsystem',
      dst: 'http://www.asdf.com/graph#BrakePedal',
      label: 'brakePedal',
      size: 4,
    },
  ],
}

You didn't pass the MultiDirectedGraph constructor to the SigmaContainer, that's your mistake.
I created an example here https://github.com/sim51/react-sigma/tree/main/packages/examples/src/views/multidirectedgraph

Brilliant, it works! Thanks for your help! 👍

An example has been created : https://github.com/sim51/react-sigma/tree/main/packages/examples/src/views/multidirectedgraph
Documentation on the statup example has been improve : https://sim51.github.io/react-sigma/docs/start-setup#graph-constructor
A question on it has been added in the FAQ : https://sim51.github.io/react-sigma/docs/faq#how-i-can-correct-the-error-graphaddedge-an-edge-linking-x-to-y-already-exists-if-you-really-want-to-add-multiple-edges-linking-those-nodes-you-should-create-a-multi-graph-by-using-the-multi-option

Hi. I am facing this issue while trying to render a graph by parsing a GEXF file/string.
This is the error I'm getting:
Graph.addDirectedEdgeWithKey: an edge linking "1" to "2" already exists. If you really want to add multiple edges linking those nodes, you should create a multi graph by using the 'multi' option.

I have added the MultiDirectedGraph constructor to the sigma container and parsed the gexf using this constructor. Even tried to add {multi:true} there, but to no success.
        const loadGraph = useLoadGraph();

        useEffect(() => {
                const graph = parse(MultiDirectedGraph, ``, {multi:true})
                loadGraph(graph);
        }, [loadGraph]);

        return null;
};

How do I correctly render this graph from the gexf string. if it has multiple edges between same nodes.

You need to add the graphology  constructor on the SigmaContainer like in this example : https://sim51.github.io/react-sigma/docs/start-setup#graph-constructor

I have replicated the issue here:
Sandbox
Even adding {multi: true} to the constructor doesn't seem to help.

Any idea on how this can be solved? Or any workaround?

Hey. I think I figured it out.
I was initializing the graph using the MultiDirectedGraph constructor, something like this:
const graph = new Graph({ multi: true });
And then passing the same as the graph attr. to the SigmaContainer component:
<SigmaContainer graph={MultiDirectedGraph} />
Turns out, I needed to initialize the graph using the Graph constructor and then pass the MultiDirectedGraph to the SigmaContainer component.
const graph = new Graph({ multi: true });
<SigmaContainer style={sigmaStyle} graph={MultiDirectedGraph} settings={{
   allowInvalidContainer: true, edgeProgramClasses: {
       curved: EdgeCurveProgram,
       straight: EdgeCurveProgram
   }
}}>
   <LoadGraph />
</SigmaContainer>

And then, to parse a GEXF file, as I was doing in my case, I did this:
const graph = parse(Graph, `<GEXF>`);
graph.setAttribute("multi", true);

Although this seems to work, it would be great if you could validate this.

In your example you have import MultiDirectedGraph from "graphology"; which is bad.
The default export of graphology is the Graph constructor (even if you named it MultiDirectedGraph ...)
SO you should replace it by import { MultiDirectedGraph } from "graphology";


Adding filters

Log analyze:

2023-03-31 15:50:02	stdout	{"level":"debug","time":"2023-03-31T15:50:02Z","message":"Successfully Handled"}
The don't informative. Please add context
2023-03-31 15:50:02
{"level":"debug","time":"2023-03-31T15:50:02Z","message":"Message batch with first id: connection_id:{session_alias:"alias3"} was sent to pin: send_queue "}
Could you please write full id <session_alias>:::
2023-03-31 15:50:02	{"level":"debug","time":"2023-03-31T15:50:02Z","message":"Message batch with first id: connection_id:{session_alias:"alias3"}  matched pin: send_queue filter"}
Could you please clarify sequence of filter
2023-03-31 15:50:02	{"level":"info","time":"2023-03-31T15:50:02Z","message":" [x] Sent "}
What does it mean?
2023-03-31 15:50:02	{"level":"debug","time":"2023-03-31T15:50:02Z","message":"Getting already existing sender for pin send_queue"}
Redundant record, we can write about creation sender only (Please use trace log level)
2023-03-31 15:50:02	{"level":"debug","time":"2023-03-31T15:50:02Z","message":"No filters for MessageGroupBatch"}
Redundant record because common already has log about sending batch via pin (Please add context and use trace log level)
2023-03-31 15:50:02	{"level":"debug","time":"2023-03-31T15:50:02Z","message":"Try filtering for pin: send_queue"}
Redundant record (Please use trace log level)
023-03-31 15:50:02	{"level":"debug","time":"2023-03-31T15:50:02Z","message":"Queue was found with pin send_queue"}
2023-03-31 15:50:02	Found Message with ID:  [connection_id:{session_alias:"alias3"}]
What does it mean? Looks like redundant because common already has log about sending batch via pin (please remove)
2023-03-31 15:50:02	{"level":"debug","time":"2023-03-31T15:50:02Z","message":"Triggered the function"}
What does it mean?
2023-03-31 15:50:02	{"level":"debug","time":"2023-03-31T15:50:02Z","message":"Received message with Batch message type\n"}
2023-03-31 15:50:02	{"level":"debug","time":"2023-03-31T15:50:02Z","message":"Received Message"}
2023-03-31 15:50:02	{"level":"debug","time":"2023-03-31T15:50:02Z","message":"Sending Statistic Event"}
Please add information about context

Changes were merged into https://github.com/th2-net/th2-common-go/pull/9


Mark json-smart as optional in the manifest file for OSGI

Hello,
Here is my issue:
I explicitly want to exclude json-smart dependency from my project when using json-path since I want to use Jackson (which is still maintained)
However when I deploy my project in an OSGI environment, it complains because it doesn't find the json-smart jar (which is normal because I don't want it)
It happens because of this commit: https://github.com/json-path/JsonPath/commit/aba863021c1ba59234ac0b239e1fce707b3de9a3#diff-97a3df98ab94b662feb8bfb28e05ed3c
I suggest putting this in the build.gradle: 'net.minidev.*;resolution:=optional'
Tested it in my OSGI environment, it works.
I'll create a pull request :)

Fixed in 2.6.0


Error: spawn sox ENOENT in Windows.

Was trying to execute the nodejs code in my local machine for transcribing infinte streaming audio. I have followed all the necessary quickstart steps, but ran into this error
Listening, press Ctrl+C to stop.
events.js:292
      throw er; // Unhandled 'error' event
      ^

Error: spawn sox ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:267:19)
    at onErrorNT (internal/child_process.js:469:16)
    at processTicksAndRejections (internal/process/task_queues.js:84:21)
Emitted 'error' event on ChildProcess instance at:
    at Process.ChildProcess._handle.onexit (internal/child_process.js:273:12)
    at onErrorNT (internal/child_process.js:469:16)
    at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  errno: 'ENOENT',
  code: 'ENOENT',
  syscall: 'spawn sox',
  path: 'sox',
  spawnargs: [
    '--default-device',
    '--no-show-progress',
    '--rate',
    16000,
    '--channels',
    1,
    '--encoding',
    'signed-integer',
    '--bits',
    '16',
    '--type',
    'wav',
    '-'
  ]
}

Upon further google search I found that spawn sox command doesn't work in Windows. Am I doing something wrong here?
Environment details

OS: Windows
Node.js version: 12.18.4
npm version: 6.14.6
@google-cloud/speech version: 4.2.0
sox: 14.4.2. Path variable is also set.

From what I can tell, looks like you do not have sox installed in your environment

From what I can tell, looks like you do not have sox installed in your environment

Closing this issue. Please reopen if needed.

Closing this issue. Please reopen if needed.


When switching workspaces, the workspace::focus event gets emitted twice

I believe the issue is on these two lines:
https://github.com/SirCmpwn/sway/blob/master/sway/focus.c#L39
https://github.com/SirCmpwn/sway/blob/master/sway/focus.c#L185
When "switching" to the same workspace (as the current one), only the second event gets emitted. So I don't know if the first one is just extraneous, or whether it is still required.

Since you've narrowed down the problem, how about testing a fix and sending a patch?

Okay, I'll take a look.

It appears that the first case (L39) was added in order to fix #382. Removing that line now seems to work (and sending a workspace::focus event when moving a container to another workspace doesn't really make sense to me anyway since it's never technically visible), except that swaybar isn't updated correctly if it changes at the exact same time, so I don't know whether this can be fixed separately, or whether to change it so that the event is only emitted once in every situation, or just to keep it as it is for now.
If this is due to some problem in swaybar, I think it would be nice to fix it, since I've also been getting a problem that seems to be related, in which swaybar doesn't update correctly if you change the output at the same time as switching to a new (empty) workspace (i.e. in response to the workspace::focus event), but I'd have to look a bit more into how swaybar works in order to see if that's fixable.

It should probably be changed to emit the event just once, then, if you can sort it out.


 element not supported

The <use> element is not being rendered properly. I though that use was supported since the code allows element references by id. I tried to render the following example without success:
<svg width="80" height="80" xmlns="http://www.w3.org/2000/svg">
  <style>
    .classA {
      fill: red;
    }
  </style>
  <defs>
    <g id="Port">
      <circle style="fill: inherit;" r="10"/>
    </g>
  </defs>

  <text y="15">black</text>
  <use x="50" y="10" href="#Port" />
  <text y="35">red</text>
  <use x="50" y="30" href="#Port" class="classA"/>
  <text y="55">blue</text>
  <use x="50" y="50" href="#Port" style="fill: blue;"/>
</svg>

It should look something like this:

This is what I get instead:

Thanks for reporting this! I'll have a look next week. I'm currently on a trip without access to the computer.

I think 'use' support can be implemented and I will start working on it next week. But support of 'text', which is also present in your example,  is not planned in the near future, because it is too complex and will require storing fonts somewhere.

Ok! By now I'm somewhat familiar with your library and I might have some time to help you next week so let me know ;)

@JaimeIvanCervantes
Ok, finally, the  element is now supported in svgdom 0.2.49 and svgren 0.4.23.
But your example also uses the  element which is not supported yet.

Excellent, thanks! I'll open the new issue about <style> support.
Also, for text and truetype font  support, I believe nanosvg is borrowing some ideas from an stb header only library called stb_truetype: https://github.com/nothings/stb
Maybe I could also look into basic text support.

I am doing some refactoring right now, moving stuff to different files...
Regarding the truetype, I think it is not a problem to use freetype, the other thing is that along with SVG file one will have to supply the fonts also to render the image, so it will be more clumsy. For now I consider it is simpler to just convert text to geometry in your favourite SVG editor and live with it :).
But I'm open to consider proposals regarding text support if any.


Mistake in AzureBastionSubnet IP address

The IP address in AzureBastionSubnet is not correct (<IP_ADDRESS>.0/27). Should be <IP_ADDRESS>/27
dmz-reference-architectures.zip

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

ID: 74bb4b25-ebe2-264d-047d-3f651c52a9c5
Version Independent ID: aed6ebef-6157-9608-3f85-0807c7fdf61d
Content: Implement a secure hybrid network - Azure Architecture Center
Content Source: docs/reference-architectures/dmz/secure-vnet-dmz.md
Service: architecture-center
Sub-service: reference-architecture
GitHub Login: @adamboeglin
Microsoft Alias: pnp

Thanks for reporting - this issue is under review.  This is a Microsoft Internal DevOps Bug ID AB#281019


VM config volume should not be a zvol when ZFS pool has volume.zfs.block_mode enabled

This question occurred during the development of this feature:

tomponline: Should VM config volumes be influenced by the zfs block mode setting, i.e if enabled, should VM config volumes be block volumes with a filesystem, or should that setting only apply to the user-facing volume and the VM config volume remain as a ZFS dataset even if zfs block mode is enabled on the pool?

stgraber: Those should remain ZFS datasets

However this is not the case:
lxc storage show zfs
config:
  size: 30GiB
  source: /var/lib/lxd/disks/zfs.img
  volume.block.filesystem: xfs
  volume.zfs.block_mode: "true"
  zfs.pool_name: zfs

lxc init images:ubuntu/jammy v1 --vm -s zfs

sudo zfs list -o name,type zfs/virtual-machines/v1
NAME                     TYPE
zfs/virtual-machines/v1  volume

Expected:
lxc delete -f v1
lxc storage unset zfs volume.zfs.block_mode
lxc init images:ubuntu/jammy v1 --vm -s zfs

sudo zfs list -o name,type zfs/virtual-machines/v1
NAME                     TYPE
zfs/virtual-machines/v1  filesystem

This is a problem because activating and mounting a block backed filesystem is slower than a ZFS dataset and this means making config changes to stopped VMs is slower because they need to mount the config volume to update the backup.yaml file.

@tomponline currently not. I can work on it after my vacation.


look into feasibility of Amazon Glacier, Intel Expoint

Amazon Glacier too expensive
Scott Wilkin will talk to Intel about potential interest


Parking Lot

Post any questions you may have here during the training.
Day 1 Recording
Link
Access Password: trex318

aaron.mcdaniel: Is there an official way to publish to IPA (an iOS App package) to GitHub Packages from GitHub Actions. Even just an example of publishing a package from an action to the package repo would be ok.

aaron.mcdaniel: Is there an official way to publish to IPA (an iOS App package) to GitHub Packages from GitHub Actions. Even just an example of publishing a package from an action to the package repo would be ok.

Thanks for the awesome question Aaron. We demo'd publishing a package with GitHub Actions in our Day 2 training today. I'm posting links to all of the resources we referenced, as well as our existing GitHub Learning Lab interactive course on this exact topic!
Publishing a Package with GitHub Actions
Example code (see action.yml and .github/workflows)

GitHub Actions
Getting.Started.with.GitHub.Actions.pdf
LEARNING LAB COURSE: ACTIONS FOR CONTINUOUS DELIVERY
LEARNING LAB COURSE: ACTIONS FOR CONTINUOUS INTEGRATION


windows-default-manifest: switch to Git from CVS

@Alexpux: Tests are passing fine now — Is there any concern to be addressed with the patch? (If there isn't, a merge would be appreciated!)

Not sure why @Alexpux hasn't responded to several PRs yet...I wonder if he's off the radar for some reason.

Thank you, @Alexpux!


remove drop_last from explicit params in FilteredBase.databunch

No longer pass drop_last as keyword argument to DataBunch call in FilteredBase.databunch
This addresses part of #220

Had to push another commit - something funny there happened I believe where maybe the notebook for the jekyll exporter was changed but only a single regeneration of scripts was run (I think in such a case one probably needs to run the generation of nbs twice). Have not verified so this is somewhat a wild guess :slightly_smiling_face:
Anyhow, I think things should now be in order.

drop_last should always be set to True on the training dataloader, otherwise models with batchnorm layers won't train properly (the last batch will make training fail if it has one element, and give unstable results if it has few elements), so we can't remove it entirely.

Thank you Sylvain for the explanation, makes a lot of sense! :slightly_smiling_face:
That means I have been constructing the DataLoader to predict on incorrectly. I understand now why we use the setting whether a dataset should be getting shuffled or not as a proxy for whether we will be training on it or using it for inference.
Thx a lot again for your explanation!


consume "pristine" GVL JSON from new API

Is your feature request related to a specific problem?
in https://github.com/ethyca/fidesplus/issues/1044 we are adding to fidesplus an API/endpoint that will serve the up-to-date, "pristine" GVL information. we should switch the FE code to get its GVL "source" from this endpoint, rather than using the hardcoded, static asset that we'd started using as an initial cut.
Describe the solution you'd like

API details still TBD pending https://github.com/ethyca/fidesplus/issues/1044 work
API should be assumed to have minimal latency
should be a relatively "clean" swap out of our existing code, i.e. the response from the API should look identical to the static GVL JSON we're using currently -- at least on our first iteration this.

Describe alternatives you've considered, if any
continue using static JSON asset, but then we'd need to update that ~every week
Additional context
blocked by https://github.com/ethyca/fidesplus/issues/1044

Closed by https://github.com/ethyca/fides/pull/4143


Important FQA question missing

What happens if change the db recovery modell SIMPLE to FULL?
I tried, and Azure backup for SQL cannot change their mechanism, creates only FULL backups and no log backups.
On backup item page, portal say: "This database is in SIMPLE recovery model. Log backup for databases in SIMPLE recovery model is not supported by SQL Server."
But the database in FULL recovery modell.
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: a079cf10-0e77-8a07-fdea-615b693d6769
Version Independent ID: 6822bc4e-76f5-f57d-c9af-c4e01ea035cd
Content: FAQ - Backing up SQL Server databases on Azure VMs - Azure Backup
Content Source: articles/backup/faq-backup-sql-server.yml
Service: backup
GitHub Login: @v-amallick
Microsoft Alias: v-amallick

@kovacspro Thank you for your post. We will review the content with the owners and update as appropriate.

@v-amallick For visibility

@kovacspro Checked with the concerned team, we need your subscription ID and SQL Machine details for further investigation. Please send us an email at AzCommunity @ Microsoft dot com with subject: Attn: Sadiqh Ahmed with your subscription ID and a link to this forum thread for context.

@kovacspro Please refer to this section - https://docs.microsoft.com/en-us/azure/backup/backup-sql-server-database-azure-vms#create-a-backup-policy
In pointer 8, the following thing is already mentioned.
If the recovery model of the database changes from Full to Simple, log backups will be paused within 24 hours of the change in the recovery model. Similarly, if the recovery model changes from Simple, implying log backups can now be supported for the database, the log backups schedules will be enabled within 24 hours of the change in recovery model.

@kovacspro Glad to help. :)
We will now close this issue.


LogFnAsError type missing from src/index.d.ts

Describe the bug
After https://github.com/maraisr/diary/commit/78334b38ac7a41e33169562c17829933fd2479b9 the types in https://github.com/maraisr/diary/blob/a723e0b203321faa6a95195c9991c2cf74c67427/src/index.d.ts are broken. Specifically, a type definition for LogFnAsError is now missing.
This means that any use of customLogger.error(...) and customLogger.fatal(...) in a typescript project doesn't work as expected.
To reproduce
import { diary } from 'diary';

const customLogger = diary('');

customLogger.error(new Error('test'));

Typescript can't see any type definition for LogFnAsError and treats it as any. When using @typescript-eslint/eslint-plugin in a project, a lint error for the rule @typescript-eslint/no-unsafe-call is emitted for customLogger.error.
Expected behavior
customLogger.error(...) and customLogger.fatal(...) are typed correctly.

Created a fix PR in https://github.com/maraisr/diary/pull/21.
I also suggest adding linting to this project which would catch bugs like this.

Yeah ouch... bad moment! Sorry about this. Ill get this out asap.
In terms of testing, yeah think I better — this hasn't been the first time. Thanks for jumping on it.

I think with this commit (https://github.com/maraisr/diary/commit/24f058818cecd2b4c592cc4cbce67551e958b493) we should now have tests for our types as well.
Thanks for the highlight.
also v0.4.3 has the fix applied.


What are the specific difficulties encountered in supporting flash attention on V100?

I noticed that you have deleted the plan to support V100.

The tensor cores instructions and shared memory layouts are different.
I just don't have the bandwidth to do it, but we welcome community's contribution.

Does it mean I can't install flash-attn on V100s?@tridao

Yeah it doesn't work on V100.

Hi @tridao - should we assume the same for A6000's? And A10g's? We'd need support for custom masks there, but when I last tried it I could only use it without custom mask.
Also, is there an physical machine limitation with supporting 128dims or less for certain architectures?
Lastly, as someone who's never written a kernel but would like to, given there's a lot to be gained, performance-wise, any pointers on how to go about this? Based on my understanding, writing one in triton if one isn't implemented in cpp will also not be helpful? Or should I explore triton for A6000s and A10gs first?

A6000 and A10 are Ampere architecture so they're already supported (see README).
Backward pass for headdim 128 requires A100 or H100, as it requires a lot of shared memory.
You can read #190 for more details.
I recommend playing with Triton since it's easier to get started, you can follow the tutorials on the Triton repo.

A6000 and A10 are Ampere architecture so they're already supported (see README). Backward pass for headdim 128 requires A100 or H100, as it requires a lot of shared memory. You can read #190 for more details.
I recommend playing with Triton since it's easier to get started, you can follow the tutorials on the Triton repo.

tested A6000 - I get the "is_sm80" error

Can you try with version 2.0? I've tested with A6000 myself.

thank you for doing this.  I will test it.


Problem with Chrome minimum font-size

The default font-size in Chrome depends on minimum font-size. The default value is 12px. And mine is 14px for a 15.5 inch 1920*1080 display. The Furigana will be rendered to 10px in the following example.

The CSS shown the Furiganas are 6px, but in fact they are 10px.
The sample in the settings won't be smaller below 14px, cause I've set the minimum font-size to 14px. If I set it to 10px or smaller, all the fonts will use that as the default value and become black dots.

But it seems that the Furiganas in that page are rendered into 10px. How did that happen? Shouldn't it be 14px?
It there a way to fix this?

Hm, can you explain the exact issue you're having a bit more? Do you want the kana to be rendered at the exact size specified or at the minimum font size set in Chrome settings?

Yes. They should be 6px as CSS values. But in fact they are rendered as 10px.

I'll look into that, but it might be a browser limitation, since the minimum font size is meant to override CSS settings, AFAIK.

But the minimum font-size is 14px on my Chrome. Why the kana are rendered into 10px? So it can be rendered smaller than minimum font-size, then they can be rendered smaller than 10px?

I don't know. Maybe ruby tags have some special interactions with these settings. I've never tried playing around with the minimum font size, which is why I need to do some research, before I can really tell you anything.

Chromeでfont-sizeを10px以下に設定する方法 - 世界の一部
This will fix the problem.


Small refactorings

This change is

Lots of better names...

Review status: 0 of 11 files reviewed at latest revision, all discussions resolved, some commit checks broke.

lib/react_on_rails/react_on_rails_helper.rb, line 101 at r1 (raw file):

    #      if the JS code throws
    # Any other options are passed to the content tag, including the id.
    def react_component(component_name, options = {})

options is for a plain Hash
renderer_options is for our special object of configuration when rendering

Comments from Reviewable

@mapreal19 Still review.

Coverage remained the same at ?% when pulling e22445041025eeec2f5146803f4e089b7f4bda53 on small-refactorings into ede0ac883d32efbbf50e6b0da42dbcac85144845 on master.

 just a couple of minor things

Reviewed 9 of 15 files at r1, 2 of 4 files at r2.
Review status: all files reviewed at latest revision, 1 unresolved discussion.

lib/react_on_rails/react_on_rails_helper.rb, line 435 at r2 (raw file):

        result = ReactOnRails::ServerRenderingPool.server_render_js_with_console_logging(js_code, render_options)
      rescue StandardError => err
        # This error came from the renderer

I'd remove this comment. The reader can see we're raising a prerender error anyway

lib/react_on_rails/server_rendering_pool/ruby_embedded_java_script.rb, line 62 at r2 (raw file):

      class << self
        private

we should leave private here?

Comments from Reviewable


Gravity wont work on game build

I tried to make a build of it but there was no gravity. I couldn't land on any planets and the planets ended up floating off into space.
Also how can I edit the orbits of the planets like how it was done in the video?

@Constructalor Had the same issue on the Episode_01 branch. I noticed that each planet had a mass of 0 in the builds and tracked it to needing to run the OnValidate() in the Awake of the CelestialBody.cs:
void Awake () {
      OnValidate();

      rb = GetComponent<Rigidbody> ();
      rb.mass = mass;
      velocity = initialVelocity;
}


Fix splunksql DB goroutine leak

Possible fix #1676
Possible fix #1677

Codecov Report
Base: 81.86% // Head: 81.52% // Decreases project coverage by -0.35% :warning:

Coverage data is based on head (1d8101b) compared to base (654782d).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1682      +/-   ##
==========================================
- Coverage   81.86%   81.52%   -0.35%
==========================================
  Files          63       63
  Lines        2625     2630       +5
==========================================
- Hits         2149     2144       -5
- Misses        428      436       +8
- Partials       48       50       +2

Flag
Coverage Δ

Linux
81.52% <100.00%> (+0.03%)
:arrow_up:

Windows
?

macOS
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

instrumentation/database/sql/splunksql/sql.go
88.63% <100.00%> (+1.45%)
:arrow_up:

...n/github.com/lib/pq/splunkpq/internal/connector.go
51.75% <0.00%> (-5.03%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


chore(gh): Expand update window

I've been having some repos not updated lately.  RenovateBot project's theory is that its because RenovateBot is scheduled to run once every 3 hours and checks the schedule at that point while the schedules I use only offers an exact 3 hour window, making this a race condition.  The schedule originally came from RenovateBot but they changed their polling schedule.
See https://github.com/renovatebot/renovate/discussions/23642#discussioncomment-6618560

Make sense
@bors +

@bors r+

:pushpin: Commit e03aa57eb0e107acedbe796e6f5fcee9cdf1fee3 has been approved by arlosi
It is now in the queue for this repository.

:hourglass: Testing commit e03aa57eb0e107acedbe796e6f5fcee9cdf1fee3 with merge 7ed917f2fcd5f03da60ad653619853dca2ef4dc5...

:sunny: Test successful - checks-actions
Approved by: arlosi
Pushing 7ed917f2fcd5f03da60ad653619853dca2ef4dc5 to master...


Variable not evaluated?

Type: Bug (?)
NLog version: 4.3.2
Platform: .Net 4.5
Current NLog config
<nlog ...>
  <variable name="env" value="DEV"/>
  <variable name="logFile" value="C:\temp\logs\${var:env}\test.log"/>
  <targets>
    <target name="file" xsi:type="File" fileName="${var:logFile}" layout="${message}"/>
  </targets>
  <rules>
    <logger minlevel="Info" writeTo="file"/>
  </rules>
</nlog>

What is the current result? Logs to "C:\temp\logs\test.log"
What is the expected result? Logs to "C:\temp\logs\DEV\test.log"
Are there any workarounds? well, replace the variable reference with the actual value, but...

Strangely, referencing the "logFile" variable elsewhere (e.g. layout="${logFile}:${message}") makes NLog to behave as expected...

I guess recursively variables are sometimes problematic.  Work around, use ${env}

The filename value is probably evaluates too soon. Will try to fix this.  If you could help with an unit test, that would be great!

If you like to get this fixed, you can help is by writing an unit test. :)

PS there is a possibility this has been fixed in NLog 4.3.4. We changed something for interpreting filetarget.filename

I've determined that this is working >=4.3.4 but not working <=4.3.0 to 4.3.3.  I'll take a look at it.  I'm assuming this feature was introduced on 4.3.0?  That's the first evidence I could see in the Release Notes.

We have changed something with the filename for archiving in 4.3

I've determined that this is working >=4.3.4

For these reasons I will close this one :)
If this is still a problem in NLog 4.3.4+, let us know!


Using WhiteNoise in development when it's enabled?

Description
WhiteNoise, if enabled, is available in production mode. Might it be a good idea to have this feature in development as well?
We enabled this feature in both modes. No conflicts were noticed so far.
Rationale
As described in http://whitenoise.evans.io/en/latest/django.html#using-whitenoise-in-development , WhiteNoise can be enabled in development and it's suggested to do so.

If the suggestion is approved, I'd be glad to trigger a PR :)

Thanks for bringing this up, I didn't know about this.  Feel free to send a pull request 👍


Flatten binary tree to linked list

Assigned Issue Number ?
#007
Language Opted ?
C/C++/Python/Java/...
Number of files added or updated ?
1
Name of these files ?
main folder => sub_folder => ... => ... => ... file.py
example :
Algorithm => Search_Algorithm => Linear_Search => Linear_Search.py
Checklist

[X] I've read the contribution guidelines.
[X] I've referred the correct issue number.
[X] I've fill up this entire template correctly.

@ShristiAgrawal
I merged your PR but it would be great if you first raise issue, get assigned then raise PR.
It is easier to track. :+1


ZigBee sensors - unknown status

Hello,
My environment:

Debian 11,
Home Assistant supervised installed on Debian. Version 2022.4.2
Xiaomi Gateway 3 ZNDMWG02LM, firmware version: 1.5.0_0102 (was different, I changed it using Your tutorial)

Integration shows all sensors which are paired with the gateway but I cannot see any output from the sensors. Everything  is "unknown".
Example sensor: zigbee WSDCGQ01LM (lumi.sensor_ht) (Temeprature and humidity), ("nieznany" means "Unknown" - it's Polish language)

Why is that happening? Previously i had Home Assistant Core in the Docker Container and there verything was fine.

Are this sensors works in MiHome?

Yes they work.
I have no idea where was the issue but it works now.
For other reasons i have now new HA installation (moved from kvm to native on Debian) and and issue no longer exists

Sensor data appears with some delay


[BUG] Failed to deserialize etherscan response: data did not match any variant of untagged enum ResponseData

Version
List the versions of all ethers-rs crates you are using.
ethers v2.0.2
├── ethers-addressbook v2.0.2
├── ethers-contract v2.0.2
├── ethers-core v2.0.2
├── ethers-etherscan v2.0.2
├── ethers-middleware v2.0.2
├── ethers-providers v2.0.2
├── ethers-signers v2.0.2
└── ethers-solc v2.0.2

Platform
Linux workstation 5.15.104-2-MANJARO #1 SMP PREEMPT Thu Mar 23 01:40:42 UTC 2023 x86_64 GNU/Linux
Description
As the title says, there is a bug in etherscan data while working with Polygon mainnet or the testnet
I tried this code:  https://github.com/shekohex/ethers-etherscan-issue
I expected to see this happen: To have the gas oracle information
Instead, this happened:
Looks like there is a need to handle a new update with the etherscan returned data!
Logs
  ERROR etherscan: Failed to deserialize response: data did not match any variant of untagged enum ResponseData, res: "{\"status\":\"1\",\"message\":\"OK\",\"result\":{\"LastBlock\":\"41171167\",\"SafeGasPrice\":\"119.9\",\"ProposeGasPrice\":\"141.9\",\"FastGasPrice\":\"142.9\",\"suggestBaseFee\":\"89.82627877\",\"gasUsedRatio\":\"0.399191166666667,0.4847166,0.997667533333333,0.538075133333333,0.343416033333333\",\"UsdPrice\":\"1.15\"}}"
    at /home/shady/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ethers-etherscan-2.0.2/src/lib.rs:205

   INFO ethers_etherscan_issue: Gas Oracle Info, gas_oracle: Err(Serde(Error("data did not match any variant of untagged enum ResponseData", line: 0, column: 0)))
    at src/main.rs:39

JSON Response
{
    "status": "1",
    "message": "OK",
    "result": {
        "LastBlock": "41171167",
        "SafeGasPrice": "119.9",
        "ProposeGasPrice": "141.9",
        "FastGasPrice": "142.9",
        "suggestBaseFee": "89.82627877",
        "gasUsedRatio": "0.399191166666667,0.4847166,0.997667533333333,0.538075133333333,0.343416033333333",
        "UsdPrice": "1.15"
    }
}

looks like we need to change the types from u64 to f64
do you want to give this a try?

After narrowing down the issue to just as simple as this Playground it returns the error: "invalid digit found in string", line: 7, column: 31" and this points out to the SafeGasPrice I guess.
Changing these values to be f64 Like here in the updated Playground Solves the issue.
Will open a PR with the quick fix shortly!


Tooltip too large and runs off-screen (cut off)

It should wrap properly instead of having to scroll horizontally. Making the font size smaller with "typescript_popup_font_size" doesnt seem to work either.

@stweedie's solution didn't quite work for me (possibly a difference across OS?):

For the text_helpers.py fix, it's definitely an improvement (and the original code definitely seems wrong—why would you replace all space characters with non-breakable spaces??) and does cause auto-wrapping, but it leads to strange/arbitrary line-breaks:

For the quick_info.py fix, I think size is not defined (as the popup does not appear at all when using it, and size does not appear anywhere else within the file). Instead, I just set the values to 400 and 800 respectively.

His solutions at least make it useable 🎉

Yeah it's been awhile since I've looked into this issue. The changes to 'escape html' might be pretty far reaching, but they seemed to work in my setup. Granted, to really fix the issue I assume one would have to inspect the formatting of the response from the integrated tsc server and make changes according to that.
the 'size' variable was one I added myself, to get the size of the current viewport


Showing wrong created time for base-platform-api-0.3 tag

When using gcr.io/paketo-buildpacks/builder to build docker image for spring boot application, it shows created time as 40 years ago.

This is intentional. The pack CLI zeros timestamps when building builders, buildpackages, and apps so that the image digests are reproducible.

Closing this out. Feel free to post on message on the Paketo slack (slack.paketo.io) for questions/issues such as this so we can help sort it out faster 😃


Why wouldn't you use this for production?

I'm still on the lookout for a suitable host for all my Directus projects, why wouldn't you advise using this method?
Also what do you use for production hosting?

Hello @notflip
Thi project is intended as a quick solution to develop and test.
I am currently using EasyPanel for my personal hosting,
I also suggest you give a look at CapRover.
One thing that i'm thinking about,
is to make this a very lightweight alternative to EasyPanel.


Wamv model not found

Describe the bug
Please say what is broken. Include whether you think this is a problem with the code or the documentation / tutorials.
Running the standard competition command or command from custom WAMV to launch the simulation gives the following error on gazebo: ros2 launch vrx_gz competition.launch.py world:=sydney_regatta
Gazebo does not seem to be able to download the model of the WAMV - is there another way to download the meshes and place them into a directory?
Expected behavior
WAMV mesh should be downloaded and rendered, but the download does not seem to work.
To Reproduce
Ran the same steps per the instructions on installing VRX and launching the competition environment.
System Configuration:
Tell us about your system.

OS: Ubuntu 22.04
ROS Version: Ros2 Humble
Gazebo Version: Gazebo garden
Graphics Card: Nvidia 1660 super
Are you using VRX or VRX Classic? VRX

Screenshots
If applicable, add screenshots to help explain your problem. (If the problem is terminal output, it is better to cut and paste the text than to take a screenshot.)
Additional notes
Add any other context about the problem here.

Hi! I can't reproduce this error. WAM-V doesn't have to be downloaded, it's generated on the fly from URDF.
Could you paste the error message that you're getting?
Are you using the latest VRX version?

Sorry I forgot to attach this earlier, here is a screenshot of the error - it seems like my computer is unable to fetch the meshes from the wamv folder and also the thruster folder. I had just recently (maybe 3 days again) cloned the main branch from VRX - is that the correct VRX version?

Could you share the output of this command?
env | grep GZ

This is the output from my terminal for this command, thanks for helping me to troubleshoot this!

The paths on GZ_SIM_RESOURCE_PATH look wrong. For instance, instead of:
/home/lhy/vrx_ws/install/wamv_description/share/wamv_description/models
you should have:
/home/lhy/vrx_ws/install/share/wamv_description/models
I wonder if you ran colcon build in the vrx_ws directory. My suggestion is to clear your workspace:
rm -rf build install log

Recompile again and in a new terminal source the appropriate install/setup.bash.

Hi there,
I'm getting a different issue. I'm using WSL Ubuntu 22.04.
When I run the line ros2 launch vrx_gz competition.launch.py world:=sydney_regatta
I see the gazebo sim pop up like below and then nothing shows up and it closes itself.

I noticed there were a lot of 'server directory does not exist' when I first run the code.
Any idea why this is happening?

This works great for me now. Thanks for helping me with troubleshooting!

How can I make Gazebo search in install/wamv_description/share/wamv_description/models instead?


Bug Fix function for cast string as date/datetime (#35637)

Proposed changes
Issue Number: close #35635
cherry-pick https://github.com/apache/doris/pull/35637 from master to branch-2.1

Cast rules：Consistent with mysql.
String：Date
The first part is 1-digit x: 000x-month-day
The first part is 2-digit xy: 20xy-month-day / 19xy-month-day The first part is 3-digit xyz: 20xy-0z-day / 19xy-0z-day The first part is 4-digit xyzw: xyzw-month-day
Proposed changes
Issue Number: close #xxx

run buildall


New conda recipe

New recipe that will:

Install the notebook extensions under $PREFIX/share/jupyter, allowing to install nbextensions in different environments
configures the notebook extensions in a separate post-link phase, calling configure-nbextensions.py
removes setup.py to allow a setuptools based approach.
can be uninstalled by conda remove nbextensions

TODO:

move configuration files to $PREFIX/etc/jupyter to make them environment-aware.
change package source in meta.yaml from local to a GitHub hosted tagged version

To create and install a conda package:
cd IPython-notebook-extensions
conda build conda-recipe
conda install --use-local nbextensions

this repo might help: https://github.com/Anaconda-Platform/nb_conda

Did you try it ?
This seems to require another extension nbsetuptools which adds another set of command line tools to install extensions.

@juhasch Nope, only found these repos which seem to be intended to be installed by default in the anaconda install (https://github.com/jupyter/jupyter/issues/124)

We don't use nbsetuptools anymore... this was something we wrote to make the nbextension install/enable into the prefix... but now this is offered in notebook 4.2.
You can see an update nb_conda compatible with 4.2 here: https://github.com/Anaconda-Platform/nb_conda/tree/master/conda.recipe

I used a few nbextensions with an earlier ipython notebook version. I am now migrating to jupyter notebook and I would like to keep using or try new extension from this repo. however manually installimg the extension via setup.py (or pip) is to much of a hurdle for me.
I would like to suggest that you not only provide a conda receipe but also a convenient way to install/uninstall notebook extensions within the conda ecosystem. conda-forge might be worth looking into.

@RinaldoB

manually installimg the extension via setup.py (or pip) is to much of a hurdle for me.

what is your expected install process?
The current problem we have with making a conda-recipe (as far as I can tell) is that our current install script blindly copies files into the user's jupyter data/config directories, whereas conda requires files in sys.prefix to be written in order to be able to keep track of what's been changed. This would be fixed by e.g. #626 or #634, at which point we can add a conda recipe again.

@jcb91
suggestion for an expected install process:
conda install nbextensions

After installation, simply go to the /nbextensions/ page in the notebook to activate/deactivate your notebook extensions.

Buildung and Installing should be separated. Ideally the nbextensions package would be build by the maintainers of the package and submitted to a package repository. conda-forge might be an option for that. Or maybe it could be directly included  in the Anaconda distribution:

Package creators may also contact Continuum Analytics to submit their package for consideration to be included in Anaconda.

https://docs.continuum.io/anaconda/faq, see also: https://github.com/jupyter/jupyter/issues/124
As a sidenote, the building is really only meant to build a conda package. The building process  should not modify any files, paths, etc. I tried the outdated recipe from this repository and was a bit shocked to see that it was copying/modifying files in my local .ipython directory

@RinaldoB Ok, well that seems feasible once we've settled on a new package name 😜

conda-forge might be an option for that

I've tried making a conda-forge PR for my themysto version of this repo (https://github.com/conda-forge/staged-recipes/pull/786), but haven't yet got it to build correctly.

the building is really only meant to build a conda package

yep, agreed, this is a result of our deeply non-standard current install script. Changes are in the pipeline already.

a bit shocked to see that it was copying/modifying files in my local .ipython directory

Although the current install script is likely to try to write to ~/.jupyter (which is, I agree shocking in itself), anything being created/edited in ~/.ipython is probably more likely to be a result of jupyter_core.migrate?

@juhasch why was this closed?
will conda installations not be supported?

@RinaldoB it's probably been closed because it didn't work. I'm in the process of getting this package neatly pip-installable, then will get a conda recipe working. I've got a functioning conda-forge one for the configurator: https://github.com/conda-forge/jupyter_nbextensions_configurator-feedstock so I'm confident we can get one working for this package, it's just a lower priority.


miniupnpc: 2.2.7 -> 2.2.8, again

Description of changes
Like #325273, except I migrated like half of the reverse dependencies in the universe with my own bare hands and added upstream patches and updates for the other half. My own patches have been sent off to every upstream that still has even the slightest hint of still being maintained.
Every package that built before still builds now, except for masari, which I dropped with the consent of its maintainer due to being a dead cryptocurrency abandoned by its upstream. Not that there aren’t a lot of packages that did get patched here that aren’t in much better shape.
There were a lot of real staring‐into‐the‐abyss moments in this one. Hell is other people’s build systems. I’m going to bed now.
cc @nagy @K900 @doronbehar
Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[x] sandbox = true

[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

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

You're insane. I just want you to know that.

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

6 packages marked as broken and skipped:

aeon
bitcoin-unlimited
bitcoind-unlimited
groestlcoin
pivx
pivxd

66 packages built:

aerc
alephone
alephone.icons
atomic-swap
bitcoin
bitcoin-abc
bitcoind
bitcoind-abc
bitcoind-knots
chiaki4deck
dante
dolphin-emu
dolphin-emu-primehack
drawpile
eiskaltdcpp
elements
elementsd
elementsd-simplicity
flycast
fragments
gridcoin-research
groestlcoind
haven-cli
haven-cli.source
hydrus
hydrus.doc
i2pd
libtransmission_3
libtransmission_3.apparmor
libtransmission_4
libtransmission_4.apparmor
litecoin
litecoind
lutris
lutris-free
miniupnpc
monero-cli
monero-cli.source
monero-gui
namecoind
particl-core
pshs
qodem
retroshare
sunshine
swiften
torrential
transmission_3
transmission_3-gtk
transmission_3-gtk.apparmor
transmission_3-qt
transmission_3-qt.apparmor
transmission_3.apparmor
transmission_3_noSystemd
transmission_3_noSystemd.apparmor
transmission_4
transmission_4-gtk
transmission_4-gtk.apparmor
transmission_4-qt (transmission_4-qt5)
transmission_4-qt.apparmor (transmission_4-qt5.apparmor)
transmission_4-qt6
transmission_4-qt6.apparmor
transmission_4.apparmor
warzone2100
yaup
zeroadPackages.zeroad-unwrapped

Looks great to me! I trust you have tested every package touched by this.

Uhh, I tested that they build at least… 🫠
The breaking API change is just two additional parameters that can be set to NULL, 0 and a renumbering of the return codes, so as long as it builds and any applicable return code checking is updated it should just work. I didn’t try and exercise the functionality of every single package here because there’s way too many of them and “stuff builds” tends to be our rubric for doing updates of libraries anyway. Thankfully a lot of packages had already patched this upstream, so if anything breaks from incorporating those patches it’s on them :)
Of course, I’m happy to be held responsible if any regressions do occur and help out with fixing them, and if there’s any substantive upstream feedback on the patches I wrote I’ll make sure to address them in Nixpkgs as well.

@emilazy sorry for the API break :(

Hey, it happens :) Although a larger version bump would probably make it catch fewer people by surprise next time.


Upgrade dependencies to Angular >=5.0.0 <6.0.0

PR for https://github.com/gethinoakes/ngx-masonry/issues/17

My bad, though I personally use this library in a big project that's currently stuck on Angular 4, so I'm just going to change the peer dependencies. Also don't want to update any of the other dependency versions without looking into them first.
Will close this and commit the smaller change now.


Websocket client daemon

Hi
I am new to asyncio and I am trying to create a daemon that has a websocket client that connects and gathers information from a server until it receives a SIGTERM signal. I have working code but I keep getting a mistake on closing so I suspect I am getting something wrong. I create a task with an infinite loop where the websocket client does its thing. In this corutine I catch CancelledError and close the socket but I keep getting the error: websockets.exceptions.InvalidState: Cannot close a WebSocket connection in the OPEN state.
The code is this:
URI = 'bla bla'

async def websocket_routine():
    websocket_client = await websockets.client.connect(URI)

    try:
        #Do stuff with websocket_client
    except concurrent.futures.CancelledError:
        websocket_client.close()
        print('websocket close')

def exit(signame, loop, task):
    tasks = asyncio.Task.all_tasks()
    for task in tasks:
        task.cancel()

if __name__ == '__main__':

    loop = asyncio.get_event_loop()

    task = loop.create_task(websocket_routine())

    for signame in ('SIGTERM', 'SIGINT'):
        loop.add_signal_handler(getattr(signal, signame), functools.partial(exit, signame, loop, task))

    try:
        loop.run_until_complete(task)
    except KeyboardInterrupt as e:
        tasks = asyncio.Task.all_tasks()
        for task in tasks:
            task.cancel()
        loop.run_forever()
    except asyncio.CancelledError as e:
        # From the SIGTERM handler.
        pass
    finally:
        loop.close()

have you tried await ing the call?

You mean await -ing the call to closing the websocket like this
await websocket_client.close()
?
I just tried and made no difference. I am getting same error on closing.

I'm not sure why you're catching concurrent.futures.CancelledError instead of asyncio.CancelledError.

I was just looking at the asyncio docs, the Task part (https://docs.python.org/3.5/library/asyncio-task.html#task) they tell you that is the signal you have to catch. I you click on the CancelledError link it takes you to https://docs.python.org/3.5/library/concurrent.futures.html#concurrent.futures.CancelledError which is described as concurrent.futures.CancelledError.
As I said I am new to asyncio and just following the docs. Is it better to catch asyncio.CancelledError? The exception gets triggered because 'websocket close' gets printed.

Indeed:
>>> import asyncio
>>> import concurrent.futures
>>> asyncio.CancelledError is concurrent.futures.CancelledError
True

You must await websocket_client.wait_closed().
This isn't particularly intuitive or well-documented. However that's how asyncio does it; I tried to simplify but couldn't.

Thanks, I will try that. I must say I am finding the asyncio module more difficult to use than your usual python. Maybe there is no better way of doing it but it feels somehow un-pythonic.

async is hard.
It's noticeably easier with asyncio than with callbacks, though ;-)

I disagree, how is this (from the documentation)
async def handler(websocket, path):
    while True:
        listener_task = asyncio.ensure_future(websocket.recv())
        producer_task = asyncio.ensure_future(producer())
        done, pending = await asyncio.wait(
            [listener_task, producer_task],
            return_when=asyncio.FIRST_COMPLETED)

        if listener_task in done:
            message = listener_task.result()
            await consumer(message)
        else:
            listener_task.cancel()

        if producer_task in done:
            message = producer_task.result()
            await websocket.send(message)
        else:
            producer_task.cancel()

easier than (taken from here)
import websocket
import thread
import time

def on_message(ws, message):
    print message

def on_error(ws, error):
    print error

def on_close(ws):
    print "### closed ###"

def on_open(ws):
    def run(*args):
        for i in range(3):
            time.sleep(1)
            ws.send("Hello %d" % i)
        time.sleep(1)
        ws.close()
        print "thread terminating..."
    thread.start_new_thread(run, ())

if __name__ == "__main__":
    websocket.enableTrace(True)
    ws = websocket.WebSocketApp("ws://echo.websocket.org/",
                              on_message = on_message,
                              on_error = on_error,
                              on_close = on_close)
    ws.on_open = on_open
    ws.run_forever()

I mean I understand both approaches, but I find the latter one much more straightforward...

I'm not interested in having the coroutines vs. callbacks debate. I'd rather let each developer make their own mind about what they're more comfortable with and what works best in their projects.
This whole point of this project is to provide a coroutine-based API for websockets. If you prefer callbacks, that's fine, but you're in the wrong place here. Just use something else.


Fix bucket policy for new AWS Regions

Changes proposed in this pull request:

Fixes trussworks/terraform-aws-logs#314

AWS Principal in the bucket policy depends on AWS Region creation date: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy

Thanks @alexandervasylev we are having the same issue and this fixes the problem.

Thanks @alexandervasylev , This is also affecting NLB bucket policies statement.
modifying ELBv2 Load Balancer (arn:aws:elasticloadbalancing:ap-southeast-4:xxxx:loadbalancer/net/xxxxx/xxxxx) attributes: operation error Elastic Load Balancing v2: ModifyLoadBalancerAttributes, https response error StatusCode: 400, RequestID: 3be836as-fc100-4ae4-8186-23fx64873b25, api error ValidationError: Access Denied for bucket: xxxxx. Please check S3bucket permission


[SP-5229] - Backport of PDI-18166 - PDI Job Run Using Kitchen Fails B…

…ut Returns Error Code of 0 (7.1 Suite)
Due to the fact that the code base is very different the unit tests were excluded from this PR.
@smmribeiro

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
ant -Dtestreports.dir=bin/reports/unit-test -f engine/build.xml clean-all resolve jacoco && ant -f engine/build.xml checkstyle publish-local

Cleanup Commands
rm -r ~/.ivy2/local || echo no publish local to remove

Changed files
  engine/src/org/pentaho/di/kitchen/Kitchen.java

Unit Test Coverage
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.

:warning: Coverage Changes: +0.1% (click to expand)
org.pentaho.di.job.entries.evalfilesmetrics.JobEntryEvalFilesMetrics

Branch Change: -0.4% :small_red_triangle_down:
Complexity Change: -0.5% :small_red_triangle_down:
Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.job.entries.ftpsget.JobEntryFTPSGet

Branch Change: -0.5% :small_red_triangle_down:
Complexity Change: -0.5% :small_red_triangle_down:
Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.combinationlookup.CombinationLookupMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.groupby.GroupByMeta

Branch Change: -2% :small_red_triangle_down:
Complexity Change: -2.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.replacestring.ReplaceStringMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.setvalueconstant.SetValueConstantMeta

Instruction Change: -0.2% :small_red_triangle_down:

org.pentaho.di.trans.steps.singlethreader.SingleThreaderMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.synchronizeaftermerge.SynchronizeAfterMergeMeta

Instruction Change: -0.1% :small_red_triangle_down:


NGINX and SecRequestBodyAccess On option, don't pass POST request to Upstream Server

On Debian 7.3 64bit, same issue whit nginx 1.4.4 and 1.5.1, ModSecurity is 2.7.7 .
#
SecPcreMatchLimit 1000
SecPcreMatchLimitRecursion 1000
#
SecRule TX:/^MSC_/ "!@streq 0" \
        "id:'200004',phase:2,t:none,deny,msg:'ModSecurity internal error flagged: %{MATCHED_VAR_NAME}'"
#
SecResponseBodyAccess Off
#
SecResponseBodyMimeType text/plain text/html text/xml
SecResponseBodyLimit 524288
#
SecResponseBodyLimitAction ProcessPartial
#
SecTmpDir /tmp/
#
SecDataDir /tmp/
#
SecDebugLog /var/log/mod_security/debug.log
SecDebugLogLevel 9
#
SecAuditEngine On
SecAuditLogRelevantStatus "^(?:5|4(?!04))"
SecAuditLogParts ABIJDEFHZ
SecAuditLogType Concurrent
SecAuditLog /var/log/mod_security/audit.log
#
SecArgumentSeparator &
#
SecCookieFormat 0
#
SecUnicodeMapFile unicode.mapping 20127

#Modsecurity log
--398c3027-A--
[20/Feb/2014:12:11:56 +0100] AcAcxcAcAcAcAcYcAcACAcAc <IP_ADDRESS> 54093 <IP_ADDRESS> 80
--398c3027-B--
POST /_layouts/login.aspx?ReturnUrl=%2f HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*
Referer: http://pippo.pluto.it/_layouts/login.aspx?ReturnUrl=%2f
Accept-Language: it
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: pippo.pluto.it
Content-Length: 569
Connection: Keep-Alive
Cache-Control: no-cache

--398c3027-C--
__LASTFOCUS=&__VIEWSTATE=%2FwEPDwUKMTc0NDQ2ODg4OQ9kFgJmD2QWAmYPZBYCAgMPZBYCAjUPZBYCAgEPZBYCZg9kFgICDQ8QDxYCHgdDaGVja2VkaGRkZGQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFJmN0bDAwJFBsYWNlSG9sZGVyTWFpbiRsb2dpbiRSZW1lbWJlck1l1qeKl1MHLq6QY7t46OHWkizdEl8%3D&__EVENTTARGET=&__EVENTARGUMENT=&__EVENTVALIDATION=%2FwEWBQKh1oXMDwLE96mtBQLLtsPBAgLkkP7MCgK%2FlZyyB7GYj%2B2NXtzlE%2BKZXCcgMOT2hSGC&ctl00%24PlaceHolderMain%24login%24UserName=admin&ctl00%24PlaceHolderMain%24login%24password=xxxxxxxx&ctl00%24PlaceHolderMain%24login%24login=Accesso&__spDummyText1=&__spDummyText2=
--398c3027-F--
HTTP/1.1 500 Internal Server Error

--398c3027-H--
Apache-Handler: IIS
Stopwatch:<PHONE_NUMBER>000050 257181 (- - -)
Stopwatch2:<PHONE_NUMBER>000050 257181; combined=73343, p1=1583, p2=70903, p3=0, p4=0, p5=701, sr=88, sw=156, l=0, gc=0
Producer: ModSecurity for nginx (STABLE)/2.7.7 (http://www.modsecurity.org/); OWASP_CRS/2.2.9.
Server: ModSecurity Standalone
Engine-Mode: "ENABLED"

--398c3027-Z--

nginx debug log : http://bpaste.net/show/EZwvs4TsjkA64abviKMW/

It would be fantastic if this issue was resolved in mainstream. I just setup nginx with mod_security and while I'm loving how well it works (after a bit of tuning with the OWASP rules), it would be nice if I could have both the ability to do POST requests and the ability to have modsec to work on them.

Hi @zimmerle @csanders-git, the issue Deny all the POST request #813  have been closed ,but I have installed the modsecurity-2.9.0-RC1 in the Nginx server, the issue is still appearing, after i set the SecRequestBodyAccess to Off, the problem not appear.

Hi @zimmerle,
I find the issue is very insteresting!   if I  use the Domina name to vist the website ,all the post request been stoped by the modsecurity. but when I use the IP address to visit the website,the post request can pass.  when use the HTTPS protocal, use the domina name to visit the website,  the post request can pass.

Hi @wangxianwei for those nginx modifications please use the branch nginx_refactoring, available here:
https://github.com/SpiderLabs/ModSecurity/tree/nginx_refactoring
The modification of the branch nginx_refactoring will be merge into mainline and released once we mitigate all the issues listed here.

Hi @Zimmerle, I have download the version from the branch nginx_refactoring, but i dont know how to compile it, because there is no configure file . can you please give me the complete installation package.

Hi @wangxianwei, that is a development version. The configure is generated after the execution of the ./autogen.sh

Hi @Zimmerle,
I have installed the version from the branch nginx_refactoring,but the issue is not resolved. please see the folliowing information.
wwwlogs
<IP_ADDRESS> - - [21/Jan/2015:09:39:01 +0800] "POST /common/memberLogin.jsp HTTP/1.1" 500 186 "http://www.352.com/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0" -0.034
Error Nginx
2015/01/21 09:39:01 [alert] 11601#0: *354 no upstream configuration, client: <IP_ADDRESS>, server: www.352.com, request: "POST /common/memberLogin.jsp HTTP/1.1", host: "www.352.com", referrer: "http://www.352.com/"
Data
--1ff89643-A--
[21/Jan/2015:09:39:01 +0800] AcAcAcAQqcAcA8AcAcAcAcAc <IP_ADDRESS> 59224 <IP_ADDRESS> 80
--1ff89643-B--
POST /common/memberLogin.jsp HTTP/1.1
Host: www.352.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
Accept: application/json, text/javascript, /; q=0.01
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://www.352.com/
Content-Length: 18
Cookie:
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
--1ff89643-C--
date=1421804526217
--1ff89643-F--
HTTP/1.1
Content-Type: text/html
Content-Length: 186
Connection: close
--1ff89643-E--
^M
500 Internal Server Error^M
^M
500 Internal Server Error^M
nginx^M
^M
^M
--1ff89643-H--
Apache-Handler: IIS
Stopwatch:<PHONE_NUMBER>000041 75947 (- - -)
Stopwatch2:<PHONE_NUMBER>000041 75947; combined=329, p1=136, p2=179, p3=0, p4=0, p5=13, sr=0, sw=1, l=0, gc=0
Response-Body-Transformed: Dechunked
Producer: ModSecurity for nginx (STABLE)/2.9.0-RC2 (http://www.modsecurity.org/).
Server: ModSecurity Standalone
Engine-Mode: "ENABLED"
--1ff89643-K--
--1ff89643-Z--

Hi @Zimmerle,
we have found that when we used the 80 port the Post requests failure to pass, but they can success to pass if we used any other ports . by now we don't know how to troubleshoot the issue. any advice is appreciated.
Regards,

Hi @Zimmerle,
we have found that when we used the 80 port the Post requests failure to pass, but they can success to pass if we used any other ports . by now we don't know how to troubleshoot the issue. any advice is appreciated.
Regards,

Hi @Zimmerle,
we have found that when we used the 80 port the Post requests failure to pass, but they can success to pass if we used any other ports . by now we don't know how to troubleshoot the issue. any advice is appreciated.
Regards,

Hi @Zimmerle,
we have found that when we used the 80 port the Post requests failure to pass, but they can success to pass if we used any other ports . by now we don't know how to troubleshoot the issue. any advice is appreciated.
Regards,

I think that if we use a redirect the problem go away. Someone can try?                                                                                Inviata da dispositivo mobile.                                                                                Da: wangxianweiInviato: giovedì 22 gennaio 2015 14:39A: SpiderLabs/ModSecurityRispondi a: SpiderLabs/ModSecurityCc: zotgeneOggetto: Re: [ModSecurity] NGINX and SecRequestBodyAccess On option, don't pass POST request to Upstream Server (#664)Hi @Zimmerle,
we have found that when we used the 80 port the Post requests failure to pass, but they can success to pass if we used any other ports . by now we don't know how to troubleshoot the issue. any advice is appreciated.
Regards,
—Reply to this email directly or view it on GitHub.

@zotgene, try this https://github.com/SpiderLabs/ModSecurity/pull/826
On Thu, Jan 22, 2015 at 5:11 PM, zotgene<EMAIL_ADDRESS>wrote:

I think that if we use a redirect the problem go away. Someone can try?
Inviata da dispositivo mobile. Da: wangxianweiInviato: giovedì 22 gennaio
2015 14:39A: SpiderLabs/ModSecurityRispondi a: SpiderLabs/ModSecurityCc:
zotgeneOggetto: Re: [ModSecurity] NGINX and SecRequestBodyAccess On option,
don't pass POST request to Upstream Server (#664)Hi @Zimmerle,
we have found that when we used the 80 port the Post requests failure to
pass, but they can success to pass if we used any other ports . by now we
don't know how to troubleshoot the issue. any advice is appreciated.
Regards,
—Reply to this email directly or view it on GitHub.
—
Reply to this email directly or view it on GitHub
https://github.com/SpiderLabs/ModSecurity/issues/664#issuecomment-71034461
.

--
Donatas

Hello, any news?

Hello,
Fix in https://github.com/SpiderLabs/ModSecurity/tree/nginx_refactoring branch works well for us.
Is there any chance for it to be released in nearest stable version?

Hi @daniilyar-confyrm,
The `nginx_refactoring' branch in fact contains a lot of fixes, however, some of those fixes may be a problem depending on your environment. We are studying this possibility to release it.
Most likely the next stable release for nginx will be the version 3.0 with the ModSecurity nginx connector: https://github.com/SpiderLabs/ModSecurity-nginx
We don't have a release date yet.

Example of error:
2016/11/18 17:34:15 [alert] 13738#0: *18 no upstream configuration, client: <IP_ADDRESS>, server: waf.xxxx.xxxx.cloud, request: "POST /2016F/Session/KeepSessionAliveJson HTTP/1.1", host: "waf.xxxx.xxxx.cloud", referrer: "http://waf.xxxx.xxxx.cloud/2016F/Booking?Albergo=900000&Lingua=0&IdRequest=1078489321"
My system:
root@waf:/usr/local/nginx/logs# uname -a
Linux waf 4.4.0-45-generic #66-Ubuntu SMP Wed Oct 19 14:12:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
root@waf:/usr/local/nginx/logs# nginx -v
nginx version: nginx/1.10.2
Version of ModSecurity installed:
https://github.com/SpiderLabs/ModSecurity/tree/nginx_refactoring
cd /usr/src/
git clone https://github.com/SpiderLabs/ModSecurity.git
cd /usr/src/modsecurity
./autogen.sh
./configure --enable-standalone-module --disable-mlogc

Hi @maxmonterumisi
Please use the ModSecurity-nginx connector:
https://github.com/SpiderLabs/ModSecurity-nginx

Marking as won't fix in 2.x. It is no longer a concern in libModSecurity: https://github.com/SpiderLabs/ModSecurity/tree/v3/master


From Xcode only: Failed to package; Command PhaseScriptExecution failed with a nonzero exit code

When I build using flutter run the app starts up in the simulator without any issue. However, when I try to build from inside Xcode, the build fails with the common error in the title. I don't see any other useful error information. I can't run the verbose command because the build from the cmd line works.
I need to be able to run from Xcode because I'd like to create a watch extension that needs to be started from there.
I have tried starting up the starter app which works.
I have a team mate who installed the same commit I have and it works just fine for him.
I have followed every suggestion on every thread with this error: reinstalling pods, pub updates, restarting, fully reinstalling Xcode twice, etc. I've been going through those steps for the past 3 days in every combo possible that I can think of. I even saw someone mention corrupted assets. I deleted all of my image assets: same error.
I deleted every cache that I can find to try and fix this. Nothing has worked so far.
Steps to Reproduce

I have no idea how to reproduce this. I have a team mate working on the app with me who is not able to reproduce this with the same code base.
Logs

Logs

When I run with flutter run the build works. The error only shows up if I try to launch the app from inside the Xcode IDE.
 Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.
[✓] Xcode - develop for iOS and macOS (Xcode 14.1)
[✗] Chrome - develop for the web (Cannot find Chrome executable at /Applications/Google
    Chrome.app/Contents/MacOS/Google Chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[✓] Android Studio (version 2021.2)
[✓] IntelliJ IDEA Ultimate Edition (version 2022.2.3)
[✓] VS Code (version 1.73.1)
[✓] Connected device (1 available)
[✓] HTTP Host Availability

! Doctor found issues in 2 categories.

Alright, the team did a little more trial and error. This error is only showing up when trying to launch the app in Xcode to a Simulator. And we were able to verify that we both get the same errors.
Works:
flutter run -> real device
flutter run -> simulator
Xcode Play -> real device
Doesn't Work:
Xcode Play -> Simulator

Build Runner_2022-11-21T07-47-42.txt
The sample project does work as expected.

The sample project does work as expected.

Please check Xcode configurations or retry without using 3rd plugins/package (for eg: reactive_ble_mobile, watch_connectivity, etc). It depends on your implementation that we can not help to investigate in this case.
It seems to be an Xcode problem rather than Flutter. Has the project worked well before? If so, what was the Flutter and Xcode versions? Also, you may check your team mate's Xcode version.

We are both on Xcode 14.1. The project has been working for some time using this method. I can't say exactly when though that this started happening. Is there no way to find a more detailed error code from this script? Some way to find out which line is failing? But since it works with flutter run that makes me less inclined to believe that it's third party packages.


call one#highlight does not seem to work in init.vim

call one#highlight('CursorLineNr', '282c33', '99c37e', 'none') only seems to work when called explicitly.
I currently have the code below in my init.vim
set background=dark
colorscheme one
call one#highlight('CursorLineNr', '282c33', '99c37e', 'none')

Most likely can be fixed by putting call one#highlight after the following two commands,
filetype plugin indent on
syntax on

see https://github.com/neovim/neovim/issues/5730#issuecomment-265605828


Make Option reuired if another Option is set

Let's say i have the Verb createuser with the Options: Name, Age, Country, ZIPCode and City
How can I define, that if Country is set, ZIPCode and City become required?
So the following would be valid:
MyApp.dll createuser -n "Name" -a "Age"
MyApp.dll createuser -n "Name" -a "Age" -Country "USA" -ZIPCode "12345" -City "NYC"
And this would be Invalid:
MyApp.dll createuser -n "Name" -a "Age" -Country "USA"
MyApp.dll createuser -n "Name" -a "Age" -ZIPCode "12345" -City "NYC"

I definitely need this feature, too. Having options that are mutually exclusive of each other but not exclusive of other groups of options is a necessity, e.g., mycommand (-a|-b) (-c|-d), where -a and -b are exclusive of each other, but they can exist with -c or -d, and -c and -d are mutually exclusive.
(Think plantravel (-f|-c) (-p|-c), where -f means to pack formal clothes, -c means to pack comfortable clothes, -p means to travel by plane, and -c means to travel by car.)


[Table] Sorting and selecting table is working as expected with repeated  row's values

Sorting and selecting table is working as expected with repeated row's values

[x] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
If a row of the table has a duplicated value from another one, and you want to sort by asc and desc on and on, it will add new rows at the top of the table even though the limit of rows per page is exceed
Expected Behavior 🤔
Even if there are duplicated values, there shouldn't be added new rows

Steps to Reproduce 🕹
You can use this codesandbox to try this out
https://codesandbox.io/s/material-demo-forked-vmksp?file=/demo.tsx
I copied the source code from the Sorting and selecting demo table and I changed the value of the first row 'Cupcake' to 'Oreo'
Steps:

Open the codesandbox link pasted above
Verify that 'Oreo' value is repeated on line 47 and 59
Pres Dessert (100g serving) several times, that will trigger the sorting feature
Verify that Oreo is being Added at the top of the table

Context 🔦
I wanted to use the table, and when I populated it with my own data this behavior came up
Your Environment 🌎
I'm using Firefox, IDK why is not listed below 👀
System:
    OS: Windows 10 10.0.19042
  Binaries:
    Node: 12.18.3 - F:\nodejs\node.EXE
    Yarn: 1.22.10 - F:\nodejs\yarn.CMD
    npm: 7.6.3 - F:\nodejs\npm.CMD
  Browsers:
    Chrome: 89.0.4389.90
    Edge: Spartan (44.19041.423.0), Chromium (89.0.774.57)
  npmPackages:
    @material-ui/core: ^4.11.3 => 4.11.3
    @material-ui/data-grid:  4.0.0-alpha.23
    @material-ui/icons: ^4.11.2 => 4.11.2
    @material-ui/lab: ^4.0.0-alpha.57 => 4.0.0-alpha.57
    @material-ui/styles:  4.11.3
    @material-ui/system:  4.11.3
    @material-ui/types:  5.1.0
    @material-ui/utils:  4.11.2
    @types/react: ^17.0.0 => 17.0.3
    react: ^17.0.1 => 17.0.1
    react-dom: ^17.0.1 => 17.0.1
    typescript: ^4.1.2 => 4.2.3

tip, you can't give it the same id.


[Bug]: pdf link error

Bug description
Recently, I used puppeteer to generate PDF files, but I found a bug.
The phenomenon is that when there are two links, the second link will wrap. At this time, the display of the first link will also become the second, and there will be errors when clicking.
The following is the reproduced code.
const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({ args: ['--no-sandbox', '--disable-setuid-sandbox'] });
  const page = await browser.newPage();
  // The following `here way` text breaks, and the generated bb.pdf is problematic
  await page.setContent(`Most things that you can do manually in the browser can be done using Puppeteer!<a href="https://example.com/aa.html">here</a>, and <a href="https://example.com/bb.html">here way</a>.`,
  );
  await page.pdf({
    path: 'aa.pdf',
    printBackground: true,
    format: 'a4',
    margin: {
      top: '20mm',
      right: '20mm',
      bottom: '20mm',
      left: '20mm',
    },
  });

  // Add a few words and squeeze `here way` to the next line, which is no problem
  await page.setContent(`Most things that you can do manually in the browser can be done using Puppeteer!<a href="https://example.com/aa.html">here</a>, and this is <a href="https://example.com/bb.html">here way</a>.`,
  );
  await page.pdf({
    path: 'bb.pdf',
    printBackground: true,
    format: 'a4',
    margin: {
      top: '20mm',
      right: '20mm',
      bottom: '20mm',
      left: '20mm',
    },
  })

  await browser.close();
})();

The following is the link display when moving to PDF:

This is a very strange thing. I hope I can get help. Thanks!
Puppeteer version
17.1.2 and 16.1.0
Node.js version
16.16.0
npm version
8.11.0
What operating system are you seeing the problem on?
Linux, macOS
Relevant log output
No response

Does it happen with the regular print(save to pdf) dialog in the headful mode?

Does it happen with the regular print(save to pdf) dialog in the headful mode?

Thank you for your reply. It's a sad thing. When I export my web page with chrome and safari, it's the same.
Is this a browser problem or a PDF problem?

I am not sure but if the issue happens with the regular Chrome print dialog, the best way is to file an issue to crbug.com

OK. I get it.
By the way, https://bugs.chromium.org/ Is it one with crbug.com?

yes, it's the same website: specifically https://bugs.chromium.org/p/chromium/issues

Thanks. I'm going to mention this issue.
However, just now I came up with a solution to my business bug. Just add a style  word-break: keep-all to my <a> tag to force it to wrap lines, although it is not elegant enough.


An error

at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- End of inner exception stack trace ---
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset, Int32 count)
at System.Net.Security._SslStream.StartFrameHeader(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security._SslStream.StartReading(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security._SslStream.ProcessRead(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.Read(Byte[] buffer, Int32 offset, Int32 count)
at Leaf.xNet.HttpResponse.ReceiverHelper.ReadLine()
at Leaf.xNet.HttpResponse.ReceiveStartingLine()
at Leaf.xNet.HttpResponse.LoadResponse(HttpMethod method, Boolean trackMiddleHeaders)
--- End of inner exception stack trace ---
at Leaf.xNet.HttpResponse.LoadResponse(HttpMethod method, Boolean trackMiddleHeaders)
at Leaf.xNet.HttpRequest.ReceiveResponseHeaders(HttpMethod method)
at Leaf.xNet.HttpRequest.Request(HttpMethod method, Uri address, HttpContent content)
at Leaf.xNet.HttpRequest.Raw(HttpMethod method, Uri address, HttpContent content)
at Leaf.xNet.HttpRequest.Raw(HttpMethod method, String address, HttpContent content)
at Leaf.xNet.HttpRequest.Get(String address, RequestParams urlParams)
at Youtube_Viewers.Program.Main(String[] args) in D:\projects\Youtube-Viewers\Youtube-Viewers\Program.cs:line 146

Tried debugging the error
SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
error 1
IOException: Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

Tried debugging the error
SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
error 1
IOException: Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.


Move the smoke tests to this repo

Previously the smoke tests had their own repo, but moving forward we
are going to have them as part of this repo in the smoke-tests dir,
and eventually, will run as part of the CI.
https://www.pivotaltracker.com/story/show/150475465

Sure, I'll change those URL.


✨ Deprecate Python 3.7

Description
This PR deprecates Python 3.7, updates all of camply's dependencies, and fixes the dependencies in a more application-like fashion.
Closes https://github.com/juftin/camply/issues/232
Has This Been Tested?
Yes

:tada: This PR is included in version 0.18.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


VAL fails to validate temporal plan

Hi,
I have an issue with VAL validating a plan generated from popf.
Below are the attached files with the plan created by popf, and the domain and problem files. The plan generated (from popf) is 'rover-plan.pddl', and then validated with VAL.
VAL gives an error about unsatisfied preconditions, which does not sound right. This is in the VAL output file.
Help appreciated. Thanks!
KCLRover.zip

The latest VAL validates this plan correctly. Did you specify the  -t 0.001 epsilon? Popf uses that value, while VAL defaults to 0.01.
Checking plan: [...]rover-plan.pdd
Plan executed successfully - checking goal
Plan valid
Final value: 109.618

Successful plans:
Value: 109.618
[...]rover-plan.pdd 109.618

Please confirm, so we can close the issue.

Hey, Thanks!


No Promise polyfill when using browserify

var embed = require('embed-js'); returns src/embed.js which does not load the es6-promise dependency. In fact, such a dependency is not used at all in the whole "v4" code.
Shouldn't src/embed.js load it?:
var Promise = require('es6-promise');

[...]

There may be the condition when the user may use RequireJS and would like to load es6-promise only when it is not present in the browser. So I will rather leave it to the user to load it in the way he/she wants. But I should definitely update the documentation regarding this.
At the same time, I am open to load this internally if someone can convince me that it will be better.


Is it possible to change the discrete rotation steps from 22.5 to 15 degrees?

Now the discrete steps when pressing the SHIFT key are 22.5 degrees. But 15 degrees is IMHO more useful/logical because then it will be possible to make also 30, 60 etcetera degree diagonals (which are useful in for example transit map sketches)
This is related to my  #1351 issue

I just found diagrams.net uses 15-degree locking. So, at least it's another example to indicate the reasoning.
I'm OK with it. @lipis @dwelle ?

30, 45, 90 are there.. so I'm fine with it.

I'm down too. Figma and Affinity uses 15deg, as well.

OK, I'll draft a PR.


Locales related problem

Hi,
There is problem due reading README.rst during installation:
 Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-v975wf9k/get-media-files/setup.py", line 91, in <module>
        readme = f.read()
      File "/usr/lib/python3.5/encodings/ascii.py", line 26, in decode
        return codecs.ascii_decode(input, self.errors)[0]
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 312: ordinal not in range(128)

There is some solution https://github.com/pytorch/text/issues/77#issuecomment-319206865, but I don't like it.
Can we deal with it somehow else? Maybe try to fix reading README.rst or something else.
Thanks in advance!

for filtering out non ascii chars in python,
>>> def is_ascii(s):
...     return ord(s) < 128
...
>>> text = open('README.rst', 'r').read()
>>> text2 = ''.join(list(filter(is_ascii, text)))

then print text2
script feels like it's not very clean or simple as you'd expect, guess a list comprehension is a little more readable than calling filter
had some special ... and a certain ' char in the old readme somehow
made commit & new tag