pip - option to install in project root

Hey,
Trying to use this with AppEngine and i need some sandboxed installs in root to deploy with.
I can do pip install -t "mylibs" pydash, but i really want pybuilder to manage everything. I tried looking through your tests but i can't seem to find out how to do this.
Any tips?

Hmm, wasn't familiar with the -t option but I did some reading. Would you want this for all pip dependencies or do you need to be able to set it for some dependencies specifically?

To answer your question, I guess you could use a requirements.txt file and switch to project.depends_on_requirements('requirements.txt'). Since you can stick pip arguments in there it would work. Wouldn't recomment this though since you lose other benefits (like build/runtime separation).
Adding the feature would simply be a matter of deciding how it's used (install all dependencies into the root or per-dependency specification).

Thanks man.  I am glad i chose this for my first experience with a build system in python.
It would be a subset for sure. I was thinking i would only use the runtime dependencies somehow as my list that is sandboxed.
What do you think about that?

Makes sense! I was also wondering if the local install should be additional (eg install in virtualenv and install in target directory). Or maybe you are already adding the directory to your PYTHONPATH?
The plain pip install has the advantage that after running it you can import the new module without problems.
Safest bet would be doing both, but OTOH I don't think having two installs (possibly different!) of the same dependency is a great idea. What's your stance on this? Maybe you can elaborate what your use case is (bundled dependecies, but are you packaging them? If so, how? How do you import them on the target system?)

Awesome, thanks man. I'll explain the use case first.
I do most of my webapps on Google App Engine. This is because i don't have to manage any type of data source. Plus i get offline processing, memcache and the best auto scaling known to man.
App Engine is a 100% sandboxed system. It does offer a small set of 3rd party libs  in its python 2.7 runtime that you can opt into. If you need any other package then the only solution is to copy the entire package into the root of your project. Usually in a folder names lib.
Your whole project is uploaded to app engine and that is deployment. From there you have no access to the file system, pretty much nothing outside of your root.
The lib folder i add my pips into is not on the PYTHONPATH by default, but i add it. The lib folder could be anything which is why we have to add the PATH. And i am sure you already get, but because of that we import them just like if they were in site-packages.
There is the background. Hope that help explains some. With that, i personally would not need them installed in the virtualenv also, but if that is easier then it wouldn't bother me.
Also quick question if you don't mind. Is it possible with the coverage plugin as is to run the html report? What i am looking at that gave me the idea is this.

Hi,
Thanks for taking the time to write this, it really helps me understand how the feature should look like.
I'll also be sure to give App Engine a try ;-)
I'll start working on it today - no promises, but I think it will be very easy to implement.
As for your coverage question:

The pybuilder coverage plugin generates coverage data, so you can run coverage html in your project root. This will generate a html tree in htmlcov. This requires pyb analyze to have run beforehand, since this writes the required coverage data to file.
We generally recomment using the plugin reports - there's target/reports/coverage which is plaintext for humans, and target/reports/coverage.json or target/reports/coverage.xml for machines.

Hope this helps.

Feature is available in pybuilder==0.10.60.
You can set the property install_dependencies_local_mapping to a dictionary that maps dependency names to target directories.
For example, your use case of bundling runtime dependencies into a folder called lib:
project.set_property("install_dependencies_local_mapping",
    {runtime_dependency.name: "lib" for runtime_dependency in project.dependencies}
)

Please note the dict comprehension requires python 2.7 or higher, on previous versions you would have to use a tuple comprehension for it to work.
Please do tell if this solves your problem!

That is amazing, i am going to try it out now. Thank man, really appreciated.
On the coverage thing, if i wanted the coverage thing to integrate would you just write a task/plugin to run the html command and stick it in the reports folder? I use to use istanbul on my client code and it was pretty cool, so i wondered if there was a python version.

Worked absolutely perfect. Thanks again, this has been a great experience.
I did see a task about new documentation. Is that something still going down? I think that will help alot, i have noticed there is a lot more features/abilities then just the docs show.

On the coverage thing, if i wanted the coverage thing to integrate would you
just write a task/plugin to run the html command and stick it in the reports folder?

Yeah, exactly. You can write a task that depends on analyze and uses the coverage API (or runs coverage html as a subprocess) to generate the HTML. This is also something we could add in the coverage plugin (would be even better there actually, and should be like one line of code. I'll look into adding support for it).

I did see a task about new documentation. Is that something still going down?
Absolutely. Progress has been slow though, I think I need to pull myself together and rewrite it in a week-end or so.

On the coverage stuff, before i saw this i added my first plugin with a task that depended on analyze. All worked really well and was easy once i figured everything out. Going through the pybuilder src and being able to look at all of the src + tests is really nice. Thanks for making that code base clean and easy to read.
On the documentation stuff. I thought i saw somewhere you saying you don't have a lot of frontend skills. I don't have a lot of time but i am well versed on the client. If you do need help on anything let me know, i'll figure out a way to work it in.


Page reload sets icon to gray when it should not

Steps to reproduce with fresh empty profile with only "Detect CloudFlare" WE:

Open https://www.cloudflare.com/
Observe icon (its red color)
Reload page (F5)
Observe icon (its gray)

After page reload the icon should remain red color.
Cheers

I didn't see any obvious problems with the code so I loaded up this repo as a temporary extension with minimal changes (just some calls to console.log()) to help with debugging, and I found out something unexpected: it seems to work fine as a temporary extension.
I then compared the background.js from this repo to the one in the xpi from AMO and they seem to be exactly the same. :confused:
Then I had this crazy idea: perhaps the install order is the culprit. So, I removed the original extension, closed firefox, reinstalled, and guess what? It worked fine all of a sudden.
Intrigued? So am I. My first guess is that whatever is going on has to do with the behaviour discussed here. Feel free to skip to this comment if you don't feel like reading much. Also, check out the bugzilla tickets:
https://bugzilla.mozilla.org/show_bug.cgi?id=1417249
https://bugzilla.mozilla.org/show_bug.cgi?id=1421725
https://bugzilla.mozilla.org/show_bug.cgi?id=1425993
https://bugzilla.mozilla.org/show_bug.cgi?id=1377689
https://bugzilla.mozilla.org/show_bug.cgi?id=1462989
https://bugzilla.mozilla.org/show_bug.cgi?id=1477696
The weirdest thing for me is that if this issue does have anything to do with that, I don't see exactly how, considering this extension doesn't modify any headers. Will have to do some research later, after I get some good shut-eye.

Follow-up tests show disabling and re-enabling the addon without restarting firefox seems to be enough to fix this. Not sure what's goin' on.


Podcast page adjustments

Get the two series in two columns
Make the podcast logo look better (isn't that feedback super useful? :D ). The logo is kinda plopped there. Maybe get it to the left of that block of content? Or the right?
Anything else you think might fluff it up and prettify it!

This isn't quite a duplicate of the other ticket about podcast page ;)


lib: do not filter out empty attrs in toLuaObject

there is a single use of __empty in the codebase, I need to double check what it's doing before I remove it

can be merged once @FrothyMarrow also approves


⚠ BCR Bot has degraded performance

In c99ec28, BCR Bot (https://bcr.alternativasinteligentes.com/BCRApi/web/chatbot) experienced degraded performance:

HTTP code: 200
Response time: 1154 ms

Resolved: BCR Bot performance has improved in 57dc2ac.


Add support for Okta

Support fetching options, as well as creating and registering WebAuthn credentials compatible with the Okta Identity Engine

Very interesting! Have no way of testing it though. Could you please add a screenshot or two to the main README and a sentence to the CHANGELOG?
I think that the original commands should be renamed to something like *-EntraID*, maybe with aliases for the original names, to maintain backwards compatibility of the module. Also please change the $ChallengeTimeout parameter type from string to uint and please add a validator for the acceptable range, as per your description.

Next tech: AWS? 😉

It definitely works.  I wanted to ask if some of the things should be renamed or aliased like you said.  The timeout with Okta is a string that goes into the URI, not a uint the body, Okta does the validation on it.  I also wanted to add Okta as a template in the GUI app but didn't get to it yet.  I don't know as much about AWS but I don't see any reason why it could not work, IF they have an API for this sort of registration.

Actually, looking into the Entra code, I used [duration] as the timeout data type, which gives even more sense than [int]. And the cmdlet then converts it to milliseconds and then to string. I really like strongly typed parameters.

I agree [timespan] is definitely more strongly typed, but it's also super user unfriendly.  Difference between -ChallengeTimeout (New-TimeSpan -Minutes 10) vs -ChallengeTimeout 300.  At least it is optional and has a default!

Thanks a lot @aseigler  for adding the MD and MAML documentation as well. The code looks OK to me.
I would just prefer using New-TimeSpan -Days 30 instead of New-TimeSpan -Minutes 43200. That's the whole point of using the [duration] data type IMO.
And for the sake of consistency with MS Graph cmdlets, I would probably rename the -Client_Id parameter to -ClientId.

I wonder if using Okta .NET management SDK and Okta .NET Authentication SDK would make sense...

I would just prefer using New-TimeSpan -Days 30 instead of New-TimeSpan -Minutes 43200. That's the whole point of using the [duration] data type IMO.

The 43200 minutes is just the parameter validator, taken from the API documentation.

And for the sake of consistency with MS Graph cmdlets, I would probably rename the -Client_Id parameter to -ClientId.

Agreed.

I wonder if using Okta .NET management SDK and Okta .NET Authentication SDK would make sense...

Yeah, there was a reason I didn't want to use that but now I can't remember what it was. I will revisit and possibly refactor to use that.

Interesting idea of merging Okta and EntraID commands. The downside is that some parameters have lost their strong types. I considered creating some base classes to use as parameter types, but the JSONs do not seem to have anything in common.

I think I can still get this a little tighter. I will take it out of draft when ready.

@aseigler I like the addition of the MS Identity client!

@aseigler I like the addition of the MS Identity client!

Me too, me too.  Just gotta get a couple of things lined up and this will be golden.  Strong types and all.

Documentation should be good now. I just need to run through full functional testing to see if I broke anything, fix whatever broke, and we should be good to go.

Ok, I believe everything is working now.

I will test it ASAP. In the meantime, I see that .vscode/launch.json is part of the commit, but it is listed in .gitignore as well. Is that intentional?


Add Avail to Spektr

[x] Add Avail to the config
[ ] Test all Avail feature
[ ] Deploy SubQuery proxy project for Avail
[ ] Estimate how long it takes to fix all problems occurred on previous steps

https://github.com/novasamatech/nova-spektr/issues/2353

Status verification: ✅


how can we silence pull bot actions?

Is there a way to avoid getting emails from pull bot actions or not really?

Emails are coming from GitHub directly. You can either unwatch the repo or create an email filter to delete it on receipt.

@wei , Is there a way to receive mails only if there is a merge conflict ?


ConfigurationBuilder add elements to initialized array instead of replacing it

From @LordXaosa on Thursday, 18 October 2018 09:39:00
Code:
class TestClass
        {
            public TestClass()
            {
                TestArray = new[] { "123", "test1" };
            }
            public string[] TestArray { get; set; }
        }
class MyConfig
        {
            public TestClass Test{ get; set; }
        }

MyConfig cfg = new MyConfig();
IConfiguration config = new ConfigurationBuilder()
                 .SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
                .AddJsonFile("appsettings.json")
                .Build();
            config.Bind(cfg);

in appsettings.json:
{
  "Test": {
    "TestArray": [ "3", "4" ]
  }
}

I expect after config loading there would be only 2 items: "3" and "4"
But there would be all 4. "123","test1","3","4"
Consider this is a bug or there should be an option for replacing array values.
Copied from original issue: aspnet/AspNetCore#3666

Such behavior doesn't seem to be obvious... I really expected 100% equal objects in config and in runtime. May be there should be an option? Count this as suggestion.

This is really bothering me as well. If I write something in my config.json, I expect it to overwrite default values, not add to it.
Basically it means you cannot have default values for collections/arrays, but always have to define them in your configuration. That is not the behavior I would expect.
Right now it giving me some headaches as I validate my option POCO with fluentvalidation, and that doesn't allow null properties.


Azure classic portal does not exist anymore

Documentation issues:

Link to Azure classic portal redirects to default Azure portal.

Problem:
I am unable to delete the "Microsoft Visual Studio Team Services" Enterprise Application, which prevents me from deleting my Azure Active Directory

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

ID: c0449868-e233-3ada-067b-fc8de52ecc9a
Version Independent ID: df871375-c579-12c1-6aec-394046c42746
Content: Delete or recover VSTS account
Content Source: docs/accounts/delete-your-vsts-account.md
Service: unspecified
GitHub Login: @chcomley
Microsoft Alias: chcomley

@mguntli Thanks for bringing this to our attention, I'll update the documentation to reflect the "default" Azure portal. As for an answer to your problem, I'm hoping this blog post will help: https://blogs.msdn.microsoft.com/dstfs/2015/05/27/trouble-deleting-azure-active-directory-aad-due-to-visual-studio-online-item-in-aad-applications-list/
Thanks again!


Question

If I wanted to rate limit so they can only make 500 requests / hour.
What kind of settings would do that? It's very confusing.

Nvm, i was going to use this to rate limit IP's but guess I got the project messed up as it doesn't support that .


Jest matcher expect().toEqual() throws error "TypeError: this.customTesters is not iterable"

Checklist

[X] I have read Caveats documentation and didn't find a solution for this problem there.

Bug description
Thanks a lot for this library 🙏
Jest matcher expect().toEqual() throws an error "TypeError: this.customTesters is not iterable". I'm not sure if this is the intended behavior.
Reproduction
// test.spec.ts
import 'aws-sdk-client-mock-jest';

it('test', () => {
  expect({ a: 'a' }).toEqual({ a: 'a' });
});

Running this test results in:
✕ test (5 ms)

  ● test

    TypeError: this.customTesters is not iterable

      2 |
      3 | it('test', () => {
    > 4 |   expect({ a: 'a' }).toEqual({ a: 'a' });
        |                      ^
      5 | });
      6 |

If I remove the import everything works as expected.
Thanks a lot!
Environment

Node version: v18.16.0
Testing lib and version:
Jest "^28.0.3"
"ts-node": "^10.7.0"
"ts-jest": "^28.0.1"
Typescript version:
"typescript": "^4.6.4"
AWS SDK v3 Client mock version:
"aws-sdk-client-mock": "^4.0.0",
"aws-sdk-client-mock-jest": "^4.0.0",
AWS JS SDK libs and versions:

I had an almost identical issue to this but I found that if I bumped the versions of jest and ts-jest to versions ^v29 it resolved itself

I had an almost identical issue to this but I found that if I bumped the versions of jest and ts-jest to versions ^v29 it resolved itself

Ok, thanks! I'll try that 🙏

In my project, I tried to replicate the same matchers file (packages/aws-sdk-client-mock-jest/src/jestMatchers.ts), and the same issue occurs.
However, I changed import {expect} from 'expect' (this line: https://github.com/m-radzikowski/aws-sdk-client-mock/blob/main/packages/aws-sdk-client-mock-jest/src/jestMatchers.ts#L7) to import {expect} from '@jest/globals', and it suddenly started to work without upgrading the library.
Not sure why, but this was the import used in the Jest documentation too (https://jestjs.io/docs/expect#expectextendmatchers). Maybe consider making this change as a fix.

Using @jest/globals types works with Jest 29.
Using @types/jest works with both Jest 28 and 29.
See more on Jest types: https://jestjs.io/docs/getting-started#using-typescript
If there is still a problem using this setup, please reopen providing reproduction example and exact package versions.


When I use getOutputStream(), Japanese wasn't translated correctly.

When I use getOutputStream(), Japanese wasn't translated correctly.
So, I suppose that I should change getOutputStream to getWriter.

This problem has already fixed in https://github.com/pentaho/pentaho-kettle/pull/1600,
So, I close this pull request.


balena-cli: init at

Motivation for this change
Add balena-cli - a CLI tool to manage balena's devices and apps.
Things done

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

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

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Apparently, their updates are rather frequent, so this package should have it's own ./generate.sh script that will do it all, only for this package. This will reduce the probable merge conflicts of updating it among too many other node packages. I'm converting to draft as the current, newer build fails with:
npm ERR! syscall chmod
npm ERR! path /nix/store/2m8cziwx735scqdqs81081z4dwxyxzqi-node_balena-cli-12.14.18/lib/node_modules/balena-cli/bin/balena
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, chmod '/nix/store/2m8cziwx735scqdqs81081z4dwxyxzqi-node_balena-cli-12.14.18/lib/node_modules/balena-cli/bin/balena'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR!  Sorry. Now I used cherry-pick instead of rebase and I hope it's fine.

is there a way to just update the global node packages, instead of having a 12k application-specific deps file?

484K* :laughing: :
$ du -csh pkgs/development/tools/balena-cli
484K

It is possible, but their releases are so frequent, so I'm not sure how to handle this - putting it in the general nodePackages set would mean the updates it'll receive will be very infrequent. OTH, I'm not installing this tool imperatively via npm -g install because it is compiled.
Maybe we should improve the nodePackages ecosystem so it wouldn't be that hard to get changes into Nixpkgs. IDK.

I think in a year-or-two, we might just be using flakes for applications like this. So that nixpkgs is small and stable. And then just opt-in to flakes that have large dependency sets.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/call-for-nodepackages-maintainers/9176/27

I'll close this as it seems not suitable for nixpkgs with their release model and our nodejs system. In the future this project will be available using the flake https://gitlab.com/doronbehar/nixNodeJSPkgs .


Dotnetcore

Add support for ASP.NET Core RTM.
There's a new sample project demonstrating the differences in how to use the package. The README is currently not updated, would you like me to do that as well?
The diff is pretty rough to read due to my auto formatting options. Sorry about that.

A big thanks for adding this support! If you can update the README that would be amazeballs :confetti_ball:
I want to do a rename (#21) before getting up on nuget.org...


Testing EE4J_8 interceptors API

Draft PR to see how WildFly-core test suite behaves with jakarta.interceptor-api

retest this please

Core - Full Integration Build 8802 outcome was FAILURE using a merge of 68a548e067eb17644d67a69077b685ce03a0dc85
Summary: Exit code 1 (Step: Build & test full (Maven)) (new) Build time: 00:02:58

Dependency Tree Analyzer Output:
New Dependencies:

jakarta.interceptor:jakarta.interceptor-api:jar:1.2.4:compile

Removed Dependencies:

org.jboss.spec.javax.interceptor:jboss-interceptors-api_1.2_spec:jar:1.0.1.Final:compile

CC @wildfly/prod

Core - Full Integration Build 8803 outcome was FAILURE using a merge of 68a548e067eb17644d67a69077b685ce03a0dc85
Summary: Exit code 1 (Step: Build & test full (Maven)) Build time: 00:01:36

Core - Full Integration Build 8804 outcome was FAILURE using a merge of 68a548e067eb17644d67a69077b685ce03a0dc85
Summary: Exit code 1 (Step: Build & test full (Maven)) Build time: 00:01:19

Thanks @bstansberry
PR closed. Errors with integration were expected since WildFly full requires also changes to work with the new Interceptor API. A successful run of such integration is tracked here: https://ci.wildfly.org/viewLog.html?buildId=156845&buildTypeId=WF_WildFlyCoreIntegrationExperiments


⚠ lukeschweickart.com has degraded performance

In 7a56fb5, lukeschweickart.com (https://lukeschweickart.com) experienced degraded performance:

HTTP code: 200
Response time: 193 ms

Resolved: lukeschweickart.com performance has improved in b89ab34 after 51 minutes.


awscli: pin colorama to 0.4.1

Later versions of colorama have removed support for EOL pythons.
This is why this has been pinned to 0.3.9 in the upstream awscli
package.
This fixes the currently broken expression for the awscli:
$ nix-build --no-build-output -A awscli
these derivations will be built:
  /nix/store/i07n9rhxvcj5ylah36i4q3gd05xyjc03-awscli-1.16.266.drv
building '/nix/store/i07n9rhxvcj5ylah36i4q3gd05xyjc03-awscli-1.16.266.drv'...
builder for '/nix/store/i07n9rhxvcj5ylah36i4q3gd05xyjc03-awscli-1.16.266.drv' failed with exit code 1; last 10 log lines:
  Finished executing setuptoolsBuildPhase
  installing
  Executing pipInstallPhase
  /build/awscli-1.16.266/dist /build/awscli-1.16.266
  Processing ./awscli-1.16.266-py2.py3-none-any.whl
  Requirement already satisfied: PyYAML<5.2,>=3.10 in /nix/store/gn0wy1wdz0n3pwgk14dynddw4bkgb5db-python3.7-PyYAML-5.1.2/lib/python3.7/site-packages (from awscli==1.16.266) (5.1.2)
  Requirement already satisfied: rsa<=3.5.0,>=3.1.2 in /nix/store/bx2m06rdgw46qms806pxv0nkriijq118-python3.7-rsa-3.4.2/lib/python3.7/site-packages (from awscli==1.16.266) (3.4.2)
  Requirement already satisfied: docutils<0.16,>=0.10 in /nix/store/lf18ijqmzalmvhr6nwg7lfysx5q024ma-python3.7-docutils-0.15.2/lib/python3.7/site-packages (from awscli==1.16.266) (0.15.2)
  ERROR: Could not find a version that satisfies the requirement colorama<0.4.2,>=0.2.5 (from awscli==1.16.266) (from versions: none)
  ERROR: No matching distribution found for colorama<0.4.2,>=0.2.5 (from awscli==1.16.266)
error: build of '/nix/store/i07n9rhxvcj5ylah36i4q3gd05xyjc03-awscli-1.16.266.drv' failed

Motivation for this change
Things done

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

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

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @muflax

@LnL7 thank you, I have updated it now


fix: bug 2032 endsession creates extra traindialog

:tada: This PR is included in version 0.318.4 :tada:
The release is available on:

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Create GH actions file

Fixes #502

Actually I am not sure what JDKs are needed for EE 10. I know it's no longer 8 and has to be 11. Beyond that, I am not sure.
Therefore, I will keep the setup with JDK 11 only ATM.


Handle atoms as things to be wrapped in One

standalone atoms, like \s get converted to .whitespace, so make sure to wrap it around One(.whitespace) wherever possible.

@swift-ci please test

@swift-ci please test


@@validate() fails validation when update payload doesn't have property.

Description and expected behavior
When implementing model-level validation and running UPDATE actions, Zenstack doesn't pass non-existent properties.
Since a property isn't mutated when its not passed, it should not invalidate the action.
Screenshots
model Counter {
  id String @id

  name String
  value Int

  @@validate(value >= 0)
}

const client = new PrismaClient();

const counter = await client.counter.create({
  data: { id: "1", name: "It should create", value: 1 }
})

//! This query fails validation
const updated = await client.counter.update({
  where: { id: "1" },
  data: { name: "It should update" }
})

Environment (please complete the following information):

ZenStack version: latest
Prisma version: latest
Database type: Postgresql

Hi @nwidynski , thanks for filing this! I'll look into it and make a fix soon if it's confirmed a bug.

Hi @nwidynski , I've pushed a new v1.10.1 release which should handle non-exising fields properly during validation. Could you give it a try? Thanks!

@ymc9 it really got better, thanks!
Only one problem is remaining when using other operators like in for example:
model ValidationTest extends BaseEntity, PublicBase {
  id Int @id @default(autoincrement())
  type String
  name String

  @@validate(type in [
      'fee',
      'tax'
    ],
    'type must be one of the following values: fee, tax'
  )
}

describe('Update validation test', () => {
    it('should resolve', async () => {
      const enhancedPrisma = enhance(new PrismaClient());

      const validationTest = await enhancedPrisma.validationTest.create({
        data: {
          type: 'application_fee',
          name: 'validation name',
        },
      });

      await enhancedPrisma.validationTest.update({
        where: {
          id: validationTest.id,
        },
        data: {
          name: 'validation name updated',
        },
      });
    });
  });

Here the validationTest.update is failing.
Error calling enhanced Prisma method update: denied by policy: validationTest entities failed 'update' check, input failed validation: Validation error: type must be one of the following values: fee, tax

Oh, sorry I missed testing the in operator. There's some intricacy about it. I've made one more fix with a bunch more test cases. Also the CLI checking has been tightened up for cases that are not supposed to support. Please see if the new 1.10.3 build works. Thanks!

Thanks for the update @ymc9 it really looks even better than before!
But now we are experiencing one very confusing error with @@validate and I don't know how it is connected to any change.
Basically the usage of deleted_at does not work anymore:
model ValidationTest {
  id Int @id @default(autoincrement())
  type String
  name String?

  deleted_at DateTime? @db.Timestamp(6)
  deleted_at2 DateTime? @db.Timestamp(6)

  @@validate(type in [
      'fee',
      'tax'
    ],
    'type must be one of the following values: fee, tax'
  )

  @@allow('all', true)
  @@map('validation_test')
  @@schema("public")
}

When using this model and using this test suite:
  describe('Update validation test', () => {
    it.only('should resolve', async () => {
      const enhancedPrisma = enhance(testContext.prismaClient);

      const validationTest = await enhancedPrisma.validationTest.create({
        data: {
          type: 'fee',
          name: 'validation name',
        },
      });

      await enhancedPrisma.validationTest.updateMany({
        where: {
          id: validationTest.id,
        },
        data: {
          deleted_at: new Date(),
        },
      });
    });
  });

We are receiving this error:
Error calling enhanced Prisma method updateMany: denied by policy: validationTest entities failed 'postUpdate' check, entity { id: 26 } failed policy check
Strange thing is, when we are executing this test:
  describe('Update validation test', () => {
    it.only('should resolve', async () => {
      const enhancedPrisma = enhance(testContext.prismaClient);

      const validationTest = await enhancedPrisma.validationTest.create({
        data: {
          type: 'fee',
          name: 'validation name',
        },
      });

      await enhancedPrisma.validationTest.updateMany({
        where: {
          id: validationTest.id,
        },
        data: {
          deleted_at2: new Date(),
        },
      });
    });
  });

it works. It looks more like a general issue, but I investigated that when I remove the validation part of the model:
model ValidationTest {
  id Int @id @default(autoincrement())
  type String
  name String?

  deleted_at DateTime? @db.Timestamp(6)
  deleted_at2 DateTime? @db.Timestamp(6)

  @@allow('all', true)
  @@map('validation_test')
  @@schema("public")
}

Then this test will also work:
  describe('Update validation test', () => {
    it.only('should resolve', async () => {
      const enhancedPrisma = enhance(testContext.prismaClient);

      const validationTest = await enhancedPrisma.validationTest.create({
        data: {
          type: 'fee',
          name: 'validation name',
        },
      });

      await enhancedPrisma.validationTest.updateMany({
        where: {
          id: validationTest.id,
        },
        data: {
          deleted_at: new Date(),
        },
      });
    });
  });

Okay sorry it seems like it could be connected to our prisma extensions will investigate this further

So we checked this further and the problem seems to be some kind of findFirst call which will be added through the addition of @@validation.
We are doing some manual kind of deletion checks with prisa, basically we override the findFirst (and other) methods to not find deleted properties anymore.
But after the softDeletion call it can't be found as it is already deleted. We could change it to the "zenstack way" by doing @@deny('read', deleted_at != null). But we are also using the non enhanced prisma client at some places and there we would loose the ability of doing a normal find (many other methods) and get/ update values which are not deleted without adding it to the query every time + not having too many custom queries.
Therefore our questions:

Wouldn't it suffice for @@validate to only check the given input params instead of doing a findFirst after applying updates? I guess this will have good reasoning why it is done, but still we wanted to ask this question. As it seems the errors could also be thrown way earlier which could save some time if we would throw errors if the params can not be validated and we don't have to execute the queries.
Is there any possibility to pass some kind of argument/ prefix into prisma queries so we can see that it is coming from zenstack? With this option we could bypass our check for deleted_at and maybe also on other places.
For example, is it possible to override the prisma transaction id manually and give it some prefix? When looking into the arguments of findOne we can see __internalParams and inside of this attribute we have the transaction which has this form:

{
  "kind": "itx",
  "id": "cltn0zdrd00013r0ekdelheoz",
}

I think I've understood the issue. This is where ZenStack enhancement and client extensions can have some unexpected interactions ...
Just to explain what the findFirst is for. ZenStack may do a read-back after a mutation for several reasons, including:

If the model under mutation has "read" policies, it reads the result back to check if it still satisfies read policies so it can be returned to the caller.
If there are data validation rules (both field-level and model-level), it reads the result back to validate against them (data validation rules are like "invariants" that should hold after mutations).
If there are post-update policies (rules involving future() calls), the result is read back to check it.

I did some debugging and also skimmed through some of Prisma's code but couldn't find a way to "tag" the operations initiated by ZenStack. Transaction ID looks like a nice way to do it, but I couldn't find a way to influence it ... I also tried to inject some bogus fields into args, but Prisma does pretty strict checking against the input.
In your case, is it possible to enhance the original PrismaClient without the client extension installed?

To further proceed we just switched to the recommended way of doing soft deletes from zenstack.
So with this change everything is working fine, I guess this issue can be closed. Thank you so much @ymc9! :)


lastest version - compile error (File not found)

Please answer these questions before submitting your issue.

Why do you submit this issue?
[ ] Question or discussion
[x] Bug
[ ] Requirement
[ ] Feature or performance improvement

Question

What do you want to know?
When Collector module is deleted from skywalking?

Bug

Which version of SkyWalking, OS and JRE?
latest
Which company or project?
BOCOMM
What happened?
If possible, provide a way to reproduce the error. e.g. demo application, component version.
Maven compile error :/skywalking/apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/trace/component/command/TraceIgnoreCommand.java:[34,19] 程
序包Command不存在

Requirement or improvement

Please describe your requirements or improvement suggestions.

Please read the compiling doc.


Create README.md

Testing Shit Excellent
Truth
♾

What movie did you see yesterday?

Open and filled with inspiration and passion. ```

sandalwood had morning wood.

"sandalwood had morning wood"

Nothing to Pull
Inspiration Push
Stable Dance

Interesting Times


banking_stage: track VoteStorage size instead of costly iterator

LatestUnprocessedVotes uses a costly lock grabbing iterator to compute length, which is used in various parts of the banking stage.
Instead track this separately in an atomic

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

Project coverage is 81.9%. Comparing base (92ebf0f) to head (ac6c23e).
Report is 6 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff            @@
##           master     #743    +/-   ##
========================================
  Coverage    81.9%    81.9%
========================================
  Files         851      851
  Lines      230937   231012    +75
========================================
+ Hits       189217   189333   +116
+ Misses      41720    41679    -41

we want to backport this to 1.17 / 1.18?

Probably yes on the BP's. That being said, the last update I pushed was found because we had an integer overflow in a metrics function. I think the code is probably good as is but that does make me a little nervous

This is a very leaky design. For example there is already get_entry function which returns a reference with interior mutability:
https://github.com/anza-xyz/agave/blob/8aa32172d/core/src/banking_stage/latest_unprocessed_votes.rs#L188-L194
So the caller can do:
latest_unprocessed_votes.get_entry(pubkey).unwrap().write().unwrap().take_vote()

which will break this bookkeeping.
The old len function was bad but there is no evidence that it has any significant impact in overall validator performance.
I would pretty much rather the old (slow but correct) code unless there is a better safer design.
The backports for sure are unnecessary because, again, there is no evidence that this will significantly impact any of the current performance issues.

there is evidence it was affecting performance. there are only so many cores on a machine, and this code has been shown to be at least partially responsible for the near 100% CPU usage of 2 cores.
is your concern with get_entry? it is an internal function, you can see the uses of this function in the file. there are only 3 uses.

there is evidence it was affecting performance. there are only so many cores on a machine, and this code has been shown to be at least partially responsible for the near 100% CPU usage of 2 cores.

I already read the slack thread and I don't count that as evidence that this will impact performance in any significant form.
If the validator running with and without this code shows significant change in any of the important performance metrics, that would count as evidence.

is your concern with get_entry? it is an internal function, you can see the uses of this function in the file. there are only 3 uses.

It doesn't matter. The code changes and that is how the bugs creep in. That is what "leaky" design mean.

Probably yes on the BP's. That being said, the last update I pushed was found because we had an integer overflow in a metrics function. I think the code is probably good as is but that does make me a little nervous

A bit unfortunate that it was caught in the localnet metrics test first, we do have a lot of tests that exercise this pathway that took longer to run but eventually spotted the issue https://buildkite.com/anza/agave/builds/2374#_.

This is a very leaky design. For example there is already get_entry function which returns a reference with interior mutability:

This is a valid point and part of the hesitation in implementing this approach initially (see https://github.com/solana-labs/solana/pull/26722#discussion_r957900203).

I would pretty much rather the old (slow but correct) code unless there is a better safer design.

An alternative we could consider is to modify LatestValidatorVotePacket so that we can avoid the inner lock when computing length / # forwarded
struct VotePacket {
  vote_source: VoteSource,
  vote: Option<Arc<ImmutableDeserializedPacket>>,
  slot: Slot,
  timestamp: Option<UnixTimestamp>
}

struct LatestValidatorVotePacket {
  vote_packet: RwLock<VotePacket>,
  forwarded: AtomicBool,
  is_vote_taken: AtomicBool,
}

pub struct LatestUnprocessedVotes {
  latest_votes_per_pubkey: RwLock<HashMap<Pubkey, Arc<LatestValidatorVotePacket>>>
}

len() can be similar to before, and take_vote() / update_vote() can perform the bookkeeping through is_vote_taken without leaking it to LatestUnprocessedVotes

I already read the slack thread and I don't count that as evidence that this will impact performance in any significant form.
If the validator running with and without this code shows significant change in any of the important performance metrics, that would count as evidence.

What? You must have missed this?

This is on a staked devbox running on mnb. What more evidence do you need? We don't have metrics that compute time around these functions, which is the reason why this went unnoticed for so long. This "must be in metrics or doesn't exist" is such a terrible take I can't even.

It doesn't matter. The code changes and that is how the bugs creep in. That is what "leaky" design mean.

I agree with this. I haven't reviewed the PR yet but we got here because of a footgun, so we shouldn't be introducing more footguns, as unlikely as they are to be triggered.

I've tested this briefly on a staked validator and noticed this:

The overhead of counting votes is now gone, but we're doing a lot of channel recvs with a 0 timeout, which result in a lot of spin looping because the channel is often empty. If we could spin less it would be great.

@alessandrod please see #681. This should make the gossip thread spin less, by making it always wait.
Haven't had a chance to pick that up on a node yet, if you wanna pick the commit in mean-time could help us both 😄


Pass ResponseWriter to MsgAcceptFunc

It would be nice to be able to get details about the connection (eg remote address, protocol) from the MsgAcceptFunc to make routing/allow decisions based on this as well as the headers of the packet, for example dropping/refusing packets if a certain ratelimit is passed.

I think this makes sense even though it is backwards incompatible.
you can do these checks later in the chain, but moving this before parsing the entire package makes sense to me.


--force-device-scale-factor is beeing ignored

I am trying to configure zulip on a high DPI monitor (by default the text is too small). Since zulip is based on electron I would expect --force-device-scale-factor to work but it's not.
I am installing zulip through flatpak and I have tried the following:
/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=start-zulip org.zulip.Zulip --force-device-scale-factor=1.5

This repo is the Zulip server; the desktop app is https://github.com/zulip/zulip-desktop. Feel free to open an issue there. However, I’m not sure you can expect Electron apps to support --force-device-scale-factor; it doesn’t seem to work in https://github.com/electron/electron-quick-start, for example.

OK, thanks @andersk

For the record, turns out I can just zoom in using Ctrl++ and the desktop app remembers the zoom level on restart.


BUGFIX-US12 #60

BUGFIX-US12: Incorrect Scrolling distance calculations
Description:

Auto-scrolling was calculating incorrectly the scrolling distance when user uses the left and right arrow keys. It was not taking the distance the graph makes during arrow key usage into account when calculating scrolling distance.

Testing:

Testing was done using the current event generator.

I just noticed that you did a PR to Master, you need to do it to Dev =)


Allow swapping of HTTP backend without copypasting all of Backbone.sync

Users occasionally need to change how Backbone communicates with the server without completely re-writing Backbone.sync. For example, when using http://github.com/alexeymk/ajax_iframe_bridge, we still want all of Backbone's HTTP translation, but then we need to send the request through the bridge, instead of straight to $.ajax.
I think this patch has zero impact on people who don't need the functionality, so there's no cost to including it.

+1

Yes, you can use jQuery's global ajax options if that's what you're looking for ... or pass any custom properties you'd like in the jQuery ajax options for Backbone requests. I don't think that adding yet another "global" configuration would be terribly helpful here...


WM: Add support for yabai on macOS

Description
Add support for yabai on macOS
Features
Issues
TODO

LGTM :+1:


setRightButtons race condition on push

If you push a screen and immediately call setRightButtons, it might set the buttons on the previous screen if the animation isn't yet finished.
Proposed fix of set the button on push won't work here because my button is dynamic and I don't know if it should be there or not until a few milliseconds after the push.

duplicate #43


Fix typo

java -> Java

@changeworld : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off


Update request: helix 22.12 → 23.03

Package name: helix
Latest released version: 23.03

Current version on the unstable channel: 22.12
Current version on the stable/release channel: 22.08.1

[x] Checked the nixpkgs pull requests

Notify maintainers
@danth @yusdacra

Note for maintainers: Please tag this issue in your PR.

Fixed by https://github.com/NixOS/nixpkgs/pull/224397, I believe.

Closed by #224397


WIP Store screenshots and log in a volume

We have to store the screenshots and logs in case the functional tests fail.

There were the following issues with your Pull Request

Commit: 505360658fe1b0b69d58c40e187c62f078a735f4
Commits must be in the following format: %{type}(%{scope}): %{description}
Your subject line is longer than 50 characters

Guidelines are available at https://github.com/fabric8io/fabric8-ui

This message was auto-generated by https://gitcop.com


[Bug] [zookeeper] the node IP in the worker group connet be updated automatically

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
在worker 重新启动后，IP发生变化，但是worker group中的自定义的节点IP不能随着default节点一同自动更新，后发现，自定义节点没有在zookeeper里成功创建
What you expected to happen
原来的1.0版本是正常自动更新的，目前3.0版本无法自动更新
How to reproduce
复现方式：自定义worker节点，重启worker容器，IP发生变化，自定义节点的IP不发生变化
Anything else
No response
Version
3.0.x
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

hi @wtttt123456, please describe this issue in English. And u mean that cannot update the worker IP in zk?

yes, when I create new worker group, name "newG " for example,and restart the container in k8s cluster ,and the IP address is updated in default worker group,but the newG worker group's container ip is not updated at the same time,the ip is the old container's,which is not exists now.

hi @hkun0120 , as i know, this is not a bug, this is a feature, now DS will not update the worker group by monitor other worker group in zk. So u should update it in the UI manually.

hi @hkun0120 , as i know, this is not a bug, this is a feature, now DS will not update the worker group by monitor other worker group in zk. So u should update it in the UI manually. Because DS 3.0.x+ just mantain Worker group in DB.

@DarkAssassinator thank you very much. there is another question, the Default worker-group has all IP,and other workergroup has serveral ip, does this mean DS recommand us to use default worker-group?

hi @hkun0120 , as i know, this is not a bug, this is a feature, now DS will not update the worker group by monitor other worker group in zk. So u should update it in the UI manually. Because DS 3.0.x+ just mantain Worker group in DB.

@DarkAssassinator thank you very much. there is another question, the Default worker-group has all IP,and other workergroup has serveral ip, does this mean DS recommand us to use default worker-group?

hi @DarkAssassinator, DS does not recommend which Worker group to use, because the decision depends on the user's own real demands. The default Worker group just includes all worker nodes, but if you need to specify tasks to run on a specific server or list of servers, you need to specify a workgroup.


Caching incorrect when used with watchers

Hi!
First of all thanks for this nice little plug-in.
However, the way caching is implemented doesn't work correctly when the plug-in is used with continuous watchers (like gulp.watch). Hashes then are pulled from the cache even though the contents of the file in question may have changed.
Proposed solutions: either remove the cache completely, or use something like the change time of the file in question to determine cache invalidation.

fix in 1.1.2
use mtime+filename to check cache now.

Thanks for the quick fix!
I did a fork and used a very similar fix (but you were faster, than me creating a pull request). I used "getTime" comparison instead of caching the coercion value though - nice.


How do you output to a file?

Trying to pretty print a Gruntfile.js:
So based on:
Usage: jsbeautifier.py [options] <infile>
I used:
jsbeautify -o Gruntfile.js Gruntfile.js
Result:
[Errno 2] No such file or directory: ''

Try -r instead and just the one file name.

I used: js-beautify -r Gruntfile.js
returned:
[Errno 2] No such file or directory: ''

@bitwiseman I was using the python version. Changed to javascript version and it worked

Thanks!


Add example

Adds a real-world example with good coverage of values #118.
Is valid with frictionless validate datapackage.json --schema-sync, see #172
~Uses the profile and schema that are currently on that branch: advantage = immediate testing, disadvantage = requires symlinks again, as we cannot use ../paths. To be discussed~
Uses a version of the profile and schema, just like real datasets should. Can be tested against the current branch another way, see #173
Is intended to be the only example, hence the example dir name. If we later want to add more examples for testing purposes (including invalid ones), these should be part of tests dir in my opinion

@kbubnicki this example now includes all columns (some empty) and validates against 0.1.6. I think it would be good to accept this so it is available in the main branch.

Great, nice to have a working example in the repo!


Multi_insert returns more results than expected in some specific conditions

Describe the bug
When using mysql2 as the underlying driver, dealing with a table that has a multi-column primary key, multi_insert tries to get back the primary key from the inserts. However, since this is a multi-column PK, LAST_INSERT_ID() has 0, so relation.multi_insert will give back an array of 0.
multi_insert will in turn, try to query the relation with the primary keys it got back. It uses relation.primary_key for this, which will return as far as I can understand the first field of the PK. If the PK has a varchar as the first field, this will result in a query such as SELECT * FROM relation where varchar_field in (0, 0, 0...), which in mysql will return every field in the table.
To Reproduce
Create a table which contain more than one column as primary key, such as:
CREATE TABLE `my_table` (
  `my_field1` varchar(255) NOT NULL,
  `my_field2` varchar(255) NOT NULL,
  PRIMARY KEY (`my_field1`, `my_field2`)
)

Insert random data in the created able.
Try to insert more than one value in this table using something like so:
new_values = [{my_field1: "abc", my_field2: "cde"}, {my_field1: "gde", my_field2: "zyx"}]
create_cmd = my_table.command(:create, result: :many)
d = create_cmd.call(new_values)

d will contain all rows in the table, instead of only the two inserted ones.
Expected behavior
Only the two values are returned (or optionally, no values at all)
Your environment

Affects my production application: No, we rolled back our change and we're going straight to the db.
Ruby version: 2.6
OS: Linux
Rom-sql 3.1.0
Rom-core 5.1.2

I reckon this is a known problem with composite primary keys. In rom 6.0 you'll have "void commands" that don't return anything and you'll be able to use whatever method you want to retrieve inserted data.
@flash-gordon maybe we should raise an error in case of a command that return results automatically + composite PKs?

I guess yes, raising an explicit exception is better

@flash-gordon cool, it's something to do in 4.0.0 I suppose

Is there a work around in the meantime, should I do a custom command that calls sequel directly?

@renatolond yes you could use a custom command and implement your own #execute


refactor three SAML tests to use page objects

Convert 3 tests to use the page object strategy:
testSimpleSamlLoginWithAddShadowUserOnLoginFalse
incorrectResponseFromSamlIDP_showErrorFromSaml
testSingleLogoutWithLogoutRedirect

@swalchemist, have you looked into the check failures yet?

@swalchemist, have you looked into the check failures yet?

Checking.

I removed the problematic test. All looks good and ready for review.


Feature/refactor collapsible section with new section header

Description
Fixes #1000
Notes (out of scope, known isues, hints for reviewing code, ...)  (optional)
...
Test cases

[ ] Case 1:

Given I am the usual user
When I go to this page
And I click on edit manager
Then I see non collapsible section

[ ] Case 2:

Given I am the usual user
When I go to this page
And I click on start watch button
Click on test 2 (Pixal) in list of suggestion overlay
Open «Pixal» can access this activity section
Click on Edit Permissions button
Then I see collapsible section

[ ] Case 3:

Given I am the usual user
When I go to this page
And I click on start watch button
Click on test 2 (Pixal) in list of suggestion overlay
Click on progress tab -> chapter view
Then I click on cell and then on Access button in overlay
Then I see collapsible section

Test cases work well :+1:


[UNDERTOW-2520] Fix close code constants

The values 1002 and 1003 were swapped compared to the RFC.

@Garmelon could you please update commit message to include ticket ID?


Improve quality handling

Describe the feature here
Right now it's a grey area. This has to be improved. There are many issues referencing this issue.
I would like to hear the opinions of @ngomile on this.
Refs: #115

@vn-ki I suggest separating the responsibility of handling qualities be solely left to the AnimeEpisode class, AnimeEpisode subclasses should be allowed to decide whether or not the quality specified is available or not. Because right now its too rigid in my view.

Closing just to add to the issue list, hopefully we can get people to actually fix these old but useful issues


Create documentation on overall engineering process

Create a new page in how-we-work/ discussing missions squads, how they are formed and dissolved, and the overall process/guidelines for how each mission squad should operate.

Not relevant anymore since we are no longer maintaining the how-we-work/ docs folder.


Add Horizon to OpenStackControlPlane

This change adds the necessary pieces to deploy the Horizon operator.

I believe the operator-build-deploy job failure will be resolved by this patch:
https://github.com/openstack-k8s-operators/horizon-operator/pull/58

/retest

/test openstack-operator-build-deploy

/test golangci
golangci-lint runs in pre-commit as well and it passed there. (yes we eventually remove the duplication of jobs)

When I tried to deploy this I saw that the horizon controller_manager restarts with
W0313 08:40:08.044118       1 reflector.go:424] pkg/mod/k8s.io/client-go@v0.26.2/tools/cache/reflector.go:169: failed to list *v1beta1.Memcached: memcacheds.memcached.openstack.org is forbidden: User "system:serviceaccount:openstack:horizon-operator-controller-manager" cannot list resource "memcacheds" in API group "memcached.openstack.org" at the cluster scope

Do you see that if you try to deploy horizon alone or is it specific to this integration patch that causing the missing permission?

I think it is due to https://github.com/openstack-k8s-operators/horizon-operator/issues/62

The only possible thing I can see for the golangci error is that it's related to a bug that was fixed in 1.46.2 and we're running these tests with 1.46.0:
INFO[2023-03-13T08:24:19Z] Tagging ci/golangci-lint:v1.46.0 into pipeline:golangci-lint.

A similar issue appears is reported here:
https://github.com/golangci/golangci-lint/issues/2851
Which was apparently fixed by:
https://github.com/1uf3/execinquery/pull/13/commits/bef5bea9ead17efccc61651464cfa4cf492c5eb9
With the fix being listed in 1.46.2:
https://github.com/golangci/golangci-lint/blob/master/CHANGELOG.md#v1462
When we execute make golangci locally, it is pulling the latest version of golangci-lint:
+ http_download_curl /tmp/tmp.awuaaPCkPc/golangci-lint-1.51.2-linux-amd64.tar.gz https://github.com/golangci/golangci-lint/releases/download/v1.51.2/golangci-lint-1.51.2-linux-amd64.tar.gz
+ local_file=/tmp/tmp.awuaaPCkPc/golangci-lint-1.51.2-linux-amd64.tar.gz

So, my assumption is that the issue being reported in the golangci job is related to an issue with the golangci-lint version in-use. I would be interested to know if it's at all possible to bump this version?

golangci-lint runs in pre-commit as well and it passed there. (yes we eventually remove the duplication of jobs)

I was mistaken, here in openstack-operator we don't run golangci-lint in pre-commit :/

So, my assumption is that the issue being reported in the golangci job is related to an issue with the golangci-lint version in-use. I would be interested to know if it's at all possible to bump this version?

The job uses a golangci-lint specific container:
https://github.com/openshift/release/blob/ef2dca28318a6f0bd6257813165ffcdefb062e9d/ci-operator/config/openstack-k8s-operators/openstack-operator/openstack-k8s-operators-openstack-operator-master.yaml#L6-L9
but I'm not sure where that is coming from

/test golangci
golangci-lint bumped to v1.48.0 in [1]
[1] https://github.com/openshift/release/pull/37271

/test gofmt

/retest

As per our conversation, this PR is currently blocked due to the bundle size limit that generates a request too large to etcd, preventing OLM to move forward w/ the InstallPlan.
The strategy we agreed is to move to a logical split of the openstack components in at least three different bundles: openstack-core, openstack-storage, openstack-extra(s), and @dprince is working on it.
The patch [1] describes what we've done with manila, that was just an example to prove that we were able to successfully deploy the OpenStackControlPlane as long as we have >1 Job deploying the static resources (CRDs, rbac, etc): the current work is a generalized way to pack a set of operators together, in a way that we can scale (in a long term view) without hitting the size limit again.
[1] https://github.com/openstack-k8s-operators/openstack-operator/pull/243

/test precommit-check

From the build-deploy job:

The operator looks healthy [1]
It's an optional component (enabled is false by default): we don't see any pod here [2], which is expected

I had a minor comment on the samples/ area for network-isolation, otherwise looks good.
[1] https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/origin-ci-test/pr-logs/pull/openstack-k8s-operators_openstack-operator/226/pull-ci-openstack-k8s-operators-openstack-operator-master-openstack-operator-build-deploy/1643379112682721280/artifacts/openstack-operator-build-deploy/openstack-k8s-operators-deploy/build-log.txt
[2] https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/origin-ci-test/pr-logs/pull/openstack-k8s-operators_openstack-operator/226/pull-ci-openstack-k8s-operators-openstack-operator-master-openstack-operator-build-deploy/1643379112682721280/artifacts/openstack-operator-build-deploy/openstack-k8s-operators-gather/artifacts/pods/

/lgtm


allow setup.py to be run without specifying "python" at the beginning

Just a simple addition to setup.py allows it to be run like this:
./setup.py install

instead of:
python setup.py install

Not a big deal, but is convenient.

Thanks!


Single app on multiple ttys?

I am writing my editor, and I think that instead of implementing my own multi-window system, it would be best to allow people to use tmux. So - from what I understand - it would just require a single app to use several tty input-outputs, right? Is it possible to do it with cursive? How much change would be needed to achieve that?

I forgot about signals. Now I agree with you, I'll go multiprocess. Thanks.


Memcached / Dalli couldn't fetch data from other servers

We use memcached as session store for our application, we have 2 production servers and the memcached client is dalli (https://github.com/mperham/dalli). The config is following:
# Server A
config.cache_store = :dalli_store, '<IP_ADDRESS>', SERVER_B_IP, {namespace: 'Myapp', expires_in: 1.day, compress: true, failover: false}
# Server B
config.cache_store = :dalli_store, SERVER_A_IP, '<IP_ADDRESS>', {namespace: 'Myapp', expires_in: 1.day, compress: true, failover: false}

We're facing a problem that one of our servers seems not to look up the other one to fetching data. For example, if I have data for some_key on server B, when I tried to debug in console:
options = {namespace: 'Myapp', expires_in: 1.day, compress: true, failover: false}
# Server A
dalli = Dalli::Client.new(['<IP_ADDRESS>', SERVER_B_IP], options)
dalli.get("some_key") # nil

# Server B
dalli = Dalli::Client.new([SERVER_A_IP, '<IP_ADDRESS>'], options)
dalli.get("some_key") # { "_csrf_token" => "..." }

I tried with failover: true but still got the same result. But if the key some_key stay on server A, I can get the same data from both servers.
Also, i the above example, if I initialize dalli client with only SERVER_B_IP, i.e dalli = Dalli::Client.new(SERVER_B_IP, options), I could get back the data.
Digging the code a little bit, I found out the ring.continuum on server A always point to itself:
# Server B
ring = dalli.send :ring
hkey = ring.send :hash_for, 'some_key'                    # got same hkey
entryidx = ring.send :binary_search, ring.continuum, hkey # 300
ring.continuum[entryidx].server                           # server B
ring.continuum[302].server                                # server A

# Server A
ring = dalli.send :ring
hkey = ring.send :hash_for, 'some_key'                    # got same hkey
entryidx = ring.send :binary_search, ring.continuum, hkey # 302
ring.continuum[entryidx].server                           # server A
ring.continuum[300].server                                # server A

Am I missed some thing in the memcached / dalli config or is it a problem with memcached in server A?
Thanks in advance.

Have you tried not to use '<IP_ADDRESS>' ?
The server name is used to calculate entry count on memcache server. You actually used totoally different server name in two configurations.

Thank @fogisland, it seems to be my issue, after changing IP to LAN IP for both service, the issue hasn't happened again so far.


Update app.js

fixed copy paste leftover by renaming misleading function name from privateCall to adminCall

Thanks. Good catch.


fix global leak of attrType

I run mocha with --check-leaks, and this turned up during my testing.

Coverage remained the same at 100.0% when pulling<PHONE_NUMBER>94a8eba517956f15765bbe60c63255 on jesseditson:fix_global_leak into a91a13d2b58f4e91676d68d1e59e203580da2815 on nthtran:master.


please add The University of Georgia your university list

@tsikaralts Pull request merged. Thank you!

Thanks


Too many open file even after closing Connection: Question

I get the too many open files error on Linux when I used aiosqlite because I would open a new connection every time I wanted to do something. I fixed it now by using a global connection, but I'm still not sure why I got the error because I always used aiosqlite.connect() with a context manager, so why would I get the error?

I'm seeing similar behavior on Windows using sqlalchemy with async engine and aiosqlite. Windows reports the process as holding many handles to the database even when all sessions have been closed (there seems to be some case where a handle isn't released? Some are released, but over time the number grows)


Google Play image

Please consider making a svg for the Google Play logo

Can you find a good vector source for it please?

Maybe
Is it possible to use the svg glyphs from a free font like Font Awesome?

For example, I took these from font Awesome. Can you use them (they need colours though)? they're under 2KB

None of those icons are for Google Play. I'm happy to make a Super Tiny Icon - but I need you to find me a high quality one to work from.


Multidimensional interpolate_na not working

What is your issue?
Hi everyone,
According to xarray documentation, I try to fill NaNs by interpolation using multidimensional interpolate_n
u_interp = u.interpolate_na(dim = None, method = 'linear')
but ends up ImplementedError: dim is a required argument.
I also try
u_interp = u.interpolate_na(dim = ['level', 'lat', 'lon'], method = 'linear')
but ends up KeyError: ['level', 'lat', 'lon'].
The xarray version I have tried are: v0.19.0 (Jul 2021), v2023.6.0, v2024.5.0
Could anyone provide some thoughts on this? Thank you!

you can only interpolate along a single dimension with that method: u.interpolate_na(dim="level", method="linear") should work. If you absolutely need multi-dim missing value interpolation on a geoscience dataset, you might want to try pyinterp.

Hi keewis,
Thanks for your quick response.
According to xarray interpolate_na documentation (https://docs.xarray.dev/en/stable/generated/xarray.DataArray.interpolate_na.html), it says dim is optional and can be None. So that's the reason I have this question. If dim=None raise error, why the documentation says this?

right, that looks like a documentation bug, and we might want to consider making dim a required parameter.

I see. Thank you!

Encountered a similar problem, I often want to extrapolate nans at the border of a domain (nearest neighbor), and while interpolate_na works in one dimension, I was wondering if there would also be a possibility to add scipy.interpolate.NearestNDInterpolator to xarrays interpolate_na, which looks up the nearest neighbor in higher dimensions.
To use it, one has to do something like this
from scipy.interpolate import NearestNDInterpolator
mask = np.where(~np.isnan(ds))
interp = NearestNDInterpolator(np.transpose(mask), data[mask])
filled_data = interp(*np.indices(ds.shape))
(Sources: https://stackoverflow.com/questions/68197762/fill-nan-with-nearest-neighbor-in-numpy-array/68197821#68197821, https://stackoverflow.com/questions/65300732/how-to-fill-nan-with-nearest-non-nan-value-in-2-dimensions)


Linking to a deep link fails when used with "path" URL strategy

Ionic version:  (check one with "x")
[ ] 1.x
[X] 2.x
I'm submitting a ...  (check one with "x")
[X] bug report
[ ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:
When in development with ionic serve and using the default hash URL strategy, I can configure a segment like this segment: 'product/:productId'.  I can successfully navigate to this page and the URL looks like this...http://localhost:8100/#/product/12876.  When I paste the URL into a new browser tab, it comes up again.  BTW, beautiful job.  I'm so stoked about the simplicity of this "router".
When I change the hash strategy to { locationStrategy: 'path' } and set <base href = '/'> in my index.html file, everything works great when navigating in the app.  However, I can no longer reach the page when I paste the http://localhost:8100/product/12876 URL into another browser tab.  I'm getting a 404.
I have not tested this outside my localhost environment.
Expected behavior:
Deep linking should work when using the path locationStrategy.

Location, {provide: LocationStrategy, useClass: HashLocationStrategy},
{provide: APP_BASE_HREF, useValue : '/' }`
Same for me.

Does your webserver rewrite "subdirectories" (like "/product") to index.html?
Make sure it does, the URLs have to be rewritten... I guess this is a precondition to get PathLocationStrategy-routing without the Hash (example.com/#/product) working... Otherwise the webserver is looking for a subdirectory "product" (therefore 404) and the ionic logic won't ever be called in that case... Or am I missing something?
e.g. .htaccess Apache:
<IfModule mod_rewrite.c>
Options Indexes FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>

(I got it working that way, see also https://forum.ionicframework.com/t/how-to-use-deeplinker-in-browser/75787/7)
Please correct me if I am wrong.
Arno

Yes that's what I thought too but didn't have time to experiment this option.
Thanks a lot Arno

Thanks for opening an issue, we will look into this.

I am using PathLocationStrategy because I am using ng2-adal which wraps the adal.js library. That library uses a hash to separate the token from the main URL, so the hash path strategy will not work in Ionic and adal together. Everything works correctly except when I try to navigate using the URL or refresh a page with a full path; i.e. http://localhost:8100/project-summary
I get an error: Cannot GET /project-summary

@johnhny Thanks for sharing, that resolved it for me. Just to note for others, this does not resolve the issue when running in Ionic serve, but when serving the files via apache, i.e. when hosting on a server, or locally.

I don't think this is a bug, but it would be great, if this "issue" would be pointed out in the docs as it isn't obvious, I guess.
I'd suggest something like:

If you set "locationStrategy" to "path" (removes hashbangs when using Deeplinking), you have to make sure that your webserver rewrites URL's to "index.html".
In apache this can be achieved using this ".htaccess" file configuration...
If you run your app locally (ionic serve), locationStrategy "path" is not working (currently).

Is there a way that you can simply enable URL-based routing for local dev? I found this https://github.com/driftyco/ionic-plugin-deeplinks but installing and configuring a plugin seems like overkill just to prevent live reload from redirecting back to the root page every edit.

I Think that configuration of the redirect can be done in @app-scripts/dist/dev-server/http-server.js when configuring the express server. Maybe someone with more knowledge can help with this

@yelhouti - Thanks for sharing. Seems to work perfectly. It's a pity we have to edit a dist file from the node_modules to get this to work. Any ideas on how we could over-ride using a config as you mentioned?

@pjhartin for that you will need to talk to app-script guys, the simplest way is to add a config variable (ex: pathLocationStrategy)
and in the code:
if(config.pathLocationStrategie){
    app.all('/*', serveIndex);
}

you can even write a pull request for that

@yelhouti This approach unfortunately does not work when you have proxies configured, because setupProxies function uses promise, so it's executed after app.all('/*', serveIndex);.
As a quick fix I made:
...
app.get('/plugins/*', servePlatformResource);

    function serveLocalationStrategyIndex () {
        app.all('/*', serveIndex);
    }
    if (config.useProxy) {
        setupProxies(app).then(serveLocalationStrategyIndex);
    } else {
        serveLocalationStrategyIndex();
    }

    return app;

And below in setupProxies I added return in line:
return ionic_project_1.getProjectJson().then(function (projectConfig) {
But it probably needs better approach.

Thank for the info, I was just trying to provide a quick fix for those in need and not confortable digging too deep in the code, of course your solution is much more complete and if you have time I suggesting discussing a fix in ionic-app-script git project and making a pull request for that. thanks in advance

Any news on this?
I can not get it working either. When you reload the page it doesn't work.

Any update when this fix will be released?

Yes an answer would be great

Hi, i'm on project using Cordova and facing the same issue :(

@kensodemann Would it be possible to leave this issue open until the fix is released? This would help me (and other users) have better visibility as to when this issue truly resolved. Thanks for your help in advance!

When will this release be live ? This is a major issue

Just to be clear, we are all now talking about Ionic 3, aren't we?
I've got this exact problem too (on Ionic 3).
It's a critical bug due to our Oauth provider not handling hash based URLs - because it uses the hash for its own purposes.

@kensodemann any idea about when is going to be the new version released?

@erperejildo - the v4 alpha is getting close. After that it is all a question of how well things go with that.

Do we have any possible fix for ionic 3 as I desperately need to fix this issue?

I am building a PWA app along with Android and iOs build and I integrated Google login but google Oauth credentials doesn't support redirect URI along with #. Currently, we are using ionic serve but not sure how will it be in web and mobile app.  Please do let me know if someone fixed it.

@abdulwahid24 I think you could use that v4 alpha version, right @kensodemann?
If they are already working on this on v4 I think there is no reason to support previous versions

@erperejildo Please so let me know how can I upgrade my existing ionic3 app with ionic 4 alpha release. Thanks

@kensodemann
I think that it's a major issue because of SEO.
I'm very concerned that a hashbangs (using hashlocation strategy) will broke any attempt to be scrapped by robots.
Using a alpha release is not a option.

I have the same issue with authentication in mongo stitch app as @abdulwahid24  is stating. How do we get past it meanwhile?

@abdulwahid24 I don't recommend you any alpha version. Tried (accidentally) the other day and I got some issues.
But if you want to try with npm outdated and npm update should be enough


README.md: Update Sample Application to reflect latest sample-app/Main.hs

The current one doesn't compile because Miso.String isn't imported.

Thanks! 🍻


Add namespace option to for csharp protoc plugin

In support of #97 protoc needs to know about the Google.Protobuf C# namespace.

Thanks @nagytech!


Redirect to page edit view when submitting for a single locale

When an editor decides to submit a page for translation and only chooses one locale, they are redirected to the new translated page's edit view. This behaviour is the same for snippets.
The behaviour is unchanged when translating pages/snippets to multiple locales.
This is the simple_translations counterpart to this change on wagtail-localize: https://github.com/wagtail/wagtail-localize/pull/518

One check was unsuccessful. Seems to be the one running against django@main. I assume this is sort of expected as this is running against unreleased Django code?
TODO:

[ ] Update changelog

@mixxorz yes, the failing tests against Django main come from taggit as far as I can tell. This is an expected failure, it is just that GitHub Actions has no good way of indicating that yet
We update the changelog after merge, so nothing to worry about there

@mixxorz great work, thanks for putting this together and also for the robust tests


feat: fip-0085 migration

Summary of changes

Changes introduced in this pull request:

initial state migration for NV23, including FIP-0085. To be updated once v14 builtin actors release candidate is out.

Reference issue to close (if applicable)

Closes
Other information and links

Change checklist

[x] I have performed a self-review of my own code,
[x] I have made corresponding changes to the documentation,
[x] I have added tests that prove my fix is effective or that my feature works (if possible),
[x] I have made sure the CHANGELOG is up-to-date. All user-facing changes should be reflected in this document.

Superseded by https://github.com/ChainSafe/forest/pulls


reversed args and some tests

Hey there,
While writing wrappers for ReDate methods for use in my hybrid TS/ReScript codebase I noticed that both setSeconds and subMonths had reversed args positions from the rest of their respective methods. I went ahead and swapped them to be inline and fixed the  associated tests for subMonths while adding very simple tests for the rest of the setX methods.

it's been a while 😅 thanks @EthanBonsignori!


added aur link

added aur link for users that want a version that is managed by pacman.
p.s if you'rewonddering why there are 4 commits is because i kept screwing something up. mainly spelling and formatting.

changed as requested.


Add binding.bp to README

Document use of binding.bp to setup breakpoints inside application,
without immediately invoking the debugger console.

I actually think this should be the first entry as it's how I used to use pry/byebug and now use this tool. I imagine many people (maybe most Rails devs?) would use it this way too.

I agree that many Rubyists familiar with binding.pry culture.
However, honestly speaking, I don't think current binding.pry culture is good solution.
So I don't want to make it first.
Editors or IDEs should support to specify the breakpoints.
Current debug.rb doesn't support them, so we need to improve.

Anyway, current doc is not smart, so I'll rewrite it.

Another concern is, if we push binding.bp like binding.pry. people will claim that the debugger console doesn't have useful features like pry :p

Another concern is, if we push binding.bp like binding.pry. people will claim that the debugger console doesn't have useful features like pry :p

I understand the concern but I'm not too worry about it.
Having binding.bp usage obvious is to let a big portion of Rubyists buy the ideal quickly. Once they enter the debug session they'll quickly find it's not pry at all. Then they'll come back to see what it really is. (This is what I experienced when I first tried this project)
So I'd layout the readme like this:

Installation
Local usages (put binding.bp first)
List all commands
Remote usages
Initial Scripts
Env vars

The goal is to make developers try it first in the most easy and familiar way, and learn the basic usage of this tool. I believe this is very important because I didn't start using it until direct binding.bp is implemented this week. Even though I've been contributing this project for 2 months.
Having a familiar starting point is important for people to adopt a tool. But once they give it a try and have an impression on it, we can gradually change the culture by introducing better IDE integrations, better designed APIs....etc.


make standard stream handling fully non-blocking via worker threads

POSIX doesn't provide a usable way to do non-blocking output or input with standard streams because O_NONBLOCK applies to all file descriptors across all processes referring to that instance of the open file. It should really just apply to a single file descriptor or there should be versions of read and write with a flag parameter for setting it, much like the non-portable MSG_DONTWAIT flag for recv. Even if these options existed, there would still be the issue of file types not handled by O_NONBLOCK like regular files.
Playpen needs a way to do this without blocking for arbitrary periods of time, so moving the handling each standard stream into a thread will work well. The threads can then communicate readiness to the event loop with eventfd or it can just pay the cost of an extra layer of pipes.

I don't fully understand the need for it to be fully non-blocking. A polling loop works just as correctly, just less efficiently. You can't do level triggering and can only do one read at a time, but it should still work.

Playpen needs a way to do this without blocking for arbitrary periods of time

Yeah, I guess this is where I'm confused, where is this happening?
That said, if you want more information during the polling logic instead of the current set if/else clauses, we could start wrapping the file descriptors in our own structure with all the extra information needed to know whether the particular fd in blocking or not inside the epoll structure itself (use .data.ptr instead of .data.fd). That should give everything you need to know when epoll triggers (you can even stash the particular read callback).
struct my_data data = { .fd = fd, .on_epollin = process_stdin, nonblocking = true };  // probably has to be either global stack or malloced
struct epoll_event event = { .data.ptr = &data, .events = events };

...

if (evt->events & EPOLLIN) {
    struct my_data *data = evt->data.ptr;
    data->on_epollin(data);
}

How about taking advantage of this? https://lwn.net/Articles/612483/

An ugly hack to solve this is to reopen the file through /proc/self/fd to sanitize it. This doesn't work for sockets or psuedo-terminals though.

@sstewartgallus: Even with a sane way to use O_NONBLOCK, it would need something more to deal with slow regular files. NFS or a FUSE filesystem like SSHFS can block indefinitely.


Customer Update Flag

Feature request
firestore-stripe-subscriptions
Is your feature request related to a problem? Please describe.
I did create a pull request that was closed without merge because another pull request was merged that does a similar thing. BUT that's not helping at all. https://github.com/stripe/stripe-firebase-extensions/pull/206
I wanted to have the control of the customer_update property. With the other merge request I get control of the automatic_tax property and if I set it to true customer_update will be set for me. But I don't want to user automatic_tax but only want to flag my checkout session with update_customer config.
Describe the solution you'd like
Let me add the update_customer property to the session collection document and if set use it.

PR: https://github.com/stripe/stripe-firebase-extensions/pull/220

@thorsten-stripe can you help me? This is getting a bit urgent for our project.


Test Failures in Debian Build Environment

I'm attempting to build this package for inclusion in Debian so that we can get closer to Gitea being in the Debian repos. I'm, however, having some troubles. During the build, one of the tests fail. I haven't been able to figure out why and my Golang skills are a bit lacking so I was hoping I could reach out for some help here.
The build is running in a pretty typical pbuilder environment and generating this error:
root@forge:/tmp/buildd/golang-code.gitea-git-0.0~git20170321.0.5b41327# go test -run TestBlob_Data
--- FAIL: TestBlob_Data (0.00s)
        Error Trace:    blob_test.go:44
        Error:          Received unexpected error exit status 128 - fatal: Not a git repository (or any of the parent directories): .git

        Error Trace:    blob_test.go:45
        Error:          Expected value not to be nil.

panic: runtime error: invalid memory address or nil pointer dereference [recovered]
        panic: runtime error: invalid memory address or nil pointer dereference [recovered]
        panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x4aade4]

goroutine 18 [running]:
panic(0x658140, 0xc420010130)
        /usr/lib/go-1.7/src/runtime/panic.go:500 +0x1a1
testing.tRunner.func1(0xc4201840c0)
        /usr/lib/go-1.7/src/testing/testing.go:579 +0x25d
panic(0x658140, 0xc420010130)
        /usr/lib/go-1.7/src/runtime/panic.go:458 +0x243
io/ioutil.readAll.func1(0xc420045e90)
        /usr/lib/go-1.7/src/io/ioutil/ioutil.go:30 +0x13e
panic(0x658140, 0xc420010130)
        /usr/lib/go-1.7/src/runtime/panic.go:458 +0x243
bytes.(*Buffer).ReadFrom(0xc420034df0, 0x0, 0x0, 0xc42018e200, 0x0, 0x200)
        /usr/lib/go-1.7/src/bytes/buffer.go:176 +0x134
io/ioutil.readAll(0x0, 0x0, 0x200, 0x0, 0x0, 0x0, 0x0, 0x0)
        /usr/lib/go-1.7/src/io/ioutil/ioutil.go:33 +0x147
io/ioutil.ReadAll(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        /usr/lib/go-1.7/src/io/ioutil/ioutil.go:42 +0x3e
_/tmp/buildd/golang-code%2egitea-git-0%2e0~git20170321%2e0%2e5b41327.TestBlob_Data(0xc4201840c0)
        /tmp/buildd/golang-code.gitea-git-0.0~git20170321.0.5b41327/blob_test.go:47 +0x11b
testing.tRunner(0xc4201840c0, 0x6c7508)
        /usr/lib/go-1.7/src/testing/testing.go:610 +0x81
created by testing.(*T).Run
        /usr/lib/go-1.7/src/testing/testing.go:646 +0x2ec
exit status 2
FAIL    _/tmp/buildd/golang-code.gitea-git-0.0~git20170321.0.5b41327    0.011s

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

I would consider this more of a bug than a question...

I agree creating the git repo would be preferred. Can you give that a try @MTecknology ?

Maybe we should create it in os.Getenv("TMPDIR") || os.Tempdir() ? that way it ends up in /tmp unless you override it with TMPDIR=tmp/

how its the progress of this issue? i'm very interesting


Top navbar rendering incorrectly when interacting with item's bitstreams

Describe the bug
When we select an item, if we open the bitstream to visualize it, we encounter a strange behaviour regarding the top navbar.
Version: 7.6
To Reproduce
Steps to reproduce the behavior:

When we visualize an item bitstream the navbar is not correctly rendering

Expected behavior
The navbar shouldnt be visible when inspecting bitstreams
Related work
https://github.com/DSpace/DSpace/issues/9022

I'll take the task on behalf of 4Science

This is a duplicate of #2341

@Sondissimo : I'm going to close this ticket & move the details to #2341 (as it was already logged as a bug there).  I'll assign you to #2341 though (thanks for volunteering!) as that has no current volunteer.
Closing this as a duplicate.  All future activity/discussion should move to #2341


Added test for the add_subdirectory cmake usage, and added docs

Docs & test for add_subdirectory.

By popular demand :)...
You needed it, now you have it. I guess it's only fair you review it :)


WARN TestMethodFilter - NoClassDefFoundError but verbose mode are correct

Hi, I am trying to run flacoco to generate the fault localisation for apache-camel
When running in verbose mode it gives me the following error. The weird thing is that on smaller projects everything seems to work. The project has been built and tests ran. Then used maven to genearte the classpath.info and pass it as per tutorial to flacoco.
Also the timeout has been set to the largest integer and the following results was received.

Hi @ericma1999 ,
Sorry for the delay.
I tried to reproduce this by running flacoco on camel-core (I assumed, by the path, that this is the module you are trying to execute. Let me know if I made a wrong assumption).
First, my execution successfully terminated, so I don't know why you are getting that NullPointerException.
Maybe you could provide me with more details to correctly reproduce that error such as the commitId you are trying to execute, and the complete command.
Second, the WARN TestMethodFilter - NoClassDefFoundError is related to the test detection phase. This warning is reported when our test detection mechanism, which is based on a classloader, tries to load a class which is not provided in the classpath. This may indicate an error in the classpath definition, for instance, not allowing flacoco to access the classes it is trying to load.
Lastly, I did not understand what you meant by "but verbose mode are correct". Could you further elaborate on that?


Dropdown: fix variable always evaluating to true

Is there an attached issue that this fixes?

Nope, they should be identical. If is checked is falsy then it is redundant
checking for truthy values in the other branch. I just need a confirmation
:)
On Wed, Sep 16, 2020, 21:09 Mark Otto<EMAIL_ADDRESS>wrote:

Is there an attached issue that this fixes?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/twbs/bootstrap/pull/31673#issuecomment-693572050, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AACVLNKJ43KIRDYDLEOGQNLSGD5MDANCNFSM4RO5QOFQ
.


web on moble issue

hello dear
web version on desktop is ok and don't have any problem but web version on mobile devices have problem and show dark grey screen thank you for check and resolve it
i tried it with these flutter version :
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.0.5

Is it possible to give a small sample app where we can reproduce this issue. Are you having the same problem with the example app?

my test is your example app

Alright thanks I will test that first, keep you posted

A dark grey screen usualy is only shown in a release version. I already found an overflow errors with the bottom navigation on small devices. On what devices were you testing? Screensize would be usefull

Can you also send some screenshots or maybe a stacktrace. that would help as well

my example source just have simple image picker you can tride it for more test
main.dart
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
import 'crop_examples/custom_image_crop.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: FirstScreenFilePicker(),
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
    );
  }
}

class FirstScreenFilePicker extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Crop Your Image Demo'),
      ),
      body: Center(
        child: Container(
          margin: EdgeInsets.all(32),
          child: FlatButton(
            child: Text(
              'Pick Image',
              style: TextStyle(color: Colors.white),
            ),
            color: Colors.blue,
            onPressed: () async {
              PickedFile pickedFile = await ImagePicker().getImage(source: ImageSource.gallery);
              Uint8List bytes = await pickedFile.readAsBytes();
              Navigator.push(context, MaterialPageRoute(builder: (context) => CustomImagecrop(imageData: bytes)));
            },
          ),
        ),
      ),
    );
  }
}

custom_image_crop.dart
class CustomImagecrop extends StatefulWidget {
  CustomImagecrop({
    this.imageData,
    Key key,
  }) : super(key: key);

  final Uint8List imageData;

  @override
  _CustomImagecropState createState() => _CustomImagecropState();
}

class _CustomImagecropState extends State<CustomImagecrop> {
  CustomImageCropController controller;

  @override
  void initState() {
    super.initState();
    controller = CustomImageCropController();
  }

  @override
  void dispose() {
    controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('title'),
        brightness: Brightness.dark,
      ),
      body: Column(
        children: [
          Expanded(
            child: CustomImageCrop(
              cropController: controller,
              image: MemoryImage(widget.imageData, scale: 1),
              shape: CustomCropShape.Circle,
            ),
          ),
          Row(
            children: [
              IconButton(icon: const Icon(Icons.refresh), onPressed: controller.reset),
              IconButton(
                  icon: const Icon(Icons.zoom_in),
                  onPressed: () => controller.addTransition(CropImageData(scale: 1.33))),
              IconButton(
                  icon: const Icon(Icons.zoom_out),
                  onPressed: () => controller.addTransition(CropImageData(scale: 0.75))),
              IconButton(
                  icon: const Icon(Icons.rotate_left),
                  onPressed: () => controller.addTransition(CropImageData(angle: -pi / 4))),
              IconButton(
                  icon: const Icon(Icons.rotate_right),
                  onPressed: () => controller.addTransition(CropImageData(angle: pi / 4))),
              IconButton(
                icon: const Icon(Icons.crop),
                onPressed: () async {
                  final image = await controller.onCropImage();
                  if (image != null) {
                    Navigator.of(context).push(
                      MaterialPageRoute(
                        builder: (BuildContext context) => CropResulteScreen(memoryImage: image),
                      ),
                    );
                  }
                },
              ),
            ],
          ),
          SizedBox(height: MediaQuery.of(context).padding.bottom),
        ],
      ),
    );
  }
}

CropResulteScreen
class CropResulteScreen extends StatelessWidget {
  CropResulteScreen({this.memoryImage});

  final MemoryImage memoryImage;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Image.memory(memoryImage.bytes),
    );
  }
}

pubspec.yaml
`
`

I was able to reproduce it with the example app.

I created a release build
released it to a public server
and tested on a pixel 4xl
grey screen was visible

It was not reproducible via the device toolbar in chrome. I will need to do some further investigation on what is realy happening

This is what it look like:

I will have to check with @ikbendewilliam why this is happening. I tought I could find a stacktrace somewhere but that is not the case. Thanks for reporting. Good catch!! Not sure when this will be fixed but I will try to figure out why this is happening only on mobile.

i tried again with this tag :
--dart-define=FLUTTER_WEB_USE_SKIA=true
grey screen was visible again
i tried again with this tag :
-web-renderer canvaskit
it is normal view without gray screen but it have another problem
it problem is overloads the image with an abnormal zoom position

Good to know. We will try that as well

Having the grey screen issue on Web with config -web-renderer html

Is there any updates on this ?

There seems to be an issue with the ImageStreamListener. This is used to convert the imageProvider to a ui Image. unfortunately this returns an error (not throw an error, but the image is literally <error>:<function errorString(error) {> as the image). When we determine the size from this invalid image, we get 0 which means that the image is drawn with 0 width...
I'm sorry it's been idle on this package so long, we've had a major project going on that takes up all our time and we don't use the package internally atm. I'll see if I can find some time to fix this issue (if at all possible).

I have some good news and some bad news. The issue I described above isn't entirely correct. The image is something weird, but actually has a certain width and height (512x512 in the example). The drawing was done incorrect due to scaling in the z-direction (which is weird but ok). I fixed this, but the overlay isn't cropped yet correctly and the cutting of the image isn't working due to the issue of an incorrect ui image. I'l keep looking for the time being and if I manage to fix those, I'll create a new branch for you to test.

I've fixed the drawing, you can check it out here. The cropping itself is not working yet.

@kiaxseventh can you test without that specific branch?

This an problem in CanvasKit, will fix on the future update 3.5.0-1.0.pre.7
Check answer in
https://github.com/flutter/flutter/issues/103803
Master/Pre release
3.5.0-1.0.pre.7 - cropping is working
Beta
3.4.0-17.2.pre - cropping is working
Stable
3.3.0 - cropper results in white/gray picture only

@VagnerWillian thanks for linking to the correct issue & testing on different envs. We will keep this one on our radar. @ikbendewilliam was already working on other fixes for this plugin.

@vanlooverenkoen thanks, this is a temporary solution, worked for me.
flutter run -d chrome --web-renderer canvaskit --dart-define=BROWSER_IMAGE_DECODING_ENABLED=false --release
for build
flutter build --web-renderer canvaskit --dart-define=BROWSER_IMAGE_DECODING_ENABLED=false --release


[EventGrid] Split tests to enable min/max testing

This change splits our tests into two folders:

public which only uses surface area exported by the package.
internal which tests internal methods which we don't export from
the top level package.

This allows us to test the public surface area independently from the
private one, which is helpful for classes of testing.
Fixes #13813

/azp run js - eventgrid - tests

/azp run js - eventgrid - tests

/azp run js - eventgrid - tests

/azp run js - eventgrid - tests

/azp run js - eventgrid - tests

/azp run js - eventgrid - tests

/azp run js - eventgrid - tests

@KarishmaGhiya I think this should be ready for review now.  I confirmed that the min/max tests are now running as part of the tests job and they are passing.  Let me know if there's anything else I need to do.

@ellismg  To me this PR looks good. I verified from the test build that the no of tests across all platforms being run is same (which is 38) out of which there are 22 public tests.  i just had two questions - I commented for those :)


conflict with Local notofication

I added push notification to my App but it conflicts with Local Notification plugin - when I lock a screen or get a new push notification it clears all my local notifications. Some one know why it happens? Thanks!

I have exactly the same issue. All notifications gets deleted after a while.

This is a solution - just add  "clearNotifications": false to push notification init
    var push = PushNotification.init({
            "android": {
            "senderID": "114273210157",
            "clearNotifications": false
           },
           "ios": {"alert": "true", "badge": "true", "sound": "true"}
          });


Update auth-client version

Codecov Report

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

@@          Coverage Diff          @@
##           master   #181   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          38     38
  Lines         871    871
  Branches      116    116
=====================================
  Hits          871    871

Flag
Coverage Δ

#builder
100% <ø> (ø)
:arrow_up:

#runtime
100% <ø> (ø)
:arrow_up:

#srcapp
100% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1686175...99568f6. Read the comment docs.


Fix "get_limits()" integration test

This PR fixes a test that was calling "get_counters()" instead of "get_limits()". As the title of the test indicates, the test should be about "get_limits". "get_counters" is tested a few lines below in the same file.

Rebased on top of master.