Implement schemas

We need to implement some schemas to get started.
A good starting point may be to implement schemas for TileLayer / GeoJSON layer.

@davidbrochart @brichet
About our file format, I'm thinking we could do the following:
{
  "layers": {
    "1234-1234-1": {"type": "TileLayer", "value": {"url": "https://...jpg"}},
    "1234-1234-2": {"type": "VectorLayer", "value": {"source": "5678-5678-1", "styling": {"stroke": "red"}}}
  },
  "dataSources": {
    "5678-5678-1": {"type": "VectorSource", "value": {[GEOJSON-format]}}
  },
  "layerGroups": {
    "group1": {"layers": ["1234-1234-1", "..."], "visible": false},
    "group2": {"layers": ["1234-1234-1", "..."]},
  }
}

Looks good.
It seems everything is indexed by UID except for the layer groups?
Should data sources be part of the file?

It seems everything is indexed by UID except for the layer groups

Right, we should probably indeed have UUIDs for groups too 👍🏽

Should data sources be part of the file?

Indeed it may be better to have data sources outside of the format.
An updated version of the above:
{
  "layers": {
    "1234-1234-1": {"type": "TileLayer", "name": "My Layer 1", "value": {"url": "https://...jpg"}},
    "1234-1234-2": {"type": "VectorLayer", "name": "My Layer 2", "value": {"source": "5678-5678-1", "styling": {"stroke": "red"}}}
  },
  "dataSources": {
    "5678-5678-1": {"type": "VectorSource", "value": {[GEOJSON-format]}}
  },
  "layerGroups": {
    "9876-9876-1": {"name": "group1", "layers": ["1234-1234-1", "..."], "visible": false},
    "9876-9876-2 {"name": "group2", "layers": ["1234-1234-1", "..."]},
  }
}

Yes, it looks good.
It may be better indeed to save the data sources outside. That would avoid duplication if a data file already exist, or if data comes from a URL.

We should look into SpatiaLite.

If we go closer to the maplibre design, our format could look like the following:
{
  "layers": {
    "1234-1234-1": {"type": "raster", "name": "My Layer 1", "source": "5678-5678-2"},
    "1234-1234-2": {"type": "line", "name": "My Layer 2", "source": "5678-5678-1", "styling": {"stroke": "red"}}
  },
  "sources": {
    "5678-5678-1": {"type": "geojson", "url": "./path/to/local.json"},
    "5678-5678-2": {"type": "raster", "url": "https://...jpg"},
  },
  "layerGroups": {
    "9876-9876-1": {"name": "group1", "layers": ["1234-1234-1", "..."], "visible": false},
    "9876-9876-2": {"name": "group2", "layers": ["1234-1234-1", "..."]},
  }
}

After discussion with @martinRenou, the groups may be the reference for the display.
This means that if some layers are not grouped, we should create a group of one element for each.
If we go in that direction, we should probably set the layerGroups as a list, to keep the groups order (and therefore the z-index).
{
  "layers": {
    "1234-1234-1": {"type": "raster", "name": "My Layer 1", "source": "5678-5678-2"},
    "1234-1234-2": {"type": "line", "name": "My Layer 2", "source": "5678-5678-1", "styling": {"stroke": "red"}}
  },
  "sources": {
    "5678-5678-1": {"type": "geojson", "url": "./path/to/local.json"},
    "5678-5678-2": {"type": "raster", "url": "https://...jpg"},
  },
  "layerGroups": [
   {"name": "group1", "layers": ["1234-1234-1", "..."], "visible": false},
   {"name": "group2", "layers": ["1234-1234-1", "..."]},
  ]
}

What do you think ?

After discussion with @martinRenou, the groups may be the reference for the display.
This means that if some layers are not grouped, we should create a group of one element for each.

I'm not sure about that. This means that each time a layer is added, it is also added as a single layer group?

If we go in that direction, we should probably set the layerGroups as a list, to keep the groups order (and therefore the z-index).

Maybe we could keep the layerGroups entry as a map of ID to group, where a group has a z-index attribute?

I'm not sure about that. This means that each time a layer is added, it is also added as a single layer group?

Yes, every layer should be in a group. Otherwise we would have to make distinction between the individual layers and the grouped ones.

Maybe we could keep the layerGroups entry as a map of ID to group, where a group has a z-index attribute?

That works too, I don't have a strong opinion on that.

Yes, every layer should be in a group. Otherwise we would have to make distinction between the individual layers and the grouped ones.

But let's say a user creates a layer group with just one layer. We now have two layer groups with the same layer, and we need to make a distinction that one is an implicit layer group, and the other is an explicit layer group. I'm not sure it is better.

We can make this transparent to the user so that the user does not know it's a group with one layer. If the user creates a group with one layer it will mostly be a no-op. It's really just for convenience for us on the display, so we just need to loop over the layer groups to meet every layer.

It's like in the QGIS data structure, you have access to the layer tree which contains all layers, which is the equivalent to our list of layer groups.

If the user creates a group with one layer it will mostly be a no-op.

What do you mean by "no-op"? It's a valid group, for instance a user could mark the layer as not visible in this group, or with a special transparency value.

It's like in the QGIS data structure, you have access to the layer tree which contains all layers, which is the equivalent to our list of layer groups.

I think that if we go that road we would need a layer group attribute that would flag this group as implicit, e.g. "is_layer": true. And these implicit layer groups would not be saved to the file, but rather created at runtime. For me it's really a convenience for the UI to treat every layer as a layer group for simplicity.

And these implicit layer groups would not be saved to the file, but rather created at runtime

If I understand correctly, we would lost the z-index with that, or should have a z-index on the layer itself, which seems a bit confusing (mixing z-index in groups and layers).

Yeah I think the z-index is just implicit with the tree/groups structure

I don't quite understand the notion of layer tree.

How about this instead:

Looks great, we assume that if the entry is a string it is an individual layer, otherwise it is a group. And the layer tree is a list in this schema.

I don't quite understand the notion of layer tree.

The idea is to be able to hide or perform other action on a group of layers.

Why aren't these layers a flat list of layers?

To allow creating groups. We can think about a scenario using a map and some layers in background, and have several groups displaying data that are not meant to be displayed together. Using groups, you can easily switch between the different data you want to display.

QGIS and felt both have the ability to group layers, I'm not sure how felt is structuring this but QGIS has a tree of layers.
In felt you can create groups to control visibility or other visual parameters to a set of layers, and to structure a bit more your file:
https://github.com/QuantStack/jupytergis/assets/21197331/3bd3c36c-9fb9-4cb0-9ef7-b2f2378f9bf4
A flat list of layers can quickly be unreadable if you have many layers, so being able to group them sounds like a basic feature to me

I know groups are useful, what I mean is that groups should just consist of a flat list of layers, but not a possibly nested list of layers and groups.

Having nested groups would be useful to users too, and it would not bring to much complication for us. So why not do it?

What's the use case, and how do you display nested groups?

It looks like felt does not support nested groups, but QGIS does:

What's the use case

Well:

Backround Data group 1

Streets and Buildings subgroup

Street lines
Building polygons
Historical buildings

Ocean
Whatever

Precipitation Forecast

display nested groups

I'd expect that reading through the tree would give us a natural z-index?

QGIS does

I think that's an important point, if we want to support QGIS files

OK, makes sense. If the UUIDs in the layer tree can be layers or layer groups, let's make sure we don't end up with recursion :smile:

Yeah.. We need to make sure the GUI never creates such broken file, but we cannot stop people from manually editing the file and making mistakes. Proper error handling is all we can do.

I'm trying to build the nested schema but this creates an expected object.
IIUC we have:

the LayerTree, a list of string or LayerGroup
the LayerGroup, an object with (at least) name and layer (which should be a LayerTree)

The tree and group calls each others.
So I added the layerTree in the content:
"layerTree": {
  "$ref": "#/definitions/jGISLayerTree"
},

and in the definitions, I added:
"jGISLayerGroup": {
  "title": "IJGISLayerGroup",
  "type": "object",
  "additionalProperties": false,
  "required": ["name", "layers"],
  "properties": {
    "name": {
      "type": "string"
    },
    "layers": {
      "$ref": "#/definitions/jGISLayerTree"
    },
    "visible": {
      "type": "boolean"
    },
    "parameters": {
      "type": "object"
    }
  }
},
"jGISLayerTree": {
  "title": "IJGISLayerTree",
  "type": "array",
  "default": [],
  "items": {
    "oneOf": [
        {"type": "string"},
        {
          "type": "object",
          "$ref": "#/definitions/jGISLayerGroup"
        }
    ]
  }
}

When building it, I have an additional IJGISLayerGroup1, probably because of recursion.
export type IJGISLayerTree = (string | IJGISLayerGroup)[];
export interface IJGISLayerGroup {
  name: string;
  layers: IJGISLayerTree;
  visible?: boolean;
  parameters?: {
    [k: string]: any;
  };
}
export interface IJGISLayerGroup1 {
  name: string;
  layers: IJGISLayerTree;
  visible?: boolean;
  parameters?: {
    [k: string]: any;
  };
}

Don't know how to properly declare it.

Maybe there should only be LayerGroup, an object with name and layers, which should be a list of strings (individual layer UUID) or layer groups. And there would be an implicit root layer group (maybe with an empty name).

Maybe there should only be LayerGroup, an object with name and layers, which should be a list of strings (individual layer UUID) or layer groups. And there would be an implicit root layer group (maybe with an empty name).

Looks good, thanks


Row should be dict not list

Would it make sense for rows to behave like dictionaries instead of lists? I would love to be able to do key based field retrieval, instead of index based.

PR #268 looks like a great solution, and for me at least would make tablib much more useful. Is this being considered for merge? Given the change to Dataset.__getitem__ return type, I understand this is not a simple decision to make, but I think it would be beneficial.
If the change is considered too breaking, how about leaving __getitem__ return a tuple as currently does, but adding a Dataset.get_row(i) which returns the Row instance (just to prevent having to access Dataset._data directly)? It's a bit clunky, but avoids all backward-compatibility issues while still providing a way to access row data by column name.

Good point - I think we could get around the breaking issue in #268 by placing the logic of #268 behind the Dataset.dict API (less expensive than running _package each time) while continuing to return tuples for plain vanilla __getitem__ access.  Will be a few weeks until I have some time for this again but will look into amending #268.


[Sensor] Fix hab-lab examples to work with Hierarchical SensorSpec changes

Motivation and Context
See: https://github.com/facebookresearch/habitat-sim/pull/1090
PR#1090 in habitat-sim introduces a Hierarchical SensorSpec to match the new sensor framework for VisualSensor.

SensorSpec::create() is no longer used, use correct SensorSpec initialization to create correct sensor, such as CameraSensorSpec::create().
This PR fixes examples to use CameraSensorSpec() to initialize sensorSpecs, and calls sim_utils.make_sensor_specs() to initialize sensors from a dictionary.
How Has This Been Tested
Build and test locally
Types of changes

Docs change / refactoring / dependency upgrade
Bug fix (non-breaking change which fixes an issue)

Checklist

[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have completed my CLA (see CONTRIBUTING)
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

I started doing that here: https://github.com/facebookresearch/habitat-lab/pull/533

Looking forward for this change.

Want to let @erikwijmans to take a look at this before merging. Otherwise, looks good to me. We may want to add an error to upgrade habitat_sim though.


Quantize weight

I have a question on quantize weight code you posted in Quant_guide.md. What if the absolute value of max_value or min_value is less than 1? In that case, int_bits would be negative... I was so confused about that snippet. Could anybody explain that a little bit more to me ? Thanks

@XiangZheng2017
In the quantization process, how to get the value of the quantization ranges -- act_max in quant_test.py .
Where do you get the specific value of the parameter act_max ( x 0 0 0 0 0 0 0 0 0 0 0 ) ?


Setup public access to DVC assets

In order for everyone to be able to access DVC assets and appeareces snapshots, allow public access on the bucket somehow
A few things to consider

https://www.reddit.com/r/aws/comments/99ird9/is_it_safe_to_have_an_s3_bucket_with_private
Is S3 throttling a possible solution to avoid incurring into big costs buts still allowing public access?
AWS Bugdet actions seem to be way to go for implementing a security shutdown of the bucket access if traffic increases too much here
This

AWS Budget actions does not support triggering a change in the ACL of an S3 bucket (the way to change the status of a bucket from public to private). Explore the option of setting up a simple lambda that subscribes to AWS Budget events to do the thing. Useful resources

Setting up a lambda with Terraform (link)
Setting up a subscription from SNS to a lambda with Terraform (link)
Lambda deployment packages (link)
Lambda development tools (link)
Terraform example (link)

Though still a nice to have feature, I do not see it as a priority for the near future considering that #44 enables users to request access to the backend by simply raising a PR.
A short documentation section for self-granting access to DVC assets can be found in the README.

One option we did not consider enough is to setup a Cloudfront distribution to enable HTTP based access, and use some rate-based rules to limit the number of requests, for example, per IP.


feat: port CategoryTheory.Additive.Basic

bors r-

bors r+

bors r-

The problem with simpNF appears to be https://github.com/leanprover/lean4/issues/2055; cf. #2769

I'm going to remove awaiting-review and add blocked-by-core-PR, as it seems we won't be able to merge this until there's a fix for https://github.com/leanprover/lean4/issues/2055. If you think of a way around this, please feel free to update the labels.


[DBM] bump go-sqllexer to 0.0.13

What does this PR do?
This PR bumps go-sqllexer package to v0.0.13 to fix a bug in PostgreSQL SELECT .... ONLY ... statement where keyword ONLY is wrongly collected as a table name.
Motivation
https://datadoghq.atlassian.net/browse/DBMON-4373
Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge


fix(net): Fix handshake timing and error handling

Motivation
Zebra's connection handshake code might be able to hang, it can panic silently, and initial connections are all happening at the same time.
I found these when investigating ticket #4581.
Solution

Actually add a delay between spawning initial handshakes
Forward panics in the handshake code to the calling task
Wrap the entire handshake in a timeout, not just some network communication

Review
These bug fixes can go in whenever we're ready, they're not urgent.
Reviewer Checklist

[ ] Code implements Specs and Designs
[ ] Tests for Expected Behaviour
[ ] Tests for Errors

@mergifyio update


Optimize bundled size

I'm using styled-components, and am really happy with it. Currently I'm trying to get my app's bundle size down, and styled-components is among one of the bigger packages. When bundled with webpack, it's 90.6kB minified (just for styled-components, including some webpack overhead).
When compared with the 167kB for a minified bundle containing almost all my other vendor libs:
      'date-fns',
      'history',
      'load-script',
      'normalize.css',
      'normalizr',
      'react',
      'react-helmet',
      'react-dom',
      'react-medium-image-zoom',
      'react-redux',
      'react-router',
      'react-router-dom',
      'redux',
      'redux-thunk'

styled-components seems fairly heavy.
I still think it's worth it, but I'm wondering whether there's any known optimizations specific to styled-components for getting its bundled size down (outside of general stuff like gzipping, SSR, etc., which is of course not a styled-components specific issue). Any thoughts on this? Worth putting on the roadmap for a future version?

It's definitely on the roadmap for v2. We have a new parser which is much smaller and @philpl is currently developing a new babel-plugin which will remove the need of a run time parser completely. You can try is out with npm install styled-components@next and https://github.com/styled-components/babel-plugin-styled-components.

@k15a Great, that's good to hear! Will definitely try the v2 branch. Do you expect a lot of api changes for v2, compared to where it's at now? Because I might just switch my build over now if it works for me.

We expect that v2 will be backwards compatible for most of the apps.

@k15a , cool, thanks for the quick replies!

@k15a One final question. When checking out what makes up for styled-components' bundled size with Webpack Visualizer (https://chrisbateman.github.io/webpack-visualizer/) I get the following results:
styled-components-bundle total size:

part of that bundle which actually contains styled-components:

remaining space usage of that bundle:

Just to make sure, this isn't normal when bundling styled-components right? I assume react isn't a direct dependency. Any idea if this is related to styled-components? Because if not, I'm assuming that this is a webpack 2 bug (which should deduplicate react from this bundle, as it's already in a vendor bundle).

IIRC Webpack Visualizer is reporting the bundle sizes before any plugin is executed so nothing is minified or deduplicated here. You might checkout https://github.com/th0r/webpack-bundle-analyzer which is a similar tool but more accurate.
As far as I know React isn't bundled with styled-components so there shouldn't be any duplicate React code here.


When sending chunked requests, allow chunk body iterator to format chunks on its own

I'm working with a service that wants me to upload chunked requests with chunk extensions -
appending a signature for each chunk in the chunk header, e.g.
PUT /foo
... headers..

4;CUSTOM_CHUNK_EXTENSION\r\n
Wiki\r\n
5;CUSTOM_CHUNK_EXTENSION\r\n
pedia\r\n
0;CUSTOM_CHUNK_EXTENSION\r\n
\r\n

I think the easiest way to accommodate this would be with a kwarg like PoolManager.request(body=chunk_iterator, raw_chunks=True). This would optionally delegate the responsibility for formatting the chunks to the body iterator.

Thanks for this suggestion!
Chunk extensions are comfortably the least-deployed part of HTTP/1.1: they are so infrequently used that there is no specified way to translate them into HTTP/2, which had a mandate to represent everything representible in HTTP/1.1.
This makes me extremely disinclined to add a top-level API hook for this: you may literally be the only person in the Python community who has ever or will ever need it. You should be able to get around this by setting the Transfer-Encoding: chunked header and then passing a file-like object that does the chunking on read() calls: have you tried that?

From what I can tell, the read() buffer size is hardcoded to 8192 in https://github.com/python/cpython/blob/master/Lib/http/client.py#L961. I need chunks of a larger, configurable size.
While HTTP 2 drops chunked encoding, it does replace it with data frames, which seem very similar and more configurable. The application I'm talking to doesn't (yet?) support HTTP 2, but it does use chunk extensions as the only way to support streaming, and it's one of the largest APIs in the world (and probably the largest by data volume), so here we are.
In general, I wonder how much the lack of adoption of chunked encoding in general has contributed to bufferbloat in general. Hopefully HTTP 2 data frames will help with that.
I understand the reluctance to add this as a top level kwarg, but I would reiterate my feature request to have some way to take control of the chunk formatting. So far the workaround I've come up with is passable, but not very straightforward:
class ChunkingHTTPSConnection(urllib3.connection.HTTPSConnection):
    def request_chunked(self, method, url, body=None, headers=None):
        self.putrequest(method, url, skip_accept_encoding=True)
        for header, value in headers.items():
            self.putheader(header, value)
        self.endheaders()
        for chunk in body:
            self.send(chunk)

class ChunkingHTTPSConnectionPool(urllib3.HTTPSConnectionPool):
    ConnectionCls = ChunkingHTTPSConnection

def get_pool_manager(**kwargs):
    pool_manager = urllib3.PoolManager(**kwargs)
    pool_manager.pool_classes_by_scheme["https"] = ChunkingHTTPSConnectionPool
    return pool_manager

pool_manager().request(..., body=chunk_iterator, chunked=True)

Your chunk size is orthogonal to the read() size. You can just read out the partial chunk data as you go. There is no requirement that one read() call provide a  complete chunk.

As to the idea that DATA frames are "similar but more configurable", they are not. They are exactly the same as a single block of chunked encoding, with no room for chunk extensions. To define chunk extensions requires defining an extension to HTTP/2 itself, and once you do that you need to get all other implementations to agree to implement it.
Put another way, chunk extensions in HTTP/1.1 are part of the core spec: in HTTP/2 they are not.

OK, I see what you mean with the read() solution. Yeah, that sounds like it should be more straightforward.
I guess I wasn't very clear with what I was saying about data frames. I'm not an HTTP 2 expert, but I was thinking that by making data frames the default way to send request/response bodies, HTTP 2 is promoting streaming to a higher support status than HTTP 1.1 (where many servers and clients don't support it). And I recognize that chunk extensions are an obscure feature (I'm only working with them because the API requires it), but I imagine in HTTP 2 an equivalent implementation would push that information into the internal app-specific format of each data frame.

So to be clear, I am 100% in favour of streaming and chunked encoding. The Python client tools have had much stronger support for chunked encoding for longer than in most language communities. My objection is specifically to chunk extensions, which have barely been deployed anywhere and are not present in their same "metadata" role in HTTP/2. I'd encourage anyone with APIs that use them to structure that API differently.
Regardless, it seems we have a solution, so for now I'm going to close this. Thanks for your suggestion!


Add search within a transcript back

Done when
-[ ] there is a search bar in the transcript viewer to search for a string within the transcript

Note to self: Going with High on the effort because one of the things that made this easy to do on AAPB was to not serve the transcript via an iframe but to put the actual text of the transcript in to the page. May need to rewrite the infrastructure of OV to do this as well.


BFM cleanup

This PR completes the BFM work as part of the build system update.

this PR fixed both Astyle and Clang Tidy which were not working since the merge of the repos.


Update Compute policies

added JSON notes stating why JSON left empty for a couple of policies.
Added one more policy with capabilities detection
Description

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate)

Types of changes

Bug fix (non-breaking change which fixes an issue)
New feature (non-breaking change which adds functionality)
Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes if appropriate.
[ ] All new and existing tests passed.

@ebeuerle 💪  🙏

@ebeuerle 💪  🙏

Thanks Eddie.
something broke some of the toggles between rego and json, so i'm sending another PR in a few minutes to bring them back.
This looked good in my local yarn start when I sent it over... 🤷♂

Thanks Eddie.
something broke some of the toggles between rego and json, so i'm sending another PR in a few minutes to bring them back.
This looked good in my local yarn start when I sent it over... 🤷♂


Do you use any gradle plugin to generate source code from thrift IDL

As title said, how do you generate java code from thrift IDL, manually or other automation tips while you use gradle to as the build tool?

We do not use a plugin but just define a task. See here. You can also consider using one of the plugins listed here

thanks @trustin , you are so active, I really want to apply the armeria to my product in the near future. more questions will be raised in future,  thanks for you patience.

@eonezhang I appreciate your interest. Let me look forward to your further questions. Also, please consider promoting Armeria to your colleagues and friends! ;-)

@trustin sure, now team is comparing gRPC with Armeria, and I saw Armeria is easy to integrate with  gRPC, and other team members find some spring-boot-grpc-starter for gRPC, I'm trying to find out the way Armeria work with.
and the api gateway is also a trouble, for old browsers only json is supported, thrift and protobuf were limited, we need to move on.

I'm not familiar with the Zuul gateway, but I'm finishing up work on a protobuf-json compat library that is many times faster than the official one, so I can use it to give proper grpc+json support to armeria. Hopefully that will help :)

@anuraaga Way to go!

@anuraaga sound very cool, @trustin  I hope in near future, I could contribute to Armeria ;-)


Convert to es6 IIFEs?

https://github.com/GoogleChromeLabs/howto-components/blob/079d0fa34ff9038b26ea8883b1db5dd6b677d7ba/elements/howto-toggle-button/howto-toggle-button.js#L16
Curious how the IFFE style was decide upon? i.e. using:
(function() {

vs
;(() => {

Seems to be pretty comparable performance and this is equally supported now - no?
https://jsperf.com/iffe-es5-es6

I have never really considered using Far Arrow Functions (FAFs) for IIFE, but I’ll do that now 😄
Pros:

Saving a couple of bytes

Cons:

Confusing to people not too familiar with FAFs (even to me it looks more like a random series of symbols than a readable expression)
Potential foot gun if this ever comes into play

Anything you’d like to see added to the list?
Honestly, I don’t see a lot of reason to have a strong opinion here. Ideally we’d be using ES6 modules anyways, so we could drop the IIFE altogether.

+1 for ES6 modules. I'm perfectly OK with waiting for this if that is the preference!
Just saw the old IIFE syntax and was a bit confused given the other ES6. I'll close this issue given the understanding you are moving to modules soon!


initial project creation

@adambkaplan Is this what you had in mind for https://issues.redhat.com/browse/BUILD-127 or something more extensive?  This should at least allow us to pass/merge the CI stuff in openshift/release

This is what I have in mind - we start with a "Hello World" binary and set up our CLI/olm around that.


Spike - More than 1/2 of our users use Python environments that are of type unknown

To improve the overall extension we need to understand what this unknown is.

Its possible environments are not getting activated when they can?

This could impact debugging, linting, running code in terminal, etc.

Its possible these are users using plain python installations that cannot be activated, in which case setting path variable in shell will ensure the right environment will get picked when user types python (we have an issue for this)
Avoids confusions arising from interpreter type being labeled as Unknown in captured telemetry.

Note:

Global python installations could fall into this category (/usr/bin/python)
Python installations in C:/Program Files/Python/python.exe or similar) could fall into this category

Suggestions:

When an interpreter is identified as unknown we should:

Check if the path is /usr/bin/python or <Program Files>/Python/python.exe or <User dir>/App Data/.... or similar (is this a standard install of python?)
Does the name virtualenv or similar exist in the path? (indicates we haven't been able to identify a conda environment, hence indicative of a bug/room for improvement.)
Does the name conda exist in the path? (indicates we haven't been able to identify a conda environment, hence indicative of a bug/room for improvement)
Does the name miniconda exist in the path? (indicates we haven't been able to identify a conda environment, hence indicative of a bug/room for improvement)

Where is this environment?

In program files directory
In workspace directory
In users home directory
Other special paths..

Whats the break down of these unknowns:

Version of Python
Type of OS

What next :

Later depending on which categories these unknown environments fall into we could take additional actions:

E.g. if it exists in a conda dir but identified as unknown, we can prompt user to send additional information for diagnostic purposes?
E.g. if it exists in a virtual env dir but identified as unknown, we can prompt user to send additional information for diagnostic purposes?

We should verify this as we roll out #12020


Extract spatially local sub-templates from Template instances

This is based on #317.
This PR introduces several things to the Template hierarchy. First, a few details:

Remove pass from abstract methods bodies
Introduce a RectangularTemplate class that inherits from Template and provides a default implementation of get_midline_plaquettes for Template instances with a rectangular form (e.g. all the templates in tqec.templates.qubit).

Now the main 2 changes:

Introduction of a GridTemplate that allows to quickly represent a grid of several identical RectangularTemplate instances.
Introduction of a get_spatially_distinct_subtemplates function that computes, from a template, all the spatially-local plaquette arrangements found.

A little bit more on get_spatially_distinct_subtemplates. It takes an array obtained from calling Template.instantiate on any Template instance, a radius (using the Manhattan distance), and compute all the plaquette arrangements that are found in the instantiation with the provided radius.
For example, a radius of 1 would lead to "sub-template" looking like (c being the center of the ball of radius 1):
x x x
x c x
x x x

whereas a radius of 3 would lead to
x x x x x x x
x x x x x x x
x x x x x x x
x x x c x x x
x x x x x x x
x x x x x x x
x x x x x x x

Now with a real example, the following code
from tqec.templates.qubit import QubitTemplate

template = QubitTemplate(k=2)
situation, mapping = template.get_spatially_distinct_subtemplates(1)

print("Full map:")
display_template_from_instantiation(situation)
for i, subtemplate in mapping.items():
    print(f"Subtemplate {i}:")
    display_template_from_instantiation(subtemplate)

outputs:
Full map:
  1  2  4  6  3  5
  7 12 14 16 13 15
  9 18 21 28 24 33
 11 20 28 21 31 26
  8 17 22 29 25 34
 10 19 30 23 32 27
Subtemplate 1:
  .  .  .
  .  1  5
  .  7  9
Subtemplate 2:
  .  .  .
  1  5  6
  7  9 10
Subtemplate 3:
  .  .  .
  5  6  2
  9 10 11
Subtemplate 4:
  .  .  .
  5  6  5
  9 10  9
// Cut for readability
Subtemplate 16:
  6  5  6
 10  9 10
  9 10  9
Subtemplate 17:
  7  9 10
  8 10  9
  3 13 14
// Cut for readability
Subtemplate 33:
 10 11  .
  9 12  .
 10 11  .
Subtemplate 34:
 10 11  .
  9 12  .
 14  4  .

In theory, if we ignore 0 entries in the sub-templates (represented by . above), we should recover exactly the template instantiation by superimposing on each entry of the "Full map" printed first the corresponding sub-template.
The goal of implementing such a procedure is to be able to list exhaustively the spatially-local sub-templates that we have to consider in order to compute detectors involving measurements in the center plaquette of such sub-template.
What is interesting in this approach is that if we now use a way larger Template such as
from tqec.templates.qubit import QubitTemplate

template = QubitTemplate(k=100)  # << WAY LARGER
situation, mapping = template.get_spatially_distinct_subtemplates(1)

print("Full map:")
display_template_from_instantiation(situation)
for i, subtemplate in mapping.items():
    print(f"Subtemplate {i}:")
    display_template_from_instantiation(subtemplate)

the number of distinct spatially local sub-template is still 34, and we have in the variable situation a description of where these sub-templates are.
One of the issue I still have is about naming: I do not like the naming of situation to describe a 2-dimensional array filled with sub-template indices, but I cannot find something better. Do anyone have an idea?

Is this output correct? Why is the subtemplate centered at 1 is:
.  .  .
.  1  5
.  7  9

instead of
.  .  .
.  1  2
.  7  12

Is this output correct? Why is the subtemplate centered at 1 is:
.  .  .
.  1  5
.  7  9

instead of
.  .  .
.  1  2
.  7  12

It is correct because the QubitTemplate.instantiate method
from tqec.templates.display import display_template

template = QubitTemplate(k=2)
display_template(template)

returns
  1  5  6  5  6  2
  7  9 10  9 10 11
  8 10  9 10  9 12
  7  9 10  9 10 11
  8 10  9 10  9 12
  3 13 14 13 14  4


[Gally]: master <- dev

Automatically created by Git-Ally

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


"Step over/next" command often performs "continue" in ruby 2.6

With ruby 2.6.3 and ruby-debug-ide (I use Netbeans 11), I find that the 'Step Over' command often just continues until the next breakpoint. 'Step Over' works fine in ruby 2.5.5.
These issues might be related:
https://github.com/deivid-rodriguez/byebug/issues/550
https://github.com/googleapis/google-cloud-ruby/issues/3022
Quoting from the latter:

Ruby 2.6 changed the behavior of TracePoint with regard to line tracing at the beginning of a method. The Debugger code sometimes responds to a call tracepoint by enabling a line tracepoint. In Ruby < 2.6, this works and allows the first line in the method to trigger the line tracepoint. However, in Ruby >= 2.6, the first line in the method does not trigger the new tracepoint. (This happens only if the line tracepoint was only activated inside the call tracepoint's callback. If the line tracepoint was active previously, then it properly triggers on the method's first line.)

I don't know if this might be related to the TracePoint changes listed here: https://rubyreferences.github.io/rubychanges/2.6.html#tracepoint-improvements

@rockorequin Could you provide a sample script to reproduce the problem?

This script shows the problem for me: with 2.6.3p62, if I put a breakpoint on the line "k = DateTime.parse..." line and then do a 'next' when it hits that line, instead of stopping on the "puts" line, the code stops at ruby-debug-ide.rb#101, ie the line saying: if bt && !bt.is_a?(SystemExit).
require 'rails'

class Test
  def a
    k = DateTime.parse('2019-1-1').to_date.end_of_day
    puts "Hello!"
    k + 1.day
  end
end

j = Test.new.a

@ViugiNick Did you have any luck reproducing this?

Fwiw, I tried ruby 2.7.0-preview1 and it seems that it doesn't have this problem, so maybe it's a bug in the underlying ruby-2.6 tracepoint API.

@rockorequin looks like you are right. Are you ok with using 2.7.* or should I try to fix this for 2.6.*?

@ViugiNick Personally I'm fine with using 2.7 for now or I can go back to 2.5 if 2.7 breaks something down the line. Perhaps it could be noted as a known issue with 2.6 in the readme?

I think the byebug maintainer figured out the issue with 2.6, and 2.6.4 might fix:
https://github.com/deivid-rodriguez/byebug/issues/550#issuecomment-525921168

I can confirm. I just upgraded from 2.6.3 to 2.6.5 and the problem with debase and "step over" is gone. I think this issue can be closed :)


Showing an error message popup when adding a new consent purpose

Describe the issue:
When adding a new consent purpose from the management console, an error message popup with the error Error while loading claim info. Error: null is shown for a very short time. The consent purpose gets successfully added and the success message is also shown.
How to reproduce:

Login to management console
Click on the Add button under Consent Purposes in the Manage section in the Main tab
Fill the required fields and click Finish (Close the warn log about not having email address as a PII category)

Expected behavior:
The error message should not be shown if the consent purpose is added successfully.
Environment information (Please complete the following information; remove  any unnecessary fields) :

Product Version: IS 6.0.0-alpha2
OS: Linux

https://user-images.githubusercontent.com/36252628/177149606-97b29f9a-adfe-41fd-9ac9-6919a3c2de6e.mp4

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


TestAsyncProber/single_pod is flaky

=== RUN   TestAsyncProber/single_pod
    logger.go:130: 2021-12-16T14:17:21.675Z	DEBUG	prober/prober.go:63	Sending probe request	{"scope": "prober", "pod.metadata.name": "p1", "address": "http://<IP_ADDRESS>:41019/b1/b1"}
    logger.go:130: 2021-12-16T14:17:21.679Z	DEBUG	prober/async_prober.go:128	Probe status	{"scope": "prober", "pod.metadata.name": "p1", "address": "http://<IP_ADDRESS>:41019/b1/b1", "status": "Ready"}
    logger.go:130: 2021-12-16T14:17:21.679Z	DEBUG	prober/async_prober.go:102	Skip probing	{"scope": "prober", "pod.metadata.name": "p1", "address": "http://<IP_ADDRESS>:41019/b1/b1", "status": "ready"}
    assertion_compare.go:323:
        	Error Trace:	async_prober_test.go:143
        	Error:      	"0" is not greater than or equal to "1"
        	Test:       	TestAsyncProber/single_pod
        	Messages:   	[]
    --- FAIL: TestAsyncProber/single_pod (2.09s)

Closing for now, since I haven't seen this issue for a while


Create dataset loader for Local ID Abusive

NusaCatalogue: https://indonlp.github.io/nusa-catalogue/card.html?local_abusive

Dataset
local_abusive

Description
Local ID Abusive is dataset aimed to be used for abusive and hate speech detection available in Javanese and Sundanese. The Javanese and Sundanese were annotated manually by annotator from each region. The annotation process involved multiple-step processes. It was carried by two annotators for each language, after an initial step where the guidelines were discussed and refined to reach unanimous comprehension. The annotation process gives 3449 and 2207 tweets for Javanese and Sundanese dataset respectively with 100% agreement.

License
Unknown

#self-assign


Get-IssuedRequest enhancements proposal

Get-IssuedRequest and related commands are missing some useful parameters and defaults.
Suggesting sorting descending on RequestID
Default sort order in ADCS database is ascending RequestID. When dealing with small databases it is inefficient to read all entries and sort using PowerShell, dealing with large databases this is impossible as the command always times out or has to return thousands of objects before results can be sorted.
$RColumn = $CAView.GetColumnIndex($False, "RequestID")
$CaView.SetRestriction($RColumn,[CVR.SEEK]::NONE,[CVR.SORT]::DESCEND,0)

Suggestion to default limit to last 30 days
When dealing with large amount of certificates, it would be helpful to retrieve only x amount of days. Though it it is possible to limit using -filter parameter, a parameter like -days with default of 30 would simplify the usage. Setting to 0 would allow retrieving without limits.
Having said this, the relevant date may differ between the queried table (Request.SubmittedWhen,Request.ResolvedWhen,Request.RevokedEffectiveWhen).
When considering adding this parameter, a hint should be displayed that the results are limited to x days.
Suggestion add sort parameter
-Descending PropertyName
-Ascending PropertyName
Suggestion to add parameter to retrieve last request
-lastRequest
certutil supports "RequestId==$" to retrieve the last request. The current -filter parameter does not suppor this.
More PowerShell like would be a paramter like -lastRequest to get the last issued / failed / pending request.

I didn't implement sorting, because it is not supported for all columns. Only indexed columns with blittable (or convertible to integral) data types support sorting. This may be somewhat complex to users who are not much faimilar with CA database details. Only if I limit sorting by RequestID column (which will be hardcoded). I don't know how else I can fix potential usability issues.

Suggestion to add parameter to retrieve last request

may be a good thing to add. Though, if sorting will be implemented, last request could be retrieved by using filters:
Get-IssuedRequest -CA $ca -Filter "RequestID -le $([int]::MaxValue)" -PageSize 1 -Descending

or something like this. BTW, didn't know that certutil has this syntax.

Suggestion to default limit to last 30 days

this won't solve timeout issues in case when database is bloated in a given period. I suggest to use -PageSize parameter to limit the number of output rows. In order to dump large database without getting timeout, I suggest to do it in chunks:
$Page = 1
$PageSize = 10000 # Maybe it can be 50k, or even 100k. Need to profile each particular instance. 10k is just a safe example
do {
    $i = 0
    Get-IssuedRequest -CA $ca -Page $Page -PageSize $PageSize | ForEach-Object {
        $i++
        $_
    }
    $Page++
} while ($i -eq $PageSize)

Using this technique you can dump any CA database pretty efficiently (in terms of resources and execution time).

I didn't implement sorting, because it is not supported for all columns.
This could be solved by defining enumerations of properties which support sorting like -Desc <EnumSort-AbleProperty>. This way the user can only select  sort-able properties. As sorting only works for one property, it shouldn't be too complex. AND for those who don't understand, they can still use PowerShell and wait longer ;-)

Though, if sorting will be implemented, last request could be retrieved by using filters
'Get-IssuedRequest -CA $ca -Filter "RequestID -le $([int]::MaxValue)" -PageSize 1 -Descending'

True, but more complex than
'Get-IssuedRequest -CA $ca -LastRequest'

this won't solve timeout issues in case when database is bloated in a given period.
You are right. I implemented this in an older "PowerShell" only PSPKI lokal fork as paging wasn't implemented. So paging is the better approach.

This could be solved by defining enumerations of properties which support sorting like -Desc .

seems reasonable. Can we move this into separate issue item?

True, but more complex than

I don't see much value in this. If previous item will be implemented, then this syntax could be used:
Get-IssuedRequest -CA $ca -OrderByDescending RequestID -PageSize 1

And no need to implement extra "-FirstRequest" and "-LastRequest" or whatever else.

So paging is the better approach.

it is technically possible for me to wrap existing code in loops, so I internally query CA database in chunks, but this will be incompatible with sorting, because I'm not sure how the query is executed internally. If sorting performed only on result set, this may be fine, but if it requires whole database sorting, this will negatively affect query performance. For now, I'm not sure if it is common to dump entire database. Of course, there are rare cases when you need this, but writing a tiny loop for this particular operation is not a huge overhead.
From all three enhancement requests I agree on sorting only.

one out of three, that sounds good to me :-)

Features are selected and placed in separate working items.


IE11 List of Jobs Not Shown Access-Control-Allow-Origin Header Issue

The list of jobs are not displayed when using Internet Explorer 11.
Current behavior
When running the career portal on IE11, the list of jobs does not show up.
Expected behavior
I expect the list of jobs to show up like it does for Chrome etc.
Steps to replicate behavior

This can be seen in localhost, you just need to build the application, and then serve it.
Open up in IE11. You still see the sidebar but no list of jobs. In the console you see the errors:

SEC7120: Origin http://localhost:3000 not found in Access-Control-Allow-Origin header.
SCRIPT7002: XMLHttpRequest: Network Error 0x80700013, Could not complete the operation due to error 80700013.
Screenshots
Current

Expected

The serving strategy has changed in Career Portal V3 and uses angular-cli


Rprop Fix

Fixes #1417
Remove unnecesary max_step not zero check that modified the gradient. Based on algorithm here: https://pytorch.org/docs/stable/_modules/torch/optim/rprop.html#Rprop

The results for the code submitted by the issue owner: https://github.com/dotnet/TorchSharp/issues/1417#issuecomment-2503580509 are here:
current_version.txt
after_fix_results.txt


how to hide selenide descriptive messages on console

Hello Guys,
I am wondering how to hide Selenide descriptive messages when compiling and run selenide test from the console using Maven.
I need only my messages to appear which were written in the test.

@hana9090 hi!
Please specify which message you mean.

such like these:
Running sa.vanilla.test.logintest.firefox.Vanilla_Login_successfully
Mar 03, 2016 9:54:16 AM com.codeborne.selenide.webdriver.WebDriverFactory create
WebDriver
INFO: BrowserName=firefox Version=44.0.2 Platform=WINDOWS
Mar 03, 2016 9:54:16 AM com.codeborne.selenide.webdriver.WebDriverFactory create
WebDriver
INFO: Selenide v. 3.2
Mar 03, 2016 9:54:16 AM com.codeborne.selenide.webdriver.WebDriverFactory create
WebDriver
INFO: Selenium WebDriver v. 2.50.1 build time: 2016-01-29 11:11:26
Mar 03, 2016 9:54:16 AM com.codeborne.selenide.impl.WebDriverThreadLocalContaine
r createDriver
INFO: Create webdriver in current thread 1: firefox -> FirefoxDriver: firefox on
 WINDOWS (b6b95c38-e0bf-4adc-ba01-2f7c2f1b5b3f)
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 108.981 sec <<<
FAILURE!

You can change it with your general log4j configuration. E.g. Set log level to WARN, or exclude classes that you dont want to log.
Viele Grüße
Alexei Vinogradov
Sent from mobile phone

Am 03.03.2016 um 10:02 schrieb hana9090<EMAIL_ADDRESS>such like these:
Running sa.vanilla.test.logintest.firefox.Vanilla_Login_successfully
Mar 03, 2016 9:54:16 AM com.codeborne.selenide.webdriver.WebDriverFactory create
WebDriver
INFO: BrowserName=firefox Version=44.0.2 Platform=WINDOWS
Mar 03, 2016 9:54:16 AM com.codeborne.selenide.webdriver.WebDriverFactory create
WebDriver
INFO: Selenide v. 3.2
Mar 03, 2016 9:54:16 AM com.codeborne.selenide.webdriver.WebDriverFactory create
WebDriver
INFO: Selenium WebDriver v. 2.50.1 build time: 2016-01-29 11:11:26
Mar 03, 2016 9:54:16 AM com.codeborne.selenide.impl.WebDriverThreadLocalContaine
r createDriver
INFO: Create webdriver in current thread 1: firefox -> FirefoxDriver: firefox on
WINDOWS (b6b95c38-e0bf-4adc-ba01-2f7c2f1b5b3f)
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 108.981 sec <<<
FAILURE!
—
Reply to this email directly or view it on GitHub.

+1 It's just a configuration issue.
Just configure log4j or JUL properly.
See http://selenide.org/2015/07/27/selenide-2.20

Hi vinogradoff
How to do that? how to access log4j ?

Hello Andrei,
I didn't know exactly how to get this done. and the link shows how to change the log format, but I need to remove all log messages or customize them.
thanks

@hana9090 Well, do you use some logging framework already?
I mean, do you use log4j, slf4j or Logback?
If not, you can configure java logging as described here:

Add JVM option: -Djava.util.logging.config.file=C:\Temp\logging.properties
Create file logging.properties contining something like this:

handlers=java.util.logging.ConsoleHandler
.level=INFO
com.codeborne.selenide.level=SEVERE

Thanks Andrei,
now the logging for selenide is disappeared for successful tests, but for unsuccessful tests, No still there are logs appeared, can you please help me to hide them as well.
Note: I run Selenide under maven, hide maven logs by call tests by -q.
such like this:

@hana9090 Hei,
actually I have no idea why you want to hide them. It's a normal output of tests run. People typically do want to see it.
Anyway, the question is not Selenide-related. It's about hiding test output from JUnit in Maven. Try to google it.

Just in case, anyone landing here, if you have created maven project using selenium plugin for intellij idea all you need is:
put src/test/resources/simplelogger.properties with contents like:
org.slf4j.simpleLogger.log.com.codeborne.selenide=error
org.slf4j.simpleLogger.log.io.github.bonigarcia=error
org.slf4j.simpleLogger.log.com.mynamespace=debug

this will show only errors from selenide and all possible logs from your com.mynamespace package
so now in your tests you can:
class MyTest {
  private static final Logger Log = LoggerFactory.getLogger(MyTest .class);

  @Test
  void filterAgeCheck() {
    Log.debug("Going to click on 'click me' button");
    $("button").click();
  }
}


Fix integrate method in johnsonSU pdf

Hi @marinang, seems this PR got forgotten, but can simply be merged, right?

Yes you can.
Le 5 mars 2019 à 13:45, Eduardo Rodrigues <notifications<EMAIL_ADDRESS>a écrit :
Hi @marinanghttps://github.com/marinang, seems this PR got forgotten, but can simply be merged, right?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/scikit-hep/probfit/pull/100#issuecomment-469666269, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AXIHxWRANVY6Agyg37pU6w0gowZbe7K2ks5vTmaTgaJpZM4ZTSyZ.


Version to 0.5.0

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Verify if the release channel is correctly set to main, geofileops_rc or geofileops_dev (depending on stable, rc or dev version), especially after rerender changed files!
[ ] If rerender changed files, verify if .github/PULL_REQUEST_TEMPLATE.md is still present

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Rework MappingValues Sort

Simplifies the MappingValues sort.
The specifications don't mention any sorting on values so that bit was entirely removed in favor of just sorting keys.
There was mention of duplicate values being allowed in Mappings, but the Java router throws an exception when one is encountered, i2pd just overwrites the key if a second is encountered (they also don't sort?). Both use HashMaps as the underlying type. In light of this I added an error return similar to the java implementation in ReadMapping to prevent duplicate keys.

Ack to removing the values sort. I need a moment to think about the HasDuplicateKeys() function and how that should work. Depending on how we need to use it, it may be more useful to return a new, deduplicated Mapping, along with an error which indicates the key which is duplicated. Function signature would change from:
func (mapping *Mapping) HasDuplicateKeys() bool {

Into:
func (mapping *Mapping) HasDuplicateKeys() (*Mapping, error) {

That would allow a caller to obtain a deduplicated mapping and a slightly more descriptive error in the same call. What are your opinions on this?

Yeah, unsure. I opted to throw the error because i'm not sure we can determine the correct key to use. Perhaps it's the one that appears later in the slice, that would match what i2pd does. At the same time Java just never has that second key, so that's probably a bad assumption.

If they're both handling it differently as they are, then we get to choose IMO. It's possible there are some cases where adhering to the ideas of one implementation or another limits our ability to do some potentially useful thing.
My questions on balance are:

How much do we gain in terms of understanding the state of the Mapping when this error occurs by handling this in our own way?
how much anonymity we lose by giving away that we are a go-i2p router with our behavior?"
What is the difference between reconstructing a deduplicated map and continuing to operate as if no error had occurred and failing closed on a duplicate entry in the map in terms of the next operation that must be performed using the structure containing the map?

I don't know the answer to 1 at all yet. I'm tempted to say we shouldn't care too much about 2, because we'll obviously look like go-i2p routers until go-i2p is feature-complete at the router layer. 3 is the most interesting in terms of the practical effect it might have. If we're failing closed every time we see a map with a duplicated key, then that's probably OK behavior and would mirror I2P's, but on the other hand if we did over-write the entry in the i2pd-like way perhaps we would have more successful interactions with the network. I don't know for sure what the cost of any of that would be though. Might be futile to try and predict the future
For now, I think the way you've done it,
func (mapping *Mapping) HasDuplicateKeys() bool {

is fine, though. If we decide we need more information out of it, we can still change it later, we don't promise a stable API yet. Let me know when you're ready and I'll merge it.


feat: [CHAOS-5067]: Adds docs for supporting destination ports filtering for destination IPs

Description

Please describe your changes: Adds docs for supporting destination ports filtering for destination IPs
Jira/GitHub Issue numbers (if any): CHAOS-5067
Preview links/images (Internal contributors only): __________________

PR lifecycle
We aim to merge PRs within one week or less, but delays happen sometimes.
If your PR is open longer than two weeks without any human activity, please tag a code owner in a comment.
PRs must meet these requirements to be merged:

[x] Successful preview build.
[x] Code owner review.
[x] No merge conflicts.
[x] Release notes/new features docs: Feature/version released to at least one prod environment.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://66191775b555600073e89054--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://661cea31dc2f1f2cc46905b8--harness-developer.netlify.app


Typing typo for Dayjs?

Is there a typo for the type Dayjs? I think it says "Daysjs".

Yes, and I believe it was fixed? 😊


Inaccurate description of steering signals in README.md

Hi, I was reading the README.md and noticed it looks like the descriptions for latAccelSteeringAngle and latAccelDesired got swapped in the table.

Fields
Description
Value Range

9
latAccelSteeringAngle
Lateral acceleration requested from the planner
[-∞, ∞]

10
latAccelDesired
Lateral acceleration computed from the steering wheel angle and vehicle dynamics
[-∞, ∞]

Good find! Fixed in https://github.com/commaai/comma-steering-control/commit/e67a51ce3cc26477303b2fd4dbebdf008ab01eaa


Syntax

Could you give an example of the syntax that is supposed to be used? I understand mode (selecting either cr or funi) and url is obvious, but I can't tell what < res > is supposed to be. What is it? What is the syntax supposed to look like? I've searched everywhere I can think of and I can't find a reference to what it's supposed to be. It's just listed as a required argument.

I've figured out now that its resolution. If I use 1080p it will bring up options for bandwidth qualities, but when I select any of them, it says streamlink not found

install packages from requirements.txt using pip install -r requirements.txt

Closing the issue for now, reopen if you are unable to resolve this

I installed all requirements, but when I go to download something, it says /bin/sh: 1: streamlink: not found
python3 animedl.py --funi https://www.funimation.com/shows/uzaki-chan-wants-to-hang-out/uzaki-chan-wants-to-hang-out 1080p
[INFO] Uzaki-chan Wants to Hang Out! - S1E1 - Uzaki-chan Wants to Hang Out!
01 [1119221] Japanese - Simulcast
[INFO] Available qualities:
01 Resolution: 1080p [Bandwidth: 10132KiB/s]
02 Resolution: 1080p [Bandwidth: 10132KiB/s]
03 Resolution: 1080p [Bandwidth: 10132KiB/s]
04 Resolution: 1080p [Bandwidth: 8212KiB/s]
05 Resolution: 1080p [Bandwidth: 8212KiB/s]
06 Resolution: 1080p [Bandwidth: 8212KiB/s]
Select the stream to download: 1
streamlink --hls-segment-threads 5 --force "https://22-cf-10fad4b4a7894c10a47117386cbbce08.vip1-lga1.dlvr1.net/30216c86-c622-11ea-8caf-0ae255e47b3e/FunimationStoreFront/2237034/Japanese/2237034_Japanese_42a70238-09bc-ea11-82a8-dd291e252010_Layer10.m3u8" live -o "/home/josh/anime/animedl/Uzaki-chan Wants to Hang Out - S1E1 - Uzaki-chan Wants to Hang Out.ts"
/bin/sh: 1: streamlink: not found
ffmpeg version 3.4.6-0ubuntu<IP_ADDRESS> Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
configuration: --prefix=/usr --extra-version=0ubuntu<IP_ADDRESS> --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
libavutil      55. 78.100 / 55. 78.100
libavcodec     57.107.100 / 57.107.100
libavformat    57. 83.100 / 57. 83.100
libavdevice    57. 10.100 / 57. 10.100
libavfilter     6.107.100 /  6.107.100
libavresample   3.  7.  0 /  3.  7.  0
libswscale      4.  8.100 /  4.  8.100
libswresample   2.  9.100 /  2.  9.100
libpostproc    54.  7.100 / 54.  7.100
/home/josh/anime/animedl/Uzaki-chan Wants to Hang Out - S1E1 - Uzaki-chan Wants to Hang Out.ts: No such file or directory

So I took the time to set up and install everything on my windows system and it seems to work fine there. Its just my linux install that has this problem.

I did get it working on windows at least. Thank you so much for making this. Trying to use youtube-dl was so tedious because it wouldn't download subtitles. I'd have to go in manually in my browser in developer mode and find the subtitle file and download it separately.
I really appreciate being able to run 1 batch file and have everything download into its proper place. Thank you

Appreciated :)


The specified procedure could not be found .\node_modules\sharp\build\Release\sharp.node

I wasn't seeing this error until after I tried to migrate from gatsby-image to gatsby-plugin-image and I ran the command npx gatsby-codemods gatsby-plugin-image.
I am getting the following output upon trying to run gatsby develop:
`info We're shipping new features! For final testing, we're rolling them out first to a small % of Gatsby users
and your site was automatically chosen as one of them. With your help, we'll then release them to everyone in the next minor release.
We greatly appreciate your help testing the change. Please report any feedback good or bad in the umbrella issue. If you do encounter problems, please
disable the flag by setting it to false in your gatsby-config.js like:
flags: {
THE_FLAG: false
}
The following flags were automatically enabled on your site:

DEV_SSR · (Umbrella Issue (https://gatsby.dev/dev-ssr-feedback)) · Server Side Render (SSR) pages on full reloads during develop. Helps you detect SSR
bugs and fix them without needing to do full builds.

success open and validate gatsby-configs - 0.147s
ERROR
Error in "C:\Users\Brandon.paul\Documents\EWL\wp-gatsby-learning-library\node_modules\gatsby-plugin-manifest\gatsby-node.js":
Something went wrong installing the "sharp" module
The specified procedure could not be found.
\?\C:\Users\Brandon.paul\Documents\EWL\wp-gatsby-learning-library\node_modules\gatsby-plugin-manifest\node_modules\sharp\build\Release\sharp.node

Remove the "node_modules/sharp" directory then run
"npm install --ignore-scripts=false --verbose sharp" and look for errors

Consult the installation documentation at https://sharp.pixelplumbing.com/install

Search for this error at https://github.com/lovell/sharp/issues
Error: Something went wrong installing the "sharp" module
The specified procedure could not be found.
\?\C:\Users\Brandon.paul\Documents\EWL\wp-gatsby-learning-library\node_modules\gatsby-plugin-manifest\node_modules\sharp\build\Release\sharp.node

Remove the "node_modules/sharp" directory then run
"npm install --ignore-scripts=false --verbose sharp" and look for errors

Consult the installation documentation at https://sharp.pixelplumbing.com/install

Search for this error at https://github.com/lovell/sharp/issues

constructor.js:32 Object.
[wp-gatsby-learning-library]/[gatsby-plugin-manifest]/[sharp]/lib/constructor.js:32:9

v8-compile-cache.js:192 Module._compile
[wp-gatsby-learning-library]/[v8-compile-cache]/v8-compile-cache.js:192:30

loader.js:1114 Object.Module._extensions..js
internal/modules/cjs/loader.js:1114:10

loader.js:950 Module.load
internal/modules/cjs/loader.js:950:32

loader.js:790 Function.Module._load
internal/modules/cjs/loader.js:790:14

loader.js:974 Module.require
internal/modules/cjs/loader.js:974:19

v8-compile-cache.js:159 require
[wp-gatsby-learning-library]/[v8-compile-cache]/v8-compile-cache.js:159:20

index.js:3 Object.
[wp-gatsby-learning-library]/[gatsby-plugin-manifest]/[sharp]/lib/index.js:3:15

v8-compile-cache.js:192 Module._compile
[wp-gatsby-learning-library]/[v8-compile-cache]/v8-compile-cache.js:192:30

loader.js:1114 Object.Module._extensions..js
internal/modules/cjs/loader.js:1114:10

loader.js:950 Module.load
internal/modules/cjs/loader.js:950:32

loader.js:790 Function.Module._load
internal/modules/cjs/loader.js:790:14

loader.js:974 Module.require
internal/modules/cjs/loader.js:974:19

v8-compile-cache.js:159 require
[wp-gatsby-learning-library]/[v8-compile-cache]/v8-compile-cache.js:159:20

safe-sharp.js:132 Object.
[wp-gatsby-learning-library]/[gatsby-plugin-manifest]/safe-sharp.js:132:11

v8-compile-cache.js:192 Module._compile
[wp-gatsby-learning-library]/[v8-compile-cache]/v8-compile-cache.js:192:30

not finished load plugins - 1.656s`
Did you see the documentation relating to installation?
Yes
Have you ensured the architecture and platform of Node.js used for npm install is the same as the architecture and platform of Node.js used at runtime?
I think so
Are you using the latest version? Is the version currently in use as reported by npm ls sharp the same as the latest version as reported by npm view sharp dist-tags.latest?
I get the following for npm ls sharp
+--<EMAIL_ADDRESS>| --<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>| --<EMAIL_ADDRESS>deduped +--<EMAIL_ADDRESS>| --<EMAIL_ADDRESS>--<EMAIL_ADDRESS>I get the following for npm view sharp dist-tags.latest
0.29.1
If you are using npm v6 or earlier and installing as a root or sudo user, have you tried with the npm install --unsafe-perm flag?
yes
If you are using npm v7, does the user running npm install own the directory it is run in?
If you are using the ignore-scripts feature of npm, have you tried with the npm install --ignore-scripts=false flag?
I tried this.
What is the complete output of running npm install --verbose sharp? Have you checked this output for useful error messages?
`npm info it worked if it ends with ok
npm verb cli [
npm verb cli   'C:\Program Files\nodejs\node.exe',
npm verb cli   'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js',
npm verb cli   'install',
npm verb cli   '--verbose',
npm verb cli   'sharp'
npm verb cli ]
npm info using<EMAIL_ADDRESS>npm info using<EMAIL_ADDRESS>npm verb npm-session a5f150feda9ca9ad
npm http fetch GET 200 https://registry.npmjs.org/sharp 166ms
npm timing stage:loadCurrentTree Completed in 2538ms
npm timing stage:loadIdealTree:cloneCurrentTree Completed in 26ms
npm timing stage:loadIdealTree:loadShrinkwrap Completed in 1505ms
npm http fetch GET 304 https://registry.npmjs.org/node-addon-api 46ms (from cache)
npm http fetch GET 304 https://registry.npmjs.org/color 74ms (from cache)
npm http fetch GET 304 https://registry.npmjs.org/semver 79ms (from cache)
npm http fetch GET 304 https://registry.npmjs.org/color-string 39ms (from cache)
npm http fetch GET 304 https://registry.npmjs.org/color-convert 45ms (from cache)
npm http fetch GET 304 https://registry.npmjs.org/color-name 31ms (from cache)
npm timing stage:loadIdealTree:loadAllDepsIntoIdealTree Completed in 4395ms
npm timing stage:loadIdealTree Completed in 6547ms
npm timing stage:generateActionsToTake Completed in 166ms
npm verb correctMkdir C:\Users\Brandon.paul\AppData\Roaming\npm-cache_locks correctMkdir not in flight; initializing
npm verb makeCacheDir UID & GID are irrelevant on win32
npm verb lock using C:\Users\Brandon.paul\AppData\Roaming\npm-cache_locks\staging-44dc58deb8c59928.lock for C:\Users\Brandon.paul\Documents\EWL\wp-gatsby-learning-library\node_modules.staging
npm timing action:extract Completed in 85ms
npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm verb unbuild rmStuff<EMAIL_ADDRESS>from C:\Users\Brandon.paul\Documents\EWL\wp-gatsby-learning-library\node_modules
npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm timing action:unbuild Completed in 5ms
npm timing audit submit Completed in 233ms
npm http fetch POST 200 https://registry.npmjs.org/-/npm/v1/security/audits/quick 234ms
npm timing audit body Completed in 2ms
npm timing action:remove Completed in 142ms
npm timing action:finalize Completed in 14ms
npm timing action:refresh-package-json Completed in 18ms
npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm timing action:preinstall Completed in 1ms
npm info linkStuff<EMAIL_ADDRESS>npm timing action:build Completed in 1ms
npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>
<EMAIL_ADDRESS>install C:\Users\Brandon.paul\Documents\EWL\wp-gatsby-learning-library\node_modules\sharp
(node install/libvips && node install/dll-copy && prebuild-install) || (node install/can-compile && node-gyp rebuild && node install/dll-copy)

sharp: Using cached C:\Users\Brandon.paul\AppData\Roaming\npm-cache_libvips\libvips-8.11.3-win32-x64.tar.br
sharp: Creating C:\Users\Brandon.paul\Documents\EWL\wp-gatsby-learning-library\node_modules\sharp\build\Release
sharp: Copying DLLs from C:\Users\Brandon.paul\Documents\EWL\wp-gatsby-learning-library\node_modules\sharp\vendor\8.11.3\win32-x64\lib to C:\Users\Brandon.paul\Documents\EWL\wp-gatsby-learning-library\node_modules\sharp\build\Release
prebuild-install info begin Prebuild-install version 6.1.4
prebuild-install info looking for local prebuild @ prebuilds\sharp-v0.29.1-napi-v5-win32-x64.tar.gz
prebuild-install info looking for cached prebuild @ C:\Users\Brandon.paul\AppData\Roaming\npm-cache_prebuilds\710ed0-sharp-v0.29.1-napi-v5-win32-x64.tar.gz
prebuild-install info found cached prebuild
prebuild-install info unpacking @ C:\Users\Brandon.paul\AppData\Roaming\npm-cache_prebuilds\710ed0-sharp-v0.29.1-napi-v5-win32-x64.tar.gz
prebuild-install info unpack resolved to C:\Users\Brandon.paul\Documents\EWL\wp-gatsby-learning-library\node_modules\sharp\build\Release\sharp-win32-x64.node
prebuild-install info install Successfully installed prebuilt binary!
npm verb lifecycle<EMAIL_ADDRESS>unsafe-perm in lifecycle true
npm verb lifecycle<EMAIL_ADDRESS>PATH: C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;C:\Users\Brandon.paul\Documents\EWL\wp-gatsby-learning-library\node_modules\sharp\node_modules.bin;C:\Users\Brandon.paul\Documents\EWL\wp-gatsby-learning-library\node_modules.bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files (x86)\Mitel\Connect;C:\Program Files\nodejs;C:\Users\Brandon.paul\AppData\Local\Microsoft\WindowsApps;C:\Users\Brandon.paul\AppData\Local\atom\bin;C:\Users\Brandon.paul\AppData\Roaming\npm;C:\Users\Brandon.paul\AppData\Local\Programs\Git\cmd;C:\Program Files (x86)\GitHub CLI;C:\Users\Brandon.paul\AppData\Local\Programs\Microsoft VS Code\bin
npm verb lifecycle<EMAIL_ADDRESS>CWD: C:\Users\Brandon.paul\Documents\EWL\wp-gatsby-learning-library\node_modules\sharp
npm timing action:install Completed in 1941ms
npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm timing action:postinstall Completed in 0ms
npm verb unlock done using C:\Users\Brandon.paul\AppData\Roaming\npm-cache_locks\staging-44dc58deb8c59928.lock for C:\Users\Brandon.paul\Documents\EWL\wp-gatsby-learning-library\node_modules.staging
npm timing stage:executeActions Completed in 2225ms
npm timing stage:rollbackFailedOptional Completed in 18ms
npm timing stage:runTopLevelLifecycles Completed in 11999ms
npm verb saving [ { name: 'sharp', spec: '^0.29.1', save: 'dependencies' } ]
npm verb shrinkwrap skipping write for package.json because there were no changes.
npm info lifecycle undefined~preshrinkwrap: undefined
npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm verb shrinkwrap skipping write for package-lock.json because there were no changes.
npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>|| ^0.14.0 || ^15.0.0 || ^16.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>|| >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Valid OS:    darwin
npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Valid Arch:  any
npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Actual OS:   win32
npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Actual Arch: x64
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules\webpack-dev-server\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Valid OS:    darwin
npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Valid Arch:  any
npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Actual OS:   win32
npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Actual Arch: x64

<EMAIL_ADDRESS>updated 1 package and audited 2403 packages in 13.229s

240 packages are looking for funding
run npm fund for details
found 581 vulnerabilities (96 moderate, 484 high, 1 critical)
run npm audit fix to fix them, or npm audit for details
npm verb exit [ 0, true ]
npm timing npm Completed in 14432ms
npm info ok`
What is the output of running npx envinfo --binaries --system?
 System:     OS: Windows 10 10.0.18363     CPU: (8) x64 Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz     Memory: 5.08 GB / 15.79 GB   Binaries:     Node: 14.17.3 - C:\Program Files\nodejs\node.EXE     npm: 6.14.13 - C:\Program Files\nodejs\npm.CMD

That got my develop server running again. Thank you.


TTS webpage improvements

[ ] Make interactive the default one
[ ] Channels textfield
[ ] Create link button

[ ] OBS browser source
[ ] Current interactive settings

[ ] Automatic voice Brian: message 1 Justin: message 2 ...
[ ] Clearchat check
[ ] Link to supinic's voice overview
[ ] save settings in interactive mode in cookies?
[ ] handle USERNOTICE
[ ] handle /me ACTION
[ ] max message length (in seconds)
[ ] fix music stopping on mobile
[ ] Mobile keep awake thing ... (play some small audio file if no tts in the past 30 seconds)

Volume past 100%?
https://stackoverflow.com/questions/43794356/html5-volume-increase-past-100


Add kitty support to shape

Close #5

I'd prefer to keep this as one utility, to make distribution and installation easier; especially since most users will only use one. And there's a lot of repeated code. Why not do a $ENV test in Perl?

OK; force-pushed. The reason I didn't do it in Perl is so I could avoid having to Google "if-else in Perl", "environment variables in Perl", "string length in Perl", &c. Clearly, you're not amused by my lack of Perl knowledge, so now I'm at least a Perl n00b.
:-)
By the way, a cool kitty feature is that this works in vim's command buffer:

🦗

Sorry about the delay - looks good to me!


feat(pydocstyle): add ?extra=toml

@mason-org/triage notify(Reason::NewPullRequest)
This comment ensures a notification is delivered to maintainers.
 🤖 This is an automated comment.    📖 Source code


Add IllegalStateException in TabletMedata class

Add an IllegalStateException to the TabletMetadata class in instances where an unexpected TabletColumnFamily qualifier is used.

@dlmarion, @keith-turner this PR is in response to the suggestion to add an IllegalStateException to the TabletColumnFamily switch statement in the TabletMetadata class (as suggested in #3969 PR review).


fix: preserve data updates to fill() when called with an argument

This change preserves the provided data source when fill is called with an argument so that cal.fill(records); cal.jumpTo(...); does not reset or blank out the previously provided data.

I believe this is possibly an issue with the previous version of cal heatmap, since we have been setting the data source manually even after calling paint, but now that there's a fill method I expected this to preserve the data passed. It appears that this is not the case, and this change should be fine based on how other things use the fill function (without arguments).
This allows the example given https://cal-heatmap.com/docs/API/fill#usage to allow navigation after filling with a new data source, or how we are using this, to provide data records that cover the whole domain that will not need to be fetched per navigation.


RT3628: Allow filenames to be eliminated from compiled library

Although I explicitly don't care about the tinfoil-hat reason given in
the initial opening of RT#3628, that "paths usually contain private
information", there are situations where it's useful to eliminate the
filenames from the compiled binary.
The two reasons we do care about in the context of firmware such as EDK2
are that it allows for a smaller footprint, and it is also a necessary
component of a binary-reproducible build.
To that end, introduce OPENSSL_FILE and OPENSSL_LINE macros, defining
them to FILE and LINE respectively in the normal case, but to
"" and 0 when OPENSSL_NO_FILENAMES is set.
This is mostly a naïve invocation of
$ sed 's/([FL]I[NL]E)/OPENSSL_\1/g' -i git grep -l __LINE__
but with a few instances change to just print the function name instead
(although those probably need to die anyway) and test cases left untouched.

@richsalz +1 with or without the adjustment for the noted dropping of file and line info in two places

well since the library shouldn't be doing fprintf :)  I'm inclined to give that change a pass and will merge as-is. Thanks!

fixed with 90fddb380977fa4f0a5de75b8fa889f29e399994 pushed to master.  thanks!

Er, pushed?

patience, young padawan :)

pushed for real at 02f7114

Hm, commit 02f7114 only changes Configure to accept 'no-filenames' and doesn't actually include and of the substantive changes...

Man, I hate it when git can't read my mind :(
Fixed and pushing it now.

Now fixed for real in commit 3ba8471


[MHR] Remember Menu Open/Closed State not saving

Checked the option and closed the menu.

From my experience if not Mistaken
The Autosave,
seems likely to be triggered by pressing the Keybind
So,
Seems To (Only Save) IF (Using "Insert/keybind") To Close
hopefully,
A Toggle Key to Save and Toggle UI will be added one day

Yes, that worked.
Should really be mentioned somewhere, though...

I've noticed this behavior too. Would it be possible to make the behavior consistent between both methods of closing the menu, or is there a reason that it's different?


[doc][eventgrid] fix broken link

to Azure SDK Design Guidelines for TypeScript

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


MySQL Connection issue

Hi, so ive got a problem where luckperms always disconnects from the database randomly saying
'(No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value.'
Ive looked at the wiki about the maxlifetime and about making it shorter ive tried that and its made no difference, the host i use for my database has all default settings, so an 8 hour wait_timeout
When it does this, it likes to freeze the server somtimes so its quite a big issue, heres the log
https://pastebin.com/nZ1D2A2U
and heres the config settings for the lifetime https://pastebin.com/m6CAjaf0
Summary
Paper Spigot 1.14.4 #209
Luckperms V4.4.31
When starting the DB loads fine, it just disconnects at random times

Hikari isn't the one that is freezing the server, that's redprotect which is stuck behind some transactions; This is likely completely irrelevant to LP and something else is causing the connection to be closed unexpectedly

Ill send this to redprotect instead then, see what they say


JSX file in components folder

JSX Example in Webpack

Ok thanks! Are you planning to do one for server side rendering in the controller?

I wasn't because it's really easy, just call render component: and it will.


Failed to fetch JSON for power spectrum analysis

See errors on web console:

All other functions had no issues.

Just having a look...

The files were missing. I could create them by triggering all analyses for that surface.
Now the results are there.
What is still strange: Sometimes, when choosing multiple functions, a second card for "Power Spectrum" opens, additionally to the first one which already loaded successfully. This second card does not load (stays at spinner), but this is probably a different issue.

I'm closing this. We can reopen, if again some JSON is missing.


function wpsites_query makes breaks the filter loop_shop_per_page

Hi,
First of all, thank you for this amazing theme!
I've noticed something strange, I have my own custom-functions.php
Just an easy function to show 200 products per page.
/**
 * Change number of products that are displayed per page (shop page)
 */
add_filter( 'loop_shop_per_page', 'new_loop_shop_per_page', 30 );

function new_loop_shop_per_page( $cols ) {
    // Return the number of products you wanna show per page.
    $cols = 200;
    return $cols;
}

After a lot of debugging (took me almost 2+ hours), I found out that the function wpsites_query() (in bootscore/bootscore/functions.php) overwrites this behaviour causing always to show max 24 products per page.
Is there any reason why this is done like this?
A work around (for now is) to make my own wpsites_query() function, so the one from the functions.php isn't called
The real fix would be using loop_shop_per_page filter, instead of hardcode overwriting it to 24
If you agree with the fix, I can push a PR for you guys

See the original class-wc-query in woocommerce how they do it -- https://github.com/woocommerce/woocommerce/blob/3611d4643791bad87a0d3e6e73e031bb80447417/plugins/woocommerce/includes/class-wc-query.php#L502
They use posts_per_page query param, before falling back to the loop_shop_per_page filter

Yes, that's because the theme has already this function https://bootscore.me/documentation/functions/.
Simply override function in your child:
function wpsites_query($query) {
  if ($query->is_archive() && $query->is_main_query() && !is_admin()) {
    $query->set('posts_per_page', 64);
  }
}
add_action('pre_get_posts', 'wpsites_query');

Now 64 products are shown instead 24.

Hmm, oke
Well I will close this issue for now, hopefully it will save another developer a lot of debugging time :)


Inconsistent method name with lsdb: read_from_hipscat

lsdb.read_hipscat method has a corresponding hipscat.read_from_hipscat. I think that the name in lsdb is better, and we should use the same method name for both libraries.

Both have been renamed read_hats


Signature missing using pdfjs-dist

Configuration:

Web browser and its version: chrome 119
Operating system and its version: macOS
PDF.js version: 4.0.269
Is a browser extension: no

Steps to reproduce the problem:

use pdfjs-dist to load base64 string
console.log error,"FormatError: Bad block header in flate stream"

What went wrong? (add screenshot)
The signature is not rendering.
I'm encountering the same issue about signature missing problem, I'm glad to see that you have fixed by #17340 , may I ask when the latest version can be released for urgent use?

When opening an issue, please provide all of the information requested in https://github.com/mozilla/pdf.js/blob/master/.github/ISSUE_TEMPLATE.md since without the Attach (recommended) or Link to PDF file here:-part this issue unfortunately isn't actionable/valid.

I'm encountering the same issue about signature missing problem, I'm glad to see that you have fixed by #17340 ,

Without the PDF document in question, it's impossible to tell if your issue is actually the same one.

may I ask when the latest version can be released for urgent use?

Sorry, but that issue unfortunately isn't (anywhere near) critical enough to warrant an "emergency" release. Hence that PR will simply be included in the next release, currently planned for the end of December.


Hash for Vec2i, Vec3i

Hi,
great job with the library.
One small suggestion, as I am doing a lot of work with 2D tiles, I use stuff like FxHashMap<(i32, i32), Tile> etc a lot where I always need to convert from Vec2i / Vec3i values from / to tuples to make the Hash work.
Would it be possible to derive from Hash for Vec2i / Vec3i ? Than I could use these directly ... .
Thanks!

Yeah sure, sounds like something worth adding. I can take a look.

I added support for hash on an optional feature of the crate, you can enabled the hash feature which will work for integer vectors and matrices. The commit is here: https://github.com/polymonster/maths-rs/commit/537c1ddae82385be85c13af2d3ac5f15f5b25465
I also tagged a new release which is 0.2.6 and is available on crates.io now.
Let me know how you get on, I added a test for it so I think it's working but didn't have a proper use case :)

Works great, thanks a lot!


Consolidate API models for Platform and Simulators

API definitions for the platform and the simulator are defined separately.

Combine the datamodels to the shared/datamodel-api library
Update the models API to return the new schema
update the database schema/methods to use the new schema and ensure that the old models can be accessed.

Since the only current models are those that are imported from biomodels, we can update them to the new schema.  It is likely that the schema will change in the future, so it could be helpful to determine how to adapt to the api to accommodate the change and work with the newer models.
Some approaches:
https://derickrethans.nl/managing-schema-changes.html
https://www.mongodb.com/blog/post/building-with-patterns-the-schema-versioning-pattern
https://docs.mongodb.com/manual/tutorial/model-data-for-schema-versioning/
https://stackoverflow.com/questions/14290568/how-to-handle-mongodb-schema-change-in-production
https://stackoverflow.com/questions/60452156/managing-schema-changes-with-mongodb

@lzy7071 do you have any thoughts on how to handle schema changes?

@lzy7071 do you have any thoughts on how to handle schema changes?

I'm not too sure what you meant by handling "schema changes."
If you meant changing and keeping track of schema version on the database side, I'm primarily using patterning and explicitly stating schema_version in the documents. Because my version 1.0 and version 2.0 are completely different, I'm not planning to keep version 1.0 but currently they each reside in their individual database on MongoDB. If there were going to be a v3.0, they will reside in the same database and collection as v2.0.
If you meant changes on the API side to reflect the underlying schema changes on the database side, I'm using /v1, /v2, or /v3 to indicate the schema / API version and compatibility as I plan to keep API version in conjunction with schema version (changes to the API in between schema changes will just be 2.0.1, 2.1.0, etc). This way, I can also add the schema_version as one of the query criteria.
This is with regard to the third bullet point. If you want to keep both the old schema and the updated one in the same collection, I think when you update MongoDB schema, you would need to set the valicationLevel to moderate. But any future addition to the collection can't be of the old schema. And you'll have to use oneOf in the data model spec sheet.

Regarding the current models, we can re-generate them with the revised schema. I need to update Biosimsulation_utils to reflect the revised schema anyway.
Going forward, if we change the schema, we'll want to update (migrate) the old documents to the revised schema.

The first link you shared recommends writing a script to do this
See also https://docs.mongodb.com/realm/ios/migrations/
There seem to be good packages for managing migrations. Basically, the strategy is to create a script for migrating each document forward (and, optionally, backward). Then the management tool takes care of applying this to the database. The management tool can cover more complicated cases such as migrated through a series of changes. See https://www.npmjs.com/package/migrate-mongo.

I think its simpler to migrate the documents than to make the Biosimulations code support both the new and old schemas (what the links call a "schema versioning pattern"). Keeping track of the schema version used by each document is easy. However, making the biosimulations software simultaneously support multiple schema versions would complicate the software.
Comparison to schema versioning strategy for BioSimulators
In BioSimulators, I've advocated that we take the "schema versioning pattern" approach because we won't necessarily be able to easily migrate the containers forward to a new standard. This is because the BioSimulators "version" refers both to the schema for simulator specifications and to the standard for command-line interface. The former is easy to automatically migrate. The latter could be more complicated. For example, if v2 of the command-line interface requires status output, this would take significant effort on the part of the developers of the simulation tools to implement, rather than the BioSimulators Team. As a result, changes to the simulators schema could result in the inability to continue to run older containers (unless the team that maintains them migrates them forward).
On way to increase our ability to handle this would be to distinguish

the version of the simulator specifications schema
the version of the command-line interface standard
(the version of the docker container structure -- at least for now, I think this can be lumped with the version the command-line interface standard)

Handling versions of modeling formats
While we're on the topic of versions, BioSimulations is also sensitive to different versions of the model formats, SED-ML, and COMBINE.

I don't think we need to worry about changes to the model formats much because support for different versions of each model format is delegated to the containers.
If SED-ML changes, we'd want to update Biosimulations_utils to the new version. I don't think this will have much impact on the containers because we're only using a subset of SED-ML which I think is stable. The new developments in SED-ML mainly overlap with Vega. We are planning to use Vega instead. For that reason, I don't think the new developments in SED-ML will be a challenge for us.
I think the Vega viewer is capable of rendering old versions of the Vega schema.
If COMBINE/OMEX changes, we'd want to update Biosimulations_utils to the new version. This shouldn't impact the containers because the containers rely on a subset of COMBINE/OMEX which I don't think will change.

This can be updated/reopened once we redesign the platform


Set nullcollation value to low and align with hive

As described by issue
https://github.com/linkedin/coral/issues/85

@huangxiaopingRD Great!  Can you add a test case to HiveToTrinoConverterTest as well?

@huangxiaopingRD Great! Can you add a test case to HiveToTrinoConverterTest as well?

@uzshao I have added it, please review it

LGTM!

@wmoustafa Can you help review for this merge request? Thanks!

LGTM, thanks @huangxiaopingRD
No regression in integration test.

@ljfgem Thank you for your review, because this change will really change the relevant test cases. Do I need to make some changes?

LGTM, thanks @huangxiaopingRD
No regression in integration test.

@ljfgem Thank you for your review, because this change will really change the relevant test cases. Do I need to make some changes?

What test cases do you think we need to change? As the build check passed for this PR, I think there is no change needed.

LGTM, thanks @huangxiaopingRD
No regression in integration test.

@ljfgem Thank you for your review, because this change will really change the relevant test cases. Do I need to make some changes?

What test cases do you think we need to change? As the build check passed for this PR, I think there is no change needed.

@ljfgem Thanks.Can you help merge with this change?


Pull command doesn't work on "server"

#17 doesn't work on server

Fixed based on how command is run


Nigeria E.164 Landline Numbers Error

Describe the bug
Trying to create a Nigerian E.164 Landline number on the Fonoster Console throws this error "Invalid phone number, please enter a valid phone number with E.164 format (e.g. +17853178070)"
To Reproduce
Steps to reproduce the behavior:

Go to 'https://console.fonoster.io/network/numbers'
Click on the '+' button
Select Phone Numbers
In the 'E.164 Number' field, select country as Nigeria (+234)
Type '12802500' after the +234 Prefix
See error
Try to bypass form validation
Submit number to API
See error

Expected behavior
Should be able to add a Nigerian E.164 Landline Number to Phone Numbers
Screenshots

System information (please complete the following):

Chrome Browser on Windows

Had same issue when trying from UK. Number was similar to +447761444669

@efraa any ideas about this issue?

We had the same issue. The problem is the generated request.

When you look at the request send, its seems to miss the "+" sign. When you add it manually and resend the request you can add numbers.

Hi @salami-dev,
Thanks for taking the time to try Fonoster. I will be evaluating this issue and will give updates on it no later than next Monday.

Hi @salami-dev,
We found part of the problem and it comes from the library we are using to validate the numbers, it seems that Nigerian numbers are up to 11 digits long but the lib assumes they should be 10 digits.
Check: https://github.com/AfterShip/phone/blob/master/src/data/country_phone_data.ts#L1266
We will open an issue for this and next week we will patch the node_modules if necessary.

Follow https://github.com/AfterShip/phone/issues/349

Hi @efraa
Thanks for diagnosing the issue.
Nigerian mobile numbers are 11 digits long.
Landlines are generally 8 - 9 digits, ex: 012802500

@salami-dev
We added support for Nigerian phone numbers.
Would you test configuring your number and let us know?

Hi @psanders
Still unable to add from the fonoster console.

Same issue with French numbers (starting with +33), except I'm able to add them on the dashboard but they don't work with the node SDK.
Further informations :
I'm trying to make outbound calls with the SDK but I'm getting an error saying the "from" value isn't a valid e164 number (but it's the exact same as the one registered on the dashboard)

@MRakox, thank you for reporting this issue. I will work on finding a solution as soon as I am able to allocate some time for it.


Added option to pre-select identity provider.

Also created .gitignore file to ignore node_module/ in Git.

Hello @yuntuowang or @jpeddicord, could you merge this PR please? This is a pretty important use case for people who don't want to use the hosted UIs.


Decompiler: Add C deincrement and increment operator

To improve the readability of decompiled output, extend in place statement emission to include the C increment and decrement operators (++/--).
Testing
Test data: tests.zip
Commands run (input.txt)
restore incdec.xml
load function entry
decompile
print C
q

export SLEIGHHOME=~/ghidra; make decomp_dbg -j && ./decomp_dbg < input.txt
incdec.xml (BEFORE)
undefined8 entry(void)

{
  uint local_28;
  uint local_24;
  uint local_20;
  uint local_1c;
  uint local_18;
  int local_14;

  __stubs::_memset(&local_28,0,0x18);
  local_28 += 1;
  local_24 -= 1;
  local_20 += 1;
  local_1c -= 1;
  local_18 -= 1;
  local_14 += 1;
  __stubs::_printf("%d %d %d %d %d %d\n",(ulong)local_28,(ulong)local_24,(ulong)local_20,(ulong)local_1c,(ulong)local_18,local_14);
  __stubs::_printf("\n");
  return 0;
}

incdec.xml (AFTER)
undefined8 entry(void)

{
  uint local_28;
  uint local_24;
  uint local_20;
  uint local_1c;
  uint local_18;
  int local_14;

  __stubs::_memset(&local_28,0,0x18);
  local_28++;
  local_24--;
  local_20++;
  local_1c--;
  local_18--;
  local_14++;
  __stubs::_printf("%d %d %d %d %d %d\n",(ulong)local_28,(ulong)local_24,(ulong)local_20,(ulong)local_1c,(ulong)local_18,local_14);
  __stubs::_printf("\n");
  return 0;
}

incdec_array.xml (BEFORE)
undefined8 entry(void)

{
  uint local_28 [6];

  __stubs::_memset(local_28,0,0x18);
  local_28[0] += 1;
  local_28[1] -= 1;
  local_28[2] += 1;
  local_28[3] -= 1;
  local_28[4] -= 1;
  local_28[5] += 1;
  __stubs::_printf("%d %d %d %d %d %d\n",(ulong)local_28[0],(ulong)local_28[1],(ulong)local_28[2],(ulong)local_28[3],(ulong)local_28[4],local_28[5]);
  __stubs::_printf("\n");
  return 0;
}

incdec_array.xml (AFTER)
undefined8 entry(void)

{
  uint local_28 [6];

  __stubs::_memset(local_28,0,0x18);
  local_28[0]++;
  local_28[1]--;
  local_28[2]++;
  local_28[3]--;
  local_28[4]--;
  local_28[5]++;
  __stubs::_printf("%d %d %d %d %d %d\n",(ulong)local_28[0],(ulong)local_28[1],(ulong)local_28[2],(ulong)local_28[3],(ulong)local_28[4],local_28[5]);
  __stubs::_printf("\n");
  return 0;
}

I've also tested on larger binaries with great results! Note that the inc/dec operators are not used in expressions, only pure statements, although in idiomatic C it is common for patterns like while (*a++) { } or a[i++]. To capture these might require more pattern matching.

What about "+=", "-=", "/=", "^="...?
It would be also very good if it all can be toggled on and off.

What about "+=", "-=", "/=", "^="...?
It would be also very good if it all can be toggled on and off.

There already is an option for this in the decompiler settings. An option could be added for this as well, but I don't see why X += 1 or X -= 1 would be preferred

I would very much like to see this merged in.  ++ and -- can make things so much less cluttered.

@caheckman mind giving this PR a review?

This pull request seems to be valid in the form of https://github.com/jobermayr/ghidra-staging/blob/master/2525-Decompiler-Add-C-deincrement-and-increment-oper.patch

I agree, but the PR has no progress after quite some time!

I agree, but the PR has no progress after quite some time!

It doesn't mean anything (look at pull request 1892 [20200521 to 20230121])


Removed an exclamation point? I think this completely fixes the bug?

Take 2: I originally created this as an actual pull request instead of a draft.
Some notes:

Reverted the changes from my first PR
Tried a few different ideas for fixing the crash within UITableView-Extensions.swift - mostly related to checking if the IndexPath exists before selecting/scrolling
The index path always existed, so these checks weren't working

Fix: removed an exclamation point from line 20. I haven't found any side effects (yet?)
Comments:
Just by reading the code, I don't fully understand how this worked with the exclamation point in there. It makes it seem like if the visibleIndexPaths don't contain indexPath, or if the cell isn't completely visible, it's fine to scroll.
By removing that exclamation point, we're ensuring that both cases are met before scrolling. The scrollToRow is what causes the crash when a row is selected while the section is collapsing. Looking forward to your feedback.

Closing this one as it breaks our scroll into view functionality.