Fix missing outputs in all languages

Set up standard approach to integration testing providers.
TODO:

[ ] Integrate into CI/CD.
[ ] Automatically detect new package version instead of manually using pulumi plugin install resource aws-apigateway ...

Fixes #12

Currently strugging to get the integration tests to pass as trying to install the dev version of the provider hangs the CLI. @lukehoban is your approval for the overall approach or have you managed to run the tests and see them pass?

Automatically detect new package version instead of manually using pulumi plugin install resource aws-apigateway ...

You should just need to do a make install and then ensure ./bin is on your PATH so that the provider is picked up from what was built. Cc @pulumi/platform-integrations for help with getting this setup in the same way we got all other packages (which ideally should be pulled into the boilerplates so that it is setup by default in new packages). We should not be manually plug-in installing - as that would user a different interface plug-in than the one that we are building/testing.

A side issue which is blocking the Go implementation is that the types for the output sub-properties are missing their fields (either that or my go-fu is lacking in how to access the fields).
Here's the only fields available on the Api property:

It would correlate with either the types being defined references from another package, or that fact they're complex outputs and not just strings etc.
Here's a snippet of the generated code:
type StageOutput struct{ *pulumi.OutputState }

func (StageOutput) ElementType() reflect.Type {
	return reflect.TypeOf((*Stage)(nil))
}

The Stage type is referenced correctly from the other package, but it appears the StageOutput type lacks the extension of the Stage type.

When testing python locally, creating an API, I'm seeing the following error:
AssertionError: Unexpected type; expected a value of type `<class 'pulumi_aws.apigateway.deployment.Deployment'>` but got a value of type `<class 'dict'>` at resource `api`, property `deployment`: {'restApi': 'jjs1tz8fvh', 'urn': 'urn:pulumi:dev::aws-apigateway-py-routes::apigateway:index:RestAPI$aws:apigateway/deployment:Deployment::api', 'createdDate': '2021-12-02T10:50:00Z', 'description': '', 'invokeUrl': 'https://jjs1tz8fvh.execute-api.eu-west-2.amazonaws.com/', 'variables': {'version': '6a3a48e0'}, 'executionArn': 'arn:aws:execute-api:eu-west-2:616138583583:jjs1tz8fvh/', 'id': 'zsbxsc', 'stageName': ''}

This appears to be a failure when trying to decode the nested types. This previously didn't cause an error when these properties were not present in the state - the presence of the value triggers the error.

When testing python locally, creating an API, I'm seeing the following error

You're running into this because of the unwrapping when setting the state. These are typed as resources in the schema and should be set in the state as those resources so they're serialized as resource references. Instead, you're converting the resources into plain objects through those .applys. When Python is then deserializing the value, it's raising an error because the Python type annotation is a resource, but the actual value is a dictionary, when it should be a resource reference.

Python is then deserializing the value, it's raising an error because the Python type annotation is a resource, but the actual value is a dictionary, when it should be a resource reference.

This makes sense - I can see two possible routes here:

Fix the underlying way the Typescript provider encodes the resource classes so it includes all fields correctly. No idea how involved this would be.
Temporary workaround to manually include the type information .. seeing some references to signatures which I'm guessing is the mechanism used when decoding the properties recursively?

It looks like the original issue with serializing the types is broken in serializeProperty: https://github.com/pulumi/pulumi/blob/master/sdk/nodejs/runtime/rpc.ts#L302

Output<OurSubResource> is converted into a Promise
 ```typescript
 const value = await serializeProperty(`${ctx}.id`, prop.promise(), promiseDeps, {
     keepOutputValues: false,
 });
 ```

The Promise<OurSubResource> is awaited and unwrapped
 ```typescript
 const subctx = `Promise<${ctx}>`;
 return serializeProperty(subctx,
     await debuggablePromise(prop, `serializeProperty.await(${subctx})`), dependentResources, opts);
 ```

OurSubResource is detected as a CustomResource. The id is serialized. The monitor does appear to support resource references, so the id is returned (note here says this is for backward compatibility).
 ```typescript
 const id = await serializeProperty(`${ctx}.id`, prop.id, dependentResources ...);

 if (await monitorSupportsResourceReferences()) {
     // snip
 }
 // Else, return the id for backward compatibility.
 return id;
 ```

Therefore I think the next step would be enabling resource reference support in our provider and test this works across all the consuming SDKs.

I spent a little time debugging this and the problem appears to be a weird issue with the way yarn link @pulumi/aws-apigateway works from a TypeScript program.
Before I get to that, I changed how the state is returned to not do the unwrapping:
    return {
        urn: restAPI.urn,
        state: {
            url: restAPI.url,
            api: restAPI.api,
            deployment: restAPI.deployment,
            stage: restAPI.stage,
            apiPolicy: restAPI.apiPolicy,
        },
    };

With that, running the following Python program works as expected:
import json
import pulumi
import pulumi_aws as aws
import pulumi_aws_apigateway as apigateway

role = aws.iam.Role("mylambda-role",
    assume_role_policy=json.dumps({
        "Version": "2012-10-17",
        "Statement": [{
            "Effect": "Allow",
            "Principal": { "Service": "lambda.amazonaws.com" },
            "Action": "sts:AssumeRole"
        }]
    })
)

policy = aws.iam.RolePolicy("mylambda-policy",
    role=role.id,
    policy=json.dumps({
        "Version": "2012-10-17",
        "Statement": [{
            "Action": ["logs:*", "cloudwatch:*"],
            "Resource": "*",
            "Effect": "Allow",
        }],
    }))

f = aws.lambda_.Function("mylambda",
    runtime=aws.lambda_.Runtime.PYTHON3D8,
    code=pulumi.AssetArchive({
        ".": pulumi.FileArchive("./handler"),
    }),
    timeout=300,
    handler="handler.handler",
    role=role.arn,
    opts=pulumi.ResourceOptions(depends_on=[policy]),
)

api = apigateway.RestAPI('api', routes=[
    apigateway.RouteArgs(path="/", method=apigateway.Method.GET, event_handler=f),
    apigateway.RouteArgs(path="/www", method=apigateway.Method.GET, local_path="www", index=False),
    apigateway.RouteArgs(path="/integration", target=apigateway.TargetArgs(uri="https://www.google.com", type=apigateway.IntegrationType.HTTP_PROXY))
])

api_key = aws.apigateway.ApiKey("api-key")

usage_plan = aws.apigateway.UsagePlan("usage-plan",
    api_stages= [aws.apigateway.UsagePlanApiStageArgs(
        api_id = api.api.id,
        stage = api.stage.stage_name,
    )],
)
aws.apigateway.UsagePlanKey("usage-plan-key",
    key_id = api_key.id,
    key_type = "API_KEY",
    usage_plan_id = usage_plan.id,
)

pulumi.export('url', api.url)

Now, getting back to the TypeScript program... When I run an initial pulumi preview, I get the following errors:
    error: aws:apigateway/usagePlan:UsagePlan resource 'usage-plan' has a problem: Missing required argument: The argument "api_stages.0.api_id" is required, but no definition was found.. Examine values at 'UsagePlan.ApiStages'.
    error: aws:apigateway/usagePlan:UsagePlan resource 'usage-plan' has a problem: Missing required argument: The argument "api_stages.0.stage" is required, but no definition was found.. Examine values at 'UsagePlan.ApiStages'.

Is this originally what wasn't working for you?
The root problem is along the lines of what you describe above, though, the resources are being serialized correctly as resource references. The problem is during deserialization: we try "rehydrate" the resource from the resource ref (creating an instance of the resource and filling in its state):
https://github.com/pulumi/pulumi/blob/eb735c7106fcbb48eb3e0edaab3d0baea47d2f0e/sdk/nodejs/runtime/rpc.ts#L631-L633
But a resourceModule for theses resource refs isn't found, so it's falling back to deserializing the resources as their urn. So the resource types from aws aren't being registered. This is strange because our program explicitly has an import * as aws from "@pulumi/aws"; at the top, which should result in all the aws resources being registered.
Well, they are being registered from the program. The problem is there are two copies of @pulumi/pulumi being used by the TypeScript program (not counting the copy used by the MLC provider).

The copy being used by the program is in: ./examples/simple/node_modules/@pulumi/pulumi.

The copy being used by apigateway.RestAPI is in: ./sdk/nodejs/node_modules/@pulumi/pulumi. This is because I used yarn link @pulumi/aws-apigateway in ./examples/simple to use the locally built package from my program.

The resource registrations are present in (1) because the program imports @pulumi/aws. However, the resource registrations are not present in (2).
Despite ./sdk/nodejs/restAPI.ts having a import * as pulumiAws from "@pulumi/aws"; at the top, if I look at the compiled restAPI.js, it doesn't actually include a require("@pulumi/aws");, since it was only using @pulumi/awsfor type definitions. So this isn't forcing any registrations. If I manually insert arequire("@pulumi/aws");inrestAPI.js`, then the program works as expected.
So what can we do to address the problem? We either need to come up with a way where the test is only going to be using a single copy of @pulumi/pulumi for both the local @pulumi/aws-apigateway and the program (possibly by changing @pulumi/pulumi in @pulumi/aws-gateway's package.json to be a peerDependency rather than a dependency; though I haven't had a chance to try this yet), or come up with a way to force RestAPI to require("@pulumi/aws") at runtime to ensure the resource registrations happen in @pulumi/aws-apigateway's copy of @pulumi/pulumi.

I can confirm the Python works perfectly with the change. After some struggle I've also confirmed that the Go version works fine with the change.
I've tried making the pulumi packages peer dependencies, but my local testing still appears to not have the values. Were you indicating this is likely only a problem for Typescript when testing locally or would this likely have the same problem if released? If it's the prior then would you feel comfortable cutting the release with just the minimal change and go from there? The worst case scenario of releasing as-is would be that Typescript still has the bug, but Python and Go are then fixed (I'm yet to put the test together for dotnet too).

@justinvp you happy with this going in as-is? Is my reading of your comment correct that this mainly affects when being referenced locally or will this require further changes to get the published TS version working?

you happy with this going in as-is?

I'm fine with it. The issue should only happen when attempting to test the Node.js package locally with yarn link and shouldn't affect anyone installing the package from npm. I think we can just temporarily skip any Node.js tests that check these outputs until we have a good solution. But we should be able to test the other languages. And should be able to have a basic Node.js sanity test that doesn't check those outputs.


Allow element in useRoutes to be a function

This is more a suggestion than a question.
What would be the downsides of allowing element in useRoutes to be a function apart from a React element?
I have something like this in mind:
useRoutes([{
  path: '/',
  element: (context: RouterContext) => <Home />,
}]);

Why am I asking this?
Because I'm trying to create some kind of "guarding" system that would verify if everything's correct before rendering the route and, using a function, we could take advantage of React <Suspense /> element doing the following:
useRoutes([{
  path: '/',
  element: (context: RouterContext) => {
    const isOkToRender = // use a Suspense ready wrapped promise
    return <Home isOkToRender={isOkToRender} />
  },
}]);

And in the route component itself:
const Home = ({ isOkToRender }: any) => {
  if (!isOkToRender.read()) {
    return 'You shouldn't be here!';
  }

  return;  // Render component normally
};

Example
An example codesandbox showing the process can be found here: https://codesandbox.io/s/gifted-tesla-iruyt?file=/src/App.tsx

This would end up making the logic more complex around routing, and isn't really needed. Just wrap around your element with one that will conditionally render its children:
{ path: '/', element: <CheckAuth><Home /></CheckAuth> }

Or you can wrap that isOKToRender logic in a hook you can use from within your components.

If you follow that approach, you can't have asynchronous validation and take advantage of having a Suspense element handling the fallback.
Also, you start validation as soon as you make the transition. That way, when you finish rendering the UI, the validation could has already been finished and you don't have to wait.
So again, it's a really small API change and opens alternatives that are just not possible right now or suboptimal.


[BEAM-8575] Add a Python test to test windowing in DoFn finish_bundle()

This test is the Python parity for the Java ParDo test testWindowingInStartAndFinishBundle.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

R: @y1chi
PTAL Yichi! Thanks:)

LGTM, I wonder would it be better to move the timestamp assignment to beam.Create() and combine the map function into the ParDo.

Thanks for the quick review!

move the timestamp assignment to beam.Create()
This can be done, but does not make much difference, since we still want both the process() and finish_bundle() to do something in this test, and see the reason below.

and combine the map function into the ParDo.
I think it's clearer to separate the Map from the test DoFn. The purpose of this test is to verify that after a DoFn with finish_bundle() implemented, it will produce results both from process() and finish_bundle(). More specifically, it wants to make sure that when windowing is involved, the output will be correct after the DoFn. The last Map is simply to print out all outputs from the test DoFn. Thoughts?

@tvalentyn could you help to merge?

Thanks Yichi for the review:)

Thanks, @liumomo315 and Yichi! Somehow I missed the last comment, merged now!

@liumomo315 Please run ValidatesRunner tests when marking new tests as "VR". The command to trigger the tests can be found in  .test-infra/jenkins/README file, the link is available in the PR template. To run those tests you can just comment on the PR: Run Dataflow Python ValidatesRunner

Thanks for the hints, Valentyn! Will do that for my new PRs.


Update help doc comments on Get-GitStatusFix #657

After adding all the other settings that impact Get-GitStatus, I wonder if -Force should also override EnableStashStatus as well?

After adding all the other settings that impact Get-GitStatus, I wonder if -Force should also override EnableStashStatus as well?

IMO no, since posh-git defaults to not including stash status. Maybe Get-GitStatus -IncludeStashStatus?

Another option would be to pass in a GitPromptSettings object via a -GitPromptSettings parameter and use the global GitPromptSettings as the default value for this parameter when it's not provided e.g.:
$s = New-GitPromptSettings
$s.EnableFileStatusFromCache = $false
$s.EnableStashStatus = $true
$s.UntrackedFilesMode = 'All'
Get-GitStatus -GitPromptSettings $s

That would give a user of Get-GitStatus full control but yeah, the usage is less than ideal.  And adding this would conflict with -Force.  I suppose it could the -GitPromptSettings parameter could be added in another parameter set - exclusive of -Force.  Thoughts?


Document the NuGet package

I spent a great deal of time identifying that the package was called Redis.OM.
Please add a reference to this on:

https://redis.github.io/redis-om-dotnet/articles/intro.html
https://redis.com/blog/introducing-redis-om-net/

It would've saved me an hour.
... btw https://redis.com/blog/introducing-redis-om-net/ references the "API docs" on https://didactic-potato-b7cc3d29.pages.github.io/api/Redis.OM.html which is a 404.

Had the blog updated. Thanks for pointing this out Rob, closing this out.


Haddock cannot parse text-generic-pretty-1.2.1

[  176s] + ./Setup haddock --html --hoogle
[  176s] Preprocessing library for text-generic-pretty-1.2.1..
[  176s] Running Haddock on library for text-generic-pretty-1.2.1..
[  176s] Warning: The documentation for the following packages are not installed. No
[  176s] links will be generated to these packages: mtl-compat-<IP_ADDRESS>
[  177s]
[  177s] src/Text/PrettyPrint/GenericPretty.hs:66:7: error:
[  177s]     parse error on input ‘-- |'gpretty' is the (*->*) kind equivalent of 'docPrec'’
[  177s]    |
[  177s] 66 |       -- |'gpretty' is the (*->*) kind equivalent of 'docPrec'
[  177s]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[  177s] Haddock coverage:
[  177s] error: Bad exit status from /var/tmp/rpm-tmp.gHtNRH (%build)

This build was run with GHC 8.2.2 on openSUSE Linux.

Sorry, I opened this ticket in the wrong place. My mistake.


Update RFmxNR (to include RFmxNR_ModAccFetchPUSCHPhaseOffsetTrace)

What does this Pull Request accomplish?
Updates niRFmxNR to latest. Metadata files were sourced from grpc-device-scrapigen (see https://github.com/ni/grpc-device-scrapigen/pull/153).
The InstrumentStudio Panels Squad implemented usage of ModAccPUSCHPhaseOffsetTrace on Friday evening. This broke InstrumentStudio's Remote Panels and caused test failures [1] [2]. These new changes to use ModAccPUSCHPhaseOffsetTrace are required for the release so it is not reasonable to just revert them. To fix InstrumentStudio's Remote Panels, we will need to update grpc-device with this entrypoint.
This PR adds the ModAccFetchPUSCHPhaseOffsetTrace entry-point required for InstrumentStudio Remote Panels.
Note that this update also adds the following attributes:

MODACC_RESULTS_PUSCH_PEAK_PHASE_OFFSET_MAXIMUM
MODACC_RESULTS_PUSCH_PEAK_PHASE_OFFSET_SLOT_INDEX

Why should this Pull Request be merged?
AB#2346243
AB#2346248
What testing has been done?
Build passes.

Bypassing Windows System tests as there is an active issue with the compute farm not allocating test runners as needed. @reckenro


fix: correctly support command complete in postgres-extended

Signed-off-by: Alex Chi<EMAIL_ADDRESS>close https://github.com/risinglightdb/sqllogictest-rs/issues/142

We can wait until the upstream PR gets merged before proceeding.

Shall we fork rust-postgres and release our own fork for now?

But some crates rely on Postgres-types... I'm not sure if we can override dependency when releasing this crate on crates.io.

👀 What's wrong? Isn't the PR merged?

Need wait for upstream to release new bersion

I'm not sure if we can override dependency when releasing this crate on crates.io.

I'm afraid not. Unless we also publish a patched version of the dependency. 🤣

cc @xxchan @wangrunji0408 ready for review

ping for @xxchan for a final review if you have time :) Thanks!

Sorry I'm too lazy. I will take a look tonight.


Changes made

IMPORTANT: When creating your Pull Request, please use the following format for the title: Category - Resource Name & Section
PR Title samples:

Web development - CSS Portal & Tools
Web development - Leetcode & Challenges

Fixes Issue

#closes #115
Description:

"I added the prices, and working links, and simplified the description. in the books section and added the whether it is a free or paid course in tutorials or courses"
Resource URL:

https://github.com/Divya-1612-reddy/ResourceHub/tree/main/UI-UX Design
Checklist:
Before submitting your pull request, ensure that you have completed the following tasks:

[ ] I have carefully reviewed and adhered to the contributing guidelines before creating this pull request.
[ ] I followed the prescribed PR title template. (Check this if you're adding a resource)

i changed  now u can merge it

done


Support for different container service rather than only Docker

As the title, we need to support other container services. I personally use podman but there is no place to configure the project to use podman. Everytime I run the project, it always failed because it always search for docker.exe.

You can track the issue here https://github.com/dotnet/aspire/issues/827


Easy way to map getState() to this.props.getState() for dependency injection?

Hello.
I'm working on a piece of code called "reduxify" which I hope to publish as an NPM module, that helps take away some of the boilerplate of using react-redux on large projects.
The problem that I'm running into is that I can't seem to find a way to map getState() to props.  This is somewhat important for the design pattern I'm working with.
Specifically, in order to keep my "utilities" unit-testable in isolation - that is, without having to import the store, I was using dependency injection. That is, if I had a file called ./utilities/api.js, it would be written something like this:
export default function api = (dispatch, getState) => {
  const getRandomNumber = (req) => {
    request(req).then((num) => {
       dispatch(addNumber(num));
       let currentState = getState();
       if (currentState.number % 2 === 0 ){
         dispatch(evenAction())
       } else {
         dispatch(oddAction());
       }
    })
  }
  return {
     getThingy,
  }
}

This way, I can mock both dispatch and getState.  As for the use in dev/production, it would be something like this:
import apiRoot from './api'

class NumberThing extends Component{
  constructor(props){
     let api = apiRoot(this.props.dispatch, this.props.getState)
  }
  this.handleClick(){
     api.getThingy(this.state.whatever)
  }
}

I'll be writing v. 1 of Reduxify without this functionality, but I'm thinking there's gotta be a way to do this without exporting getState() from the store and importing it into the component.
Your thoughts?

Hi, Brian.  I know we talked about something like this a while back.  Is there any reason you aren't just using thunks?  Because thunks are middleware-based, the thunk functions receive getState and dispatch automatically.  Also, with the newer redux-thunk v2.1.0, you can automatically inject additional arguments into your thunk functions, such as specific AJAX API wrappers or something.

So glancing at https://github.com/brianboyko/reduxify , a couple thoughts:

Semantically, it's not "reducers" that you're picking - it's the keys in your state (which may or may not have specific reducer functions assigned to handle updating them)
Everyone's apps and setups will vary, but I would think that much of the time components would need much more fine-grained data than an entire slice of state
I know that I'm the one who wrote that prepareActions utility in the first place and showed it to you, but fwiw, I'm starting to re-think my approach on including bound actions as a prop named "actions", because it's starting to cause the plain version of my components to sorta-kinda "know" that their props are coming from Redux.  Still debating the pros and cons.

While thunks are very useful for asynchronous actions, they don't seem to me to be the right tool for this type of usage.  Not every "utility" function that I would write would necessarily be asynchronous,
Truth be told, I actually think asynchronous actions can cause a big problem if you're trying to use Redux to replay the state the user experienced it in.  That is: if actions can be asynchronous, depending on the variable delay, the actions might be dispatched out of order, which can lead to debugging problems.  ("Hey, why does it work for me, here in London, but not for my partner in Taipei?")

Note that the since the DevTools need to be placed last in the enhancer sequence, right before the real store, they only replay actions that actually reached the reducers.  So, the actual changes to state would be the part that gets replayed, not stuff that got intercepted by middleware and redirected.
Also, thunks can totally serve for both true async behavior and more complex synchronous logic as well.  I've got several examples of thunk usage over at https://gist.github.com/markerikson/ea4d0a6ce56ee479fe8b356e099f857e, and note that three of the four are just synchronous code, not async.  So yes, this is exactly one of the use cases that thunks were intended for.

Ah, I don't have access to the dev tools where I work, so building a custom solution was necessary.

Gotcha.  Out of curiosity: I know that you're working in a fairly restricted environment, but is there anything preventing you from downloading stuff like the Redux DevTools package "manually" and including it in your project?

Only that I've tried it, and it doesn't work for whatever reason. I suspect
it is because Redux Dev Tools attempts to recalculate the state from
scratch by running through all the actions, every time you move backwards
in the timeline, which is problematic for an application that can have up
to 3000 actions.


storage: support startOffset and endOffset query param during object listing

Currently we don't have support to set the startOffset and endOffset  during the object listing.
Similar case found in go as well see https://github.com/googleapis/google-cloud-go/issues/2556 also check the JSON API for more info.
~/cc: @frankyn

SGTM to support if you have the cycles. Thanks @athakor


Needed Advance or nested where

Hi,
First of all thanks for the great package. I was wondering it will be good if this package also supports nested or advance where conditions like
 ->where(function ($query) {
                        $query->whereNull('ban')->orWhere('is_ban', '!=', 1);
                    })

Please let me know what you think about it.
Thanks

Hi @anshsoni143, this is actually a good idea!
I've just started working on a new version 4.0.0 and I'll consider to add this feature to it, or at least to 4.1.0.

orWhere will be a great improvement! 👍

Hi @babenkoivan
I was also wondering if this was in the works?
Thanks!

Any updates

up


Stripping the file extension crudely in both Phrase and Instrument view

Crudely strips the file extension from the Phrase and Instrument view as not really needed to see.
Fixes: https://github.com/democloid/picoTracker/issues/88

I honestly don't like this approach, this is not a use case that merits changing this class.
Can't recall off the top of my head how this is done, but this should probably be handled on input. When the sample is loaded, it's name is read, and the extension should be removed there. That way it will also be always correct, without having to handle this special case in every new place we decide to display it's name.

I agree with you, hence the mention of 'crudely' ... I need to double-check whether the name needs to have the file extension for any reason, if not I'll strip it there when it gets added as a variable/instrument so it should only be done in one spot.
I'll update PR accordingly.

@democloid I've revisited the changes, it is much simpler now and just drops the file extension on the import. Considering we are either only dealing with .wav or .sf2 we have a very easy case to drop the file extension. This seems to work on my OSX build without any issues but I haven't tested it on a picoTracker.


Regular file system hot reloading is not working

It's happening because the filesystem watcher implementation in bevy tries to downcast the asset io to FileAssetIO. Since we're wrapping it, that downcast fails, and nothing happens.
Bevy issue: https://github.com/bevyengine/bevy/issues/1414

This should be possible to fix now :)
But not sure when I'll get the time to do it. If anyone wants to give it a go, check the linked bevy issue above for details!

This should probably be closed @johanhelsing

Yes, thanks :)


Update Saleor ecosystem snapshot

Can we pin this somehow?

I think these all use UV_EXCLUDE_NEWER. Not really sure what's up.


match_delegate: add owner

Discussed with @alyssawilk offline, I am happy to be code owner from Google side, I have designed/reviewed PR https://github.com/envoyproxy/envoy/pull/27088 and contributed some other PRs(#26735, #27621)

/assign @alyssawilk @wbpcode


How to install pytorch, fairseq and GPU support?

I've been trying to use conda to install pytorch 1.71, with GPU support for cuda 11.1, and fairseq 0.10.1, on Linux.
I started a StackOverflow question (https://stackoverflow.com/q/65543178/841830), which I've self-answered but my answer is only useful for the case of no GPU support.
A summary:
If I use pytorch channel to install pytorch and cudatoolkit=11.0, then conda-forge to install fairseq 0.10.1, it all installs, and I can confirm torch.cuda.is_available() is true, but fairseq won't work with my Transformer model, as described in the StackOverflow question. (fairseq 0.9.0 also fails.)
If I install everything from the conda-forge channel, then my fairseq Transformer model works fine, but it is using the CPU and torch.cuda.is_available() is false.
If I try to just use the conda-forge channel, and specify pytorch-gpu, it refuses to install, as that version only offers cuda 10.2 and earlier support. No cuda 11.1 support.
Surely someone must have got this combination of software working together? I'm not tied to conda - ironically I am using it because I thought it would give me the smoothest install. If no-one has any ideas, my next try will be wiping conda and trying with pip.
Other information: Python 3.8,  NVIDIA-SMI 455.38.

It's possible there's a bug in fairseq in the case of the GPU install. Assuming PyTorch + GPU support is working (torch.cuda.is_available() returns True), then based on the SO post it looks like the following produces an error, correct?
model = TransformerModel.from_pretrained(...)
model.eval()
model.cuda()
inputs = [model.binarize(encode(src, str)) for str in texts]
batched_hypos = model.generate(inputs, beam)

Can you share more details about the model, encoding, etc.?
For example, this seems to work fine for me on fairseq==0.10.1 using this model:
model = TransformerModel.from_pretrained("wmt16.en-de.joined-dict.transformer", "model.pt")
model.eval()
model.cuda()
model.generate(model.binarize("Hel@@ lo world"), 5)

It's possible there's a bug in fairseq in the case of the GPU install. Assuming PyTorch + GPU support is working (torch.cuda.is_available() returns True), then based on the SO post it looks like the following produces an error, correct?
model = TransformerModel.from_pretrained(...)
model.eval()
model.cuda()
inputs = [model.binarize(encode(src, str)) for str in texts]
batched_hypos = model.generate(inputs, beam)

Can you share more details about the model, encoding, etc.?
For example, this seems to work fine for me on fairseq==0.10.1 using this model:
model = TransformerModel.from_pretrained("wmt16.en-de.joined-dict.transformer", "model.pt")
model.eval()
model.cuda()
model.generate(model.binarize("Hel@@ lo world"), 5)

I got this working earlier today by ignoring the advice to not mix conda and pip. So from a fresh machine I did:
sudo apt install python3-dev git g++
# install Anaconda3-2020.11-Linux-x86_64.sh from anaconda.com
# Set up and activate a conda env called "test"
conda install pytorch cudatoolkit=11.0 -c pytorch

And then:
git clone https://github.com/pytorch/fairseq
cd fairseq
pip install --editable ./

pip install sentencepiece

What I couldn't get to work was the apex install. It fails with "pip._internal.operations.install.legacy.LegacyInstallFailure". It appears this is either due to a clash with cuda 11.1, or with the 3090 GPU.
So, as it was optional, I've left apex for the moment. But it made me wonder if the problems I had after installing fairseq using conda was due to some cuda version differences?

I got this working earlier today by ignoring the advice to not mix conda and pip. So from a fresh machine I did:
sudo apt install python3-dev git g++
# install Anaconda3-2020.11-Linux-x86_64.sh from anaconda.com
# Set up and activate a conda env called "test"
conda install pytorch cudatoolkit=11.0 -c pytorch

And then:
git clone https://github.com/pytorch/fairseq
cd fairseq
pip install --editable ./

pip install sentencepiece

What I couldn't get to work was the apex install. It fails with "pip._internal.operations.install.legacy.LegacyInstallFailure". It appears this is either due to a clash with cuda 11.1, or with the 3090 GPU.
So, as it was optional, I've left apex for the moment. But it made me wonder if the problems I had after installing fairseq using conda was due to some cuda version differences?

Ah, that makes sense, glad it's working now!
Apex is indeed optional. I'm on cuda 11 and can confirm apex build seems fine, but good to know that there may be issues starting with cuda 11.1.

Ah, that makes sense, glad it's working now!
Apex is indeed optional. I'm on cuda 11 and can confirm apex build seems fine, but good to know that there may be issues starting with cuda 11.1.


pull request for e2e test at 01/04/2017 18:26:12

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Fix typos

Thanks for that pull request, it will be merged soon.
Please be warned that part of the typos were imported from Annex60 (and previously from Buildings to Annex60). These need to be corrected there, as the changes here will be overwritten with the next Annex60 integration.


w2field 'list' maxDropWidth

Is it the case that if maxDropWidth is not specified, the width of the dropdown should adapt to it's items' width?
There should be no horizontal scrollbar in the demo
http://w2ui.com/web/docs/1.5/form/fields-list

There has been a PR that lets you do what you want:
https://github.com/vitmalina/w2ui/pull/1962
Just play around with align, minDropWidth and maxDropWidth.
The docs and examples have yet to be updated to reflect these changes.


Quarkus vault fails to re-authenticate and acquire a new token after 'The system max TTL' of vault

##Describe the  #bug
Quarkus vault fails to re-authenticate and acquire a new token after 'The system max TTL' of vault and thereby uses a ttl less than requested to create dynamic db credentials.
The quarkus jdbc connection fails after the capped ttl is expired. The refresh is not initiated until the max-lifetime property defined in application properties is reached.
Original issue: https://github.com/quarkiverse/quarkus-vault/issues/66
Expected behavior
Quarkus vault re-authenticate and acquire a new token after 'The system max TTL' of vault is reached or force re-authenticate after a a specific time defined in application properties.
Actual behavior
Warning in logs which says
auth lease duration 3358s is smaller than the renew grace period 3600s
The password of the Dynamic Database Credentials db user becomes invalid and no longer possible to log in until a restart.
Java Version - 17
Quarkus Version - 2.9.2.Final
Logs from application:
2023-03-25 09:29:07
auth lease duration 3358s is smaller than the renew grace period 3600s

23-03-25 08:29:32
extended rds-postgresql-app(database/creds) credentials:{leaseId: database/creds/rds-postgresql-app/hBJOjGzFYgu6Bqmr3LOS5zVT, renewable: true, leaseDuration: 3369s, valid_until: Sat Mar 25 08:25:41 UTC 2023, username: ***, password:***}

2023-03-25 05:20:16
extended rds-postgresql-app(database/creds) credentials:{leaseId: database/creds/rds-postgresql-app/hBJOjGzFYgu6Bqmr3LOS5zVT, renewable: true, leaseDuration: 14725s, valid_until: Sat Mar 25 08:25:41 UTC 2023, username: ***, password:***}

2023-03-24 18:14:50
extended rds-postgresql-app(database/creds) credentials:{leaseId: database/creds/rds-postgresql-app/hBJOjGzFYgu6Bqmr3LOS5zVT, renewable: true, leaseDuration: 43200s, valid_until: Sat Mar 25 05:14:49 UTC 2023, username: ***, password:***}

2023-03-24 07:14:10
extended rds-postgresql-app(database/creds) credentials:{leaseId: database/creds/rds-postgresql-app/hBJOjGzFYgu6Bqmr3LOS5zVT, renewable: true, leaseDuration: 43200s, valid_until: Fri Mar 24 18:14:10 UTC 2023, username: ***, password:***}

2023-03-23 20:05:00
extended rds-postgresql-app(database/creds) credentials:{leaseId: database/creds/rds-postgresql-app/hBJOjGzFYgu6Bqmr3LOS5zVT, renewable: true, leaseDuration: 43200s, valid_until: Fri Mar 24 07:05:00 UTC 2023, username: ***, password:***}

2023-03-23 08:59:15
extended rds-postgresql-app(database/creds) credentials:{leaseId: database/creds/rds-postgresql-app/hBJOjGzFYgu6Bqmr3LOS5zVT, renewable: true, leaseDuration: 43200s, valid_until: Thu Mar 23 19:59:15 UTC 2023, username: ***, password:***}

Request/Response log from vault
{
   "time":"2023-03-25T08:29:07.863585782Z",
   "type":"response",
   "auth":{
      "client_token":"*****",
      "accessor":"******",
      "display_name":"kubernetes-data-engineering-app",
      "policies":[
         "default",
         "prod-conversion",
         "rds-postgresql-app"
      ],
      "token_policies":[
         "default",
         "prod-conversion",
         "rds-postgresql-app"
      ],
      "policy_results":{
         "allowed":true,
         "granting_policies":[
            {
               "name":"default",
               "namespace_id":"root",
               "type":"acl"
            }
         ]
      },
      "metadata":{
         "role":"app",
         "service_account_name":"app",
         "service_account_namespace":"data-engineering",
         "service_account_secret_name":"",
         "service_account_uid":"*****"
      },
      "entity_id":"****",
      "token_type":"service",
      "token_ttl":86400,
      "token_issue_time":"2023-02-21T09:25:05Z"
   },
   "request":{
      "id":"***",
      "client_id":"****",
      "operation":"update",
      "mount_type":"token",
      "mount_accessor":"auth_token_59633bdc",
      "client_token":"****",
      "client_token_accessor":"***",
      "namespace":{
         "id":"root"
      },
      "path":"auth/token/renew-self",
      "remote_address":"*****",
      "remote_port":****
   },
   "response":{
      "auth":{
         "client_token":"****",
         "accessor":"******",
         "display_name":"kubernetes-data-engineering-app",
         "policies":[
            "default",
            "prod-conversion",
            "rds-postgresql-app"
         ],
         "token_policies":[
            "default",
            "prod-conversion",
            "rds-postgresql-app"
         ],
         "metadata":{
            "role":"app",
            "service_account_name":"app",
            "service_account_namespace":"data-engineering",
            "service_account_secret_name":"",
            "service_account_uid":"****"
         },
         "entity_id":"****",
         "token_type":"service",
         "token_ttl":3358,
         "token_issue_time":"2023-02-21T09:25:05Z"
      },
      "mount_type":"token",
      "mount_accessor":"auth_token_59633bdc",
      "warnings":[
         "TTL of \"24h\" exceeded the effective max_ttl of \"55m58s\"; TTL value is capped accordingly"
      ]
   }
}

The issue happens every 32 days if the application is not restarted.
I suspect its because of the system max ttl value of vault.
https://developer.hashicorp.com/vault/docs/concepts/tokens#the-general-case

you can check this: https://github.com/quarkiverse/quarkus-vault/discussions/72

I am happy to announce support for this (with reactive SQL clients) has made the long journey from my Vert.x PR into Quarkus 3.2.0.Final.
Adding an quarkus.datasource.reactive.idle-timeout=PT60M (with the appropriate timeout for your Vault lease configuration) will ensure a fresh token is always used.
See https://quarkus.io/guides/reactive-sql-clients#pooled-connection-idle-timeout

For those using JDBC, Quarkus supports quarkus.datasource.jdbc.max-lifetime.
See https://quarkus.io/guides/all-config#quarkus-agroal_quarkus.datasource.jdbc.max-lifetime


Eliminate race condition in ContextMapTest.VerifyWithThreads

This race condition occurs because we weren't waiting for the context to actually finish terminating before attempting to assess the state of the context map.  This meant that the secondary thread was sometimes still running even when we expected it to have already terminated.

+1 for adding better tests too.


Move build pipeline and tests to github actions and ADO

Description
There is a way to build images using reusable workflow from test-infra.
Examples:

https://github.com/dekiel/test-infra/blob/main/.github/workflows/test-out-org.yml
https://github.com/kyma-project/test-infra/blob/main/.github/workflows/pull-build-oidc-token-verifier.yml

Remember about permissions. Example:
: https://github.com/dekiel/test-infra/blob/ada722b56dc5617e15a569241ab4c423fa00b88b/.github/workflows/test-out-org.yml#L12C1-L15C1
Reasons
Prow infrastructure is going to be shutdown and all Kyma teams are asked to migrate.
Acceptance criteria
Builds:

[x] busola-local build is moved to GithubActions
https://github.com/kyma-project/busola/pull/2971
https://github.com/kyma-project/busola/pull/2972
https://github.com/kyma-project/busola/pull/2974
https://github.com/kyma-project/busola/pull/2976
[x] remove from test-infra:
https://github.com/kyma-project/test-infra/pull/11027
[x] busola-web build is moved to GithubActions
https://github.com/kyma-project/busola/pull/3124
[ ] remove from test-infra
[x] busola-backend build is moved to GithubActions
https://github.com/kyma-project/busola/pull/3124
[ ] remove from test-infra
[x] kyma-dashboard-dev build is moved to GithubActions
https://github.com/kyma-project/kyma-dashboard/pull/308
https://github.com/kyma-project/kyma-dashboard/pull/314
https://github.com/kyma-project/kyma-dashboard/pull/317
https://github.com/kyma-project/kyma-dashboard/pull/328
https://github.com/kyma-project/kyma-dashboard/pull/327
https://github.com/kyma-project/kyma-dashboard/pull/357
[x] kyma-dashboard-dev URL to the registry is adjusted
https://github.com/kyma-project/kyma-dashboard/pull/355
[ ] remove from test-infra
[x] kyma-dashboard-stage build is moved to GithubActions
https://github.com/kyma-project/kyma-dashboard/pull/355
[ ] remove from test-infra
[x] kyma-dashboard-prod build is moved to GithubActions
https://github.com/kyma-project/kyma-dashboard/pull/355
https://github.com/kyma-project/kyma-dashboard/pull/357
[ ] remove from test-infra

Tests:

[x] busola-integration-namespace
https://github.com/kyma-project/busola/pull/2981

[x] remove from test-infra
https://github.com/kyma-project/test-infra/pull/11171

[x] busola-integration-cluster
https://github.com/kyma-project/busola/pull/3033

[x] remove from test-infra
https://github.com/kyma-project/test-infra/pull/11268

[x] busola-lighthouse
https://github.com/kyma-project/busola/pull/3033

[x] remove from test-infra
https://github.com/kyma-project/test-infra/pull/11268

[x] kyma-dashboard-integration
https://github.com/kyma-project/kyma-dashboard/pull/340

[x] remove from test-infra
https://github.com/kyma-project/test-infra/pull/11268

[x] kyma-dashboard-smoke-stage
https://github.com/kyma-project/kyma-dashboard/pull/345

[x] remove from test-infra
https://github.com/kyma-project/test-infra/pull/11268

[x] kyma-dashboard-smoke-prod
https://github.com/kyma-project/kyma-dashboard/pull/345

[x] remove from test-infra
https://github.com/kyma-project/test-infra/pull/11268

[x] workflow for checking if there is any changes in extensibility and extensions/statics/wizards.yaml should be regenerated
https://github.com/kyma-project/kyma-dashboard/pull/336

Settings:

[ ] all build jobs are added as required in repo settings
[ ] Tide is settled as unmanaged for busola and kyma-dashboard repo
[ ] Automerge is set
[ ] Passing all of the checks to merge is set

I would also remove the duplicate images:

https://github.com/kyma-project/kyma-dashboard/blob/main/Dockerfile.local
https://github.com/kyma-project/kyma-dashboard/blob/main/Dockerfile.local.builder
and leave the one without builder.

tide and auto-merge need to be done as follow-up, after removing tide


Should not get subscript from AnyObject.

This would crash when getting a not existing path. But not always.

Done #203


Shell Sort

Assigned Issue Number?
#35
Language Opted?
C++ & Python
Number of files added or updated?
3
Name of these files?
Algorithms => Sorting => Shell_Sort => shell_sort.py
Algorithms => Sorting => Shell_Sort => shell_sort.cpp
Checklist

[x] I was assigned for this otherwise my PR will be rejected.
[x] I've read the contribution guidelines.
[x] I've referred the correct issue number.
[x] I've filled up this entire template correctly.

:star2: this repository and support.

@therc01 Great work 👍🏼


Add pool_size and max_overflow to SQLAlchemy config parser

For context: in post service after adding graphs for the pool usage metrics we saw that we were hitting our max overflow often so we started increasing pool size.
I've seen usage of these in in other services too.

thanks!

@spladug do I just merge whenever?

yup! go for it!


unable to install sharp npm in linux server

<EMAIL_ADDRESS>install /usr/local/lib/node_modules/sharp
(node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)

info sharp Downloading https://github.com/lovell/sharp-libvips/releases/download/v8.7.0/libvips-8.7.0-linux-x64.tar.gz
/usr/local/lib/node_modules/sharp/install/libvips.js:80
throw new Error(Status ${response.statusCode});
^
Error: Status 403
at /usr/local/lib/node_modules/sharp/install/libvips.js:80:17
at f (/usr/local/lib/node_modules/sharp/node_modules/once/once.js:25:25)
at ClientRequest.protocol.request.res (/usr/local/lib/node_modules/sharp/node_modules/simple-get/index.js:63:5)
at Object.onceWrapper (events.js:315:30)
at emitOne (events.js:116:13)
at ClientRequest.emit (events.js:211:7)
at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:544:21)
at HTTPParser.parserOnHeadersComplete (_http_common.js:117:17)
at TLSSocket.socketOnData (_http_client.js:440:20)
at emitOne (events.js:116:13)
make: Entering directory /usr/local/lib/node_modules/sharp/build'   TOUCH Release/obj.target/libvips-cpp.stamp   CXX(target) Release/obj.target/sharp/src/common.o ../src/common.cc:25:22: fatal error: vips/vips8: No such file or directory  #include <vips/vips8>                       ^ compilation terminated. make: *** [Release/obj.target/sharp/src/common.o] Error 1 make: Leaving directory /usr/local/lib/node_modules/sharp/build'
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack     at emitTwo (events.js:126:13)
gyp ERR! stack     at ChildProcess.emit (events.js:214:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
gyp ERR! System Linux 3.10.0-514.el7.x86_64
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/sharp
gyp ERR! node -v v8.12.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>install: (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2018-12-12T09_16_49_418Z-debug.log

Hello, the salient part of this error message is:
info sharp Downloading https://github.com/lovell/sharp-libvips/releases/download/v8.7.0/libvips-8.7.0-linux-x64.tar.gz
...
Error: Status 403

which suggests this machine cannot download the libvips binaries from GitHub. Perhaps there is a firewall or temporary network problem?

Hope this helped, please feel free to re-open with more details if not.


django: minimum supported python version for django 1.7 is 2.7

Mark appropriately in package.

Huh, merge conflicts?

Ohh - django was updated to 1.7.7 a few days ago and it's in the context lines...


TypeError: expected Tensor as element 0 in argument 0, but got NoneType

TypeError                                 Traceback (most recent call last)
Cell In[230], line 3
1 flattened_mask_features = torch.cat(seg_features, dim = 0)
2 print(clip_features)
----> 3 flattened_clip_features = torch.cat(clip_features, dim = 0)
4 flattened_clip_features = torch.nn.functional.normalize(flattened_clip_features.float(), dim = -1, p = 2)
5 flattened_scales = torch.cat(scales, dim = 0)
TypeError: expected Tensor as element 0 in argument 0, but got NoneType

changing this
'dataset.need_features = True'
in Data and Model Preparation part of notebook solved it.


Transfer not loading balance

Transfer is not loading balance for me. I have funds in my wallet but I cannot see them in transfer. Tried reloading. Tried koda.art and kodadot.xyz and canary.

fixed #10801  :)


Projecteur on Debian 10

I downloaded the .deb file for Debian 9, hoping it to work on Debian 10 (KDE Plasma Desktop). Unfortunately, something is wrong somewhere. When going to Projecteur settings, the "Device connected:" field always display "false". Is there any obvious difference between Debian 9 and 10 explaining this behaviour ?
I'll try to build it by myself later on.

Hi, seems more like an issue with the udev rules (that should be installed with the package though) than the application itself. Do you use the USB dongle or do you connect via Bluetooth?

Thanks for you answer. I'm using the USB dongle, I just tried linking it via Bluetooth but it seems that my laptop don't see it in the peripherals list. I don't have much time to investigate this problem today, though.
I'm afraid that this file doesn't exists at all. That might be the core of the problem.

The rules file define which user-group have access to the spotlight device, which is GROUP="spotlight-device" by default. So you will need to add yourself to that group.

Oh perfect, I indeed added a proper group and now everything is working as expected. Thanks a lot !


[REEF-948] Remove testing message in PackageNodeImpl

JIRA:
REEF-948

It looks good to me. I'll test and merge this.


Cannot validate response

I can only call from my Google Voice. I cannot send text messages since I have not selected any phone number to use.
My code:
from googlevoice import Voice
from googlevoice.util import input

voice = Voice()
voice.login()

outgoingNumber = input('Number to call: ')
forwardingNumber = input('Number to call from [optional]: ') or None

voice.call(outgoingNumber, forwardingNumber)

if input('Calling now... cancel?[y/N] ').lower() == 'y':
    voice.cancel(outgoingNumber, forwardingNumber)

My error:
Traceback (most recent call last):
  File "callMeMaybe.py", line 10, in <module>
    voice.call(outgoingNumber, forwardingNumber)
  File "C:\Python27\lib\site-packages\googlevoice\voice.py", line 155, in call
    'phoneType': phoneType
  File "C:\Python27\lib\site-packages\googlevoice\voice.py", line 287, in __validate_special_page
    load_and_validate(self.__do_special_page(page, data))
  File "C:\Python27\lib\site-packages\googlevoice\util.py", line 65, in load_and_validate
    validate_response(loads(response.read()))
  File "C:\Python27\lib\site-packages\googlevoice\util.py", line 59, in validate_response
    raise ValidationError('There was a problem with GV: %s' % response)
googlevoice.util.ValidationError: There was a problem with GV: {'data': {'code': 1}, 'ok': False}

Thank you.

You're saying you're trying to send sms from code and it doesn't work?
What code are you using?
What happens when you try this code?
from googlevoice import Voice
from googlevoice.util import input

voice = Voice()
voice.login()

phoneNumber = input('Number to send message to: ')
text = input('Message text: ')

voice.send_sms(phoneNumber, text)

Hello Chris,
I am not interested in sending text messages since I am in Canada and I can't register a US number. When I try to run the code up there, I get presented with the error messages I quoted in my second code block.
Thanks.

Hello Chris,
I can't send SMS because I am in Canada.
I am using the code from my first code block and when I do, I get the error in my second code block.
When I run your code, I put in my phone number with the +1. And I get this error:
Traceback (most recent call last):   File "textMeMaybe.py", line 10, in <module>     voice.send_sms(phoneNumber, text)   File "C:\Python27\lib\site-packages\googlevoice\voice.py", line 190, in send_sms     self.__validate_special_page('sms', {'phoneNumber': phoneNumber, 'text': text})   File "C:\Python27\lib\site-packages\googlevoice\voice.py", line 287, in __validate_special_page     load_and_validate(self.__do_special_page(page, data))   File "C:\Python27\lib\site-packages\googlevoice\util.py", line 65, in load_and_validate     validate_response(loads(response.read()))   File "C:\Python27\lib\site-packages\googlevoice\util.py", line 59, in validate_response     raise ValidationError('There was a problem with GV: %s' % response) googlevoice.util.ValidationError: There was a problem with GV: {'data': {'code': 2046}, 'ok': False}

@HackerQuaker

Are you saying that GV will refuse to send an SMS from you because it can detect your computer's geographical location?  What's the exact error message it gives indicating this?
Does your GV phone number have a US area code?
Is your number to call US or Canadian?
Is your number to call from US or Canadian?
Is your number to send message to US or Canadian?

@chris001

I was under the impression that I can make calls without a GV number, but to send text messages, I would need a GV number. When I try to register a US GV number with my Canadian Number, I am told that GV is only open to US users. Maybe I should open a Gmail account with a US VPN server, use a US number to verify myself and then pick a US number. But then, would I have to connect through the VPN every time I use the script?

It's weird. I am able to add a number using a US phone number with my CA IP. But then the process gets halted after I verify the code they send to my US phone number. So when I go the SMS option on GV, they ask me to sign up for a US phone number . . . . .Should I select one of these numbers for the "number to call from" in the settings.py?

Number to call is CA.

Number to send message to is CA.

Thank you, Chris.

@HackerQuaker
The way GV works is, GV will assign you a US phone number, but only if you pass the verification step, where GV sends a SMS message (or voice call with robot voice) with a verification code, to your US mobile or landline number.  So if you're in Canada, you could only sign up for GV if you have a US mobile or landline number available one time for the GV verification step.

@chris001
I have an app with a US phone number. I put in the verification code, but then after I get the number, I am asked to get the GV number again. Very confusing. Do you know why I got the initial error messages?

@Heck
I'm relatively certain you can't use GV for calls OR texts unless you are able to successfully verify and obtain your GV phone number.  So your only choice would be to first completely register thru a US VPN.

Thanks for your prompt replies dude. @chris001


Add hyperparameter grid search to XGBoost training

This PR adds a hyperparameter cross-validation grid search to XGBoost, with the range of each grid customizable in the config file. The optimal parameters are saved/loaded from a new .params file that accompanies the saved model. The load_config() method has been tested, and it successfully loads the parameters and associates them with an instantiated model.
As in the original jupyter notebook running this code, the grid search begins with the max_depth and min_child_weights parameters and continues with subsample and colsample_bytree, then eta, then one more round of max_depth and min_child_weights.

Thanks @AshishMahabal, I'll add an additional grid search block for the subsample and colsample_bytree pair of parameters.

Hi @AshishMahabal, do you have any other comments after the latest commits?

Merging after our discussion at the ZTF ML meeting this afternoon.


ValueError when using SAC with co-optimization

Thank you for sharing this wonderful repository. When I try to run experiments with co-optimization, PPO is fine. But when I try SAC there is a strange error.
ValueError: Have multiple policies {'human': <ray.rllib.policy.tf_policy_template.SACTFPolicy object at 0x7f8ec4436470>, 'robot': <ray.rllib.policy.tf_policy_template.SACTFPolicy object at 0x7f8ebc685ef0>}, but the env <NormalizeActionWrapper<FeedingSawyerHumanEnv instance>> is not a subclass of BaseEnv, MultiAgentEnv or ExternalMultiAgentEnv?
This seems to be related to this issue of RLlib.

Thanks for pointing out this issue!
I have been looking into this recently, but haven't found the solution quite yet.
I'll keep you updated.


RFP - eXist-db

Checklist

[x] The package I am requesting does not already exist on https://chocolatey.org/packages;
[x] There is no open issue for this package;
[x] The issue title starts 'RFP - ';
[x] The download URL is public and not locked behind a paywall / login;

Package Details
Software project URL : https://exist-db.org
Direct download URL for the software / installer : https://bintray.com/existdb/releases/exist/5.2.0/view
Software summary / short description: A high-performance open source native XML database
Package Expectations
eXist requires Java 8+ but does not currently embed a Java runtime. The eXist community has struggled to ensure our Windows users are able to properly install Java before running eXist, in particular, since our Windows installer (IzPack) needs Java to be installed to run. We are excited about the possibility of using chocolatey to overcome this problem: ideally, we could declare a dependency on a Java version, and chocolatey would install it before installing eXist when a user enters, choco install exist-db. I can try creating a package, but I am new to chocolatey and not really a Windows user myself, so if anyone has any suggestions or would be interested in helping, I would be grateful and happy to provide any information that would be useful.
cc/ @djbpitt @wolfgangmm

@joewiz Where are we with this now?

@pauby Thanks for checking in! We weren't able to get to this item on last Monday's community call, but we will tomorrow.

@pauby During today's eXist Community Call, we discussed Chocolatey, and we think that a Chocolatey package would be a benefit for Windows users who would like to install eXist. According to @reinhapa, AdoptOpenJDK does distribute MSI installers for all but the non-LTS versions, such as 9, etc., so @johanjanssen-sanoma, if you prefer MSI installers, AdoptOpenJDK has them. According to @adamretter, Java 11 would be the best bet for a Java dependency for eXist. Taken together, we'd recommend that the Chocolatey package declare AdoptOpenJDK 11 as its one and only dependency.
Thus, would it be possible to request help creating an eXist-db package with the parameters described above, with the following additional details?

eXist installation via jar, using the installation steps outlined at https://exist-db.org/exist/apps/doc/basic-installation#installation (see also https://exist-db.org/exist/apps/doc/advanced-installation for more detail on headless installation).
Dependency on AdoptOpenJDK 11

We (especially @wolfgangmm and I) would be happy to answer any questions, based on experience helping Windows users install eXist-db.
We would be grateful for your assistance!

@johanjanssen-sanoma, if you prefer MSI installers, AdoptOpenJDK has them.

I know, I'm already using them for the AdoptOpenJDK Chocolatey package :).
I still think that you shouldn't depend on a specific Java build. However if you decide to do that, then please seriously consider depending on a JRE instead of a JDK.  For AdoptOpenJDK 11 the JRE MSI is 130 MB smaller then the JDK. I provide packages for JRE's as well, see for instance https://chocolatey.org/packages/adoptopenjdk11jre

@joewiz Awesome this is moving forward.
I'm in agreement with @johanjanssen-sanoma though - if you don't need AdoptOpenJDK then I wouldn't take a dependency on it. It's not a good user experience to have to download a different flavour of Java because the author prefers it. If you require it then that is different. And I'm not talking about the version, just the flavour.
Part of what makes a good package manager is being able to take those dependencies and break them into other packages so they can be reused. AdoptOpenJDK is a good example of that. But it only works when you take dependencies you need to.
So the question is does eXist-db need a particular flavour of Java?
The debate over the JRE vs. JDK I will leave you guys to fight out 😸

@pauby eXist-db needs a JRE which is at least Java 8. Maximum supported JRE is Java 11 for eXist-db. Is there a way to specify that generically?

@adamretter There isn't a way to specify a particular version of Java. There is a way to specify a particular version of a package. But no way to allow it to say 'at least one of these Java flavours at this version'.
Given this I would propose:

The description of the package is updated to clarify the situation with the Java flavour and version (ie. you clarify what flavours will / will not work and what the minimum version is);
You remove the dependency on AdoptOpenJDK as it's not required.

Does that make sense?

You remove the dependency on AdoptOpenJDK as it's not required.

@pauby hmmm.. I don't think that is necessarily a good idea. Our application requires Java, without it, nothing will work. I would have thought/hoped that Choclatey would offer a "java-8-jre" metapackage which could be fulfilled by various implementations (e.g. Oracle, AdoptOpenJDK, etc), but would use a reasonable default if not already installed. I have seen this in other package systems like Apt/Deb

@adamretter We have other packages whose software requires Java (any flavour, particular version) and the description is updated to reflect this and code is sometimes added to the chocolateyInstall.ps1 file to check for it. That's a maintainers decision in the package.
If the moderator spots your dependency on a particular flavour of Java and it's not required, then it is unlikely to pass through moderation until it's removed. I wouldn't pass it.
We're aiming for a good user experience here. If I have a flavour of Java installed already, I don't want you requiring I download and install AdoptOpenJDK if it's not necessary.

I would have thought/hoped that Choclatey would offer a "java-8-jre" metapackage which could be fulfilled by various implementation packages (e.g. Oracle, AdoptOpenJDK, etc), but would use a reasonable default if not already installed.

Chocolatey and Nuget does have the concept of meta packages but they don't resolve the issue you have.

So our package should not depend on Java?

We're aiming for a good user experience here.

I don't understand how it can be a "good user experience" if someone installs our package and it doesn't work because Java is not installed?

I should note that homebrew's eXist recipe doesn't cause java to be installed either - it only lets users know that they need to and tells them how, via the "Caveats" directive:

==> Caveats
exist-db requires Java 8+. You can install the latest version with:
brew cask install adoptopenjdk

You can see this with brew cask info exist-db. This comes from https://github.com/Homebrew/homebrew-cask/blob/master/Casks/exist-db.rb#L15-L16. See also https://github.com/Homebrew/homebrew-cask/blob/master/doc/cask_language_reference/stanzas/caveats.md.
This sounds roughly analogous to what @pauby is describing above:

The description of the package is updated to clarify the situation with the Java flavour and version

@adamretter

So our package should not depend on Java?

That's not what I said. I said that your package should not have a dependency on a particular flavour if it's not an actual requirement. You've already confirmed that a specific flavour of Java is not required. Just a minimum version.

I don't understand how it can be a "good user experience" if someone installs our package and it doesn't work because Java is not installed?

That's why you would put notes in the description and add code to the chocolateyInstall.ps1 to let them know this and potentially fail to install if the minimum level of Java is not already installed.
As @joewiz has already said, this is no different to Homebrew.

Thanks, everyone. I think we have agreement on the general parameters of the package:

Package should install eXist via jar, using the installation steps outlined at https://exist-db.org/exist/apps/doc/basic-installation#installation (see also https://exist-db.org/exist/apps/doc/advanced-installation for more detail on headless installation).
Package description should tell users that "eXist-db requires Java 8+." And possibly it could recommend the name of a package that supplies this requirement: "One such compatible version can be installed via: choco install adoptopenjdk11. Please make sure that this or another Java 8+ is installed before installing eXist-db."

If I'm summarizing this correctly, then would someone in the Chocolatey community consider drafting a package? I would be happy to test and report on how it works for me. Thanks in advance!

@joewiz I think those are sounds parameters for the package and I've opened this up to potential maintainers.

The most recent comment on this issue, from @pauby, is more than two years old, with upvotes from @joewiz and me. Is there anything at this stage that the chocolatey maintainers are looking for from the eXist-db side to move this along?
Copying @gabikeane and @EmmaSchwarz.

@djbpitt I think there is a little misunderstanding, so let me try and explain.
There is no group called 'chocolatey maintainers'. When we say 'maintainers' we're referring to anybody who wants to pick this package up and create it. That could be you, me, or anybody else. This repository exists as a list of packages that people have requested and a 'maintainer' can come along and say 'oh, I'll pick this one up and create a package for it'.
So this could sit here for two years or more until somebody comes along and does that.
There is a Chocolatey Community Chocolatey Packages and that is maintained by volunteer maintainers who manage the packages in there. There is also a process for moving an existing package in there for that group of volunteer maintainers to maintain (if they accept it).
Chocolatey doesn't create or maintain packages. So, there is no team at Chocolatey Software who would pick this up. Some of the Chocolatey Team maintain their own collection of packages, but that is done in their spare time.
Does that help?

@djbpitt This does sound like the best course of action.
I wanted to draw your attention to the Chocolatey Community Chocolatey Packages repository. If the package is created in a way that it can be automatically updated, and it is accepted by the community team, they could migrate it over to that repository to have the community look after it.


rename endpoint method names so they do not conflict with boot names in jmx

See https://github.com/spring-projects/spring-boot/issues/10940

Closed via 598c89a


Hw mods

[Enter feedback here]

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

ID: 04ca6c90-bf2c-6680-a229-8f679090b8d7
Version Independent ID: a33d56c1-2000-864d-5fa4-028a0a9a2ef1
Content: Review test results - Azure Pipelines
Content Source: docs/pipelines/test/review-continuous-test-results-after-build.md
Product: devops
Technology: devops-cicd-test
GitHub Login: @vinodjo
Microsoft Alias: vinojos

I am closing this issue now.  You are welcome to @ mention me for any followup.  We hope to hear from you again.


Add Razorpay icon

Icon Request

Icon name: Razorpay

Tags of this icon: razorpay, razor pay

Use case: for payment method

About: Razorpay is the only payments solution in India that allows businesses to accept, process and disburse payments with its product suite. It gives you access to all payment modes including credit card, debit card, netbanking, UPI and popular wallets including JioMoney, Mobikwik, Airtel Money, FreeCharge, Ola Money and PayZapp.

Website: https://razorpay.com/

Screenshots of similar icons:

nice~

You Guys are Awesome! Remixicon is my primary choice 💯


KernelMemory bug fix

While using WithLLamaSharpDefaults it was not possible to dispose GPU memory because the embedding was not defined well. This PR fixes that issue and also fixes some small problems with not setting all important model parameters.

Hi, may I ask why this change will fix GPU memory disposing problem?

WithLLamaSharpDefaults

Because in WithLLamaSharpDefaults the embedding generator is created but without an owner, so it does not get disposed... When using the LLamaSharpTextEmbeddingGenerator() constructor instead of the LLamaEmbedder() constructor the LLamaSharpTextEmbeddingGenerator will have full ownership and the embedder will be disposed.

Is config allowed to be null when passed in? It's not marked with billable annotations (implying it's not) but it is using null coalescing to fall back to defaults (implying it is).


feat: 5986 - "top price locations" page

What

Now we have a "top price locations" page.
We also have a "prices for that location" page.

Screenshots

main
top locations
single location

Fixes bug(s)

Closes: #5986

Files
New files:

price_location_widget.dart: Price Location display (no price data here).
prices_locations_page.dart: Page that displays the top prices locations.

Impacted files:

app_en.arb: added labels for locations pages; added tooltips for tiny prices count buttons (proofs, prices, products, users)
get_prices_model.dart: minor refactoring
labeler.yml: wtf
price_button.dart: minor refactoring
price_count_widget.dart: refactored with "onPressed" as this button is now used somewhere else
price_data_widget.dart: now links to new page "PricesLocationsPage"; refactored because of new class "PriceLocationWidget"
price_location_card.dart: minor refactoring
price_product_widget.dart: refactored according to "PriceCountWidget" evolutions
price_user_button.dart: minor refactoring
prices_users_page.dart: minor refactoring
product_prices_list.dart: now displays the location once and on top, if relevant (e.g. "prices in that location")
user_preferences_prices.dart: now links to new page "PricesLocationsPage"; minor refactoring

Thank you @teolemon for your review!

It would be nice to be able to search a specific location (your nearby store, and once you find it, be able to star it)

You already can search a specific location and star it (or rather "heart" it).
Here we're talking about "top locations".
That said, there are several possible actions that come to mind when you find a location: see it on a map, star it, select it as the receipt location, and list all the related products.
Deciding which actions are possible and when would be worth a new issue.
Regarding this PR, I'm fine, feel free to merge it when the frozen zone is over.

@teolemon That one is rather harmless, too.


[HOLD for payment 2023-05-23] [$1000] IOUPreview height should adjust based on content

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Create an iou request to any user without adding a comment
Settle the IOU
Create an iou request to any user without adding a comment
Settle the IOU

Expected Result:

The Card heights should be different

Actual Result:

The card heights are the same
The card without a description has a large gap where the comment would have shown

Native mobile

Web

Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[ ] Android / Chrome
[x] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.13-0
Issue reported by: @thesahindia here
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01d6ca19ff51a2559a
Upwork Job ID:<PHONE_NUMBER>807489024
Last Price Increase: 2023-05-11

thanks both. This is pretty straight forward so I'm going with the first passable proposal. Also creating requestDescription on a separate line is a bit more readable.

@huzaifa-99 feel free to make a start on the PR, I'll assign you once the UpWork job has been created 👍

Actually I don't think anything will break if I do this now

Okay nevermind, that didn't trigger the automation, I'll do that once Ted gets a chance to review.

I'll take this from Teddy.

Yup! Done!

Merged

Strange, this should have got the reviewing label. PR is on staging. 👍

The issue will remain open until paid, and Tom will be back soon :)

Yuuup, I got back today. 👍 Looking at this now, appreciate the patience.

Yup, this was when adding a new feature. Regression tests will be updated more broadly for the manual requests redesign.

Okay, so my assessment for payments is as follows:
@aimane-chnaif - $1,500 for the C+ review & #urgency bonus
@huzaifa-99 - $1,500 for the fix & #urgency bonus
@thesahindia - $250 for reporting the bug in this PR
Does that sound right to everyone?

Awesome, settled. Closing!


VPC network tier DNS doesn't reflect VPC DNS settings

ISSUE TYPE

Bug Report

COMPONENT NAME

VPC, VR

CLOUDSTACK VERSION

4.18, 4.19

CONFIGURATION

OS / ENVIRONMENT

SUMMARY

When creating a VPC a user adds DNS entries for the VPC, those DNS servers should be used by all network tiers of the VPC, but instead the network tiers still use the Zone
STEPS TO REPRODUCE

Create a new VPC
Enter DNS1 and DNS2 details
Create a network tier
Check DNS entries for the network tier

EXPECTED RESULTS

Network tiers should use VPC defined DNS entries

ACTUAL RESULTS

Network tiers use Zone defined DNS entries

Can you have a look at this please? @weizhouapache

Can you have a look at this please? @weizhouapache

@alexandremattioli sure, I will test it

I was able to reproduce the issue

create vpc with DNS <IP_ADDRESS> and <IP_ADDRESS>

create vpc tier without DNS, it has DNS servers same the data center

check the VPC VR, it uses DNSs of VPC, but VMs use VR IP and DNS of vpc tier

Thanks @weizhouapache

Thanks @weizhouapache

@alexandremattioli
I will create a fix for it.

@alexandremattioli
PR is created.

@Pearl1594 @nvazquez related to NSX as well

@weizhouapache @alexandremattioli is this solved by #8621 ? (can it be closed)


HBASE-23012 Add HBase 1.3.6 to the downloads page

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

:blue_heart:
reexec
1m 13s
Docker mode activated.

_ Other Tests _

:green_heart:
asflicense
0m 20s
The patch does not generate ASF License warnings.

51m  4s

Subsystem
Report/Notes

Docker
Client=19.03.4 Server=19.03.4 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-738/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/738

Optional Tests
dupname asflicense mvnsite xml

uname
Linux c25ec675b7d9 4.15.0-65-generic #74-Ubuntu SMP Tue Sep 17 17:06:04 UTC 2019 x86_64 GNU/Linux

Build tool
maven

Personality
/home/jenkins/jenkins-slave/workspace/HBase-PreCommit-GitHub-PR_PR-738/out/precommit/personality/provided.sh

git revision
master / da9a53ed4d

Max. process+thread count
96 (vs. ulimit of 10000)

modules
C: . U: .

Console output
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-738/1/console

versions
git=2.11.0 maven=2018-06-17T18:33:14Z)

Powered by
Apache Yetus 0.11.0 https://yetus.apache.org

This message was automatically generated.


BoxGeometry moving when changing angle

Hello
I like the project to combine mapbox and threebox, congrats.
I try to draw a bar on top of a country to symbolize some information. Therefore I used Three.BoxGeometry. But the box is not positioned write. When I move, turn or pitch the map, the box is moving around.
Do you have any recommendations?
var map, frame_setting;

  $(document).ready(function() {

   var map_canvas = $("#map");

    frame_setting = {
      "map": {
        container: 'map',
        style: 'mapbox://styles/mapbox/light-v9',
        width: '100%',
        height: '100%',
        center: [8.541566, 47.363846],
        zoom: 5,
        maxZoom: 18,
        pitch: 60,
        heading: 41
      }
    };

    map_canvas.width(frame_setting.map.width);
    map_canvas.height(frame_setting.map.height);

    mapboxgl.accessToken = '123';

    //Load Mapbox GL
    map = new mapboxgl.Map(frame_setting.map);
    map.resize();

    //Add Controls
    map.addControl(new mapboxgl.NavigationControl());

    map.on("load", loadThree);
  });

function loadThree()
{
    window.threebox = new Threebox(map);
    threebox.setupDefaultLights();

    // initialize geometry and material of our cube object
    var geometry = new THREE.BoxGeometry(100000, 100000, 400000);
    var greenMaterial = new THREE.MeshPhongMaterial( {color: 0xaaffaa, side: THREE.DoubleSide});
    var redMaterial = new THREE.MeshPhongMaterial( {color: 0xffaaaa, side: THREE.DoubleSide});

    cube = new THREE.Mesh(geometry, greenMaterial);
    cube.userData.name = "Red cube";
    threebox.addAtCoordinate(cube, [8.541566, 47.363846, 0], {scaleToLatitude: true, preScale: 1});
}

See Example

hi @nanoteilchen, it looks like the green box is actually half above ground level, and half below. By default, three.js centers geometry at z=0. Try raising the z position of the cube: cube.position.z=200000 seems to make it right.

Thank you very much, works fine!


Add support for Varnish 5.x

Adds GPG key fingerprints for Varnish 5.x repositories.

Simple merge this, is kinda straight forward


Unexpected TLS alert for IP-only certificate

1. What version of Caddy are you using (caddy -version)?
Caddy (untracked dev build) (unofficial)
commit f6e50890b3d81cb04146bd7b2c2b59e99830849a
2. What are you trying to do?
Use TLS with IP addresses (not DNS) for local development. Everything has worked fine up to and including commit 22dfb140d0b3587dc9de4f2f15f93a9f319becf2 right before the TLS alert commit. I am not sure if this is a problem with (1) Caddy correctly handling invalid certificates or (2) Caddy incorrectly handling valid certificates. Nothing jumped out at me when examining the commit diffs so I will not be surprised if the fault is with the certificates. Any insights are appreciated.
3. What is your entire Caddyfile?
https://<IP_ADDRESS> {
        tls cert/pki/issued/<IP_ADDRESS>.bundle.crt cert/pki/private/<IP_ADDRESS>.key
}

More details on the certificates can be found below.
4.  Please paste any relevant HTTP request(s) here.
curl --cacert cert/pki/ca.crt https://<IP_ADDRESS>
6. What did you expect to see?

Hello from Caddy

This is what I get with versions of Caddy before the TLS alert commit.
7. What did you see instead (give full error messages and/or log)?
curl: (35) error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error
8. How can someone who is starting from scratch reproduce the bug as minimally as possible?
Here are the steps in the form of a shell script. Sorry for the involved sequence, but nothing is easy when it comes to TLS certificates.
# --- Obtain, install and initialize easyrsa ---

wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.5/EasyRSA-nix-3.0.5.tgz
mkdir -p ~/tmp/caddy
tar -xzf EasyRSA-nix-3.0.5.tgz -C ~/tmp/caddy
mv ~/tmp/caddy/EasyRSA-3.0.5 ~/tmp/caddy/cert
cd ~/tmp/caddy/cert
cat > vars  <<end-of-vars
set_var EASYRSA_PKI		"$PWD/pki"
set_var EASYRSA_DN	"cn_only"
set_var EASYRSA_KEY_SIZE	2048
set_var EASYRSA_ALGO		rsa
set_var EASYRSA_CA_EXPIRE	3650
set_var EASYRSA_CERT_EXPIRE	3650
set_var EASYRSA_CRL_DAYS	180
set_var EASYRSA_NS_SUPPORT	"no"
set_var EASYRSA_NS_COMMENT	"Easy-RSA Generated Certificate"
set_var EASYRSA_TEMP_FILE	"$EASYRSA_PKI/extensions.temp"
end-of-vars
./easyrsa init-pki

# --- Generate certificate authority, specify CA name interactively ---

./easyrsa build-ca nopass

# --- Generate self-signed server certificate with IP SAN ---

./easyrsa --subject-alt-name="IP:<IP_ADDRESS>" build-server-full <IP_ADDRESS> nopass
cat pki/issued/<IP_ADDRESS>.crt pki/ca.crt > pki/issued/<IP_ADDRESS>.bundle.crt

#--- Fire up caddy with minimal configuration

cd ..
cat > index.html <<end-of-index

Hello from Caddy

end-of-index
cat > Caddyfile <<end-of-cfg
https://<IP_ADDRESS> {
	tls cert/pki/issued/<IP_ADDRESS>.bundle.crt cert/pki/private/<IP_ADDRESS>.key
}
end-of-cfg
caddy -conf ./Caddyfile &

# --- Test with curl

curl --cacert cert/pki/ca.crt https://<IP_ADDRESS>
# With caddy before TLS alert commit:
Hello from Caddy

# With caddy after commit: curl: (35) error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error

Sigh. I knew this would happen. It's a consequence of #2339.
I would happily accept a pull request from @Zenexer / @ghoeffner / @orenyomtov / @mxlje to fix this. But I'm on holiday for a while.

@mholt I'm totally BSing my way through this because I have almost no experience with Go, but from poking around with breakpoints in GoLand/IntelliJ, I think I found the issue.  It looks like you're choosing a config based on the server name passed through SNI in the TLS handshake.  Doesn't that mean raw IP addresses never really worked?  It would work if there was only one config, but otherwise they'd just get a random certificate, no?
Specifically, here's what I'm seeing: in handshake.go -> GetConfigForClient, clientHello.ServerName is an empty string when a raw IP address is requested with curl.
There's no easy fix for this; it would require multiple significant changes:

Caddy would have to bind to specific IP addresses based on configs.  In this case, it would need to bind explicitly to <IP_ADDRESS>:443 rather than <IP_ADDRESS>:443.
When possible, SNI should be used, and if there's an SNI mismatch, a TLS alert should be raised--no change there.  This differs from Nginx (which will just use the first certificate declared for an endpoint every time), but I think a TLS alert is a better choice.  This assumes that Caddy is looking at all the SANs in each cert rather than relying on the hostnames declared in configs, but I get the impression it already does that.
When SNI can't be used, if there's a single certificate for an endpoint, as would be the case here, that certificate should be used.
When SNI can't be used and there are multiple certificates for an endpoint, and one of those certificates contains the raw IP address, that certificate should be used.
When SNI can't be used, there are multiple certificates for an endpoint, and none or multiple of those certificates contain(s) the raw IP address, a TLS alert should be raised.

This won't really be intuitive to end users--we can guess what they're trying to do, but it's likely that people will end up with conflicting certificates or endpoints.  Perhaps it would make more sense to just say Caddy requires SNI, which means raw IP addresses can't be used--they never worked reliably anyway, since a Caddyfile with multiple configs would inevitably have served the wrong certificate a good portion of the time.  The only situation in which it would've reliably worked in old versions is when there was a single config in the Caddyfile.
@jung-kurt, from what I've gathered, you're basically just getting lucky with it working in old versions.  Caddy doesn't actually know which certificate to use, so it picks a random certificate--but you only have one certificate in your entire Caddyfile, so it always chooses the right one.  This random behavior was removed in #2339 because several security researchers (including myself) pushed for such a change on the grounds that it could lead to information disclosure, though the severity and classification of this issue was disputed.

Excellent diagnostics and summary, @Zenexer. Your conclusion and recommendation make complete sense to me and explain why I needed to jump through some hoops with my working configuration. In practice, my Caddyfile has multiple interfaces. Through trial-and-error I found that I needed to set up network interface aliases (for example, eth0:0) for the addresses I needed to reach by IP. In addition, I used the bind directive in the Caddyfile block to restrict the listener to a particular interface.
I think your proposal makes very good sense for the general case. My particular use case, in which the traffic of interest comes to a bound interface, could be met with a TLS subdirective that means "use this certificate, don't issue a TLS alert, don't ask questions". However, I'm the first to acknowledge that that would be sweeping the real problem under the rug.

Doesn't that mean raw IP addresses never really worked?

They worked before that change, because we allowed serving certificates without SNI.

There's no easy fix for this

I agree, at least for a fix that would satisfy everyone.

Ultimately, this seems like a shortcoming in SNI; I don't really see why IP addresses wouldn't be passed.

No, this is definitely working as intended. SNI must not have IP addresses in it.

@jung-kurt, from what I've gathered, you're basically just getting lucky with it working in old versions.

Again, it "working" in old versions was intended, but not to cough everyone's  satisfaction.

pushed for such a change on the grounds that it could lead to information disclosure, though the severity and classification of this issue was disputed.

Yes, rather than being productive and contributing a proper fix; but the squeaky wheel gets the grease.
So, @jung-kurt -- I'd recommend simply using the bind directive so that that site is the only one listening on the interface given by that IP address. Since it sounds like you've got this working, the issue is closed.

So, @jung-kurt -- I'd recommend simply using the bind directive so that that site is the only one listening on the interface given by that IP address. Since it sounds like you've got this working, the issue is closed.

Unfortunately, only for versions of Caddy before the TLS alert commit (f6e50890b3d81cb04146bd7b2c2b59e99830849a).

@jung-kurt, even with bind?
@mholt, I really don’t think it worked previously if a Caddyfile had multiple configs. How would it know to serve the cert that matched the IP address? It doesn’t seem to have code to support that. @jung-kurt, do you think you could test this? If it works reliably even with multiple different certs in the same Caddyfile, I’m probably missing something important.

I think an intermediary solution would be to serve an IP cert when SNI isn’t used if there’s only one such cert for an endpoint. This would at least allow Caddyfiles that worked reliably in previous versions to continue working reliably. Caddyfiles that would’ve served a random cert will start working reliably if there is only one IP cert; if there are multiple, they will remain unreliable. This eliminates any regressions, although it’s not as intuitive as it could ultimately be.

@Zenexer, yes, with the current version of Caddy I get a TLS alert even when binding to an IP address. This makes sense based on your explanation -- no SNI match, no certificate.

I think an intermediary solution would be to serve an IP cert when SNI isn’t used if there’s only one such cert for an endpoint.

I agree.

Great, I’ll see if I can cook up an intermediary PR. I’m not experienced with Go, though, so someone else will need to very thoroughly review it.

Many thanks, @Zenexer

Thanks for getting involved on this @Zenexer, it's appreciated!

@Zenexer

I think an intermediary solution would be to serve an IP cert when SNI isn’t used if there’s only one such cert for an endpoint.

That's what I'm thinking as well. Would be happy to review a PR for this.

Thanks, @Zenexer, your changes work perfectly for both my simple example shown above and for my more involved development setup. Great work!


can't edit created rules/files/etc

Hello!
I am playing with the irond-cloud-browser 1.0.1-RELEASE and it does not allow me to edit the rule/text/xml file when created (folder->new file-> rule/text/xml file). Do you think it could be due to my browser? anybody else had this problem?
Thanks

I have similar problems in the past if I removed the default demoResc resource.
Cheers!
Randy Splinter, Ph.D.
HPC Solutions Architect
770.633.2994
RSplinter<EMAIL_ADDRESS>Pardon the grammar and spellings... this was sent from my mobile phone.
On Tue, May 9, 2017 at 3:48 PM +0100, "oppopomoz" <notifications<EMAIL_ADDRESS>wrote:
Hello!
I am playing with the irons-cloud-browser 1.0.1-RELEASE and it does not allow me to edit the rule/text/xml file when created (folder->new file-> rule/text/xml file). Do you think it could be due to my browser? anybody else had this problem?
Thanks
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/DICE-UNC/irods-cloud-browser/issues/200, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AQocghk8cx0s2-Zk-Td2BI3ismY7GY9Iks5r4HtZgaJpZM4NVa4d.


Release/v1.2

Enable endpoint on live servers to restfully update a LHA authority

Merge request for LHA authority update feature


[bug]: RangeError: Invalid array length

Is there an existing issue for this problem?

[X] I have searched the existing issues

Operating system
Linux
GPU vendor
AMD (ROCm)
GPU model
AMD R4750G APU
GPU VRAM
14.9GiB UMA
Version number
4.2.0
Browser
Microsoft Edge 128.0.2708.0-1
Python dependencies
{
"accelerate": "0.30.1",
"compel": "2.0.2",
"cuda": null,
"diffusers": "0.27.2",
"numpy": "1.26.4",
"opencv": "<IP_ADDRESS>",
"onnx": "1.15.0",
"pillow": "10.4.0",
"python": "3.11.9",
"torch": "2.2.2+rocm5.6",
"torchvision": "0.17.2+rocm5.6",
"transformers": "4.41.1",
"xformers": null
}
What happened
During normal image generations started by the workflows as usual, the local server crashes somewhy, and the most results are empty and a few results are just noises
What you expected to happen
All the 30 generations by the workflows have been done w/o local server command exiting often, and the image results are better reflecting the prompts from the workflows
How to reproduce the problem
(1) Install InvokeAI on your custom path
(2) Write and run a workflow with 9527DetailRealistic checkpoint and KoreanInstagramXL downloaded LoRA downloaded from CivitAI
(3) Run 30 batches and obseve what’s going on and oversee if freezes and/or local server command exits have been often
(4) Also check if there are ‘‘illegal’’ shadings which maybe also cause local server command exits
Additional context
No response
Discord username
No response

Hi, you are several versions behind. Please update to the latest version and see if that fixes the issue.


Distributed build of hnsw and merge of hnsw graphs

@yurymalkov : I have multiple indexers producing many sharded hnsw indexes , but servers perhaps can handle multiple such shards . I read in the paper that a distributed implementation is feasible for hnsw graphs  , can you give me any pointers on that ?  Does this also imply it would be easy to merge 2 hnsw graphs ?
A related paper : https://arxiv.org/pdf/1906.10602

@patelprateek I am not sure what is the question here. https://arxiv.org/pdf/1906.10602 seems like a reasonable start.
Initial hnsw paper also has discussion of distributed indices without sharding, but it would be hard to implement.

sorry for being unclear . My question was regarding

distributed build of indices : since indexing takes quite long for 100M docs or cases where we have streaming elements coming in quite frequently , was curious to any open source implementations where we can build the graph in a distributed way and later combine them into a single hnsw graph , or even a distributed graph but route serving request to the appropiate worker based on the graph structure.
a naive sharding approach can cause large fanouts since the nearest neighbors can be in any of the shards


_ in example names are turned into whitespaces/+ in links

https://metafacture.org/playground/?example=add+field
resources/examples/Fixes/add_field
If fixed also the Playground Links in the metafacture fix readme need to be updated.

Treated as blocker for metafacture/metafacture-fix#339.

Deployed to https://test.metafacture.org/playground/
Who's going to functional review this @dr0i @blackwinter?

LGTM also.

Deployed to https://metafacture.org/playground/


Remove panics, add errors

Summary
Per this thread: https://github.com/cosmos/cosmos-sdk/issues/11600 panics should only be used when a golang error (program halting) is about to occur, like a divide by zero or OOB error.
This PR removes all panics given we're misusing them (and a panic in an BeginBlocker / epoch will crash the chain - some of these panics were called by functions in epochs!)
Test plan

Looks good!
One thing I was discussing with Riley yesterday that I think is worth being brought up again - in all these cases we generally override each error and pass a new one.
Ex:
err := someFunctionCall() // some more specific error about what actually went wrong
if err != nil {
   return sdkerrors...  // some new, but less specific error that we actually return (hiding the one above)
}

Should we be actually wrapping the original error instead?
err := someFunctionCall() // some more specific error about what actually went wrong
if err != nil {
   return sdkerrors.SomeNewWrapperError(err) // takes original error as param
}

Not sure if there's a way to wrap the error like that (or maybe I'm misunderstanding and this wrapping happens automatically?). Either way - sounds like this is common practice in cosmos, but just want to confirm

Well phrased. I'd vote we wither return err or something like the following, where we have an error type, a descriptive string, as well as err:
return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "Failed to SubmitTxs for %s, %s, %s | err=%v", zone.ConnectionId, zone.ChainId, msgs, err)

Looks good to me, thanks for actioning this!

Looks good to me, thanks for actioning this! Only thing worth looking at before merge IMO is Sam's comment re: error conventions and my reply. Might be quick to reformat all our errors to that convention, but I'm not sure it's the best use of time right now, nor that we want to run with that convention. Wdyt?

Let's fix these progressively! Does the following achieve both the goal of passing the low-level error up the stack, as well as surfacing something more meaningful in relation to how the enclosing function is erroring?
func (k Keeper) DoSomethingSpecific {
    err = k.someKeeperFunction(ctx, ...)
    if err != nil {
	    k.Logger(ctx).Info("Failed to DoSomethingSpecific")
	    return sdkerrors.Wrapf(err, "Failed to DoSomethingSpecific")
    }
}

The only advantage of surfacing a custom error is that it has an attached error code, which might be easier for external services to parse than an arbitrary string
Wdyt?

Yup, I think that's perfect!
The way I've been thinking about it, is there are some cases where we identify the error ourselves, and there are cases where we receive an error from a function we called. I think custom errors make sense in the first case, but less so in the second.
Ex:
someSpecificConditionWeCheck := ...
if !someSpecificConditionWeCheck {
    return CustomError
}

vs
err := someFunctionCall()
if err := nil {
   return WrappedError(err)
}

That said, I think most of the cases I've seen are covered with some of the provided sdkerrors out of the box. One I noticed this morning was:
strideEpochTracker, found := k.GetEpochTracker(ctx, epochtypes.STRIDE_EPOCH)
if !found {
	k.Logger(ctx).Info("failed to find epoch")
	return nil, sdkerrors.Wrapf(types.ErrInvalidLengthEpochTracker, "no number for epoch (%s)", epochtypes.STRIDE_EPOCH)
}

Where we could instead do:
strideEpochTracker, found := k.GetEpochTracker(ctx, epochtypes.STRIDE_EPOCH)
if !found {
	k.Logger(ctx).Info("failed to find epoch")
	return nil, sdkerrors.Wrapf(sdkerrors.ErrNotFound, "no number for epoch (%s)", epochtypes.STRIDE_EPOCH)
}

Although I hear ya on the event code. I think if we make the wrapped message specific enough though, it should be easy enough to find?

Also (side note) we should make sure we're logging these with an Error status instead of Info

Good call, updated Infos to Errors where appropriate


Add a list of projects using Nox to the documentation.

https://github.com/dhermes/bezier

Also the following may be added: :)

https://github.com/pradyunsg/zazo
https://github.com/pypa/python-packaging-user-guide/

https://github.com/googleapis/gapic-generator-python