Error when running locally

Hello, please tell me how to deal with this error after running the project with pnpm dev? Thanks!
bridge:dev:  ⨯ AxiosError [AggregateError]
bridge:dev:     at AxiosError.from (file:///Users/IdeaProjects/superbridge-app/node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/core/AxiosError.js:89:14)
bridge:dev:     at RedirectableRequest.handleRequestError (file:///Users/IdeaProjects/superbridge-app/node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/adapters/http.js:610:25)
bridge:dev:     at RedirectableRequest.emit (node:events:519:28)
bridge:dev:     at eventHandlers. (/Users/IdeaProjects/superbridge-app/node_modules/.pnpm/follow-redirects@1.15.6/node_modules/follow-redirects/index.js:38:24)
bridge:dev:     at ClientRequest.emit (node:events:519:28)
bridge:dev:     at Socket.socketErrorListener (node:_http_client:500:9)
bridge:dev:     at Socket.emit (node:events:519:28)
bridge:dev:     at emitErrorNT (node:internal/streams/destroy:169:8)
bridge:dev:     at emitErrorCloseNT (node:internal/streams/destroy:128:3)
bridge:dev:     at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
bridge:dev:     at Axios.request (file:///Users/IdeaProjects/superbridge-app/node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/core/Axios.js:45:41)
bridge:dev:     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
bridge:dev:     at async getServerSideProps (webpack-internal:///./pages/[[...index]].tsx:101:26) {
bridge:dev:   code: 'ECONNREFUSED',
bridge:dev:   errors: [
bridge:dev:     Error: connect ECONNREFUSED ::1:80
bridge:dev:         at createConnectionError (node:net:1647:14)
bridge:dev:         at afterConnectMultiple (node:net:1677:16) {
bridge:dev:       errno: -61,
bridge:dev:       code: 'ECONNREFUSED',
bridge:dev:       syscall: 'connect',
bridge:dev:       address: '::1',
bridge:dev:       port: 80
bridge:dev:     },
bridge:dev:     Error: connect ECONNREFUSED <IP_ADDRESS>:80
bridge:dev:         at createConnectionError (node:net:1647:14)
bridge:dev:         at afterConnectMultiple (node:net:1677:16) {
bridge:dev:       errno: -61,
bridge:dev:       code: 'ECONNREFUSED',
bridge:dev:       syscall: 'connect',
bridge:dev:       address: '<IP_ADDRESS>',
bridge:dev:       port: 80
bridge:dev:     }
bridge:dev:   ],
bridge:dev:   config: {
bridge:dev:     transitional: {
bridge:dev:       silentJSONParsing: true,
bridge:dev:       forcedJSONParsing: true,
bridge:dev:       clarifyTimeoutError: false
bridge:dev:     },
bridge:dev:     adapter: [ 'xhr', 'http' ],
bridge:dev:     transformRequest: [ [Function: transformRequest] ],
bridge:dev:     transformResponse: [ [Function: transformResponse] ],
bridge:dev:     timeout: 0,
bridge:dev:     xsrfCookieName: 'XSRF-TOKEN',
bridge:dev:     xsrfHeaderName: 'X-XSRF-TOKEN',
bridge:dev:     maxContentLength: -1,
bridge:dev:     maxBodyLength: -1,
bridge:dev:     env: { FormData: [Function], Blob: [class Blob] },
bridge:dev:     validateStatus: [Function: validateStatus],
bridge:dev:     headers: Object [AxiosHeaders] {
bridge:dev:       Accept: 'application/json, text/plain, /',
bridge:dev:       'Content-Type': undefined,
bridge:dev:       'User-Agent': 'axios/1.6.8',
bridge:dev:       'Accept-Encoding': 'gzip, compress, deflate, br'
bridge:dev:     },
bridge:dev:     params: { names: [Array] },
bridge:dev:     method: 'get',
bridge:dev:     url: '/api/bridge/deployments',
bridge:dev:     data: undefined
bridge:dev:   },
bridge:dev:   request: <ref *1> Writable {
bridge:dev:     _events: {
bridge:dev:       close: undefined,
bridge:dev:       error: [Function: handleRequestError],
bridge:dev:       prefinish: undefined,
bridge:dev:       finish: undefined,
bridge:dev:       drain: undefined,
bridge:dev:       response: [Function: handleResponse],
bridge:dev:       socket: [Function: handleRequestSocket]
bridge:dev:     },
bridge:dev:     _writableState: WritableState {
bridge:dev:       highWaterMark: 16384,
bridge:dev:       length: 0,
bridge:dev:       corked: 0,
bridge:dev:       onwrite: [Function: bound onwrite],
bridge:dev:       writelen: 0,
bridge:dev:       bufferedIndex: 0,
bridge:dev:       pendingcb: 0,
bridge:dev:       [Symbol(kState)]: 17580812,
bridge:dev:       [Symbol(kBufferedValue)]: null
bridge:dev:     },
bridge:dev:     _maxListeners: undefined,
bridge:dev:     _options: {
bridge:dev:       maxRedirects: 21,
bridge:dev:       maxBodyLength: Infinity,
bridge:dev:       protocol: 'http:',
bridge:dev:       path: '/api/bridge/deployments?names[]=arbitrum-one',
bridge:dev:       method: 'GET',
bridge:dev:       headers: [Object: null prototype],
bridge:dev:       agents: [Object],
bridge:dev:       auth: undefined,
bridge:dev:       family: undefined,
bridge:dev:       beforeRedirect: [Function: dispatchBeforeRedirect],
bridge:dev:       beforeRedirects: [Object],
bridge:dev:       hostname: 'localhost',
bridge:dev:       port: '',
bridge:dev:       agent: undefined,
bridge:dev:       nativeProtocols: [Object],
bridge:dev:       pathname: '/api/bridge/deployments',
bridge:dev:       search: '?names[]=arbitrum-one'
bridge:dev:     },
bridge:dev:     _ended: true,
bridge:dev:     _ending: true,
bridge:dev:     _redirectCount: 0,
bridge:dev:     _redirects: [],
bridge:dev:     _requestBodyLength: 0,
bridge:dev:     _requestBodyBuffers: [],
bridge:dev:     _eventsCount: 3,
bridge:dev:     _onNativeResponse: [Function (anonymous)],
bridge:dev:     _currentRequest: ClientRequest {
bridge:dev:       _events: [Object: null prototype],
bridge:dev:       _eventsCount: 7,
bridge:dev:       _maxListeners: undefined,
bridge:dev:       outputData: [],
bridge:dev:       outputSize: 0,
bridge:dev:       writable: true,
bridge:dev:       destroyed: true,
bridge:dev:       _last: true,
bridge:dev:       chunkedEncoding: false,
bridge:dev:       shouldKeepAlive: true,
bridge:dev:       maxRequestsOnConnectionReached: false,
bridge:dev:       _defaultKeepAlive: true,
bridge:dev:       useChunkedEncodingByDefault: false,
bridge:dev:       sendDate: false,
bridge:dev:       _removedConnection: false,
bridge:dev:       _removedContLen: false,
bridge:dev:       _removedTE: false,
bridge:dev:       strictContentLength: false,
bridge:dev:       _contentLength: 0,
bridge:dev:       _hasBody: true,
bridge:dev:       _trailer: '',
bridge:dev:       finished: true,
bridge:dev:       _headerSent: true,
bridge:dev:       _closed: true,
bridge:dev:       socket: [Socket],
bridge:dev:       _header: 'GET /api/bridge/deployments?names[]=arbitrum-one HTTP/1.1\r\n' +
bridge:dev:         'Accept: application/json, text/plain, /\r\n' +
bridge:dev:         'User-Agent: axios/1.6.8\r\n' +
bridge:dev:         'Accept-Encoding: gzip, compress, deflate, br\r\n' +
bridge:dev:         'Host: localhost\r\n' +
bridge:dev:         'Connection: keep-alive\r\n' +
bridge:dev:         '\r\n',
bridge:dev:       _keepAliveTimeout: 0,
bridge:dev:       _onPendingData: [Function: nop],
bridge:dev:       agent: [Agent],
bridge:dev:       socketPath: undefined,
bridge:dev:       method: 'GET',
bridge:dev:       maxHeaderSize: undefined,
bridge:dev:       insecureHTTPParser: undefined,
bridge:dev:       joinDuplicateHeaders: undefined,
bridge:dev:       path: '/api/bridge/deployments?names[]=arbitrum-one',
bridge:dev:       _ended: false,
bridge:dev:       res: null,
bridge:dev:       aborted: false,
bridge:dev:       timeoutCb: [Function: emitRequestTimeout],
bridge:dev:       upgradeOrConnect: false,
bridge:dev:       parser: null,
bridge:dev:       maxHeadersCount: null,
bridge:dev:       reusedSocket: false,
bridge:dev:       host: 'localhost',
bridge:dev:       protocol: 'http:',
bridge:dev:       _redirectable: [Circular *1],
bridge:dev:       [Symbol(shapeMode)]: false,
bridge:dev:       [Symbol(kCapture)]: false,
bridge:dev:       [Symbol(kBytesWritten)]: 0,
bridge:dev:       [Symbol(kNeedDrain)]: false,
bridge:dev:       [Symbol(corked)]: 0,
bridge:dev:       [Symbol(kOutHeaders)]: [Object: null prototype],
bridge:dev:       [Symbol(errored)]: null,
bridge:dev:       [Symbol(kHighWaterMark)]: 16384,
bridge:dev:       [Symbol(kRejectNonStandardBodyWrites)]: false,
bridge:dev:       [Symbol(kUniqueHeaders)]: null
bridge:dev:     },
bridge:dev:     _currentUrl: 'http://localhost/api/bridge/deployments?names[]=arbitrum-one',
bridge:dev:     [Symbol(shapeMode)]: true,
bridge:dev:     [Symbol(kCapture)]: false
bridge:dev:   },
bridge:dev:   cause: AggregateError [ECONNREFUSED]:
bridge:dev:       at internalConnectMultiple (node:net:1117:18)
bridge:dev:       at afterConnectMultiple (node:net:1684:7) {
bridge:dev:     code: 'ECONNREFUSED',
bridge:dev:     [errors]: [ [Error], [Error] ]
bridge:dev:   },
bridge:dev:   page: '/'
bridge:dev: }

My guess is you haven't setup your .env file. See .env.example for reference.


Merge in Cloud IoT Hack project as ATC Simulator

This PR merges in the Cloud IoT Hack workshop content as a project in this repository.

One question ... is there a way to host the projects embedded assets so that they show up in the VSCode extension?

@WilliamBerryiii  only the project under the Arduino libraries folder can be showed up in VS Code, it's the default behavior of Arduino but we're planning to extend it.

Ok sounds good! Let me know when that’s opened up and I’ll push the chip code.
Get Outlook for iOShttps://aka.ms/o0ukef

From: Arthur Ma<EMAIL_ADDRESS>Sent: Monday, November 6, 2017 6:15:32 PM
To: Microsoft/azure-iot-developer-kit
Cc: Bill Berry; Mention
Subject: Re: [Microsoft/azure-iot-developer-kit] Merge in Cloud IoT Hack project as ATC Simulator (#173)
@WilliamBerryiiihttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fwilliamberryiii&data=02|01|wberry%40microsoft.com|e31eaf45951b40517ffa08d525856c81|72f988bf86f141af91ab2d7cd011db47|1|0|636456177335623470&sdata=2yJO16%2B2aHPhr1SUNpMAxU%2ByfVg2CCClH9XRQKp7Ts0%3D&reserved=0 only the project under the Arduino libraries folder can be showed up in VS Code, it's the default behavior of Arduino but we're planning to extend it.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fazure-iot-developer-kit%2Fpull%2F173%23issuecomment-342353661&data=02|01|wberry%40microsoft.com|e31eaf45951b40517ffa08d525856c81|72f988bf86f141af91ab2d7cd011db47|1|0|636456177335623470&sdata=6dl0XMqJzDmvSiAgSX3hHc4%2BA%2BohJmyx1WerPb3Ijkg%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAEMjYnCoMoWfzpj2VXtsRcTknd5zazbpks5sz71EgaJpZM4QPBxL&data=02|01|wberry%40microsoft.com|e31eaf45951b40517ffa08d525856c81|72f988bf86f141af91ab2d7cd011db47|1|0|636456177335623470&sdata=Jx0Cvgt0tV19lAwNqdL13UoGUCSW0H%2BVMDBQCAY1H9Q%3D&reserved=0.


is it possible to catch function calls from within jsx handlers in the render function?

Something like <Element onClick={this.function()} /> is pretty much always a mistake as it executes the function during render. Is it possible to catch cases which are like this? I think the only real valid types should be onClick={() => ...} or onClick={this.bound_fn} ie a function call in a render element is probably an issue most of the time.

Have you tried eslint-plugin-react-perf ?

unit tests should be easily able to verify that you passed a function when expected as a prop.


/response-headers/ view with tests.

As promised, here is the response headers code. Note the loop to ensure that the content length mentioned in the json body is actually the right length of the body including that number itself. It's a minor self referential feedback situation, that should loop at most 3 times.

This is fantastic. Thanks!

Pulled!


Module 4: Lab 14: Azure Security Center

Module   4: Lab 14: Azure Security Center
Ex 1   Task 1 Step 4: "On the Security Center | Getting started blade, click   Pricing & settings." should be "On the Security Center resource   menu, select Pricing & settings."
Ex 1   Task 1 Step 7: "On the Settings blade, click Data Collection."   should be "On the Settings blade, click Auto Provisioning."
Ex 1   Task 1 Step 8: "On the Settings | Data Collection blade, set Auto   provisioning to On." should be "On the Settings | Auto provisioning   blade, set Log Analytics agent for Azure VMs to On and then select Edit   Configuration."
Ex 1   Task 1 Step 9: "Use another workspace" should be "Connect   Azure VMs to a different workspace"
Ex 1   Task 1 Step 9: at end add "then select Apply, and when prompted, select   Existing and new VMs, and then select Apply again"
Ex 1   Task 1 Step 10: "On the Settings | Data Collection blade, click   Save." should be "On the Settings | Auto provisioning blade, click   Save."
Ex 1   Task 2 Step 2: "On the Security Center | Overview blade, in the POLICY   & COMPLIANCE section, click Secure Score." should be "On the   Security Center resource menu, in the Cloud security section, click Secure   Score."
Ex 1   Task 2 Step 3: "On the Cloud Security | Secure Score blade, click on   your subscription." should be "On the Secure Score blade, scroll   down and click on your subscription."
Ex 1   Task 2 Step 5: May have to wait for myVM to appear in the list. Try refresh   of browser.
Ex 1   Task 3 Step 2: May have to wait for myVM to appear in the list. Try refresh   of browser.

updated


CI / dev experience remaining issues

[ ] add readme to npm homepage https://www.npmjs.com/package/@mlvis/manifold
[ ] add publishing script to Travis CI
[ ] auto bump version in the main package.json (currently ocular-publish only bumps versions in modules package.json
[ ] install storybook for development purpose
[ ] properly structure published module (below is the current structure, which causes import Manifold from '@mlvis/manifold' to not work

lerna bump typically only bumps modules in the workspace. Since example/ and website/ are not in the workspace (and supposedly not), it is not necessary for "bump" to work for them.

But that will create confusion. Imagine someone new will have to go to modules subdirectories to find out what current version is.

Not sure if this is a relevant comment, but I prefer using synchronized versioning of submodules. I.e. all modules get published with the same version even if only some have changed. That version is then in lerna.json in the root.

Not sure if this is a relevant comment, but I prefer using synchronized versioning of submodules. I.e. all modules get published with the same version even if only some have changed. That version is then in lerna.json in the root.

We are already doing that

I changed my mind and I think aligning the versions on website/ and example/ is actually a good idea, because we will have a documentation website later on and the documentation version should align with the module versions, so should be the demo in or referenced by the documentation.


Improve & correct the opnsense widget documentation

@shamoon I wonder if I might open this up for discussion again? After seeing the discussion on the previous PR regarding the opnsense documentation.
Following the linked docs leaves people potentially creating an api key for their root user on opnsense with more permissions than homepage requires.  (Don't worry my root user is not able to login to the webui, I disabled it)
It's not documented in the homepage docs what access the api requires for the widget to be functional.  I had to enable the widget, analyse the error messages and then give it permissions based on what the error messages were.  (Not difficult, but I'm not completely new to the opnsense API stuff either)
Whilst I do understand the need for succinct documentation, this PR is certainly no more lengthy than the current documentation for proxmox.
I certainly don't want to tread on @jhollowe toes here, but my version is a little shorter, I'd already forked and written it before I thought to check if anything had been done before and came upon the previous PR by @jhollowe and I don't mind if you reopen his PR in preference to mine, but I do think it would be beneficial to flesh out the docs a little bit when it comes down to API access to a firewall.
Also, I don't believe the uptime field is functional and I've removed that from the docs.   Reference

Cool thanks for taking the time. Hopefully the other person is happy with this too
Yeah I hope @jhollowe is good with things, definitely no slight or insult intended and thanks @shamoon for being so open to discussing this again and so friendly!


Update to v5.0

Hi, can you please update sendy to the new version v5.0.
I can provide the v5.0 if you don't have the necessary new license key, just hit me up.

It would be really nice to update to version 5.0.
Any ETA as to when this might be possible?

It would be really nice to update to version 5.0.
Any ETA as to when this might be possible?

#6 I created a PR to update to 5.2

Resolved with PR #6


Test for unsupported :recursive value

thanks ♥

:tada: :tada: :tada: :tada: :tada:

There a bug on this PR, I'll submit another PR. Sorry about that.


Support for -contains and -notcontaints for ForEach-Object for pipelines

Summary of the new feature / enhancement
I would like to be able to do:
1,2,3,4,5,6 | % -contains 3

# instead of

(1,2,3,4,5,6) -contains 3

this would be different from the already proposed single value operation of Where-Object in that, it would operate on the entire collection instead of each single value, e.g.:
'foobarbaz','quux' | ? -match 'bar'
# 'foobarbaz'

'foo','bar','baz' | % -contains 'bar'
# True

Proposed technical implementation details (optional)
No response

What's wrong with just the following?
1,2,3,4,5,6 -contains 3

Not sure if I'm missing something but this works and will output $true because it is operating on the collection itself rather than each member as requested. If you wish to pipe in an array as an actual object rather than each individual members you need to use the unary comma operator https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_operators?view=powershell-7.2#comma-operator-. This is essentially the same as Write-Object .. -NoEnumerate where it tells PowerShell not to output each IEnumerable members as distinct objects but rather output the IEnumerable object as 1 individual value.
Not sure if I'm missing something with the request?

My example did not demonstrate this, but the issue is that this won't work with longer pipelines, e.g.:
'foo','bar','baz' | %{ $_.toupper() } -contains 'BAR'

# will not work, I have to do:

('foo','bar','baz' | %{ $_.toupper() }) -contains 'BAR'

so this feature would allow not parenthesizing a potentially large command with many pipelines.

why do you need piping?
('foo','bar','baz').toupper() -contains 'BAR'
True

That was just an example, I meant any arbitrary pipeline chain.

This is what I mean:
function contains($what) { $input -contains $what }

1,2,3,4 | contains 3
# True

the operation is on the pipeline input, as opposed to a collection object.

Where-Object [-Property]  [[-Value] ] -Contains [-InputObject ] []

Where-Object already support many operation including -Contains. Only limitation is Property is mandatory.

The Where-Object already support many operation including -Contains. Only limitation is Property is mandatory.

The difference is that Where-Object operates on each element in the collection represented by the pipeline input rather than the collection as a whole.

The difference is that Where-Object operates on each element in the collection represented by the pipeline input rather than the collection as a whole.

That's not something specific to Where-Object. PowerShell always enumerates the value when creating pipeline output which is why it operates on each member. By using the comma operator you output the object without enumeration.
# Each array member is output individually
@(1, 2, 3) | ForEach-Object { "Entry - $_" }

Write-Output @(1, 2, 3)  | ForEach-Object { "Entry - $_" }

# The array is output as a single object
,@(1, 2, 3) | ForEach-Object { "Entry - $_" }

Write-Output @(1, 2, 3) -NoEnumerate | ForEach-Object { "Entry - $_" }

@iSazonov point still stands in that Where-Object must have a property name specified to use -Contains

I didn't know that, but that doesn't help with not having to parenthesize the command, that is actually even worse.
Also, now that I think about, it should also have -join, to do e.g.:
some | long | pipe | line | % -join ','
# 1,2,3,4,5

Also, and I brought this up before on the discord, if we have a syntax to NOT enumerate collections that are enumerated in a pipeline, why do we not have the inverse, to DO enumerate collections that are not enumerated in a pipeline, such as strings and hashes.

Also, now that I think about, it should also have -join, to do e.g.:

IMO what you want is already achievable with the grouping syntax
(some | long | pipe | line) -join ','

I see no benefits of somehow adding support for this in a normal pipeline as it goes against the grain of how things typically work. You could even argue that it adds another way of achieving the same thing making things complicated for newcomers learning PowerShell. If you really want something like this then just define your own join, contain, etc function that behaves as you wish.

Also, and I brought this up before on the discord, if we have a syntax to NOT enumerate collections that are enumerated in a pipeline, why do we not have the inverse, to DO enumerate collections that are not enumerated in a pipeline, such as strings and hashes.

Because things always do that by default with the sole exception of String and IDictionary objects. There's no reason why there isn't AFAIK except that it hasn't been implemented and I don't really see a complelling reason for that over just a simple .GetEnumerator() call for those 2 exceptions.

function contains  {
param ($value)
$Input -contains $value
}

ps > 1,2,3,4,5,6 |  contains 3
True

ps > 1,2,3,4,5,6 | contains 7
False

Does what you want and saves you 3 keystrokes into the bargain.
Do where -?  and have a look at how horrible the parameter sets have become to understand why people won't want to lash this onto ForEach-Object.

Having these functions or something like this would solve the problem of not having to parenthesize long pipelines. I was just thinking it would be a nice thing to have in the core language, regardless of the method. If not, it could be a gallery module.

Now that I think about it more, ForEach-Object would be the wrong place to do this.
What would really be nice is a function or some kind of syntax to group a pipeline into the collection object to do arbitrary operations on. This is already possible with a scriptblock, e.g.:
1,2,3,4,5,6,7 | &{ $input -contains 3 }
# True

But it may be worthwhile to have a nicer way to do this for interactive one-liner use etc..
Somethjing like this maybe:
1,2,3,4,5,6,7 >@ -contains 3
# True
1,2,3,4,5,6,7 >@ -join ','
# 1,2,3,4,5,6,7

it would be fairly obvious what happens here.

Don't forget about @(1,2,3,4,5,6,7).Where({$_ -eq 3}) and @(1,2,3,4,5,6,7).ForEach({$_ -eq 3})


PropertyMatchingRule not Exported from index.ts?

I use version 1.4.1 of json2typescript and noticed the following internal import path in my code:
import { PropertyMatchingRule } from "json2typescript/src/json2typescript/json-convert-enums";
I think PropertyMatchingRule  should be added to https://github.com/AppVision-GmbH/json2typescript/blob/ad6a04b729d13988a71313a20457eec95bd24a9c/index.ts#L3

Yes, I have already seen and fixed that. :)

It is here:
https://github.com/AppVision-GmbH/json2typescript/pull/138/commits/bd3725d97bc27bf552aeafc04a530b4714a4b180

It is here:
bd3725d

just tell me once you published a new version containing this fix

This will be included in the 1.5.0 release coming today, @tobiasschweizer


Makes the OpenAI integration a little more resilient

Adds a couple more retryable errors other than just ratelimiting. OpenAI API tends to be a bit flakey so retrying on more than just ratelimits tends to help.

@microsoft-github-policy-service agree company="Watchful"

Accidentally ran code formatting which mangled the diff. Re-opening another cleaner PR.


PyDBML fails to parse Indexes with names

While working on https://github.com/holistics/dbml/pull/549
I discovered that PyDBML seems to fail if name is set on an index, here is a minimum example:
Table "alembic_version" {
  "version_num" "character varying(32)" [pk, not null]

Indexes {
  version_num [pk, name: 'alembic_version_pk']
}
}

According to the specification, the value name name: 'alembic_version_pk' should be used to set a name to the index if I am not mistaken
Here, it fails with the following error:
  File ".venv/lib/python3.12/site-packages/pydbml/parser/parser.py", line 61, in __new__
    return cls.parse(source)
           ^^^^^^^^^^^^^^^^^
  File ".venv/lib/python3.12/site-packages/pydbml/parser/parser.py", line 77, in parse
    return parser.parse()
           ^^^^^^^^^^^^^^
  File ".venv/lib/python3.12/site-packages/pydbml/parser/parser.py", line 105, in parse
    self._syntax.parse_string(self.source, parseAll=True)
  File ".venv/lib/python3.12/site-packages/pyparsing/core.py", line 1200, in parse_string
    raise exc.with_traceback(None)
pyparsing.exceptions.ParseSyntaxException: Expected ']', found ','  (at char 109), (line:5, col:18)

Hi!
So I checked and DBML CLI indeed does not call it a syntax error, although it doesn't use the name in SQL either:
CREATE TABLE "alembic_version" (
  "version_num" "character varying(32)" PRIMARY KEY NOT NULL,
  PRIMARY KEY ("version_num")
);

I think that you are right and at the very least PyDBML shouldn't raise an exception in this case. I'll merge your PR and prepare the release, thanks a lot for the contribution!

@Vanderhoof Thank you for accepting the fix!


PYP 17/18

Source
Put the year/semester and the question number
Description
Hi, does anyone know how to approach this question?
Screenshots (if any):

List customers = new ArrayList<>(); double now = 0;
for (int i = 0; i < numOfCustomers; ++i) {
Customer customer = new Customer();
customer.setArrivalTime(now);
customer.setServiceTime(rng.genServiceTime());
customers.add(customer);
now += rng.genArrivalTime();
}


FEATURE: Sticky menu

Many of the pages on the Bring sites currently use a sticky menu.
An example is here: http://www.bring.se/tjanster/paket-och-gods/paket-och-pall-till-foretag
Before scrolling

Having scrolled a bit

After scrolling to "Pall" or having clicked "Pall"

The sticky menu has some properties that are worth mentioning:

Before scrolling, it normally sits below a banner, a title and some key information

If there's not enough room for the sticky menu on the screen without covering the top part, it should stay below the top, outside the screen

Before scrolling it tries to sit at the bottom of the screen, no matter the size of the screen
When clicking an item on it, the page smoothly scrolls down to the content linked
When scrolling the page, items are colored green when you reach the content linked
Also when scrolling, the sticky menu will stick to the top of the screen when it reaches there.

+1 for the amazing issue description!

V0.5 deployed
Completed:

[x] Sticky functionality
[x] Link highlighting based on scroll position
[x] Vertical scrolling on overflow
[ ] Testing in actual page
[ ] Finishing touches
[ ] Browser testing


Build wheels for Python 3.9 and 3.10

Remove cp39-macosx_x86_64 from CIBW_SKIP in build action.
Currently craches on building wheel for PyTables due to missing dependencies. Should work when PyTables wheel is available: https://github.com/PyTables/PyTables/issues/823

PyTables wheels are also missing for Python 3.9 on Windows, and are missing for Python 3.10 on all platforms. For consistency, manylinux wheels for 3.9 are now also not build until this is fixed upstream at PyTables.

Python 3.9 and 3.10 wheels available starting from MS²PIP v3.9.0


Not all features are loaded on activating project

To Reproduce
Steps to reproduce the behavior:

Select project Plastic Frog Finder. (This one has a lot of dummy features)

Expected behavior
All features points (shown as map pins) should be displayed on the map
Actual behavior
Only a subset of points are shown. The count increases gradually whenever the app is restarted.

On digging deeper, I found out that all remote features are successfully received by the app and make it to the Doc -> Feature converter. But don't get inserted into the local database. In the test project, out of 87 the total no of insert operations on multiple iterations varied.
e.g.
1st --> 3 inserted
2nd --> 10 inserted
.... and so on
I suspect that it has something to do with the Rx chain. All the calls that are made to the LocalDataStore don't get to a conclusion. To confirm this theory, next I would like to do a non-Rx approach to insert data into room db.

On digging deeper, I found out that all remote features are successfully received by the app and make it to the Doc -> Feature converter. But don't get inserted into the local database. In the test project, out of 87 the total no of insert operations on multiple iterations varied.
e.g.
1st --> 3 inserted
2nd --> 10 inserted
.... and so on
I suspect that it has something to do with the Rx chain. All the calls that are made to the LocalDataStore don't get to a conclusion. To confirm this theory, next I would like to do a non-Rx approach to insert data into room db.

Could a subscription be getting disposed before the data is all written?

I doubt that is the case. I am saying this because for all 87 features the Doc -> Feature conversion occurred but the result wasn't added to db. The entire list of features (from getFeaturesStream) is processed in a single batch and not one after another through upstream. So, if it was a case of premature disposal of subscription, then we wouldn't see all 87 conversions, right?
https://github.com/google/ground-android/blob/master/gnd/src/main/java/com/google/android/gnd/ui/home/mapcontainer/MapContainerViewModel.java#L99
I'll try out other approaches and update my findings here.

Good point. Could some of the inserts be failing, and errors be getting eaten at some point?

If I block the thread after update/insert and run everything on main thread, then all entries get inserted as expected.
You were right, the subscription is getting disposed by the upstream before the entry gets inserted (added logs in onComplete, onSubscribe and onDisposed to validate this. only a few onComplete logs were visible before onDisposed was called)
I also found that FeaturesCollectionReference drop the most latest updates if the downstream can't keep up with the pace. But that seems unrelated to this problem. I thought this was a problem of having no buffer. But flatMapIterable for Flowable by default applies some buffer.

I can't figure out what is missing here. It works only when the insert/update calls are blocking and on UI thread. Need help!


generic Float trait refactor

I thought this was interesting and wanted a bit of rust practice myself, so I did a refactor of your f64 library code to generic Float code. I messed something up with the commit history though, not sure how to fix it. I committed to local without doing git add . so then I tried git commit --amend but it amended to the wrong commit..
Feel free to ignore this PR, I can stay on my own fork as I understand that this project was for your learning purposes.

Thanks! This was on my todo list... I'm just about to head out the door but I'll work out the commit history later today :-)

I moved these changes into 0995447 with commit message linking here - thanks!
I didn't know about the num crate or the traits it provided. Now I do :+1:


Allow for more commonly used options in Rating/Confidence fields of Review form

Some existing venues (for instance, ARR) are already using different formats for the rating/confidence fields. It would be nice if these could be supported:

Scores that use "=" instead of ":". ARR has been using the equals sign for every iteration
Use of decimal places in rating (ie rating of 1.5)

Is it possible to ask ARR to use : instead?
The webfields are parsing the data by : in order to show the stats. We could try to support both but I would prefer to use one single character.
About the decimal places, is this not working?

Some pointers about how to fix this issue. Most of the webfields parse the rating and confidence values:
https://github.com/openreview/openreview-py/blob/master/openreview/conference/templates/areachairWebfield.js#L289
and converts the parsed string to an int value. If we want to support decimal parts then we need to convert the string to a float.

with API 2 this doesn't apply anymore, users can define the values and description in separate fields.


Self links are missing for related and relationship requests

There is no top-level self link for a related and relationship request.

This is fixed in the new package laravel-json-api/laravel - see https://laraveljsonapi.io


Unpleasing alignment of the unfold button

Testing #199155

The button is lined up with the line numbers but is protruding a bit to the left, so it isn't perfectly aligned with the lines.
To fold again, the button is placed to the left
You could consider better alignment depending if it sits between line numbers with 2 digits or 3 digits or showing it to the left like the "revert" arrows or the fold button.

https://github.com/microsoft/vscode/assets/5047891/6f59d372-a5fc-4fec-af14-ea86d18370b6

/duplicate #186333


Add no-cleanup option to gce encrypt and update

the no cleanup option prevents the encryptor
from being deleted. In case more debugging
is required than just looking at the logs
Testing: ran encrypt-gce-image with the no-cleanup
option and interrupted it

👍


refactor(transformer/typescript): remove useless code

#6994  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @Dunqing and the rest of your teammates on  Graphite


remove dependency from Maybe, do not autoprefix with #, but default t…

…o it if neither # nor @ is present for channel name.
Hey @rajivrnair , I've tweaked the logic to allow for private channels and personal messaging.
That Maybe is removed too.
Need to update Readme with the new feature, will do when I have some time

hey @rajivrnair have updated readme already. Please note I've removed comment from sample json file, as if you forget to remove it after copying it willl error out on npm start, leaving you thinking something's broken with the app itself (afterall you did all you were asked for in README).


Sheet dismisses itself when using navigation

Hello, thank you for you library. I've been using it in my project and noticed an issue. I'm using library NavigationBackport to backport NavigationStack to iOS 15.
When using NavigationStack and sheets on 2 screens, sheet on the second screen dismisses itself immediately after it is opened.
Also, when opening sheet on the first screen, it shows warnings in logs:
=== AttributeGraph: cycle detected through attribute 58936 ===
=== AttributeGraph: cycle detected through attribute 58936 ===
=== AttributeGraph: cycle detected through attribute 59088 ===
=== AttributeGraph: cycle detected through attribute 59088 ===

Minimal code example to reproduce:
import SwiftUI
import NavigationBackport
import NativePartialSheet

enum Route {
    case SecondScreen
}

@main
struct iOSApp: App {

    var body: some Scene {
        WindowGroup {
            NBNavigationStack {
                FirstScreen()
                    .nbNavigationDestination(for: Route.self) { route in
                        switch (route) {
                        case .SecondScreen:
                            SecondScreen()
                        }
                    }
            }
        }
    }
}

struct FirstScreen: View {
    @EnvironmentObject private var navigator: PathNavigator
    @State private var sheetPresented = false

    var body: some View {
        VStack {
            Button(action: { sheetPresented = true }) {
                Text("Show sheet")
            }
            .sheet(isPresented: $sheetPresented, content: {
                Text("Sheet 1")
            })

            Button(action: { navigator.push(Route.SecondScreen) }) {
                Text("Go to second screen")
            }
        }
    }
}

struct SecondScreen: View {
    @State private var sheetPresented = false

    var body: some View {
        Button(action: { sheetPresented = true }) {
            Text("Show sheet")
        }
        .sheet(isPresented: $sheetPresented) {
            Text("Sheet 2")
        }
    }
}

Video with bug:
https://github.com/CoolONEOfficial/NativePartialSheet/assets/33136089/36d1e06e-de13-459a-ad76-345f50ce3a33
I've also tested with navigation and sheets from SwiftUI, and second time without navigation and with your library and couldn't reproduce an issue in either case. So it seems like some kind of weird interaction between libraries is causing this bug.
Thank you in advance!

Hi, looks quite interesting 🤨
I'll try to figure out how to fix that behavior if it's possible

Oh, I have the same problem, I really hope that u can fix it!

Fixed in 3.0.0 release (#7)


Control plane load balancing on IPv6 does IPVS service error

Hi,
Describe the bug
I have the same error than #755 in IPv6, however the VIP is advertised as expected (ip a s dev eth0 shows the IPv6 VIP on one master node).
IPv4 VIP works without error.
Logs shows:
time="2024-03-07T18:53:02Z" level=info msg="IPVS Loadbalancer enabled for 1.2.1"
time="2024-03-07T18:53:02Z" level=info msg="Kube-Vip is watching nodes for control-plane labels"
time="2024-03-07T18:53:02Z" level=info msg="Gratuitous Arp broadcast will repeat every 3 seconds for [<vip>]"
time="2024-03-07T18:53:02Z" level=info msg="Broadcasting NDP update for <vip> (<mac>) via eth0"
time="2024-03-07T18:53:02Z" level=info msg="ndp: &{false false true <vip> [0xc000051c60]}"
time="2024-03-07T18:53:02Z" level=error msg="Error querying backends file does not exist"
time="2024-03-07T18:53:02Z" level=error msg="Unable to create an IPVS service, ensure IPVS kernel modules are loaded"
time="2024-03-07T18:53:02Z" level=fatal msg="IPVS service error: netlink receive: invalid argument"

To Reproduce
Helm values:
kube-vip:
  image:
    tag: "v0.7.1"
  nameOverride: "kube-vip-v6"
  config:
    address: <vip>
  env:
    vip_arp: "true"
    vip_interface: eth0
    vip_port: "6443"
    lb_enable: "true"
    cp_enable: "true"
    svc_enable: "false"
    vip_cidr: "128"
    prometheus_server: ":2113"
  tolerations:
    - effect: NoSchedule
      key: node-role.kubernetes.io/master
    - effect: NoSchedule
      key: node-role.kubernetes.io/control-plane
      operator: Exists
    - effect: NoExecute
      key: node-role.kubernetes.io/master
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
          - matchExpressions:
            - key: node-role.kubernetes.io/master
              operator: Exists
          - matchExpressions:
            - key: node-role.kubernetes.io/control-plane
              operator: Exists

k3s is started with:
'--kube-proxy-arg=proxy-mode=ipvs' \
'--kube-proxy-arg=ipvs-strict-arp' \
'--kube-proxy-arg=ipvs-exclude-cidrs=<ipv4-net>/23,<ipv6-net>/64' \

Expected behavior
IPVS should not error.
Environment (please complete the following information):

OS/Distro: Debian 12
Kubernetes Version: v1.25.6+k3s1
Kube-vip Version: 0.7.1

Thanks !

Interesting, what's the output of ipvsadm -Ln when ipv6 is enabled?
What's your node ip range?

Here you go :
root@k8s-master-1:~# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  <ipv4-public-prefix>.20:3129 rr
  -> <IP_ADDRESS>:3129             Masq    1      0          0
TCP  <ipv4-public-prefix>.23:80 rr
  -> <IP_ADDRESS>:80                 Masq    1      0          0
  -> <IP_ADDRESS>:80               Masq    1      0          0
TCP  <ipv4-public-prefix>.23:443 rr
  -> <IP_ADDRESS>:443                Masq    1      0          0
  -> <IP_ADDRESS>:443              Masq    1      0          0
TCP  <IP_ADDRESS>:30151 rr
  -> <IP_ADDRESS>:443                Masq    1      0          0
  -> <IP_ADDRESS>:443              Masq    1      0          0
TCP  <IP_ADDRESS>:30394 rr
  -> <IP_ADDRESS>:3129             Masq    1      0          0
TCP  <IP_ADDRESS>:31662 rr
  -> <IP_ADDRESS>:80                Masq    1      0          0
  -> <IP_ADDRESS>:80                 Masq    1      0          0
TCP  <IP_ADDRESS>:31851 rr
  -> <IP_ADDRESS>:6980                Masq    1      0          0
TCP  <IP_ADDRESS>:31970 rr
  -> <IP_ADDRESS>:80                 Masq    1      0          0
  -> <IP_ADDRESS>:80               Masq    1      0          0
TCP  <IP_ADDRESS>:32524 rr
  -> <IP_ADDRESS>:443               Masq    1      0          0
  -> <IP_ADDRESS>:443                Masq    1      0          0
TCP  <IP_ADDRESS>:443 rr
  -> <IP_ADDRESS>:6443              Masq    1      1          0
  -> <IP_ADDRESS>:6443              Masq    1      0          0
  -> <IP_ADDRESS>:6443              Masq    1      1          0
TCP  <IP_ADDRESS>:53 rr
  -> <IP_ADDRESS>:53                 Masq    1      0          0
TCP  <IP_ADDRESS>:9153 rr
  -> <IP_ADDRESS>:9153               Masq    1      0          0
TCP  <IP_ADDRESS>:9696 rr
  -> <IP_ADDRESS>:9696              Masq    1      0          0
TCP  <IP_ADDRESS>:443 rr
  -> <IP_ADDRESS>:5443               Masq    1      0          0
  -> <IP_ADDRESS>:5443             Masq    1      0          0
TCP  <IP_ADDRESS>:5800 rr
  -> <IP_ADDRESS>:5800             Masq    1      0          0
TCP  <IP_ADDRESS>:6767 rr
  -> <IP_ADDRESS>:6767              Masq    1      0          0
TCP  <IP_ADDRESS>:8080 rr
  -> <IP_ADDRESS>:8080              Masq    1      0          0
TCP  <IP_ADDRESS>:80 rr
  -> <IP_ADDRESS>:80                Masq    1      0          0
TCP  <IP_ADDRESS>:8181 rr
  -> <IP_ADDRESS>:8181             Masq    1      0          0
TCP  <IP_ADDRESS>:443 rr
  -> <IP_ADDRESS>:10250             Masq    1      0          0
TCP  <IP_ADDRESS>:8600 rr
  -> <IP_ADDRESS>:8600             Masq    1      0          0
TCP  <IP_ADDRESS>:4848 rr
  -> <IP_ADDRESS>:4848              Masq    1      0          0
TCP  <IP_ADDRESS>:443 rr
  -> <IP_ADDRESS>:9443               Masq    1      0          0
TCP  <IP_ADDRESS>:3003 rr
  -> <IP_ADDRESS>:3003               Masq    1      0          0
TCP  <IP_ADDRESS>:8080 rr
  -> <IP_ADDRESS>:8080               Masq    1      0          0
TCP  <IP_ADDRESS>:5432 rr
  -> <IP_ADDRESS>:5432               Masq    1      0          0
TCP  <IP_ADDRESS>:443 rr
  -> <IP_ADDRESS>:8443               Masq    1      0          0
  -> <IP_ADDRESS>:8443             Masq    1      0          0
TCP  <IP_ADDRESS>:80 rr
  -> <IP_ADDRESS>:80                 Masq    1      0          0
  -> <IP_ADDRESS>:80               Masq    1      0          0
TCP  <IP_ADDRESS>:8096 rr
  -> <IP_ADDRESS>:8096              Masq    1      0          0
TCP  <IP_ADDRESS>:7011 rr
  -> <IP_ADDRESS>:7011              Masq    1      0          0
TCP  <IP_ADDRESS>:5473 rr
  -> <IP_ADDRESS>:5473              Masq    1      0          0
  -> <IP_ADDRESS>:5473              Masq    1      0          0
  -> <IP_ADDRESS>:5473              Masq    1      0          0
TCP  <IP_ADDRESS>:8989 rr
  -> <IP_ADDRESS>:8989               Masq    1      0          0
TCP  <IP_ADDRESS>:80 rr
  -> <IP_ADDRESS>:8080             Masq    1      0          0
TCP  <IP_ADDRESS>:443 rr
  -> <IP_ADDRESS>:8080             Masq    1      0          0
TCP  <IP_ADDRESS>:3129 rr
  -> <IP_ADDRESS>:3129             Masq    1      0          0
TCP  <IP_ADDRESS>:6379 rr
  -> <IP_ADDRESS>:6379             Masq    1      0          0
TCP  <IP_ADDRESS>:80 rr
  -> <IP_ADDRESS>:80                 Masq    1      0          0
  -> <IP_ADDRESS>:80               Masq    1      0          0
TCP  <IP_ADDRESS>:443 rr
  -> <IP_ADDRESS>:443                Masq    1      0          0
  -> <IP_ADDRESS>:443              Masq    1      0          0
TCP  <IP_ADDRESS>:7000 rr
  -> <IP_ADDRESS>:7000              Masq    1      0          0
TCP  <IP_ADDRESS>:10050 rr
  -> <IP_ADDRESS>:10050             Masq    1      0          0
  -> <IP_ADDRESS>:10050             Masq    1      0          0
  -> <IP_ADDRESS>:10050             Masq    1      0          0
  -> <IP_ADDRESS>:10050             Masq    1      0          0
  -> <IP_ADDRESS>:10050             Masq    1      0          0
  -> <IP_ADDRESS>:10050             Masq    1      0          0
TCP  <IP_ADDRESS>:8080 rr
  -> <IP_ADDRESS>:8080             Masq    1      0          0
TCP  <IP_ADDRESS>:8083 rr
  -> <IP_ADDRESS>:8083              Masq    1      0          0
TCP  <IP_ADDRESS>:443 rr
  -> <IP_ADDRESS>:8443              Masq    1      0          0
  -> <IP_ADDRESS>:8443               Masq    1      0          0
TCP  <IP_ADDRESS>:9402 rr
  -> <IP_ADDRESS>:9402              Masq    1      0          0
TCP  <IP_ADDRESS>:6980 rr
  -> <IP_ADDRESS>:6980                Masq    1      0          0
TCP  <IP_ADDRESS>:7979 rr
  -> <IP_ADDRESS>:7979              Masq    1      0          0
TCP  <IP_ADDRESS>:6379 rr
  -> <IP_ADDRESS>:6379               Masq    1      0          0
TCP  <IP_ADDRESS>:5432 rr
  -> <IP_ADDRESS>:5432             Masq    1      0          0
TCP  <IP_ADDRESS>:5432 rr
  -> <IP_ADDRESS>:5432              Masq    1      0          0
TCP  <IP_ADDRESS>:8081 rr
  -> <IP_ADDRESS>:8081              Masq    1      0          0
TCP  <IP_ADDRESS>:9000 rr
  -> <IP_ADDRESS>:9000              Masq    1      0          0
TCP  <IP_ADDRESS>:3001 rr
  -> <IP_ADDRESS>:3001              Masq    1      0          0
TCP  <IP_ADDRESS>:6666 rr
  -> <IP_ADDRESS>:6666               Masq    1      0          0
TCP  <IP_ADDRESS>:8080 rr
  -> <IP_ADDRESS>:8080               Masq    1      0          0
TCP  <IP_ADDRESS>:80 rr
  -> <IP_ADDRESS>:80                Masq    1      0          0
  -> <IP_ADDRESS>:80                 Masq    1      0          0
TCP  <IP_ADDRESS>:443 rr
  -> <IP_ADDRESS>:443               Masq    1      0          0
  -> <IP_ADDRESS>:443                Masq    1      0          0
TCP  <IP_ADDRESS>:7878 rr
  -> <IP_ADDRESS>:7878               Masq    1      0          0
TCP  <IP_ADDRESS>:8191 rr
  -> <IP_ADDRESS>:8191               Masq    1      0          0
TCP  <IP_ADDRESS>:443 rr
  -> <IP_ADDRESS>:10250            Masq    1      0          0
TCP  <IP_ADDRESS>:5556 rr
  -> <IP_ADDRESS>:5556              Masq    1      0          0
TCP  <IP_ADDRESS>:5557 rr
  -> <IP_ADDRESS>:5557              Masq    1      0          0
TCP  <IP_ADDRESS>:6980 rr
  -> <IP_ADDRESS>:6980                Masq    1      0          0
TCP  <IP_ADDRESS>:80 rr
  -> <IP_ADDRESS>:80                Masq    1      0          0
  -> <IP_ADDRESS>:80                 Masq    1      0          0
TCP  <IP_ADDRESS>:443 rr
  -> <IP_ADDRESS>:443               Masq    1      0          0
  -> <IP_ADDRESS>:443                Masq    1      0          0
TCP  <IP_ADDRESS>:30151 rr
  -> <IP_ADDRESS>:443                Masq    1      0          0
  -> <IP_ADDRESS>:443              Masq    1      0          0
TCP  <IP_ADDRESS>:30394 rr
  -> <IP_ADDRESS>:3129             Masq    1      0          0
TCP  <IP_ADDRESS>:31662 rr
  -> <IP_ADDRESS>:80                Masq    1      0          0
  -> <IP_ADDRESS>:80                 Masq    1      0          0
TCP  <IP_ADDRESS>:31851 rr
  -> <IP_ADDRESS>:6980                Masq    1      0          0
TCP  <IP_ADDRESS>:31970 rr
  -> <IP_ADDRESS>:80                 Masq    1      0          0
  -> <IP_ADDRESS>:80               Masq    1      0          0
TCP  <IP_ADDRESS>:32524 rr
  -> <IP_ADDRESS>:443               Masq    1      0          0
  -> <IP_ADDRESS>:443                Masq    1      0          0
TCP  <IP_ADDRESS>:6443 rr
  -> <IP_ADDRESS>:6443              Local   1      0          0
  -> <IP_ADDRESS>:6443              Local   1      0          0
  -> <IP_ADDRESS>:6443              Local   1      0          0
TCP  <IP_ADDRESS>:30151 rr
  -> <IP_ADDRESS>:443                Masq    1      0          0
  -> <IP_ADDRESS>:443              Masq    1      0          0
TCP  <IP_ADDRESS>:30394 rr
  -> <IP_ADDRESS>:3129             Masq    1      0          0
TCP  <IP_ADDRESS>:31662 rr
  -> <IP_ADDRESS>:80                Masq    1      0          0
  -> <IP_ADDRESS>:80                 Masq    1      0          0
TCP  <IP_ADDRESS>:31851 rr
  -> <IP_ADDRESS>:6980                Masq    1      0          0
TCP  <IP_ADDRESS>:31970 rr
  -> <IP_ADDRESS>:80                 Masq    1      0          0
  -> <IP_ADDRESS>:80               Masq    1      0          0
TCP  <IP_ADDRESS>:32524 rr
  -> <IP_ADDRESS>:443               Masq    1      0          0
  -> <IP_ADDRESS>:443                Masq    1      0          0
UDP  <IP_ADDRESS>:53 rr
  -> <IP_ADDRESS>:53                 Masq    1      0          0
TCP  [<ipv6-public-prefix-1>:700::5aa6:4240]:30151 rr
  -> [<ipv6-public-prefix-1>:700::66d:75b7]:443 Masq    1      0          0
  -> [<ipv6-public-prefix-1>:700::44c3:c4f1]:443 Masq    1      0          0
TCP  [<ipv6-public-prefix-1>:700::5aa6:4240]:30394 rr
  -> [<ipv6-public-prefix-1>:700::44c3:c4f7]:3129 Masq    1      0          0
TCP  [<ipv6-public-prefix-1>:700::5aa6:4240]:31662 rr
  -> [<ipv6-public-prefix-1>:700::66d:75af]:80 Masq    1      0          0
  -> [<ipv6-public-prefix-1>:700::44c3:c4ca]:80 Masq    1      0          0
TCP  [<ipv6-public-prefix-1>:700::5aa6:4240]:31851 rr
  -> [<ipv6-public-prefix-1>:700::9c31:c102]:6980 Masq    1      0          0
TCP  [<ipv6-public-prefix-1>:700::5aa6:4240]:31970 rr
  -> [<ipv6-public-prefix-1>:700::66d:75b7]:80 Masq    1      0          0
  -> [<ipv6-public-prefix-1>:700::44c3:c4f1]:80 Masq    1      0          0
TCP  [<ipv6-public-prefix-1>:700::5aa6:4240]:32524 rr
  -> [<ipv6-public-prefix-1>:700::66d:75af]:443 Masq    1      0          0
  -> [<ipv6-public-prefix-1>:700::44c3:c4ca]:443 Masq    1      0          0
TCP  [<ipv6-public-prefix-1>:701::11d9]:6980 rr
  -> [<ipv6-public-prefix-1>:700::9c31:c102]:6980 Masq    1      0          0
TCP  [<ipv6-public-prefix-1>:701::3d82]:80 rr
  -> [<ipv6-public-prefix-1>:700::66d:75b7]:80 Masq    1      0          0
  -> [<ipv6-public-prefix-1>:700::44c3:c4f1]:80 Masq    1      0          0
TCP  [<ipv6-public-prefix-1>:701::3d82]:443 rr
  -> [<ipv6-public-prefix-1>:700::66d:75b7]:443 Masq    1      0          0
  -> [<ipv6-public-prefix-1>:700::44c3:c4f1]:443 Masq    1      0          0
TCP  [<ipv6-public-prefix-1>:701::8ee0]:80 rr
  -> [<ipv6-public-prefix-1>:700::66d:75af]:80 Masq    1      0          0
  -> [<ipv6-public-prefix-1>:700::44c3:c4ca]:80 Masq    1      0          0
TCP  [<ipv6-public-prefix-1>:701::8ee0]:443 rr
  -> [<ipv6-public-prefix-1>:700::66d:75af]:443 Masq    1      0          0
  -> [<ipv6-public-prefix-1>:700::44c3:c4ca]:443 Masq    1      0          0
TCP  [<ipv6-public-prefix-1>:701::d91b]:3129 rr
  -> [<ipv6-public-prefix-1>:700::44c3:c4f7]:3129 Masq    1      0          0
TCP  [<ipv6-public-prefix-1>:811::cafe:0]:3129 rr
  -> [<ipv6-public-prefix-1>:700::44c3:c4f7]:3129 Masq    1      0          0
TCP  [<ipv6-public-prefix-1>:811::cafe:3]:80 rr
  -> [<ipv6-public-prefix-1>:700::66d:75b7]:80 Masq    1      0          0
  -> [<ipv6-public-prefix-1>:700::44c3:c4f1]:80 Masq    1      0          0
TCP  [<ipv6-public-prefix-1>:811::cafe:3]:443 rr
  -> [<ipv6-public-prefix-1>:700::66d:75b7]:443 Masq    1      0          0
  -> [<ipv6-public-prefix-1>:700::44c3:c4f1]:443 Masq    1      0          0
TCP  [<ipv6-public-prefix-1>:916::cafe:0]:6980 rr
  -> [<ipv6-public-prefix-1>:700::9c31:c102]:6980 Masq    1      0          0
TCP  [<ipv6-public-prefix-1>:916::cafe:1]:80 rr
  -> [<ipv6-public-prefix-1>:700::66d:75af]:80 Masq    1      0          0
  -> [<ipv6-public-prefix-1>:700::44c3:c4ca]:80 Masq    1      0          0
TCP  [<ipv6-public-prefix-1>:916::cafe:1]:443 rr
  -> [<ipv6-public-prefix-1>:700::66d:75af]:443 Masq    1      0          0
  -> [<ipv6-public-prefix-1>:700::44c3:c4ca]:443 Masq    1      0          0
TCP  [<ipv6-public-prefix-2>:2::b002:1]:30151 rr
  -> [<ipv6-public-prefix-1>:700::66d:75b7]:443 Masq    1      0          0
  -> [<ipv6-public-prefix-1>:700::44c3:c4f1]:443 Masq    1      0          0
TCP  [<ipv6-public-prefix-2>:2::b002:1]:30394 rr
  -> [<ipv6-public-prefix-1>:700::44c3:c4f7]:3129 Masq    1      0          0
TCP  [<ipv6-public-prefix-2>:2::b002:1]:31662 rr
  -> [<ipv6-public-prefix-1>:700::66d:75af]:80 Masq    1      0          0
  -> [<ipv6-public-prefix-1>:700::44c3:c4ca]:80 Masq    1      0          0
TCP  [<ipv6-public-prefix-2>:2::b002:1]:31851 rr
  -> [<ipv6-public-prefix-1>:700::9c31:c102]:6980 Masq    1      0          0
TCP  [<ipv6-public-prefix-2>:2::b002:1]:31970 rr
  -> [<ipv6-public-prefix-1>:700::66d:75b7]:80 Masq    1      0          0
  -> [<ipv6-public-prefix-1>:700::44c3:c4f1]:80 Masq    1      0          0
TCP  [<ipv6-public-prefix-2>:2::b002:1]:32524 rr
  -> [<ipv6-public-prefix-1>:700::66d:75af]:443 Masq    1      0          0
  -> [<ipv6-public-prefix-1>:700::44c3:c4ca]:443 Masq    1      0          0
TCP  [<ipv6-public-prefix-2>:2::b002:ffff]:30151 rr
  -> [<ipv6-public-prefix-1>:700::66d:75b7]:443 Masq    1      0          0
  -> [<ipv6-public-prefix-1>:700::44c3:c4f1]:443 Masq    1      0          0
TCP  [<ipv6-public-prefix-2>:2::b002:ffff]:30394 rr
  -> [<ipv6-public-prefix-1>:700::44c3:c4f7]:3129 Masq    1      0          0
TCP  [<ipv6-public-prefix-2>:2::b002:ffff]:31662 rr
  -> [<ipv6-public-prefix-1>:700::66d:75af]:80 Masq    1      0          0
  -> [<ipv6-public-prefix-1>:700::44c3:c4ca]:80 Masq    1      0          0
TCP  [<ipv6-public-prefix-2>:2::b002:ffff]:31851 rr
  -> [<ipv6-public-prefix-1>:700::9c31:c102]:6980 Masq    1      0          0
TCP  [<ipv6-public-prefix-2>:2::b002:ffff]:31970 rr
  -> [<ipv6-public-prefix-1>:700::66d:75b7]:80 Masq    1      0          0
  -> [<ipv6-public-prefix-1>:700::44c3:c4f1]:80 Masq    1      0          0
TCP  [<ipv6-public-prefix-2>:2::b002:ffff]:32524 rr
  -> [<ipv6-public-prefix-1>:700::66d:75af]:443 Masq    1      0          0
  -> [<ipv6-public-prefix-1>:700::44c3:c4ca]:443 Masq    1      0          0

master-1 (current master) has :2::b002:1/64 IP and :2::b002:ffff/128 VIP.

Thanks. just noticed that our logger doesn't print file name and line, that's something we should change.
So the error you showed IPVS service error: netlink receive: invalid argument comes from here  https://github.com/kube-vip/kube-vip/blob/main/pkg/loadbalancer/ipvs.go#L126-L128. Looks like the called library does support ipv6, it's just maybe the configuration for service is incorrect.
So the PR for the issue you mentioned https://github.com/kube-vip/kube-vip/commit/388b6ca27f396d78ba62b3eaac25315c0af1440f#diff-cbd55604ef85d846c166257530d75148facedb500234aee4e09c6cbf7d8004adR61, does add the netmask, but that netmask is only for ipv4 case, should check if ipfamily is ipv6, use different netmask, I can create a PR to fix it.

Once the PR is merged would you mind creating a dev image and test it out? Since I don't have a live env to debug

The error is now gone with the fix (I built an image, available in ghcr.io/romlecat/kube-vip:0.7.1-fix781 if anyone is interrested), it looks better:
time="2024-03-10T11:10:24Z" level=error msg="Error querying backends file does not exist"
time="2024-03-10T11:10:24Z" level=warning msg="load balancer for API server already exists, attempting to remove and re-create"
time="2024-03-10T11:10:24Z" level=info msg="Created Load-Balancer services on [<ipv6-public-prefix-2>:2::b002:ffff:6443]"
time="2024-03-10T11:10:24Z" level=info msg="Broadcasting NDP update for <ipv6-public-prefix-2>:2::b002:ffff (bc:24:11:5b:e0:8d) via eth0"
time="2024-03-10T11:10:24Z" level=info msg="ndp: &{false false true <ipv6-public-prefix-2>:2::b002:ffff [0xc0006eea00]}"
time="2024-03-10T11:10:27Z" level=info msg="Broadcasting NDP update for <ipv6-public-prefix-2>:2::b002:ffff (bc:24:11:5b:e0:8d) via eth0"
time="2024-03-10T11:10:27Z" level=info msg="ndp: &{false false true <ipv6-public-prefix-2>:2::b002:ffff [0xc000051100]}"
time="2024-03-10T11:10:30Z" level=info msg="Broadcasting NDP update for <ipv6-public-prefix-2>:2::b002:ffff (bc:24:11:5b:e0:8d) via eth0"
time="2024-03-10T11:10:30Z" level=info msg="ndp: &{false false true <ipv6-public-prefix-2>:2::b002:ffff [0xc000051da0]}"
time="2024-03-10T11:10:33Z" level=info msg="Broadcasting NDP update for <ipv6-public-prefix-2>:2::b002:ffff (bc:24:11:5b:e0:8d) via eth0"
time="2024-03-10T11:10:33Z" level=info msg="ndp: &{false false true <ipv6-public-prefix-2>:2::b002:ffff [0xc0002a4bc0]}"
time="2024-03-10T11:10:34Z" level=error msg="Error querying backends file does not exist"
time="2024-03-10T11:10:34Z" level=warning msg="load balancer for API server already exists, attempting to remove and re-create"
time="2024-03-10T11:10:34Z" level=info msg="Created Load-Balancer services on [<ipv6-public-prefix-2>:2::b002:ffff:6443]"
time="2024-03-10T11:10:34Z" level=error msg="Error querying backends file does not exist"
time="2024-03-10T11:10:34Z" level=warning msg="load balancer for API server already exists, attempting to remove and re-create"
time="2024-03-10T11:10:34Z" level=info msg="Created Load-Balancer services on [<ipv6-public-prefix-2>:2::b002:ffff:6443]"
time="2024-03-10T11:10:34Z" level=error msg="Error querying backends file does not exist"
time="2024-03-10T11:10:34Z" level=warning msg="load balancer for API server already exists, attempting to remove and re-create"
time="2024-03-10T11:10:34Z" level=info msg="Created Load-Balancer services on [<ipv6-public-prefix-2>:2::b002:ffff:6443]"

The IPv4 and IPv6 instances seems to conflict, is there anyway to fix this ?

Hi @RomLecat could you create a new issue about above error, I can try look into the new issue. Not sure if it's conflict or is it because failing to find existing rule

Sure, thanks! Here it is: #784


SSH Auth improvements

as tested today.
Please rebase-merge.

rebase-merge? Don't you mean squash merge?


[Phase 2] Set up search result UI page

Danny: please add corresponding checklist here since I don't really know how you will build this page.

Done :D


Text Colors

Hi,
When I customizing bootstrap using website(http://getbootstrap.com/customize), I relaized that text color classes(text-primary, text-info, text-danger,text-warning,text-success) stays default. It will be better if it changes according to my selected color in web customizer.

We'll need your config.json or your customizer URL (http://getbootstrap.com/customize/?id=XXXX)

Are you aware that .text-success uses @state-success-text rather than @brand-success? (And similarly for the other variants besides primary.)

There is not one for PRIMARY or MUTED.

Closing due to lack of response from OP.


DRAFT: List logically bound images

For now this is just the implementation, but it does not contain the important bug fix for https://github.com/containers/bootc/issues/846 which is to allow this command to run inside a container and not just on a bootc booted host

I suspect though to really meet the goal we need to think about machine-readable output, which raises its own set of questions.

I've played around with formats:
[omer@hal9000 ~]$ sudo bootc image list
 IMAGE TYPE   IMAGE
 host         docker://quay.io/otuchfel/bootc:listss
 logical      quay.io/curl/curl-base:latest

[omer@hal9000 ~]$ sudo bootc image list --help
List fetched images stored in the bootc storage.

Note that these are distinct from images stored via e.g. `podman`.

Usage: bootc image list [OPTIONS]

Options:
      --list-type <LIST_TYPE>
          Type of image to list

          [default: all]

          Possible values:
          - all:     List all images
          - logical: List only logically bound images
          - host:    List only host images

      --list-format <LIST_FORMAT>
          [default: table]

          Possible values:
          - table: Human readable table format
          - json:  JSON format
          - csv:   CSV format

  -h, --help
          Print help (see a summary with '-h')

[omer@hal9000 ~]$ sudo bootc image list --list-format json
[
  {
    "image_type": "Host",
    "image": "docker://quay.io/otuchfel/bootc:listss"
  },
  {
    "image_type": "Logical",
    "image": "quay.io/curl/curl-base:latest"
  }
]

[omer@hal9000 ~]$ sudo bootc image list --list-format csv
image_type,image
Host,docker://quay.io/otuchfel/bootc:listss
Logical,quay.io/curl/curl-base:latest

[omer@hal9000 ~]$ sudo bootc image list --list-format json --list-type logical
[
  {
    "image_type": "Logical",
    "image": "quay.io/curl/curl-base:latest"
  }
]

[omer@hal9000 ~]$ sudo bootc image list --list-format json --list-type logical | jq '.[].image' -r
quay.io/curl/curl-base:latest

Also should be straightforward to change test-logically-bound-install.nu to cover this right?

Seems so, I'm trying to get at-least one successful run of the tmt tests on a clean main branch, then I'll see how I can extend the .nu script

I don't see the need to have both csv and json, let's pick json.
This overlaps a bit with https://github.com/containers/bootc/issues/522 in that in theory we could expose this via varlink too? But eh, json seems like a sane baseline.

I don't see the need to have both csv and json, let's pick json.

Removed CSV (it was trivial to add and to remove so no harm done), it was mostly just an example of how we can add formats easily anyway

Seems so, I'm trying to get at-least one successful run of the tmt tests on a clean main branch, then I'll see how I can extend the .nu script

Extending a bootc image with the following commands seems to be enough to prepare it , once booted on a VM, for cloning the bootc repo and running make test-tmt successfully:
FROM localhost/bootc

RUN dnf install -y --setopt=install_weak_deps=False cargo git genisoimage libvirt python-pip qemu-kvm rsync && \
    dnf clean all && \
    rm -rf /var/cache/dnf /var/log/dnf* /var/log/yum.*

RUN python3 -m pip install testcloud tmt && \
    rm -rf ~/.cache/pip

RUN systemctl enable virtqemud.socket

Is anything like this documented anywhere? Am I even doing it right or am I missing some obvious simpler way?

I run most things from a toolbox container personally where I have this stuff already installed. What you're doing there is "recursive" which is cool, but I am unsure I would have that be a primary target.


Error when applying migration that creates a GIST index on a CIDR type

I have an entity with a property of ValueTuple<IPAddress, int> type:
public class Entity
{
    public int Id { get; set; }
    public (IPAddress address, int subnet) Network { get; set; }
}

And in the model builder, I create an index using the GIST type on Network:
entity.HasIndex(e => e.Network)
    .HasName("Entity")
    .ForNpgsqlHasMethod("gist");

Generating the migration works, but executing it, I get the following:
42704: data type cidr has no default operator class for access method "gist"

Essentially, I would like to be able to pass inet_iops when creating the index in order to generate a statement similar to:
CREATE  INDEX "Entity_Network_key"
    ON "Entity" USING GIST
    ("Network" inet_ops)

This should be supported by #662, which should be merged for 2.2.0.
I'm going to close this for now, but please feel free to post here if you have any questions.


fix selection of interactive markers

I think the conversion to float is too lossy and thus selection of interactive marker arrows didn't work for me (I ended up in the size == 3 case).

@wolfv Good catch! The same issue hit on Windows too.


Replace generated evalpool with ntuple

tests pass locally, need to fix CI. thank you for the help!


[11.x] Add insert method to Eloquent

Description
This PR enhances the insert method to provide functionality similar to the upsert method. Specifically, it introduces the following improvements:

Automatic UUID Generation: When inserting records into tables where the primary key is a uuid, this change automatically generates the uuid without requiring it to be explicitly provided in the data array.
Automatic Timestamp Handling: The created_at and updated_at columns are now automatically set during the insert operation, eliminating the need to manually specify these fields in the data.

Context
Currently, when using the insert method, there's need to explicitly set the uuid and timestamp fields (created_at, updated_at) when inserting records. When using the upsert method, these fields are auto-generated. By aligning the behavior of the insert method with upsert, we reduce redundancy and improve developer experience.
Also added the MYSQL_ATTR_FOUND_ROWS flag to MySQL and MariaDB connections. This flag ensures that INSERT ... ON DUPLICATE KEY UPDATE statements (used in the upsert method) return consistent results across different database connections (MySQL, MariaDB, PostgreSQL, SQL Server, SQLite). By default, MySQL and MariaDB return 0 as row count if an existing row is set to its current values during an INSERT ... ON DUPLICATE KEY UPDATE (see ROW_COUNT()) , while other databases (PostgreSQL, SQL Server, SQLite) return 1. This inconsistency can lead to confusion when checking the result of an upsert. The MYSQL_ATTR_FOUND_ROWS flag forces MySQL and MariaDB to return 1 even when the row remains unchanged, aligning their behavior with other supported databases.
Changes

Added insert method to the Eloquent Builder to generate uuid and timestamps before calling the Database Builder insert method.
Added MYSQL_ATTR_FOUND_ROWS flag for mysql and mariadb connections.

It seems to me the MYSQL_ATTR_FOUND_ROWS addition would be a huge breaking change in behavior. Also, I am not sure if this is the expected behavior.

Return the number of found (matched) rows, not the number of changed rows.

Reference: https://www.php.net/manual/en/ref.pdo-mysql.php#pdo.constants.mysql-attr-found-rows

@rodrigopedra Thank you for your feedback! Here is some additional context from MySQL docs that describes the behavior in more detail:

For INSERT ... ON DUPLICATE KEY UPDATE statements, the affected-rows value per row is 1 if the row is inserted as a new row, 2 if an existing row is updated, and 0 if an existing row is set to its current values. If you specify the CLIENT_FOUND_ROWS flag, the affected-rows value is 1 (not 0) if an existing row is set to its current values.

So, by default, when no actual data is modified, MySQL returns 0. Enabling the MYSQL_ATTR_FOUND_ROWS flag changes this behavior to return 1 when the row remains unchanged, which is consistent with how other databases (such as PostgreSQL and SQLite) behave.
That said, based on your point regarding the potential for this to be a breaking change, I’ve gone ahead and removed this part of the PR for now, leaving it for a later time to add more tests and possibly set as an optional configuration to maintain backward compatibility.

Thanks for your pull request to Laravel!
Unfortunately, I'm going to delay merging this code for now. To preserve our ability to adequately maintain the framework, we need to be very careful regarding the amount of code we include.
If applicable, please consider releasing your code as a package so that the community can still take advantage of your contributions!


python_runtime resource fails to install setuptools

default.rb:
python_runtime '2' do
  action :install
  version '2.7'
  pip_version true
end

metadata.rb:
name 'elden-test'
maintainer 'Elden Seropian'
maintainer_email<EMAIL_ADDRESS>license 'all_rights'
description 'dummy test cookbook'

version '0.1.2'

depends 'poise-python'

.kitchen.yml:
---
driver:
  name: vagrant
  customize:
      memory: 1024

provisioner:
  name: chef_zero

platforms:
  - name: ubuntu-14.04

suites:
  - name: default
    run_list:
      - recipe[elden-test::default]

I'm attaching the entirety of the kitchen converge default -l debug output. Here are the most relevant bits:
[2016-01-20T20:32:28+00:00] DEBUG: [python_runtime[2]] Installing setuptools latest
[2016-01-20T20:32:28+00:00] DEBUG: [python_runtime[2]] Adding python_package[setuptools] to subresources
[2016-01-20T20:32:28+00:00] DEBUG: [python_runtime[2]] Installing setuptools latest
 * python_package[setuptools] action install[2016-01-20T20:32:36+00:00] INFO: Processing python_package[setuptools] action install (/tmp/kitchen/cache/cookbooks/poise-python/files/halite_gem/poise_python/python_providers/base.rb line 136)
       [2016-01-20T20:32:36+00:00] DEBUG: Provider for action install on resource python_package[setuptools] is PoisePython::Resources::PythonPackage::Provider
[2016-01-20T20:32:36+00:00] DEBUG: [python_package[setuptools]] Running python command: /usr/bin/python2.7 -m pip.__main__ list
       apt-xapian-index (0.45)
       chardet (2.0.1)
       pip (8.0.0)
       python-apt (<IP_ADDRESS>ubuntu1)
       python-debian (0.1.21-nmu2ubuntu2)
       requests (2.2.1)
       six (1.5.2)
       ssh-import-id (3.21)
       urllib3 (1.7.1)
       The directory '/home/vagrant/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
       /usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:315: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
         SNIMissingWarning
       /usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
         InsecurePlatformWarning
  [2016-01-20T20:32:42+00:00] DEBUG: [python_package[setuptools]] Running python command: /usr/bin/python2.7 - list --outdated setuptools
       The directory '/home/vagrant/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
       /usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:315: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
         SNIMissingWarning
       /usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
         InsecurePlatformWarning
       setuptools (0) - Latest: 19.4 [wheel]
       The directory '/home/vagrant/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
       /usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
         InsecurePlatformWarning
       [2016-01-20T20:32:47+00:00] DEBUG: [python_package[setuptools]] Unparsable line in pip outdated: setuptools (0) - Latest: 19.4 [wheel]

           ================================================================================
           Error executing action `install` on resource 'python_package[setuptools]'
           ================================================================================

           Chef::Exceptions::Package
           -------------------------
           No candidate version available for setuptools

           Cookbook Trace:
           ---------------
           /tmp/kitchen/cache/cookbooks/poise/files/halite_gem/poise/helpers/notifying_block.rb:69:in `notifying_block'
           /tmp/kitchen/cache/cookbooks/poise-python/files/halite_gem/poise_python/python_providers/base.rb:49:in `action_install'

           Resource Declaration:
           ---------------------
           # In /tmp/kitchen/cache/cookbooks/poise-python/files/halite_gem/poise_python/python_providers/base.rb

           136:         python_package 'setuptools' do
           137:           parent_python new_resource
           138:           version setuptools_version if setuptools_version.is_a?(String)

           140:       end

           Compiled Resource:
           ------------------
           # Declared in /tmp/kitchen/cache/cookbooks/poise-python/files/halite_gem/poise_python/python_providers/base.rb:136:in `install_setuptools'

           python_package("setuptools") do
         action [:install]
             retries 0
             retry_delay 2
             default_guard_interpreter :default
             package_name "setuptools"
             timeout 900
             declared_type :python_package
             cookbook_name "elden-test"
             parent_python python_runtime[2]
           end

         ================================================================================
         Error executing action `install` on resource 'python_runtime[2]'
         ================================================================================

         Chef::Exceptions::Package
         -------------------------
         python_package[setuptools] (/tmp/kitchen/cache/cookbooks/poise-python/files/halite_gem/poise_python/python_providers/base.rb line 136) had an error: Chef::Exceptions::Package: No candidate version available for setuptools

         Cookbook Trace:
         ---------------
         /tmp/kitchen/cache/cookbooks/poise/files/halite_gem/poise/helpers/notifying_block.rb:69:in `notifying_block'
         /tmp/kitchen/cache/cookbooks/poise-python/files/halite_gem/poise_python/python_providers/base.rb:49:in `action_install'

         Resource Declaration:
       ---------------------
         # In /tmp/kitchen/cache/cookbooks/elden-test/recipes/default.rb

           1: python_runtime '2' do
           2:   action :install
           3:   version '2.7'
           4:   pip_version true
           5: end

         Compiled Resource:
         ------------------
       # Declared in /tmp/kitchen/cache/cookbooks/elden-test/recipes/default.rb:1:in `from_file'

         python_runtime("2") do
           action [:install]
           updated true
           updated_by_last_action true
           retries 0
           retry_delay 2
           default_guard_interpreter :default
           subresources [python_runtime_pip[2], python_package[setuptools], python_package[wheel], python_package[virtualenv]]
           declared_type :python_runtime
           cookbook_name "elden-test"
           recipe_name "default"
           version "2.7"
         pip_version true
           setuptools_version true
           virtualenv_version true
           wheel_version true
         end

       [2016-01-20T20:32:47+00:00] DEBUG: Re-raising exception: Chef::Exceptions::Package - python_runtime[2] (elden-test::default line 1) had an error: Chef::Exceptions::Package: python_package[setuptools] (/tmp/kitchen/cache/cookbooks/poise-python/files/halite_gem/poise_python/python_providers/base.rb line 136) had an error: Chef::Exceptions::Package: No candidate version available for setuptools
  [2016-01-20T20:32:47+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
       [2016-01-20T20:32:47+00:00] DEBUG: Chef::Exceptions::Package: python_runtime[2] (elden-test::default line 1) had an error: Chef::Exceptions::Package: python_package[setuptools] (/tmp/kitchen/cache/cookbooks/poise-python/files/halite_gem/poise_python/python_providers/base.rb line 136) had an error: Chef::Exceptions::Package: No candidate version available for setuptools
       [2016-01-20T20:32:47+00:00] ERROR: python_runtime[2] (elden-test::default line 1) had an error: Chef::Exceptions::Package: python_package[setuptools] (/tmp/kitchen/cache/cookbooks/poise-python/files/halite_gem/poise_python/python_providers/base.rb line 136) had an error: Chef::Exceptions::Package: No candidate version available for setuptools
       [2016-01-20T20:32:48+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
D      Cleaning up local sandbox in /var/folders/dm/ppd0vgp93r91yrry993hhm5r0000gp/T/default-ubuntu-1404-sandbox-20160120-36762-1k8ttn1
>>>>>> Converge failed on instance <default-ubuntu-1404>.
>>>>>> Please see .kitchen/logs/default-ubuntu-1404.log for more details
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: SSH exited (1) for command: [sh -c '

sudo -E /opt/chef/bin/chef-client --local-mode --config /tmp/kitchen/client.rb --log_level debug --force-formatter --no-color --json-attributes /tmp/kitchen/dna.json --chef-zero-port 8889
']
>>>>>> ----------------------
D      Converge failed on instance <default-ubuntu-1404>.
D      ------Exception-------
D      Class: Kitchen::InstanceFailure
D      Message: Converge failed on instance <default-ubuntu-1404>.  Please see .kitchen/logs/default-ubuntu-1404.log for more details
D      ---Nested Exception---
D      Class: Kitchen::ActionFailed
D      Message: SSH exited (1) for command: [sh -c '

We encountered this when trying to move our code over from using the deprecated python cookbook to poise-python. Please let me know if you need any more information!
converge_output.txt

@eldenseropian
Looks like this is related to the issue I opened, this might help you get more info, looks like its PIP:
https://github.com/poise/poise-python/issues/28

Thanks, I hadn't seen yours! I'll follow there.

Fixed in 1.2.1.


can't load .pdf data from the geoserver?

When I used my yaml file, the following error occurred. What's the reason?

Are you trying to load image files in a PDF format? PDF isn't a supported image file format, use JPEG, PNG, GIF, or TGA instead.
That said, the error message here doesn't look like the format is unsupported, it looks like the file can't be accessed for some reason. Can you share any more information about your scene file or the URLs you are trying to access?

Sorry, this is my spelling mistake. It's PBF format, not pdf.The data is published by Geosever.
For example
https://shanligang.github.io/geoserverdata/{z}/{x}/{y}.pbf
the center point of data is  LngLat(119.97213043325388, 30.543462384495687); There only  twelfth levels of data in area.

I found my mistake on the scene file.Thank You very mach! @matteblair


Cryptic error message when DMN is dropped on "Zeebe" Modeler

Describe the Bug
Given I set --disable-platform flag, when I drop a DMN file on the modeler, it displays:

Steps to Reproduce

See above.
Expected Behavior
It should say "... is not a BPMN or Form file."
Environment

OS: [e.g. MacOS 10.2, Windows 10]
Camunda Modeler Version: develop
Execution Platform: [e.g. Camunda Platform, Camunda Cloud]
Installed plug-ins: [...]

Maybe related: https://github.com/camunda/camunda-modeler/pull/2217

This fix has to direct to develop since we didn't release the disable-platform flag yet on master.

I don't believe this is related to #2214
The way I understand it, the issue stems from the fact that the tabs providers (in TabsProvider.js) are not named:
"cloud-bpmn": {
    name: null,
    encoding: ENCODING_UTF8,
    exports: {
      png: EXPORT_PNG,

I suspect this may have initially been done so that there wouldn't be a conflict when loading in files? Or as to not repeat the same formats in the error message? Anyways, the name of these providers are what that error message's file types are from.  I'll discuss with @pinussilvestrus for clarification on these providers since I'm not sure what else these names are used for.

I've made some modifications to the code and tests and everything looks to be working as expected. Here: 2832ec2
The only question here is whether we are happy with the 'name' parameter, or if we should change it to something a little more descriptive. After inspection it looks to really only be used for describing the type of file a certain tabs provider handles.
I'm up for suggestions here, with @MaxTru we made mention of diagramType but this might not include stuff like forms (do they really count as diagrams).
FileType, format, I'm not certain really. Perhaps just leave it as is? @pinussilvestrus

Following discussion with Niklas we'll just keep it as is for now, perhaps pick it up later.


OperationID fixes: snapshots

Changing naming for snapshots for a smoother Autorest ingestion:

Changing to plural "snapshots" everywhere.
Changed references to it anywhere in the spec for consistency.

created a bundle of the spec with the new changes and didn't appear to run into any reference issues.

The naming conventions sit at level warning and info. All errors are unassociated with naming

sweet! thanks- will look into.

gonna combine this PR with the volumes


source/pip not found

Hi There,
I'd really appreciate a little help with this, I've copied all the files into a directory called godaddy-dyndns/ and put in my details to the .conf file but when I try to run the script it says "source not found" and "pip not found" - Please see below
Do you know what I'm doing wrong?
Many Thanks in advance!
greg@Cloud10:~/bin/godaddy-dyndns$ ~/bin/godaddy-dyndns/godaddy-dyndns.sh
/home/greg/bin/godaddy-dyndns/godaddy-dyndns.sh: 11: /home/greg/bin/godaddy-dyndns/godaddy-dyndns.sh: source: not found
/home/greg/bin/godaddy-dyndns/godaddy-dyndns.sh: 12: /home/greg/bin/godaddy-dyndns/godaddy-dyndns.sh: pip: not found
Traceback (most recent call last):
File "godaddy-dyndns.py", line 7, in
import pif
ImportError: No module named 'pif'
/home/greg/bin/godaddy-dyndns/godaddy-dyndns.sh: 14: /home/greg/bin/godaddy-dyndns/godaddy-dyndns.sh: deactivate: not found

It will probably work if you replace the first line (#!/bin/sh) in godaddy-dyndns.sh with #!/bin/bash. (Or if you replace source with a ..)


Greenkeeper/sequelize 4.26.0

Coverage remained the same at 100.0% when pulling 051c89b6e918a21a5ba6480d1f1d22b93b3e512d on greenkeeper/sequelize-4.26.0 into 1dc40a315662222f496d04574043c2164043e20c on master.

Coverage remained the same at 100.0% when pulling 051c89b6e918a21a5ba6480d1f1d22b93b3e512d on greenkeeper/sequelize-4.26.0 into 1dc40a315662222f496d04574043c2164043e20c on master.


Merge Dev into Master

Chatto 2.0

Current coverage is 63.53% (diff: 68.49%)

No coverage report found for master at 3be87bb.

Powered by Codecov. Last update 3be87bb...1c1e5d2


👀 Move Cross-Cutting Concerns Where They Should Be in .NET

https://youtube.com/watch?v=HRt7KIkdIaw&feature=share

MediatR pipelin behaviors


top40 style leaderboard

For the guardian stats, I copied the stats a few days ago
All-time
Rank	Agent	Amount	Updated
1	KernelTruth	537	6 days ago
2	TrggrHppyNana	279	18 days ago
3	DashMorlock	262	Today
4	magnusansky	251	Yesterday
5	sockhopper	251	7 days ago
6	Demothesses	235	3 days ago
7	Darkonus	228	2 days ago
8	wreckSTAR	192	2 days ago
9	sAMAccountName	192	Yesterday
10	chuntr	178	15 days ago
11	gillihan	177	2 days ago
12	jtweetyone	177	Today
13	BobTerwilliger	175	26 days ago
14	zpo	175	4 days ago
15	northumbrian	172	Yesterday
16	AoD7	163	3 days ago
17	TheSuperman	161	Yesterday
18	PapabearSmurf	160	Today
19	Banjo1	158	7 days ago
20	swiftness	156	3 days ago
21	opsan	156	24 days ago
22	Camicat	154	21 days ago
23	AbleCain	154	Today
24	phthoruth	154	Today
25	sahararomeo	153	Today
26	ScruffyNrdHrdr	152	7 days ago
27	AoD42	150	2 days ago
28	Ba1r0g	149	16 days ago
29	PaidtoDecimate	148	Yesterday
30	BoatAnchor	148	6 days ago
31	R0cknu	148	Yesterday
and then again today
All-time
Rank	Agent	Amount	Updated
1	KernelTruth	537	8 days ago
2	TrggrHppyNana	279	20 days ago
3	DashMorlock	262	2 days ago
4	sockhopper	258	2 days ago
5	magnusansky	251	3 days ago
6	Demothesses	235	5 days ago
7	Darkonus	228	4 days ago
8	wreckSTAR	195	Today
9	sAMAccountName	192	3 days ago
10	chuntr	178	17 days ago
11	gillihan	177	4 days ago
12	jtweetyone	177	2 days ago
13	BobTerwilliger	175	28 days ago
14	zpo	175	2 days ago
15	northumbrian	172	Today
16	AoD7	163	5 days ago
17	TheSuperman	161	Today
18	PapabearSmurf	160	Today
19	Banjo1	158	9 days ago
20	swiftness	156	5 days ago
21	opsan	156	26 days ago
22	phthoruth	156	Today
23	sahararomeo	154	Yesterday
24	Camicat	154	23 days ago
25	AbleCain	154	Today
26	ScruffyNrdHrdr	152	9 days ago
27	AoD42	150	Yesterday
28	Ba1r0g	149	18 days ago
29	PaidtoDecimate	148	Yesterday
30	BoatAnchor	148	Yesterday
31	R0cknu	148	Yesterday
I moved up the ranking from #24 to #22 and can figure out which agents have ticking guardians.
It occurred to me statstracker could figure this out for me, by comparing stats to a week ago, and show changes, much like a top 40 chart.
Here is an actual top 40 chart
http://www.at40.com/top-40/chart/35511
They show this week vs last week, and if you are moving up, down or the same.

I think this is a terrible idea for guardians, but good for other stats


lax.scatter inconsistent results between CPU and GPU

Description
Checked for duplicates but I might have missed something.
The following snippet returns inconsistent results between CPU and GPU runtimes. I checked this on Google Colab.
from jax import lax
import numpy as np

inp = np.array([0, 0, 0])
indices = np.array([[1], [2], [1]])
updates = np.array([3, 4, 2])

update_window_dims = ()
inserted_window_dims = (0,)
scatter_dims_to_operand_dims = (0,)

scatter_dim_nos = lax.ScatterDimensionNumbers(update_window_dims=update_window_dims,
                                              inserted_window_dims=inserted_window_dims,
                                              scatter_dims_to_operand_dims=scatter_dims_to_operand_dims)

lax.scatter(inp, indices, updates, scatter_dim_nos)

On CPU it returns:
DeviceArray([0, 2, 4], dtype=int32)

On GPU it returns:
DeviceArray([0, 3, 4], dtype=int32)

What jax/jaxlib version are you using?
jax v0.3.17, jaxlib v0.3.15
Which accelerator(s) are you using?
CPU/GPU
Additional System Info
Google Colab

This is working as intended:
https://jax.readthedocs.io/en/latest/_autosummary/jax.lax.scatter.html
"If multiple updates are performed to the same index of operand, they may be applied in any order."
Make sense?

I should have read deeper into it, thanks! :)


phpcs: The "WordPress" coding standard is not installed. Please review your configuration an try again.

I have been using phpcs with wpcs for a while so I am confused here.
Bug Description
What did you expect to happen? What actually happened?
I expected it to lint the file.
-->
Minimal Code Snippet
When I execute phpcs index.php --standard="WordPress" in a terminal I get the error "ERROR: Referenced sniff "PHPCSUtils" does not exist".
When I execute phpcs -i in a terminal I can see that WordPress is in the installed list.
"The installed coding standards are MySource, PEAR, PSR1, PSR2, PSR12, Squiz, Zend, WordPress, WordPress-Core, WordPress-Docs and WordPress-Extra"
The code in the file

The code in the php file does not matter because the command cannot be executed.
The PSR2 standard does work, so I do not think the problem is not with the phpcs installation.
-->
Environment

Question
Answer

PHP version
8.2.12

WordPressCS install type
e.g. Composer global

IDE (if relevant)
VSCode 1.87.0

Tested Against develop Branch?

[√ ] I have verified the issue still exists in the develop branch of WordPressCS. [that is the branch I am using]

@brothman01 How did you install WordPressCS ? Looks like you didn't answer that question or is "Composer global" your answer ?
If so, there must be a version mismatch as the list of installed standards from phpcs -i does not match what I'd expect to see when someone is running with WordPressCS develop as you claim to be.
Can you please run composer global info and post the output ?

yes composer global was my answer.  I edited the comment to remove the eg but it is not showing on the comment.  I ran the command but I think the output is weird:
composer global info
Changed current directory to /Users/bmr/.composer

@brothman01 Well, if that is what the response is, then you don't have WPCS installed via Composer global and I'm not surprised it doesn't work.
I suggest you follow the installation instructions in the README to install it and try again.

@jrfnl I can use WPCS and have been using it so it is installed.  When I execute phpcs index.php --standard="WordPress" (specifying the WordPress ruleset) it outputs errors so something is installed.
Solution:
I took your advice and took a look at the installation instructions.. I ran
composer global config allow-plugins.dealerdirect/phpcodesniffer-composer-installer true
and
composer global require --dev wp-coding-standards/wpcs:"^3.0"
so it looks to me like I was either missing that dealerdirect plugin OR running an old version of wpcs and it works now.
Thanks


gopls: 0.14.2 -> 0.15.0

Diff: https://github.com/golang/tools/compare/gopls/v0.14.2...gopls/v0.15.0
Description of changes

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
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

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

This will resolve #291689.


T322 cols from ngsqc hive

To test, see updated README (in this branch) for usage instructions.

Self-merging after


Unable to compile with openssl for aarch64-unknown-linux-gnu

Do the checklist before filing an issue:

[x] Is this related to the actions-rs Actions?
If you think it's a problem related to Github Actions in general, use GitHub Community forum instead: https://github.community
[ ] You've read the Contributing section about bugs reporting: https://github.com/actions-rs/.github/blob/master/CONTRIBUTING.md#reporting-bugs
[ ] Is this something you can debug and fix? Send a pull request! Bug fixes and documentation fixes are welcome.

Description
Hi, I'm creating this issue because i've spend a couple of DAYS trying to solve the following problem but no success.
I got a rust web server which has the following dependency openssl = { version = "=0.10.45", features = ["vendored"] } which is fails to compile when i use cross in Github Action. Previously it was working, but as i understand there is no longer support of openssl in cross so it is just started to fail. I've tried to install openssl, it is present in a system but during compilation i got the following error:
error: failed to run custom build command for `sasl2-sys v0.1.20+2.1.28`

Caused by:
  process didn't exit successfully: `/target/release/build/sasl2-sys-f091b2042744285f/build-script-build` (exit status: 101)
  --- stdout
  cargo:rerun-if-env-changed=SASL2_STATIC
  cargo:rerun-if-env-changed=LIBSASL2_NO_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_ALLOW_CROSS_aarch64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_ALLOW_CROSS_aarch64_unknown_linux_gnu
  cargo:rerun-if-env-changed=TARGET_PKG_CONFIG_ALLOW_CROSS
  cargo:rerun-if-env-changed=PKG_CONFIG_ALLOW_CROSS
  cargo:rerun-if-env-changed=PKG_CONFIG_aarch64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_aarch64_unknown_linux_gnu
  cargo:rerun-if-env-changed=TARGET_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_aarch64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_aarch64_unknown_linux_gnu
  cargo:rerun-if-env-changed=TARGET_PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR

--- stderr
  thread 'main' panicked at 'Unable to find libsasl2 on your system. Hints:

    * Have you installed the libsasl2 development package for your platform?
      On Debian-based systems, try libsasl2-dev. On RHEL-based systems, try
      cyrus-sasl-devel. On macOS with Homebrew, try cyrus-sasl.

    * Have you incorrectly set the SASL2_STATIC environment variable when your
      system only supports dynamic linking?

    * Are you willing to enable the `vendored` feature to instead build and link
      against a bundled copy of libsasl2?
  ', /cargo/registry/src/github.com-1ecc6299db9ec823/sasl2-sys-0.1.20+2.1.28/build.rs:342:5
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Looking for help and suggestions for this, thank you very much
Workflow code
This is my pipeline which was working previously:
...
jobs:
  build:
    name: Build for Raspberry PI
    runs-on: ubuntu-20.04

    steps:
      - name: Checkout Repository
        uses: actions/checkout@v2
        with:
          submodules: recursive

      - uses: actions-rs/toolchain@v1
        with:
          toolchain: 1.62.1-x86_64-unknown-linux-gnu
          target: aarch64-unknown-linux-gnu
          override: true

      - uses: actions-rs/cargo@v1
        with:
          use-cross: true
          command: build
          args: --release --target aarch64-unknown-linux-gnu
...

Action output
error: failed to run custom build command for `sasl2-sys v0.1.20+2.1.28`

Caused by:
  process didn't exit successfully: `/target/release/build/sasl2-sys-f091b2042744285f/build-script-build` (exit status: 101)
  --- stdout
  cargo:rerun-if-env-changed=SASL2_STATIC
  cargo:rerun-if-env-changed=LIBSASL2_NO_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_ALLOW_CROSS_aarch64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_ALLOW_CROSS_aarch64_unknown_linux_gnu
  cargo:rerun-if-env-changed=TARGET_PKG_CONFIG_ALLOW_CROSS
  cargo:rerun-if-env-changed=PKG_CONFIG_ALLOW_CROSS
  cargo:rerun-if-env-changed=PKG_CONFIG_aarch64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_aarch64_unknown_linux_gnu
  cargo:rerun-if-env-changed=TARGET_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_aarch64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_aarch64_unknown_linux_gnu
  cargo:rerun-if-env-changed=TARGET_PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR

--- stderr
  thread 'main' panicked at 'Unable to find libsasl2 on your system. Hints:

    * Have you installed the libsasl2 development package for your platform?
      On Debian-based systems, try libsasl2-dev. On RHEL-based systems, try
      cyrus-sasl-devel. On macOS with Homebrew, try cyrus-sasl.

    * Have you incorrectly set the SASL2_STATIC environment variable when your
      system only supports dynamic linking?

    * Are you willing to enable the `vendored` feature to instead build and link
      against a bundled copy of libsasl2?
  ', /cargo/registry/src/github.com-1ecc6299db9ec823/sasl2-sys-0.1.20+2.1.28/build.rs:342:5
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Expected behavior
Should be able to cross compile to specified target especially when openssl is set as vendored
Additional context
I had another pipeline which doesn't compile due to openssl but it is not cross compiling to another target and it was fixed just but adding those suggested commands.
I've tried adding following configuration but doesn't matter what i do openssl package can't detect openssl on a system
sudo apt install libssl-dev libsasl2-dev
touch $HOME/.cargo/config && cd $HOME/.cargo
echo [target.aarch64-unknown-linux-gnu] >> ./config
echo pre-build = [\"sudo apt install libssl-dev libsasl2-dev\"] >> ./config

and
sudo dpkg --add-architecture arm64
sudo apt-get update && sudo apt install libssl-dev libssl-dev:arm64 libsasl2-dev -y
sudo apt install gcc-aarch64-linux-gnu
sudo apt-get install build-essential gcc make perl dkms
touch $HOME/.cargo/config && cd $HOME/.cargo
echo "[target.aarch64-unknown-linux-gnu]" >> ./config
echo "linker = \"/usr/bin/aarch64-linux-gnu-gcc\"" >> ./config

Looking for help and suggestions for this, thank you very much

Hello! Did you figure out a way around this?

Hello! Did you figure out a way around this?

The issue is similar to https://github.com/sfackler/rust-openssl/issues/1865#issuecomment-1491079210. You can't compile it because the deps can't be carried over to the docker container (which cross uses) from the host even if the host has libssl-dev

It doesn't work for musl target neither.

The repository seems to be abandoned. I guess let's look elsewhere. I don't use this action, but I want to contribute to a project that uses it which caused some issues there too

A similar problem happens if you need protoc installed on the system to build a Rust crate. This repo doesn't seem to advertise a way to include system dependencies into the Docker image that cross runs in.
For the openssl problem specifically, I managed to get around it. Even if your main crate doesn't depend on openssl, you can command all transitive variants of it to be vendored by doing:
[dependencies.openssl-sys]
version = "0.9"
features = ["vendored"]

and by making sure also to set resolver = "1".


add text to readme on example branch

updates
I updated readme file.
Please review and accept

ok 👍


Webmin 3rd Party Module Custom Link 1.5 fails to open

If you add the 3rd Party Module Custom Link 1.5 the links won't open, even if set to open in new Tab.
SHIFT + click however works.
Seems to be the same issue as in #130

Thanks. Will fix it version 16.