Cannot sort nested queries

Problem:
Nested queries don't sort as stated in the docs:
https://docs.spaceuptech.com/storage/database/queries/sorting/
The root sorts just fine, but not the nested.  I'm attaching a file showing the 2 table types I'm using (user and post), the insert mutation with the data I'm using, and the query that isn't working. (it keeps returning them in ID order, which I guess is how they were inserted)
Steps to reproduce:
Tables:
type user {
  id: ID! @primary
  name: String!
  posts: [Post] @link(table: "post", from: "id", to: "user_id")
}

type post {
  id: ID! @primary
  name: String!
  date_time: DateTime!
  user_id: ID @foreign(table: "user", field: "id")
}

Insert some data:
mutation {
  insert_user(
    docs: [
     {
        id: "2"
        name: "User 2"
    },
    {
        id: "1",
        name: "User 1",
        posts: [
          {
            id: "1"
            name: "March 1st"
            date_time: "2020-03-01T20:00:00.000Z"
          },
          {
            id: "2"
            name: "March 3rd"
            date_time: "2020-03-03T20:00:00.000Z"
          },
          {
            id: "3"
            name: "March 2nd"
            date_time: "2020-03-02T20:00:00.000Z"
          }
        ]}]) @mysql {
    status
    error
    returning
  }
}

This query does not sort the posts properly.  It keeps returning them in ID order, which is how they were inserted
{
  user(
    sort: ["name"]
  ) @mysql {
    id
    name
    posts(
    sort: ["name"]
  ) {
      id
      name
      date_time
    }
  }
}

Your environment

Space Cloud version: 0.18.4
OS: Windows
Docker:
Browser (if applicable): Chrome

On Discord, YourTechBud suggested using an on-the-fly join, but that does not sort the nested query either:
{  user( sort: ["name"] ) @mysql {  id  name  posts( where:{user_id: "user.id"}, sort: ["name"] ) @mysql{  id   name  date_time  }  }

Done in v0.20.0


Represent numpy ndarray as list in YAML

Also adds custom YAML dumper to represent Enum subclasses as values

Please can we have a test that shows the contents of a saved yaml file?

@rosesyrett @callumforrester tests are failing on main now because of hdf_streamer_det which we have deleted. Should we rebase this PR on top of add-detector-logic, or shall we just merge add-detector-logic and say we'll make subsequent PRs to fix issues?

Please can we have a test that shows the contents of a saved yaml file?

Yep, I'll put some in. For now the file being created, with default_flow_style set to None looks like
`- {child1.sig1: string}

child2.sig1:
VAL1: [1, 1, 1, 1, 1]
VAL2: [1, 1, 1, 1, 1]
`

I think it's best to rebase on top of add-detector-logic, and then merge it into add-detector-logic instead.
hopefully if we can get add-detector-logic checked for sanity (i.e. actually do a flyscan with it) we can then merge everything in, or merge add-detector-logic in and then merge this in. Either way, the important thing to me is we don't merge it until said sanity check has been done.

I think it's best to rebase on top of add-detector-logic, and then merge it into add-detector-logic instead.

Good point, that's a much better idea

I think it's best to rebase on top of add-detector-logic, and then merge it into add-detector-logic instead.

Good point, that's a much better idea

Okay, see this PR https://github.com/bluesky/ophyd-async/pull/31

Closed in favour of #36


Add initial implementation of suggestions

Initial implementation of suggestions for unknown flags.
Given Usage: testing [--release], docopt will behave like this:
$ testing --rlease
Unknown flag: '--rlease'. Did you mean '--release'?

Usage: testing [--release]

Closes #98

:+1:

This could benefit from having a few tests :)
Also does it actually make any sense to do a suggestion for a character flag, won't all char flags have equal edit distance? An additional benefit of not doing checks for the char flags would be you could remove most of the allocations from the code (although it doesn't really matter since this is failure condition).

I'm fine with wasteful allocation. There's already plenty of it in the rest of the crate. :-)
@andars Sorry for taking so long to reply, but this looks great. I like @Ryman's suggestion of tests and not showing a suggestion for a single character flag. If you want to do those, that's great, otherwise I'm happy to merge as is and I'll write some tests.

I'm happy to add tests. Right now, the current method of generated tests looks like it would just treat this as a user error and move on. Would you prefer me to make a method to generate tests for this or just write a few directly in rust?

Writing a few directly would be great. (String equality on the entire error string is just fine.)

I added some tests. Let me know if you notice any other cases that I missed and should test.

@BurntSushi @andars Any update on this? It'd be great to see this land. :-)

For the Levenshtein distance algorithm you could use https://crates.io/crates/strsim in the spirit of reuse. :)

@andars @jakub- Sorry for the delay! I've merged this and released it to crates.io in 0.6.63.
@jakub- I've filed #119 for strsim.

Thanks @BurntSushi!


Adding WoodPlanks and Torches

Found an issue while testing round tripping. Adding Torch and WoodPlanks.

Because Direction and Direction3 both have those same names and are in scope. Thought it was easier to read when it was clear which enumerated was being used.

I'm on the fence as I think the ambiguity is pretty harmless in this case, but ok, fine. Thanks,.

It would be less harmfulikely if the values for things of the same name weren't different. I'm personally not a fan of ambiguity to save a few characters. :)

Agreed.


Difference with pouchdb-utils/upsert.js

see https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-utils/src/upsert.js
Seems they are not aligned...

hello @lgh06 thanks for the information. I will take a look as soon as possible.


{% extends %} doesn't use quotes

It'd be more consistent from a user's perspective if the template name had to be a string.
On a related note, does it have to be loaded on parse? Not having it hard coded would make for more flexibility...

I can switch the parsing to work more like include does currently.
As to on-parse, since it's sub-classing the template class it "extends", I'm having trouble thinking of a non-footgun approach to late binding inheritance.

quotes are now required.
Please open a separate ticket to discuss late inheritance.


I added my college, please add it.

.

@mukeshRar lib/domains/my_college.txt: this request has an incorrect file path format, please ensure that you are familiar with     this repository rules located at the bottom of this page and change     your request accordingly. If you don't know how to change request, close it and open a new one.     If you are not able to make the pull request according the instructions, please send us an email to<EMAIL_ADDRESS>Please mention this request URL in the message.

Ok sir


fixed function signature that failed while using TypeScript compiler

TypeScript doesn't understand this abbreviated syntax. It's been failing to compile, so I came up with a fix.

But then my linter failed because reject is never used.

I removed reject.

Thank you. Merged.


[WIP] Integrate blog

Integrate the 30-seconds blog into the website.

Sneak peek of the new blog cards (incomplete):


Bump service version from 2.12.0 to 2.13.0

Changelog: https://github.com/gnosis/safe-config-service/compare/v2.12.0...release-2.13.0

Coverage remained the same at 99.881% when pulling 5f63dad3bf68f35772b4f23e5961114908c78707 on bump-version-2.13.0 into 3a9738fa7ba16fc25ec709dafaa9aafe30712cc2 on release-2.13.0.


337: Accordion Styling

Adding styling for accordion block to match https://sap.frontify.com/document/223143#/-/accordion
There is potentially some additional functionality to be added wrt a container header and "Expand/Collapse All" button. Here we've just focused on styling/behaviour in the body of the accordion.
Fix #337
Test URLs:

Before: https://main--hlx-test--urfuwo.hlx.live/resources/data-management-glossary
After: https://337-accordion-styling--hlx-test--urfuwo.hlx.live/resources/data-management-glossary

@rjwtrmn Is this PR up for review or draft? If its ready for review then please add reviewers.

@rjwtrmn Can accordion only have text? What if we put image?

Please add a transition for rotating arrow and accordion slide

@rjwtrmn Can accordion only have text? What if we put image?

I haven't seen any examples of this anywhere, only text. As far as I am aware we will only have text in the accordion for now.

Please add a transition for rotating arrow and accordion slide

@saurabh-khare Do we just make up our own values for this or is there any guidance available for us regarding animations?

Yes general guidance is available here:
https://sap.frontify.com/document/223141#/movement/interaction/css-transitions

@rjwtrmn Can accordion only have text? What if we put image?

@saurabh-khare I haven't seen any examples of this anywhere, only text. As far as I am aware we will only have text in the accordion for now.

@mhaack Can you confirm? Or should we ask from Elaine?

@rjwtrmn Can accordion only have text? What if we put image?

@saurabh-khare I haven't seen any examples of this anywhere, only text. As far as I am aware we will only have text in the accordion for now.

@mhaack Can you confirm? Or should we ask from Elaine?

The samples I have seen so far only had text and links only. However I agree everything an author puts into the table cell (images, lists, links) should work.

@rjwtrmn Can accordion only have text? What if we put image?

@saurabh-khare I haven't seen any examples of this anywhere, only text. As far as I am aware we will only have text in the accordion for now.

@mhaack Can you confirm? Or should we ask from Elaine?

The samples I have seen so far only had text and links only. However I agree everything an author puts into the table cell (images, lists, links) should work.

I have added an example with an image to the blocks library. We are applying outer padding but no other styles. Surely we would need some sort of requirements for styling these other cases? We can adjust the stylesheet as the need arises.


Dropdown validation on the client side with Built-in Validators

Hello!
FluentValidation version: 7.4.0
Web Framework version MVC 5
I am having problems when validating the selected element in a dropdown. When the request passes to the server side, there is no problem. But from the client side, I can not get the validation executed along with the rest of the ofligatory fields. the default value of the dropdown is -1 and I have tried to do the validation with equal / notequal / greatherthan without getting it to run on the client side in any of the cases.
Any help will be great. Thank you!

Hi, you're going to need to provide more details. What's the rule definition and the data type of the property?

Also: only a very small subset of rules will run on clientside, see: https://fluentvalidation.net/mvc5#clientside-validation

Hello!
Here is my rule definition:
RuleFor(x => x.CarId).Equal(-1).WithMessage("aaaaaaaaaaaaaaaaaa");
Property definition:
public int CarId { get; set; }
Should I try better with Matches/ InclusiveBetween???
Thank you very much for the quick answer!!

Right, a call to Equal won’t be translated to the client as MVC does not provide any clientside validators out of the box to do this.
Matches applies a regex to string properties so that won’t work here, and InclusiveBetwern is for defining ranges which isn’t right here either. Sounds like you might be better off writing some custom JavaScript or a custom rule with the clientside jquery.validate if you want clientside validation here.

I have finally used InclusiveBetween with a range 0-int.MaxValue. In this way I keep the dropdown behavior in which the default values are -1 and the rule correctly validates on the client side. This validation covers all my cases, thank you very much!


Support golang/protobuf

Must be merged with https://github.com/istio/api/pull/2293
Basically we now need to use pointers.

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

/test all


rc-cgroup.sh: avoid process substitution for cgroup_get_pids

This should make cgroup_cleanup work successfully since cgroup_get_pids
no longer uses a subshell.
This fixes #396.

I think this a better solution than my PR, trying to track PIDs when there are subshells being started is messy. Normally I wouldn't be a fan of calling a function to set a global variable, but I think it's justified in this case.
One potential suggestion is should there be a comment explaining the rationale for not using subshells?


Rendering Domain Models

I am running this plugin using Grails 6.2.1, Vue, Gorm-hibernate, etc.  Mostly just the standard setup
Hello, sorry to bother you, but I was wondering if you have any idea how to render domain models using inertia? Any domain model with associations ends up throwing a StackOverflow for me.
I'm using a recursive domain model in this case, but I don't think the Json renderer is supposed to follow proxies, which should make it safe to render.  I know on just a simple test output I can render to json using "as JSON", but your plugin doesn't seem to support this use case.
`
Caused by: grails.views.ViewException: Error rendering view: null
at grails.views.AbstractWritableScript.writeTo(AbstractWritableScript.groovy:46)
at grails.plugin.inertia.Inertia.renderHtml(Inertia.groovy:113)
at grails.plugin.inertia.Inertia.renderInternal(Inertia.groovy:91)
at grails.plugin.inertia.Inertia.render(Inertia.groovy:67)
at grails.plugin.inertia.InertiaTrait$Trait$Helper.renderInertia(InertiaTrait.groovy:34)
at com.myproject.HomeController.index(HomeController.groovy:11)
... 83 common frames omitted
Caused by: java.lang.StackOverflowError: null
at grails.plugin.json.converters.InstantJsonConverter.handles(InstantJsonConverter.groovy:18)
at grails.plugin.json.builder.DefaultJsonGenerator.findConverter(DefaultJsonGenerator.java:450)
at grails.plugin.json.builder.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:194)
at grails.plugin.json.builder.DefaultJsonGenerator.writeMapEntry(DefaultJsonGenerator.java:412)
at grails.plugin.json.builder.DefaultJsonGenerator.writeMap(DefaultJsonGenerator.java:396)
at grails.plugin.json.builder.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:242)
`

Hi @DeweertD, how are you calling renderInertia in your HomeController

Thanks you so much for the quick reply!
I'm not doing anything too crazy, but I do have a well-connected dataset. I'm modelling a filesystem to allow for a "playground" where users can re-map their existing files/folders to a new set of files/folders.  Once they are happy they can tell a service to run the job, but in the meantime all changes are just persisted in the database without affecting the filesystem.
For some reason, when rendering json through Inertia, the json builder doesn't care that it's a domain class, so all properties and relationships get serialized recursively.
Properties like metaClass, isDirty, gorm_hibernate_.... AST properties, and even the parent<-> child loop (however I tested without that loop and it was still overflowing just by traversing one direction)
`
@Secured(['ROLE_ADMIN'])
class HomeController {
def index() {
    def folders = Folder.where{parent == null}.join("children").join("files").join("children.files").get()
    renderInertia('Home', [folders: folders])
}

}
`
The above is intended to be slightly greedy by providing two layers of folders initially, then the client can request more as users interact with the UI.
Note:  withFormat { json { respond folders } } worked as intended (no UI obviously, but the browser received exactly the data I was sending)

Hi @matrei, any chance you were able to look at this?
I have figured out that writing a JsonConverter helped with the inertia rendering specifically, however I also needed to separately write some .gson files whenever I was sending raw JSON responses for axios requests. This is a duplication of effort I would like to avoid, however I'm now sure how that could be accomplished since it seems inertia responses need to render json in an string to inject in the html.gsp page, meanwhile raw json responses are a separate response type with their own rendering pipeline. (specifically they use .gson files in the grails-app/views resource package
// /src/main/groovy/com/example/converters/FolderJsonConverter.groovy
package com.example.converters

import com.example.Folder
import grails.plugin.json.builder.JsonGenerator
import org.grails.orm.hibernate.cfg.GrailsHibernateUtil

class FolderJsonConverter implements JsonGenerator.Converter
{

    @Override
    boolean handles(Class<?> type)
    {
        Folder.isAssignableFrom(type)
    }

    @Override
    Object convert(Object value, String key)
    {
        Folder folder = (Folder) value

        def children = GrailsHibernateUtil.isInitialized(folder, "children")
                ? folder.children
                : null

        def files = GrailsHibernateUtil.isInitialized(folder, "files")
                ? folder.files
                : null

        def folder_map = [id              : folder.id,
                          name            : folder.name,
                          children        : children,
                          files           : files,
        ]

        if (GrailsHibernateUtil.isInitialized(folder, "parent") && folder.parent != null)
        {
            folder_map['parent'] = [id: folder.parent.id]
        }

        return folder_map
    }
}

Combined with the configuration to register the above converter
// src/main/resources/META-INF/services/grails.plugin.json.builder.JsonGenerator$Converter
com.example.converters.FolderJsonConverter
com.example.converters.FileJsonConverter
com.example.converters.GrailsUserJsonConverter
com.example.converters.UserJsonConverter
com.example.converters.RoleJsonConverter

And the corresponding json views to render raw JSON when doing axios requests from the front end
// /grails-app/views/folder/_folder.gson
import com.example.Folder

model {
    Folder folder
}
json {
    children g.render(folder.children) // render default instead of template to not stack overflow
    files tmpl.'/file/file'(folder.files)
    name folder.name
    id folder.id
}

Hi @DeweertD, sorry I have not had the time to get back to this yet.
Have you had a look at how I solved this in https://github.com/matrei/pingcrm-grails with the @PublicData trait and @PublicDataMapper class?


Implement trampling

Organisms can now move over a photosynthesizer, which kills the plant.

Closes #46.


Partial refunds in Magento 2.0.7

I'm testing using Magento 2.0.7 and I cannot find a way to do partial refunds, is it really possible?

I have found out why it didnt work, so im working on this now


typo: s/cesnus/census/

Can one of the admins verify this patch?

I signed it!

Jenkins, test this please


Fixes #729 - adds messages to test script

Fixes #729 - adds echo messages to test script to tell output to the
console what is about to run.

@monfresh Ready for merge. Thx!

Coverage remained the same when pulling 927b27c7b31b9776daa6f13cd5d2900261abd497 on 729-test-echo into d368f6ab6a430a47105f096f7ad57ad64989823a on master.

:+1:


Replace hard-coded variable values with HDS CSS custom properties

Description :sparkles:

Replace hard-coded variable values with HDS CSS custom properties

Issues :bug:
Testing :alembic:
Screenshots :camera_flash:
Additional notes :spiral_notepad:

Codecov Report

Merging #102 (ea4a90f) into develop (fd6fc5c) will decrease coverage by 40.20%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##           develop     #102       +/-   ##
============================================
- Coverage    56.18%   15.97%   -40.21%
============================================
  Files          174      108       -66
  Lines         2812     1383     -1429
  Branches       205      205
============================================
- Hits          1580      221     -1359
+ Misses        1195     1125       -70
  Partials        37       37

Impacted Files
Coverage Δ

frontend/shared/src/styles/theme.ts
100.00% <ø> (ø)

backend/kesaseteli/oidc/tests/conftest.py

backend/kesaseteli/oidc/migrations/0001_initial.py

backend/benefit/helsinkibenefit/wsgi.py

backend/benefit/users/migrations/0001_initial.py

backend/kesaseteli/companies/ytj/ytj_client.py

backend/shared/shared/__init__.py

backend/benefit/users/tests/test_user_model.py

backend/kesaseteli/oidc/tests/test_mock_views.py

...kend/kesaseteli/oidc/tests/test_eauth_rest_auth.py

... and 57 more

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 fd6fc5c...ea4a90f. Read the comment docs.


Offline subscription mechanism

Right now :subscription seems to require the login, but if I do :login nothing happens. It would be nice to have :subscription to subscribe only in an offline manner, in a JSON file or whatnot. Also :login seems out of place since this version of the app does not make use of the YouTube APIs from what I can understand.

This would be very good, would also be nice if the program, just like NewPipe, could accept Youtube's export files to instantly add all of your subscriptions, without the need to login or do each one of them manually.

I recently added support for subscription videos in youtube-viewer (without requiring authentication): https://github.com/trizen/youtube-viewer/commit/6137ee3cfecb552b8e83fc1a65797c689d6afb19
A similar approach can be added to pipe-viewer as well. Maybe in the near future.

Added in version 0.1.0: https://github.com/trizen/pipe-viewer/releases/tag/0.1.0


Timestamp 0001-01-01T00:00:00Z roundtrip fails

Equivalent values returned by text/binary sides do not compare equal:
0001-01-01T00:00:00Z does not equal 0001-01-01T00:00:00Z
Probably need to have timestamp, decimal etc. all refactored across the binary/text side so comparisons work correctly around type.

let ts = ion.Timestamp.parse('0001-01-01T00:00:00Z');
let tsBinary = roundtrip(ts, ion.makeBinaryWriter());
let tsText = roundtrip(ts, ion.makeTextWriter());

console.log('original: ' + ts);
console.log('  binary: ' + tsBinary);
console.log('    text: ' + tsText);
console.log();

console.log('binary equals original: ' + ts.equals(tsBinary));
console.log('  text equals original: ' + ts.equals(tsText));

function roundtrip(ts, writer) {
    writer.writeTimestamp(ts);
    writer.close();
    let reader = ion.makeReader(writer.getBytes());
    reader.next();
    return reader.timestampValue();
}

produces:
original: 0001-01-01T00:00:00Z
  binary: 0001-01-01T00:00:00Z
    text: 0001-01-01T00:00:00Z

binary equals original: true
  text equals original: true


Removed Enter to launch fullscreen

Closes #1115

Pull Request Test Coverage Report for Build<PHONE_NUMBER>2
Details

12 of 13 (92.31%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.7%) to 87.277%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/lib/keyboard-navigation.ts
12
13
92.31%

Totals

Change from base Build<PHONE_NUMBER>8:
0.7%

Covered Lines:
391

Relevant Lines:
448

💛  - Coveralls


Migrate request to got (part 1 of many); run [*****]

Its a dirty job, but someone's gotta do it. Having started this, I now slightly regret it 😬
Basically, what I've done here is picked one place we call request:
https://github.com/badges/shields/blob/7f7b101971bfecc0a1393de77760916c5abafdd1/core/base-service/base.js#L443
This is also the most frequent call we make to request. Most of our upstream API requests go via here. The idea is if we can build up the structure to allow request and got to live side by side and replace one occurrence of it, then we can gradually move the rest of the calls to request over to use got one at a time (in nice small easy to review PRs, hopefully with more than one person being able to contribute) until there is nothing left calling request and we can completely remove it and tidy up the mess.
The other place we use request are:

https://github.com/badges/shields/blob/7f7b101971bfecc0a1393de77760916c5abafdd1/core/base-service/base.js#L444
https://github.com/badges/shields/blob/master/services/github/auth/acceptor.js
https://github.com/badges/shields/blob/master/services/github/github-api-provider.integration.js
https://github.com/badges/shields/blob/master/services/suggest.js
https://github.com/badges/shields/blob/master/services/php-version.js
https://github.com/badges/shields/blob/master/core/legacy/regular-update.js
https://github.com/badges/shields/blob/master/core/base-service/legacy-request-handler.js
https://github.com/badges/shields/blob/master/core/server/influx-metrics.js
all of which are their own special unique snowflakes ❄ Tbh, some of those are probably going to be much easier than this. Maybe I should have started with the low hanging fruit.

A design decision: At the moment I'm trying to absolutely minimise the changes to the structure of BaseService. I think in future we can probably remove some (mostly pointless?) layers of indirection here. For example, I think one thing we could do is instead of injecting a fetch function into the constructor of BaseService via register() and invoke() (which we call sendAndCacheRequest.. because it doesn't cache anything 😁) we can probably move to just declaring
async _requestFetcher(url, options) {
  // go get the things
  return data
}

directly on BaseService and that might clean things up. That refactor will require a lot of changes to the test code to accommodate though, so what I'm focussing on for now is just migrating from one HTTP lib to another and keeping the interface as similar as possible (even if that interface is a bit janky). This means we can really rely on our existing test suite to verify the new functionality. Then refactoring improvements can come later. That should keep the changeset as small as possible.
TODO:

Deal with proxying
~Write tests, esp for:~

~requestOptions2GotOptions() transform~
~Max response size exceeded error, Inaccessible error~

Deal with specific services that have known problems to fix:

~dynamic~
~keybase~
~opm~
~wercker~
~wordpress~
~youtube~ (this was a transient failure)
Other service test failures are transient/unrelated to this PR

Rebase and resolve merge conflicts

Very WIP
Not ready for review yet
Refs #4655

Messages

:book:
:sparkles: Thanks for your contribution to Shields, @chris48s!

  Generated by :no_entry_sign: dangerJS against c428e7c4d837d0412b1c744d5afcc691a379b314

I have a frustratingly difficult proxy environment where I currently run a self-hosted server, so happy to take a look/test/etc. anything on that front whenever we get there if that'd be helpful

Proxying

I have a frustratingly difficult proxy environment where I currently run a self-hosted server, so happy to take a look/test/etc. anything on that front whenever we get there if that'd be helpful

Yes this is a useful offer. I was going to ask you about this anyway as I don't really have a good handle on this and I am not behind a proxy so it is really difficult for me to meaningfully test this. I think proxying is now the last outstanding big issue (hopefully). I haven't implemented anything yet, but I have done more reading.
You've suggested global-agent as a solution. Looking over the docs for global-agent, it says it works with both got and request
https://github.com/gajus/global-agent#supported-libraries
which sounds good, given we want to use both got and request side-by-side for some amount of time. I guess the way we would implement this is we just bootstrap global-agent somewhere pretty early on in our own bootstrapping process (probably server.js and it works its magic on both request and got.. hopefully).
The thing I'm not sure about is https://github.com/gajus/global-agent#what-is-the-reason-global-agentbootstrap-does-not-use-http_proxy I guess the situation is:

If we just use global-agent then out-of-the-box, that doesn't give us backwards-compatibility: self-hosting users who are using HTTP_PROXY, HTTPS_PROXY and NO_PROXY will not get the same behaviour after they upgrade.
If we set GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE= (lets sidestep the issue that this is hard if the user just starts up using node server instead of via a npm script or Dockerfile for the moment), global-agent respects the HTTP_PROXY, HTTPS_PROXY and NO_PROXY variables, but may result in some kind of vague/unspecified "conflicting library behaviour", presumably because request implements its own proxying behaviour at a higher level. I don't really know what that means though. I' don't know whether that means "definitely don't do this if you're using request" or "it'll probably be fine, but we don't guarantee it). As someone who actually hosts your own instance behind a proxy, do you have any clearer idea what the risk is here?

I guess the options are:

We use global-agent and make a breaking change: If you host your own instance behind a proxy you need to change HTTP_PROXY, HTTPS_PROXY and NO_PROXY to GLOBAL_AGENT_HTTP_PROXY, GLOBAL_AGENT_HTTPS_PROXY and GLOBAL_AGENT_NO_PROXY or set GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE= (which may result in some kind of "conflicting library behaviour")
We use global-agent and try and find some way of setting GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE= for all users (easy for dockerfile/NPM script.  No breaking change but again, maybe there is some kind of "conflicting library behaviour"?
We avoid global-agent and use a non-global proxy agent (e.g: tunnel) explicitly with got but configure it ourselves based on HTTP_PROXY, HTTPS_PROXY and NO_PROXY. Then request does its own thing internally with those vars and got uses its own different proxy agent but we remove this risk of "conflicting library behaviour" or a breaking change. Tbh, maybe this one is actually the way forward?

As someone who actually hosts your own instance behind a proxy, do you have any clearer idea what the risk is here

My understanding is that the only risk would be the potential side effects on any other apps running in the same environment as the Shields server, with those apps themselves explicitly setting certain properties (either directly or via something in their own dep tree).
I think the potential of that is relatively low, given how infrequently you encounter multiple apps running on the same host machine with no isolation in today's world. However, the impact could be subtle/difficult to detect, and tricky to track down too, especially if you have App Foo running directly on the same host as your Shields server, and App Foo needs some finally tuned socket configurations. That seems like a rather unlikely scenario to me though, as I wouldn't expect someone to haphazardly drop a Shield server in that same environment.
I can't envision any risk on the Shields server itself, provided we aren't relying on any lib/SDK anywhere in our own codebase that's handling the http interaction with some upstream service. I believe folks running in a Docker container, or in a dedicated/isolated hosting env would be fine.

I guess the options are:

Yup, think that sums them up well. I'm open to any option at this point, but I will definitely lean towards any option that's less invasive/less-risky for the Shields.io case even if that adds a step or two, or potential breaking change, for self-hosting.

My understanding is that the only risk would be the potential side effects on any other apps running in the same environment

I see. My reading of

Some libraries (e.g. request) change their behaviour when HTTP_PROXY environment variable is present. Using a namespaced environment variable prevents conflicting library behaviour.

is different to that. My understanding was that global-agent implements proxying lower down in the stack than request, so because request implements its own proxy agent, if we use HTTP_PROXY, HTTPS_PROXY and NO_PROXY then we're essentially double-implementing the proxy logic: request is implementing proxying at one level but then global-agent is implementing it again at a lower level, which could lead to some odd or conflicting results (within the shields app).
I don't really have a meaningful way to test this, but I've pushed 302a2a5. This bootstraps global-agent when we initialise the server (doing it in start() ensures we use the proxy even when we are running tests or running npm run badge etc). Could you give this a try behind a proxy and see if it seems to behave sensibly? I think the code that still uses request (e.g: github, php-version, suggest etc) is probably the stuff I'm more worried about testing.

One further option I've thought of since yesterday is we could try and do the full request --> got migration all at once and only merge this once we've completely removed request. Then any incompatibility between global-agent and request becomes irrelevant. That said I have got a strong preference for doing the rest of the work in 8 smaller PRs rather than having to do the whole thing in one go if at all possible.

I think the global-agent readme could use an update/some clarity

then we're essentially double-implementing the proxy logic: request is implementing proxying at one level but then global-agent is implementing it again at a lower level, which could lead to some odd or conflicting results (within the shields app)

Suppose we could poke around the request codebase, but I'm fairly confident we wouldn't run into any intra-Shields because:

global agent appears to act as a steam roller (always overriding agents unless explicitly told not to) that will always use its agents over any specified by libs (as request does). If it didn't/if that behavior gets disabled then it's a bit easier to picture how there could be some strange behavior between libs that did conditionally change the agent, like request, and others that didn't

By default, global-agent overrides agent property of any HTTP request, even if agent property was explicitly set when constructing a HTTP request. This behaviour allows to intercept requests of libraries that use a custom instance of an agent per default

The readme says they've tested against request so I'm assuming that means there wouldn't be any butchering of other options (url, headers, w/e) when using the two in conjunction

This could certainly be a case of me being overly optimistic though!

Could you give this a try behind a proxy and see if it seems to behave sensibly?

Will do, should have some bandwidth later this week

Excitingly, turning off retry has given us whole load of tests failing with "Mocks not yet satisfied" so that's something for me to dig into :thinking:

Turns out it was actually global agent rather than retry that was causing all the nock tests to fail. I just didn't check the build after pushing 302a2a5 :smile: I haven't really dug too deep into this but I guess both nock and global-agent are patching the node HTTP stack and terrible things are happening. Given the live tests work and the mocked tests all fail, I think rather than get lost in those weeds the solution is probably not to bootstrap global-agent under test, but happy to review it if anyone else has ideas..

Given the live tests work and the mocked tests all fail, I think rather than get lost in those weeds the solution is probably not to bootstrap global-agent under test, but happy to review it if anyone else has ideas..

I'd be inclined to see if our resident nock expert has any insights or suggestions @paulmelnikow :smile: It would give me some minor angst if we end up having to running our service tests in a different configuration than we run the server, but that wouldn't be a blocker for me if we end up needing to go that route

We talked about this issue in the ops meeting. Tl;dr - lets not bootstrap global-agent under test or in production.
Possible approaches:

Set an env var in production and use that as a condition
Check if proxy vars are set, only bootstrap if they are
Does global-agent have a feature/flag that tells it not to touch the HTTP stack if no proxy configured?

I'll do some reading + follow up on that.
Still with @calebcartwright to test the case where we do bootstrap global-agent behind a real-life proxy.

Things seem to be working great behind a proxy, no env/config changes needed :+1:
I did notice an internal server error for GitHub badges, but I've not tried that before with my self-hosted instance so that may not be new/could just be the absence of GH auth

OK, so the resolution I arrived at for global-agent is only bootstrapping it if proxy vars are configured. That way we know global agent definitely isn't touching the HTTP stack unless we explicitly want it to and it doesn't require us or self-hosting users to change anything.
Additionally I've rebased onto master to resolve merge conflicts and squashed the commit history into something easier to review (as things meandered a bit while this was WIP). I'm going to mark this ready for review now as it is.. ready for review :tada:
There are a few failing service tests but I think all they are all transient or due to other known issues like

https://github.com/badges/shields/issues/6187
https://github.com/badges/shields/issues/6179
https://github.com/badges/shields/issues/6107

Think I may want to do one more pass through this, largely to be sure I've got my head wrapped around the changes and plan, but have finished going through once and things LGTM


[ANCHOR-426] Make database migration tests not require the servers to get up-running

Description
The PostgresMigrationTest requires the SEP server up and running. This causes race condition where we  try to access the SEP1 toml while the server is still starting up.
This PR removes the need to read the SEP-1 toml file in database migration tests.
Context
To improve the test stability.
Testing
./gradlew test
Known limitations

Reference Server Preview is available here:https://anchor-ref-pr1069.previews.kube001.services.stellar-ops.com/SEP Server Preview is available here:https://anchor-sep-pr1069.previews.kube001.services.stellar-ops.com/


Enable optional formatting / stringify

https://github.com/onubo/react-native-logs/blob/4ffa72226667ff25b643249e39c418e5a05255e6/src/index.ts#L255
In 3.0.0 transports get already stringified message.
Add config option to disable stringify of message or add an option to provide serializer function for msg.
I know there is rawMsg, but I have problem with JSON.stringify not handling circular dependencies.

wouldn't adding an option to disable message stringing give the same result as rawMsg? what's the difference? you'd still have the problem of circular dependencies and JSON.stringify...
To solve the problem try passing the rawMsg to a custom stringify function like here::
print-a-circular-structure
Remember that the stringified message passed to the transports also allows the concatenation of logs, so if you use multiple messages in logger then the rawMsg will be an array and you will have to cycle it...

True, currently I was handling stringify/transformation in custom transports. I intended to use rawMsg, but embed JSON.stringify like at
https://github.com/onubo/react-native-logs/blob/4ffa72226667ff25b643249e39c418e5a05255e6/src/index.ts#L315
Throws an error before transport is called. I would be good to provide custom stringify function in config and then we can use libs like https://www.npmjs.com/package/flatted. This was we also do not need to refactor the code, just replace the JSON.stringify with configurable function (that is by default JSON.stringify).
And thanks for heads up on rawMsg being an array.  👍

@mvehar Allow custom stringify function in config its not a bad idea, I'll see if I can include it in the next release, thanks!


Contributors is show instead of Contributing

Likely the language file or the header component have a typo.
Language Component: language/en.yml
Navigation: /src/components/main-navigation.tsx
Language Key: nav.contributing
Either in the language file or the navigation there is a mistake, likely a tiny typo.

Hello! I will take that

I want to take this issue.

I want to take this issue.

thank you!

@Idrinth Can I get assigned this issue?

Added the required change in this PR


THC 943 set up translatable UI strings

Added basic setup for the UI translations using this approach: https://docs.astro.build/en/recipes/i18n/#translate-ui-strings
I`ve created a separate folder for the translations strings to be sure that we will be able to properly pickup these files on the Smartling side

@bzavhorodskyi This works well from my testing 👍 Shall we merge this and then I'll open something up to update all the components/UI strings separately?

@bzavhorodskyi This works well from my testing 👍 Shall we merge this and then I'll open something up to update all the components/UI strings separately?

Yes, I think we can merge it and add translations separately


HDDS-8575. Intermittent failure in TestCloseContainerEventHandler.testCloseContainerWithDelayByLeaseManager

What changes were proposed in this pull request?
LeaseManager have concurrency issue that, when new event is added just before monitor thread go for wait, then notification will be missed and object remains in queue indefinitely till further new event comes and notify.

changed the logic using blocking queue for event notification.
test case change to validate lease acquire and wait with GenericTestUtils.waitFor

What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-8575
How was this patch tested?
running testcase multiple time

Thanks @sumitagrawl for updating the patch, test passed in 900 runs.  Please take a look at findbugs failure though:
M M IS: Inconsistent synchronization of org.apache.hadoop.ozone.lease.LeaseManager.activeLeases; locked 66% of time  Unsynchronized access at LeaseManager.java:[line 169]
M C RV: Return value of java.util.concurrent.Semaphore.tryAcquire(long, TimeUnit) ignored in org.apache.hadoop.ozone.lease.LeaseManager$LeaseMonitor.run()  At LeaseManager.java:[line 269]

https://github.com/apache/ozone/actions/runs/4981223788/jobs/8917653084?pr=4688#step:6:2329

@sumitagrawl , please fix findbugs warnings.

I don't understand findbugs.  How does making shutdown unsynchronized solve the inconsistent synchronization problem?  Now activeLeases is locked ~50% of the time.

... How does making shutdown unsynchronized solve the inconsistent synchronization problem? ...

Is it the case that findbugs won't warn for existing bugs?  If this PR adds synchronized, then findbugs will consider that the synchronization bug, although is existing, is added by this.  Just my guess.

Is it the case that findbugs won't warn for existing bugs?

I doubt that.  It only sees the current state of the code.
We've also seen findbugs being triggered in apparently unrelated files (https://github.com/apache/ozone/pull/4506#issuecomment-1495435499), and the problem persisted even after the PR was merged, until fixed by another PR.
I would guess this may be caused by findbugs working on compiled bytecode, not on sources.
But I tend to agree with its finding here, we should synchronize consistently.

Indeed, we should use a nonblocking solution and not synchronize at all.  We probably need to redesign LeaseManager.
BTW, the following code does not make sense at all.  Could a thread in dead state be started?  Probably not.
//LeaseManager.start()
    leaseMonitorThread.setUncaughtExceptionHandler((thread, throwable) -> {
      // Let us just restart this thread after logging an error.
      // if this thread is not running we cannot handle Lease expiry.
      LOG.error("LeaseMonitor thread encountered an error. Thread: {}",
          thread.toString(), throwable);
      leaseMonitorThread.start();
    });

I suggest to commit this PR, if it can fix the test failures, and completely rewrite LeaseManager in the future.  @adoroszlai , would you like to trigger the test again?

would you like to trigger the test again?

Triggered, will post the results.

Thanks @sumitagrawl for the patch, @szetszwo for the review.
Test passed 100% in 1000 runs.


Add Createmarket unit tests

This PR adds unit tests for checking the length of the question title (both valid and invalid inputs), declares a constant for the maximum length of the question title, and updates the formatting of the error returned to use the constant.

@ajlacey please join us on Discord if you would like, which is our main asynchronous, "general chat." https://discord.gg/vtGQBwwd ... Would love to get your thoughts on how you found us and your interest level on SocialPredict.


Archive files after release

Currently after release, archiving is done manually by me. Instead use https://github.com/archiverjs/node-archiver to automatically do the archiving after electron-packager is done packaging the apps.

This must be done after #56


Query string support (more sophisticated URIs)

While query strings are almost out of scope of the HTTP spec, in practice they are of course completely ubiquitous. While it's possible to encode them in the current API, it's certainly not possible to do it with any type safety or ease as the path component of a Request is just an untyped ByteString.
This is particularly hairy when trying to process a request just prior to sending, such as to append cryptographic signature information.
URIs have a lot more structure than that according to rfc3986, so it'd be nice to expose that structure more easily in the interface to http-common.
I propose adding more structured ways to query and build paths used in building Requests. This could be done by building atop existing URI packages like network, http-types, or uri. It also might be worth considering a fresh implementation if none of those packages provide an API which fits "nicely" into http-common's methods.
In particular, network is very old, uri and network both use String types, and http-types brings along more types, like Method, already replicated in http-common.

So is there an existing library that does URIs properly (to your requirement)?


update keep failing to update

Describe the bug
when using the auto update. it downloads, but would report "fail to extract" the update.
To Reproduce
just update?
Expected behavior
update to succeed.
Desktop (please complete the following information)

macOS version: big sur 11.1
Safari version: 14.02
Passafari version: 0.8.2
How was Passafari installed (Github release, built self, ...): github zip release

Additional information
My installation path is in /Users//Applications  instead of the usual system application path.

Thanks for the note. I use brew to update Pass for macOS, so I never noticed.

Thanks for the note. I use brew to update Pass for macOS, so I never noticed.


Fix storage shared key pipeline policy sort

fixed sorting + test

API change check
API changes are not detected in this pull request.

/azp run net - storage - tests

/azp help

/check-enforcer override


Does it support reverse compilation from wasm to cwa?

Or it is planned?

So far it doesn't support it. But you can decompile wasm to wat using wabt. And since wasm created from cwa doesn't contain variable names etc. it might simply not bring much benefit vs. wat.


Latest testNG not running from command line

TestNG Version - 6.11 (org.testng.eclipse_<IP_ADDRESS>703011520) I downloaded it on 7/March/2017. It is supposed to be the latest version at that time

Note: only the latest version is supported

Expected behavior
Tried to integrate with jenkins. So, thought of triggering the xml from command line manually. I had set the class path correctly but the Test cases were failed. But  it was running from eclipse. If we execute a @test which doesn't have any selenium related stuff(driver is not initiated) it was getting passed i  command line.
I uninstalled java, eclipse appium and installed it again. Checked the environment variables again Everything was fine. Later i found the solution. viola!!!!!
I uninstalled the current latest version of testng and installed the previous version of it(org.testng.eclipse_<IP_ADDRESS>41201_2240). Updated the testng.jar in the lib folder of project home directory and to my surprise  testng is able to run with appium/Selenium now successfully.
Actual behavior
Only java related codes are running. For selenium related commands, @test is getting failed.
Is the issue reproductible on runner?
Yes, it is.

[x] Shell
[ ] Maven
[ ] Gradle
[ ] Ant
[x] Eclipse
[ ] IntelliJ
[ ] NetBeans

Install the latest testng in eclipse.
Create a sample test case such as launching a browser.
Create a xml and run from eclipse.
After adding lib and setting class path run the xml from command. The same test case passed in eclipse will fail now.

Test case sample

Please, share the test case (as small as possible) which shows the issue

I don't understand the problem, can you show some code or something that fails?
It sounds like you solved that problem?

@santhosh12992 Feel free to reopen the issue if you have more details to share.


Option to override globally disabled extension in workspace settings

VScode currently has the option to disable an extension for certain workspaces.
However, there are extensions such as Arduino and the likes which are very workspace specific and negatively impact the overall experience if enabled outside that environment.
Instead of having to manually disable those extensions for every workspace, I suggest making it possible to enable an extension for a workspace even if it is globally disabled.
The current behaviour does not allow you to enable the extension for a workspace if it is disabled globally:

:+1: This could potentially speed up startup of vscode, by not starting all extensions by default (I am not sure how to time if it actually would make a significant difference).
Usage wise, I currently find myself to be disabling extensions depending on which are not used in the workspace. It would be nice to disable any language extensions globally, and only enable them if they're used in the current workspace.

Duplicate of https://github.com/Microsoft/vscode/issues/15611


Themes partially loaded

Trying to use FuncUI with Semi, starting from Avalonia 11.2.x breaks up the custom apple device font loading, creating horrible artefacts on accented letters with Semi and Ursa.
For instance this is the Base.axaml file that gets ignored by FuncUI. It's not an Avalonia bug, it's FuncUI.

<ResourceDictionary.ThemeDictionaries>

</ResourceDictionary.ThemeDictionaries>
<x:Double x:Key="DefaultFontSize">14</x:Double>

Inter, -apple-system,BlinkMacSystemFont,PingFang SC, Microsoft YaHei, Segoe UI, Hiragino Sans GB, Helvetica Neue,Helvetica,Arial,sans-serif

<FontFamily x:Key="CodeFontFamily">Cascadia Code, Consolas, Inconsolata, monospace</FontFamily>

With SukiUI the fonts are working but it can't detect Dark/Light theme configuration of the OS under macOS, neither the font inside the DataGrid (invisible text)

Pretty sure this is not related to funcUI but Avalonia itself.
Can you check if you run into the same issue when only using Avalonia?

I spent a whole week checking, it's due to something nasty going on within avalonia 11.2.x and FuncUI, for time being I had to revert to 11.1.5 and everything is alright.
It is connected with https://github.com/AvaloniaUI/Avalonia/issues/17527 but again, be bug arises only when using FuncUI on macOS

Can you provide a runnable sample?
Pretty sure it's a version mismatch. FuncUI does not touch any of that..

Just checked and with the Fluent Theme there are no issues.
Versions:
        <PackageReference Include="Avalonia.Desktop" Version="11.2.0" />
        <PackageReference Include="Avalonia.Themes.Fluent" Version="11.2.0" />

I'm closing this issue. I'll reopen it if you can demonstrate it's related to FuncUI.

Sorry you probably didn't read above... Why did you try Fluent?
I said the problem is with Semi (an partially with Suki) on an Apple Platform.

Hmm, yeah. It works perfectly with the Fluent Theme. I'd reach out to the Semi maintainers.


[Feature Request] Should impl a way to handle DI (Dependency Inject) too

Hi @SchabanBo, Thanks for the package it pretty much reduces the headache of Navigator 2.0 concepts & abstract away the complexities of it. But I think package should have some DI (which will greatly helpful while developing apps) & Yes we have great libraries out there for handling DI but using them at some point of time we will get into some issues like we have seen in #86.

@SchabanBo, please check the PR #91 which adds the feature that I suggested above

I had this idea before, I even added it. But then I release, this could lead this package to be something like getx in the future. Which I don't want to. The package should be just about navigation and nothing else. And the developer can choose how to use it. So now in my projects I am using this with get_it for DI and now for every new project I just add this for defining the locator and this middleware for init/dispose the controller.

Ya I too get that point but if you see GetX is lot more other than this. But I think we can exclude DI but you can keep controller. Because If you look into AndroidDevelopment there is an ViewModel concept where the business will present & it will be bind to the UI. So I think we can include the controller as a ViewModel & bind it to that particular navigated page. So In my opinion controller should be included in the package

Ok, as long as the QController is not linked to code, it will be cleaned with the tree shaking anyway if the developers done not use it. Maybe you could add this middleware in the same file with QController, so we could easily link our controllers to the routes.
Can you please update the PR for that?

I agree with the OP that there should at least be a controller. I have in the past few days been building a declarative router and fighting off and on with getting the router to rebuild properly with a GetX observable etc. and it would be nice if there were a controller to go with the declarative router to accomplish it simply with a stateless widget and Rx a'la GetX.

@SchabanBo, This weekend for sure I will work on the PR & update it. And can you add me as a maintainer as we discussed before?

I just realized that we cannot use this middleware because it references another class (get_it).
@tejHackerDEV an invitation was sent to you.

Hi @SchabanBo, in an order to support ViewModel concept, I created an extra add-on to the qlevar package. Because I feel it shouldn't be bind into the package. It should be published as an add-on (that's what I feel). But in case if you want to merge it into the package, I am happy for that too.
And I here is the add-on that I am speaking about. Go though it once added the example too. If you feel its ok then we can create a new package under qlevar account in pub.dev & pushlish this one too. As of now not added any tests but will add it in future.

That is a great Idea, so we could leave qlevar router just for navigation, and we can add write about this concept in the README. And if anyone would like to use it, can use the add-on. What do you need from me now?

What I want is to publish this add-on on pub.dev we need to create one more package under qlevar account to add this to the qlevar family

@SchabanBo  any update on this?

Not yet, last week I moved to new apartment and I need some time before I could do anything.

Not an issue @SchabanBo, take you time & congratulations for moving into newer apartment

@tejHackerDEV The first version is live. Maybe you could add a link to QVM in the README of qlevar_router.

@SchabanBo sure, thanks

yes will nice feature. i work with getx


net/rpc: DialHttp cannot set the client port.

What version of Go are you using (go version)?

1.11.1

I cannot set the client port when using rpc.DialHTTP.  Does rpc.DialHTTP support that？
DialHttp choose the random port which maybe has conflict with other port. For example, DialHttp choose the port 40010,  if I start server which also bind 40010, the  server will fail.
Though I can set the client port of Dial by the following code, which is tcp connection. But there are some old clients using DialHttp. If the server does not add a port for tcp connetcion, it cannot process both tcp and http connection by one port.  So I wish I can Set the client port for DialHTTP.

			addr := &net.TCPAddr{IP: net.ParseIP("<IP_ADDRESS>"), Port:port}
			d := net.Dialer{LocalAddr: addr}
			conn, err := d.Dial("tcp", rpcaddr)
			if err != nil || conn == nil {
				return
			}
			client = rpc.NewClient(conn)

rpc.DialHTTP just calls net.Dial which uses <IP_ADDRESS>:80 syntax
There's even an example on https://golang.org/pkg/net/rpc
client, err := rpc.DialHTTP("tcp", serverAddress + ":1234")

Sorry, I didn't explain it clearly. I want to set the local port when call rpc.DialHttp, the port 80 of <IP_ADDRESS>:80 is the remote port.

You can just take the code from net/rpc.DialHTTPPath and tweak it slightly to do your own net.DialTCP with a local addr.

For example, DialHttp choose the port 40010, if I start server which also bind 40010, the server will fail.

The convention is to run servers on ports that aren't used for outgoing connections.
The usual default is ports 32k- are for clients:
$ cat /proc/sys/net/ipv4/ip_local_port_range
32768	60999

@tv42 But there are servers which use port between 32768	and 60999, such as HDFS. If I change the port of these servers, it will be  complicated, because there are a lot of servers. So I want to pick source port for client connections by myself.

We're not going to add API for this case, but the workaround from my comment above should work fine.

@bradfitz Thank you very much.

@yjxxtd You can tell Linux not to use the ports you want as listening ports for clients. That'll solve the problem for all (well-behaving) clients, not just the one Go thing you've noticed so far.
https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt
ip_local_port_range - 2 INTEGERS
	Defines the local port range that is used by TCP and UDP to
	choose the local port. The first number is the first, the
	second the last local port number.
	If possible, it is better these numbers have different parity.
	(one even and one odd values)
	The default values are 32768 and 60999 respectively.

ip_local_reserved_ports - list of comma separated ranges
	Specify the ports which are reserved for known third-party
	applications. These ports will not be used by automatic port
	assignments (e.g. when calling connect() or bind() with port
	number 0). Explicit port allocation behavior is unchanged.

	The format used for both input and output is a comma separated
	list of ranges (e.g. "1,2-4,10-10" for ports 1, 2, 3, 4 and
	10). Writing to the file will clear all previously reserved
	ports and update the current list with the one given in the
	input.

	Note that ip_local_port_range and ip_local_reserved_ports
	settings are independent and both are considered by the kernel
	when determining which ports are available for automatic port
	assignments.

	You can reserve ports which are not in the current
	ip_local_port_range, e.g.:

	$ cat /proc/sys/net/ipv4/ip_local_port_range
	32000	60999
	$ cat /proc/sys/net/ipv4/ip_local_reserved_ports
	8080,9148

	although this is redundant. However such a setting is useful
	if later the port range is changed to a value that will
	include the reserved ports.

	Default: Empty

@tv42   Yes, it's great.  Tank you very much.


MINOR: Restore scanning for super types of Connect plugins

Enabling scans for super types in reflections is required in order to discover Connect plugins.
Smoke tests, system tests, and manual testing.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

cc @ewencp @hachikuji

Thanks for the PR. Is there any way to verify the change with a unit test?

@hachikuji Unit testing is not straightforward here, because we'd need to generate test classes, construct the jars, store them in a temp test folder and run scanning with those urls. We can eventually add something like that but probably not in time for this patch.
Testing is currently happening with system tests.


fix: move ActionRow outside the ReflexContainer

It does not need to be resizable.
There's a lot of diff noise, but the only change is that the ActionRow has been pulled out of the ReflexContainer.

The bottom of the editor seems to get cut off for me

Good catch, Sem.  Looks like ReflexContainers expect to be children of flex containers.  Not sure why, but this should fix it.


Mass compile repo to LV 2019

[x] This contribution adheres to CONTRIBUTING.md.

What does this Pull Request accomplish?

Add *.lvproj.config to .gitignore
Update readme with new LabVIEW version and filled out description to be more helpful
Mass compile repo and save project for LV 2019
Change build to target LV 2019 and 2020 only

Why should this Pull Request be merged?
Prepare for 21.0 and 64-bit library support
What testing has been done?
None yet

The build passed, but I killed the diff pipeline since it wasn't going to be helpful (and would probably time out).


Populate the Help Center pages

@lcoenen can you please place the material-ui expansion panel on the new help center page? (Like you did it with the table on the Birthday Deal page)
Please use the Controlled Accordion one as shown here:
https://material-ui.com/demos/expansion-panels/#controlled-accordion
Please let me know when you're done, so I can work on the page. Thanks!

@buckwierd I'll do that tomorrow :)

@lcoenen what's the status of this?

@buckwierd on which page exactly do you need it to be inserted? The FAQ?

I integrated that on FAQ page on the branch create-static-pages :) just a remark, you'll have to execute yarn add @material-ui/icons --ignore-engines for it to work.
Let me known if you want it on another page

Thanks @lcoenen
Next time please commit you your own deadlines or don't set any.

Started populating the FAQ page.

FAQ done. Continuing with the Fees page.

@lcoenen can you please place on the FeesPage.js a material-ui tab section as shown here https://material-ui.com/demos/tabs/#centered under Fixed Tabs Centered? Please let me know when it's done so I can continue. Thanks.

@lcoenen any news on this? I'd like to move forward with it.

What tabs do you needs?

@buckwierd can you have a look at that? I included what you asked but for some reasons the line isn't showing correctly:

This goes away once you click on one tab titles, but still we'll have to fix that.

@buckwierd I found a workaround. It works now. Don't forget to pull before you start working.
I asked a question on stack overflow about that.

@buckwierd I added the tab titles on creating-static-pages. I see that your work have been done on this branch - we should create a seperate branch for the Help Center.
We will seriously have to rebase everything at some point.

Ok Loïc. Thanks. Can you please create that branch? I’ll continue coding today at 17:00 and it would be great if everything is ready by then.

@buckwierd I created the branch 'populate-help-center` on the repo.
Also I added the translations for the titles, don't forget to pull.

Thanks. I’ll have to check at home before I start, if I committed my latest changes. Then I pull. Will I then have all of my changes on the new branch?

Everything worked out fine with pulling.

Fees page done.
Minor issue with the color:
As for material-ui you can only set the indicatorColor and textColor to primary (whichi is blue) or secondary (which is redish). I don't know how to accost the classes in this situation, so I can change it to #ff3f00.
As for now we need to move forward wioth what we have and fix the minor cosmetic issue later.
A pull request will be created soon.

 Create the pages

@lcoenen please place on the first steps page http://localhost:3000/help/first-step a tab module (like on the fees page) with two tabs. Please let me know when it's done so I can continue. Thanks.

@buckwierd please provide the tabs you want directly so I can set the names directly next time :)

@buckwierd done

@lcoenen thanks! Next time I'll provide you the names straight away.

@lcoenen please double check the changes you've made. This is not what I've requested.
I've requested this:

please place on the first steps page http://localhost:3000/help/first-step a tab module (like on the fees page) with two tabs.

And this is what I've got:
The Fees page contains empty tabs now.
The First steps page contains three tabs with the content of the fees page.
Please let me know when you've fixed the issue, so I can start working on this.

@buckwierd My bad, this is fixed now.
I created a components named FirstStepsTabs in src/components. I just copied the content of Fees but you can modify it there.

Finished the "First steps" page. @lcoenen I've mistakenly pushed and I hope this is not an issue.
The remaining pages to populate are:

Deals
Guidebook for providers

When the "Contact us" page is done, the new "Help centre" is finished and ready to go live.

Finished populating the help center pages. All we need now to go live with it is the contact us page. Pull request will follow.

Help takes me to Squarespace.
Shouldn't it take me to the new Help Centre?

It doesn't anymore.


[T3A2][W09-A2] Shaun Chee

Applied encapsulation on Public final String feedbackToUser.
Added getter and setter methods.
Ready for review.

Some comments added. Please close the PR after reading comments.


Can't use local images as textures

Hello,
I've try to use texture but when I define one with a path to my computer, it doesn't show anything.
{
    "glsl-canvas.textures": {
        "0": "./img/a.jpg",
        "1": "/Users/Me/directory/img/b.jpg",
        "2": "https://thebookofshaders.com/15/hokusai.jpg"
    }
}

Textures 0 and 1 doesn't work but 2 is ok.
The settings.json is located on .vscode/settings.json of my project.
VSCode : 1.26.1
macOS : 10.13.6
glsl-canvas : 0.1.91

I have the same issue.
But, I can use an absolute path with file://.

@sixclones  @muukii  issue has been fixed in latest release. now you can use relative path for textures.

Thanks man ! 👍

@actarian Ohhhh! Thank you so much!

got the Texture error on macos 12.6 with local files only


integrate forecasting models and trainer to time series dataframe format

Issue #, if available:
Description of changes:
Integrates TimeSeriesDataFrame format with forecasting Models and Trainer, making the forecasting library available for testing e2e except for learner and predictor objects.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@huibinshen

Job PR-1731-1 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-1731/1/index.html


Previewer is not working

my code
https://github.com/BlankWhite/SQLConverter

@BlankWhite when does it happen? do you click anything on during previewer?
In general, please fill the issue template if you file a bug. Thank you.
But for me this is more or less a discussion. I'll convert it for now, hope you don't mind.

Looking roughly into your sample, I see that you do this:
CopyCommand = ReactiveCommand.Create(async () =>
{
    var window = ((IClassicDesktopStyleApplicationLifetime)Application.Current.ApplicationLifetime).Windows[0];
    var clipboard = window.Clipboard;
    var dataObject = new DataObject();
    dataObject.Set(DataFormats.Text, AfterSql);
    await clipboard.SetDataObjectAsync(dataObject);
});
PasteCommand = ReactiveCommand.Create(async () =>
{
    var window = ((IClassicDesktopStyleApplicationLifetime)Application.Current.ApplicationLifetime).Windows[0];
    var clipboard = window.Clipboard;
    BeforeSql = await clipboard.GetTextAsync();

});

However the designer has no window, so you cannot reference any window from the designer. You can for example use if(Design.IsDesignMode) to exit the command if hit from designer.


Add instance name tag for windows

Add windows version of script for tagging name on instance
Updated version of tag-instance-volume script
Add --no-progress on choco installs -- progress lines fill up logs annoyingly
Also, set up permament "development" product for windows jumpcloud. Will do same for linux.

This is based on the previous PR for tagging linux instances with names: https://github.com/Sage-Bionetworks/scipoolprod-sc-lib-infra/pull/82

@zaro0508 RE "would be better to add this dev product as a separate PR. maybe a follow on PR after you fix ec2/sc-ec2-windows-jumpcloud-v1.0.0.yaml ?" Now that the PR has been reviewed, why would it be better? For the sake of the history?


I got this error, google didn't help at all solving it, so I did as it asked and posted it here.

The error occurs on every single video, even things that used to work before I reinstalled windows. This .bat still works so it can't be that my computer somehow can't use ffmpeg:
C:\Tools\WebmConverter\Binaries\Win64\ffmpeg.exe -i %1 -pix_fmt yuv420p -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" -vcodec libx264 -acodec aac -minrate 1024k -maxrate 125M -bufsize 1M -ar 44100 -ac 2 -strict experimental -r 30 -t 139 "D:\SharedFolder\Clips\_Converted.mp4"
pause

This is the error:
Arguments for pass 1: -f nut -i pipe:0   -an -c:v libvpx-vp9 -pix_fmt yuv420p -threads 8 -slices 8 -metadata title="2024-05-30 18-22-33" -lag-in-frames 16 -auto-alt-ref 1 -qmin 28 -crf 30 -qmax 32 -qcomp 1 -b:v 0 -aq-mode 4 -row-mt 1 -tile-columns 6 -tile-rows 2 -pass 1 -passlogfile "C:\Users\Administrator\AppData\Local\Temp\e610f25e-ec00-4cf7-9845-2e52bcef1037"  -f webm -y "NUL"
Arguments for pass 2: -f nut -i pipe:0   -an -c:v libvpx-vp9 -pix_fmt yuv420p -threads 8 -slices 8 -metadata title="2024-05-30 18-22-33" -lag-in-frames 16 -auto-alt-ref 1 -qmin 28 -crf 30 -qmax 32 -qcomp 1 -b:v 0 -aq-mode 4 -row-mt 1 -tile-columns 6 -tile-rows 2 -pass 2 -passlogfile "C:\Users\Administrator\AppData\Local\Temp\e610f25e-ec00-4cf7-9845-2e52bcef1037"  -f webm -y "D:\Videos\2024-05-30 18-22-33.webm"

--- CREATING AVISYNTH PROXY ---
C:\Users\Administrator\AppData\Local\Temp\tmp5A2F.tmp: Unknown error occurred

[nut @ 000001ac49e7d380] No main startcode found.
[in#0 @ 000001ac49e7d240] Error opening input: Invalid data found when processing input
--- FFMPEG HAS EXITED ---
--- ENTERING PASS 2 ---
--- CREATING AVISYNTH PROXY ---
Error opening input file pipe:0.
Error opening input files: Invalid data found when processing input
C:\Users\Administrator\AppData\Local\Temp\tmp5A2F.tmp: Unknown error occurred

[nut @<PHONE_NUMBER>d0d480] No main startcode found.
[in#0 @<PHONE_NUMBER>d0c880] Error opening input: Invalid data found when processing input
--- FFMPEG HAS EXITED ---
Error opening input file pipe:0.
Error opening input files: Invalid data found when processing input

ffmpeg.exe exited with exit code -1094995529. That's usually bad.
If you have no idea what went wrong, open an issue on Github and copy paste the output of this window there, also upload test video.

Tested other files? upload a file to test.
Which avisynth version do you have installed?

I installed AviSynthPlus_3.7.3_20230715.exe when it asked
It's for every video file I have, it used to work before I reinstalled windows, so that includes video files I had previously converted with this program without issues, I feel that uploading a file will just result in "works on my machine" but ok:
2024-01-08 23-54-18.zip

Important to know:

Requires AviSynth (2.6.0, 32-bit)

If still doesn't work replace it in "Binaries/Win32"
ffms2.zip

If still doesn't work replace it in "Binaries/Win32"
ffms2.zip
This one did the trick, thanks! I did also install AviSynth (2.6.0, 32-bit), but it didn't work until I did the second fix too


[bug] : unable to load packages

Hey @gfanton
I'm trying to use gnopls but after installing this command go install github.com/gfanton/gnopls@latest, I open a gno file and this error appears in my VSCode
Do you know why I get this error?
Error loading workspace: unable to load packages [[/Users/theodub/Documents/GNO/fork/gno_thox/... builtin]]: gnopackagesdriver: exec: "gnopackagesdriver": executable file not found in $PATH:

But I don't have this error if I clone the repo and run make install for have gnopackagesdriver

Yes, when you run go install github.com/gfanton/gnopls@latest, you are only installing gnopls. You also need to install gnopackagesdriver for it to function properly.
Following this logic, you can install both remotely, but you must execute both commands:

go install github.com/gfanton/gnopls/gnopackagesdriver@latest
go install github.com/gfanton/gnopls@latest

to ensures that gnopls works correctly.

Another problem after installing gnopls I didn't get any error number in my code. Is this due to gnopls?

I have a question, should an improvement be made so that the links don't tend towards go.dev?

yes I opened an issue for it here #4

It's good I solved the problem by deleting the GNOROOTs in the GNO extension workspace and uninstalling and reinstalling

good to know, closing


examples/dataframe/app.py does not work

When trying to run examples/dataframe/app.py you receive the following error:
AttributeError: module 'shiny.ui' has no attribute 'output_data_frame'
Is there an attribute that replaced this?

Do you have the latest version installed, 0.4.0?

Ahh that fixed it. Did not see that there was a release yesterday!


Wallet: Support only nut13 deterministic wallets

Currently both randomly generated secrets and NUT-13 derived secrets are supported. While the spec does not require supporting only NUT-13 doing so would reduce code complexity as the two options don't have to be handled separately. This change can also be made transparent to the lib user as if no secret is passed one can be generated for them, that they can choose to never use. Going this route leads to a more sensible default implementation of deterministic secrets allowing for CDK based wallets to be recovered by default instead of an extra feature as they are now.

This change can also be made transparent to the lib user as if no secret is passed one can be generated for them, that they can choose to never use.

Can you explain this a little more? Does this require saving the Xpriv somewhere?

This change can also be made transparent to the lib user as if no secret is passed one can be generated for them, that they can choose to never use.

Can you explain this a little more? Does this require saving the Xpriv somewhere?

Yes good question. If we were to make it transparent by generating a secret it would be like the current Wallet::new where the xpriv is an option and  would be generated when calling Wallet::new.
https://github.com/cashubtc/cdk/blob/2671c92c00353cd9656d0d678c3d9cb1c67b30f1/crates/cdk/src/wallet.rs#L110-L120
Doing this we would have two options either store it. This would have the benefit being able to restore in the future. However, unless we also required a passphrase we would be storing an unencrypted secret.
The second is to not store the xpriv and generate a new one each time Wallet::new is called in this case a restore wouldn't be possible unless the user stores the xpriv.
The third option which I think might be best is require a xpriv. This requires an extra step on the user to create a seed before calling Wallet::new but i think its the most clear in expected function. This case allows use to avoid storing a secret like option 1 and avoids the potential for a user to think they have the ability to restore later but never saving the seed as could be the case in option 2.

Ok great. I have a local branch that removes the nut13 conditional feature logic and allows the user to provide a seed to Wallet::new. I think this is the best approach. Should I make a PR while we are still waiting for feedback?

If you have it done already might as well open the PR.

Looks like nutshell actually came up with the same thing
https://github.com/cashubtc/nutshell/blob/52fbfc4b21df7ca94492ba5e5b3f01101969781a/cashu/wallet/secrets.py#L96-L143


datapath: Istio and Linkerd do not work with socket-LB

This is a placeholder issue for https://github.com/cilium/cilium/pull/13882.
TLDR; the socket-LB based service translation happens before the Istio's iptables rule in the pod netns which makes the Envoy proxy to match on the VIP, as it matches on SO_ORIGINAL_DST.

Linkerd
Linkerd injects an init container and a proxy sidecar into meshed Pods. The linkerd-init container will setup some iptable rules to forward all traffic to the linkerd-proxysidecar.  So the same solution based on a BPF getsockopt program should work for Istio and Linkerd.

After offline discussion with @borkmann it became clear that some kernel work is still required to make the BPF getsockopt based solution viable.

@brb Just for my understanding, but that does not block the solution (--bpf-lb-sock-hostns-only: true) implemented in https://github.com/cilium/cilium/pull/13882?
I am asking, because --bpf-lb-sock-hostns-only: true would likely be an acceptable solution to this problem for the time being (of course we have to first test it, but for that we need a release that supports --bpf-lb-sock-hostns-only: true).

It doesn't block. I'm currently reviving that PR in https://github.com/cilium/cilium/pull/17154.

Define a crd to let us to config rules, like iptables rule, or maybe self define rules (by ebpf). So if istio want to redirect traffic, submit the own crd yaml. I think this is a good choice.

Define a crd to let us to config rules, like iptables rule, or maybe self define rules (by ebpf). So if istio want to redirect traffic, submit the own crd yaml. I think this is a good choice.

@zhengzepeng Could you elaborate more on this? We don't have control over rules Istio installs.

istio auto inject a init container and a proxy container into a pod(by webhook). Init container will apply iptables rule, so all traffic will redirect to proxy container. Proxy container receive trafiics and do something like lb and so on...
what init container do like that:
Environment:
------------
ENVOY_PORT=
INBOUND_CAPTURE_PORT=
ISTIO_INBOUND_INTERCEPTION_MODE=
ISTIO_INBOUND_TPROXY_MARK=
ISTIO_INBOUND_TPROXY_ROUTE_TABLE=
ISTIO_INBOUND_PORTS=
ISTIO_OUTBOUND_PORTS=
ISTIO_LOCAL_EXCLUDE_PORTS=
ISTIO_SERVICE_CIDR=
ISTIO_SERVICE_EXCLUDE_CIDR=

Variables:
----------
PROXY_PORT=15001
PROXY_INBOUND_CAPTURE_PORT=15006
PROXY_TUNNEL_PORT=15008
PROXY_UID=1337,1338
PROXY_GID=1337,1338
INBOUND_INTERCEPTION_MODE=REDIRECT
INBOUND_TPROXY_MARK=1337
INBOUND_TPROXY_ROUTE_TABLE=133
INBOUND_PORTS_INCLUDE=*
INBOUND_PORTS_EXCLUDE=15090,15021,15020
OUTBOUND_IP_RANGES_INCLUDE=*
OUTBOUND_IP_RANGES_EXCLUDE=
OUTBOUND_PORTS_INCLUDE=
OUTBOUND_PORTS_EXCLUDE=
KUBEVIRT_INTERFACES=
ENABLE_INBOUND_IPV6=false
DNS_SERVERS=[],[]

Writing following contents to rules file:  /tmp/iptables-rules-1632585621432198181.txt390483472
* nat
-N ISTIO_INBOUND
-N ISTIO_REDIRECT
-N ISTIO_IN_REDIRECT
-N ISTIO_OUTPUT
-A ISTIO_INBOUND -p tcp --dport 15008 -j RETURN
-A ISTIO_REDIRECT -p tcp -j REDIRECT --to-ports 15001
-A ISTIO_IN_REDIRECT -p tcp -j REDIRECT --to-ports 15006
-A PREROUTING -p tcp -j ISTIO_INBOUND
-A ISTIO_INBOUND -p tcp --dport 22 -j RETURN
-A ISTIO_INBOUND -p tcp --dport 15090 -j RETURN
-A ISTIO_INBOUND -p tcp --dport 15021 -j RETURN
-A ISTIO_INBOUND -p tcp --dport 15020 -j RETURN
-A ISTIO_INBOUND -p tcp -j ISTIO_IN_REDIRECT
-A OUTPUT -p tcp -j ISTIO_OUTPUT
-A ISTIO_OUTPUT -o lo -s <IP_ADDRESS>/32 -j RETURN
-A ISTIO_OUTPUT -o lo ! -d <IP_ADDRESS>/32 -m owner --uid-owner 1337 -j ISTIO_IN_REDIRECT
-A ISTIO_OUTPUT -o lo -m owner ! --uid-owner 1337 -j RETURN
-A ISTIO_OUTPUT -m owner --uid-owner 1337 -j RETURN
-A ISTIO_OUTPUT -o lo ! -d <IP_ADDRESS>/32 -m owner --uid-owner 1338 -j ISTIO_IN_REDIRECT
-A ISTIO_OUTPUT -o lo -m owner ! --uid-owner 1338 -j RETURN
-A ISTIO_OUTPUT -m owner --uid-owner 1338 -j RETURN
-A ISTIO_OUTPUT -o lo ! -d <IP_ADDRESS>/32 -m owner --gid-owner 1337 -j ISTIO_IN_REDIRECT
-A ISTIO_OUTPUT -o lo -m owner ! --gid-owner 1337 -j RETURN
-A ISTIO_OUTPUT -m owner --gid-owner 1337 -j RETURN
-A ISTIO_OUTPUT -o lo ! -d <IP_ADDRESS>/32 -m owner --gid-owner 1338 -j ISTIO_IN_REDIRECT
-A ISTIO_OUTPUT -o lo -m owner ! --gid-owner 1338 -j RETURN
-A ISTIO_OUTPUT -m owner --gid-owner 1338 -j RETURN
-A ISTIO_OUTPUT -d <IP_ADDRESS>/32 -j RETURN
-A ISTIO_OUTPUT -j ISTIO_REDIRECT
COMMIT

iptables-restore --noflush /tmp/iptables-rules-1632585621432198181.txt390483472
Writing following contents to rules file:  /tmp/ip6tables-rules-1632585621444146495.txt898330671

ip6tables-restore --noflush /tmp/ip6tables-rules-1632585621444146495.txt898330671
iptables-save
# Generated by iptables-save v1.8.4 on Sat Sep 25 16:00:21 2021
*mangle
:PREROUTING ACCEPT [859912:382037236]
:INPUT ACCEPT [859912:382037236]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [795462:2387612104]
:POSTROUTING ACCEPT [795462:2387612104]
COMMIT
# Completed on Sat Sep 25 16:00:21 2021
# Generated by iptables-save v1.8.4 on Sat Sep 25 16:00:21 2021
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:ISTIO_INBOUND - [0:0]
:ISTIO_IN_REDIRECT - [0:0]
:ISTIO_OUTPUT - [0:0]
:ISTIO_REDIRECT - [0:0]
-A PREROUTING -p tcp -j ISTIO_INBOUND
-A OUTPUT -p tcp -j ISTIO_OUTPUT
-A ISTIO_INBOUND -p tcp -m tcp --dport 15008 -j RETURN
-A ISTIO_INBOUND -p tcp -m tcp --dport 22 -j RETURN
-A ISTIO_INBOUND -p tcp -m tcp --dport 15090 -j RETURN
-A ISTIO_INBOUND -p tcp -m tcp --dport 15021 -j RETURN
-A ISTIO_INBOUND -p tcp -m tcp --dport 15020 -j RETURN
-A ISTIO_INBOUND -p tcp -j ISTIO_IN_REDIRECT
-A ISTIO_IN_REDIRECT -p tcp -j REDIRECT --to-ports 15006
-A ISTIO_OUTPUT -s <IP_ADDRESS>/32 -o lo -j RETURN
-A ISTIO_OUTPUT ! -d <IP_ADDRESS>/32 -o lo -m owner --uid-owner 1337 -j ISTIO_IN_REDIRECT
-A ISTIO_OUTPUT -o lo -m owner ! --uid-owner 1337 -j RETURN
-A ISTIO_OUTPUT -m owner --uid-owner 1337 -j RETURN
-A ISTIO_OUTPUT ! -d <IP_ADDRESS>/32 -o lo -m owner --uid-owner 1338 -j ISTIO_IN_REDIRECT
-A ISTIO_OUTPUT -o lo -m owner ! --uid-owner 1338 -j RETURN
-A ISTIO_OUTPUT -m owner --uid-owner 1338 -j RETURN
-A ISTIO_OUTPUT ! -d <IP_ADDRESS>/32 -o lo -m owner --gid-owner 1337 -j ISTIO_IN_REDIRECT
-A ISTIO_OUTPUT -o lo -m owner ! --gid-owner 1337 -j RETURN
-A ISTIO_OUTPUT -m owner --gid-owner 1337 -j RETURN
-A ISTIO_OUTPUT ! -d <IP_ADDRESS>/32 -o lo -m owner --gid-owner 1338 -j ISTIO_IN_REDIRECT
-A ISTIO_OUTPUT -o lo -m owner ! --gid-owner 1338 -j RETURN
-A ISTIO_OUTPUT -m owner --gid-owner 1338 -j RETURN
-A ISTIO_OUTPUT -d <IP_ADDRESS>/32 -j RETURN
-A ISTIO_OUTPUT -j ISTIO_REDIRECT
-A ISTIO_REDIRECT -p tcp -j REDIRECT --to-ports 15001
COMMIT
# Completed on Sat Sep 25 16:00:21 2021
# Generated by iptables-save v1.8.4 on Sat Sep 25 16:00:21 2021
*filter
:INPUT ACCEPT [859912:382037236]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [795462:2387612104]
COMMIT
# Completed on Sat Sep 25 16:00:21 2021

the init container like that
apiVersion: v1
kind: Pod
metadata:
  name: reviews-v1-86c9d797c7-88szc
  namespace: default
spec:
  ...
  initContainers:
  - args:
    - istio-iptables
    - -p
    - "15001"
    - -z
    - "15006"
    - -u
    - 1337,1338
    - -m
    - REDIRECT
    - -i
    - '*'
    - -x
    - ""
    - -b
    - '*'
    - -d
    - 15090,15021,15020
    image: istio/proxyv2:1.9.7
    imagePullPolicy: IfNotPresent
    name: istio-init
    resources:
      limits:
        cpu: "2"
        memory: 512Mi
      requests:
        cpu: "1"
        memory: 256Mi
    securityContext:
      allowPrivilegeEscalation: true
      capabilities:
        add:
        - NET_ADMIN
        - NET_RAW
        drop:
        - ALL
      privileged: true
      readOnlyRootFilesystem: false
      runAsGroup: 0
      runAsNonRoot: false
      runAsUser: 0
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: bookinfo-reviews-token-9c5sp
      readOnly: true
  ...

So if cilium support some crd to let us to config some rules like iptable rules or self define rules(ebpf), istio doesn't need to auto inject a init container(just modify webhook logic), just apply a yaml to apply some rules to achive redirect target.
And i think the rule will be so simple. Just redirect the traffic to 15001 port (outbound) or 15006 port (inbound). Maybe add some filtering rules.
Just like that:
apiVersion: "cilium.io/v2"
kind: CiliumLocalRulePolicy
metadata:
  name: "istio-redirect-rules"
spec:
  selector:
    security.istio.io/tlsMode: istio
  inbound:
    filters:
      ...
    toPort:
      port: "15006"
      protocol: TCP
  outbound:
    filters:
      ...
    toPort:
      port: "15001"
      protorol: TCP

So if cilium support this option, it means it has less to do with istio.

Closing the issue, as the workaround has been merged - https://github.com/cilium/cilium/pull/17154. If we consider in the future to make it more advanced (e.g. to override the SO_ORIGINAL_DST), we can always reopen this issue.

@zhengzepeng  Thanks for the explanation.

So if cilium support some crd to let us to config some rules like iptable rules or self define rules(ebpf), istio doesn't need to auto inject a init container(just modify webhook logic), just apply a yaml to apply some rules to achive redirect target.

That would require some changes to the Envoy dataplane which we don't control.


Is it possible to have multiple reporter integrations?

I'm working on html reporter for the test suit, wondering if there will be a way to have both that and the slack..Btw, this one works perfectly.

@ngs Currently one of the reporters( if I specify both in globals) is not getting called after the test run.

I have the same question. I want to integrate slack reporter with html reporter in the same project.


issue #29: fixed an issue with setting timezone on RHEL7

On RHEL/CentOS 7 /etc/localtime is a symlink to some file inside /usr/share/zoneinfo/ folder. Provided solution fixes the issue by adding simple extra checks and doesn't affects Debian-based hosts.

duplicated, more common fix already suggested by https://github.com/sameersbn/docker-skype/pull/25


Update STYLEGUIDE.md

added public modifier for nested test methods

I wonder if having public methods makes sense on protected class. Maybe nested class should be public too? wdyt?

Maybe we can simplify and have everything public?

btw, I can change the code, just let's agree on the style :)

Well, this problem is based on the new junit 5 - features.
You do not need public modifier on test method as well as class anymore.
idea1 :

usage public modifier on all test methods & test classes

includes nested classes and methods in nested classes

idea 2:

usage of package private on all test methods & test classes

no exclusions

idea 3:

mix of idea 1 & 2
up to the author of the tests

Well, i like the new feature of junit 5 (no requirement of public on class and method) and therefore i would vote idea 2. But this a break of present tests and many many tests has to be refactored.
but i can live with idea 1. and with idea 1 is only few tests must be refactored :-)
idea 3 is a no-go - coding styles should be equal in all places.

I agree it's either 1 or 2, to preserve the unique style across the library.
I see that Junit5 really writes package scoped classes everywhere, which totally makes sense. Let me see how big impact this change would have on the library,

Let me see how big impact this change would have on the library,

Well, it does matter what do you want:
Iterate over all test classes and substitute public modifier with package private for class itself and test methods.
You can create several issues for every jodd-module.
I can help - of course.
I was thinking of a manual process.
Or are you thinking of semi-automated processes using groovy?

I have updated the tests and the style guide... sorry for not merging, just have quickly changed the MD.

I have updated the tests and the style guide

:+1:

sorry for not merging, I just quickly changed the MD.

No Problem!


feat(schemas): Permit hex/dec input via uintParam

Description
At present, clients implementing methods that have integer inputs MUST accept hex string formats. This PR adds the
requirement that they MUST also accept JSON number types for certain methods.
Rationale
Some clients permit the use of JSON number type in JSON-RPC requests. Primarily this is a convenience
feature, as block numbers and transaction indices are usually represented as decimal.
$ curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc": "2.0", "method": "eth_getBlockByNumber", "params": [17767244, true], "id":1}' http://<IP_ADDRESS>:8545

This change standardises this convenience behaviour and is mainly an ergonomics change affecting RPC endpoint users.
Scope
The changes are limited to the parameter in requests. Responses are not modified and still use the hex representation.
Affected methods are those that accept transaction indices, block numbers or filter numbers:

eth_getTransactionByBlockHashAndIndex
Methods that accept BlockNumberOrTag

eth_getTransactionByBlockNumberAndIndex
eth_getBlockByNumber
eth_getBlockTransactionCountByNumber
eth_getUncleCountByBlockNumber
eth_estimateGas
eth_feeHistory
eth_createAccessList
debug_getRawHeader
debug_getRawBlock
debug_getRawReceipts

Methods that accept BlockNumberOrTagOrHash

eth_call
eth_getBalance
eth_getStorageAt
eth_getTransactionCount
eth_getCode
eth_getProof

Methods that accept Filter

eth_newFilter

eth_uninstallFilter
eth_getFilterChanges
eth_getFilterLogs

Changes

New uintParam that is defined as either hex string (current) or decimal number (new)
Replace uint with uintParam for method parameters
Introduce a test case for eth_getBlockByNumber

Security
JSON number type does not differentiate between integer, floating point and SI notation.
Floating point numbers and SI notation should be rejected as invalid parameters. This is clear with block number 100.5, but should also apply to block numbers 100.0 and 1e2.
If clients parse these variants in different ways, end-users will observe different behaviour across clients.

I can say with very high certainty this change will not be included. Even if some clients accept JSON numbers, the official encoding of numbers is a hex string. The rationale for using hex strings goes like this:
In some scripting languages, notably JavaScript, all numbers will be handled as 64 bit floats. The practical limit for integers in float64 is somewhere around 2^53. When decoding a JSON payload containing an integer, it will be stored into a float, and this could lead to a misrepresentation of some values. While it may be safe for block numbers specifically, the protocol does define them as a uint64, and it's easier to just treat them like any other number.


Changed some broken links

@Claudio-code ,
thank you very much for the contribution; looking forward for more!


Not fetching files after OAuth in IE and Safari

After successful OAuth, sdk is not able to fetch files in IE and Safari. It hangs at OneDrive loader icon which is on our page, but doesn’t redirect to OneDrive page with files. Here is the URL, where it hangs -
https://<url_of_our_page_with_sdk_loaded>#error=unsupported_response_type&error_description=AADSTS70005%3a+The+WS-Federation+sign-in+response+message+contains+an+unsupported+OAuth+parameter+value+in+the+encoded+wctx%3a+%27response_type%27%0d%0aTrace+ID%3a+f84db448-3696-4c61-ad72-9f9bcfe40100%0d%0aCorrelation+ID%3a+1036bd48-de5c-44c3-a07e-df95c8ab9a68%0d%0aTimestamp%3a+2017-09-28+05%3a34%3a31Z&state=https%3a%2f%2fsecure.eltropy.com_6Gs3E
Also, this issue doesn't come all the time. It works like 2 out of 10 times.

hi @vishesh04 , would you mind sharing the url SDK hits the oauth endpoint? I am expecting to see an url like:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?redirect_uri=<redirect_uri>&client_id=<app_id>&scope=profile%20openid%20https%3A%2F%2Fgraph.microsoft.com%2FUser.Read%20https%3A%2F%2Fgraph.microsoft.com%2FFiles.Read.All&response_mode=fragment&state=<>&nonce=kJbVI&response_type=id_token+token

Hi vishesh04,
If you're still experiencing this problem, please re-open this issue, and I'll investigate.
Thanks,
Zach


fix: Trim whitespace from --- lines

Causes markdownlint and other parsers to trip up on the yaml blocks

@nschonni : Thanks for your contribution! The author, @chliang, has been notified to review your proposed change.


Add a horizontal virtual scroll to NDataTable

Clear and concise description of the problem
Thanks for adding virtual scroll vertically to the DataTable. but there is a problem with scrolling, if there are many columns and rows, rendering takes a long time and a significant amount of memory is spent. Please add a horizontal virtual scroll.
there is a similar request, but for some reason it is closed https://github.com/tusen-ai/naive-ui/issues/1340.
Suggested solution
Expected API
<n-data-table
  :columns="columns"
  :data="data"
  virtual-scroll
  scroll-mode="['vertical', 'horizontal]"
/>

Alternative
for Example
https://vxetable.cn/#/table/scroll/fullCols
Additional context
https://github.com/tusen-ai/naive-ui/assets/72089109/835f41b1-7ae2-4ffc-bbac-402fa55b6f27
Validations

[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

This feature is already in the author's plans, and the specific release date is not yet certain

The author has completed the development and is expected to release the next version


Update documentation for Day2

Add Legacy/Balanced,100 mode: 896 x 504 @30FPS/15FPS

Docs Build status updates of commit 4680466:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/locatable-camera.md
:white_check_mark:Succeeded
View

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

@mattzmsft Hello Matt, I have updated the resolutions for day2.


build: add support for generating Android release

Based on https://facebook.github.io/react-native/docs/signed-apk-android.html
build:android:release - create a signed apk
android:release - install release version
android:signkey - generate signing key
P.S. It was cool to have a similar for iOS, but I do not have Mac, so it's done so far for Android.

@housseindjirdeh could we merge?