Dependencies

Hello, I'm trying to setup a dev environment, got a whole lot of dependencies missing (c dependencies that is). Do you have a list of all the dependencies required to build?

@hoshsadiq build process is the same as for Quasar.
So if you want to build locally (not in Docker image), then you need libtorrent-go package, which needs libtorrent installed locally.
You can look here: https://github.com/scakemyer/libtorrent-go
Or here: https://github.com/elementumorg/libtorrent-go

So if you want to build locally (not in Docker image)

I guess it can be in docker image, but I'm not aware of any way of getting IntelliJ to run go code inside docker.
Will have a look at both of those when I get home and will report back!

Couldn't really get any of it to work lol. Even within docker. Can I ask what your current work flow is for development?

What exactly does not work for you?
you need libtorrent-go module installed + libtorrent static library.

 Do you make edits and compile then run manually or do you let your editor handle it?

On jenkins I do this:
export GOPATH=$HOME/go

# For github.com/elgatito/elementum
git checkout master
cd ~/go/src/github.com/elgatito/elementum
go get -u ./...
make linux-x64

Docker is only using dockerized compiler and libraries, sources are used from $GOPATH directory, so make sure you place directories properly.

There is a test_build.sh script which compiles locally.

So do you use the build from test_build.sh to then launch kodi so you can test your changes?

Yes. Or you can run with a docker, result will be the same - binary file in build/ directory.

cool.
Stuck on this now, can't find anything else that could possibly get libtorrent-rasterbar.
~/go/src/github.com/elgatito/elementum # go get ./...
# pkg-config --cflags --static -- libtorrent-rasterbar openssl
Package libtorrent-rasterbar was not found in the pkg-config search path.
Perhaps you should add the directory containing `libtorrent-rasterbar.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libtorrent-rasterbar', required by 'virtual:world', not found
pkg-config: exit status 1
~/go/src/github.com/elgatito/elementum # apk list --installed | grep -i torrent
libtorrent-dev-0.13.7-r1 x86_64 {libtorrent} (GPL) [installed]
libtorrent-0.13.7-r1 x86_64 {libtorrent} (GPL) [installed]

As I've said before, you need to compile libtorrent library. Not just install some package.
Because you need static library, with specific features and compiled with the same compiler.
You can look here:
https://github.com/ElementumOrg/libtorrent-go/blob/master/linux-x64/Dockerfile
You will need boost -> openssl -> swig -> libtorrent compilation.

Latest version has dependency only on libtorrent-go docker image. cross-compiler images are not used for the moment.
You can just install gcc locally and then look into docker file for your platform (probably linux-x64) and install everything to /usr/local/ or something. Add directories to LD_LIBRARY_PATH and place libtorrent-go directory into $GOPATH/src/github.com/ElementumOrg/libtorrent-go/

With the latest version of ElementumOrg/libtorrent-go repository, you can run make local-env to have all the dependencies locally. Then set PKG_CONFIG_PATH to that directory's lib dir.
And then you will have all the required env for compiling Elementum.


Allow different C and C++ flags for warnings and warnings as errors

PGI doesn't allow -Werror for compiling C code. The purpose of this PR is to split the BLT_ENABLE_ALL_WARNINGS_FLAG and BLT_ENABLE_WARNINGS_AS_ERRORS_FLAG into C and C++ specific versions, allowing us to pass nothing to pgcc.

No problems! I'll wait for some another review in case anyone has objects or suggestions 😄


Reference Cake.Incubator 4.0.0

Cake.Incubator 4.0.0 contains fix of NRE on F# project files.

There is already a open issue for bumping the Cake.Incubator version.
Duplicate of #324


override payload settings fails

I am using the native models.UUIDField as my primary key in my Custom User model (which also uses email address as the USERNAME_FIELD.)
The default implementation calls user_id = user.pk, which returns a UUID Instance instead of the actual identifying string.
Now I can see that I should probably override JWT_PAYLOAD_HANDLER with a function that ignores the user_id key, but in trying I keep getting random errors like "you need to set your SECRET_KEY" even though it is set.
So my question is: how best to override the payload handler?  Where should that function live?  It refers to the conf.settings, but then the function is also supposed to live (or be imported into) the settings file itself?  Doesn't that cause a circular dependency?
This might be more a django issue than a DRF-JWT issue, but I'm truly lost...

I'm facing the same issue

Any chance you could share an example project that can be used to reproduce?

https://github.com/dbinetti/jwt

@dbinetti need steps to reproduce your original issue. Don't see any custom JWT_PAYLOAD_HANDLER

I may have found something else; i'll open a new ticket for that.
On Fri, Feb 5, 2016 at 9:28 AM, José Padilla<EMAIL_ADDRESS>wrote:

@dbinetti https://github.com/dbinetti need steps to reproduce your
original issue. Don't see any custom JWT_PAYLOAD_HANDLER
—
Reply to this email directly or view it on GitHub
https://github.com/GetBlimp/django-rest-framework-jwt/issues/197#issuecomment-180455115
.

Closing in favor of #201


Weird results in delta computation between Dataframes

What happened:
While computing the delta of two dataframes I noticed that added rows were not taken into account. I started playing and discovered that by converting the Dask dataframe to Pandas the expected output is given. Moreover, if the new rows are added to the start of the file (and not the end as it is now) the delta is computed correctly.
What you expected to happen:
Dask should compute correctly the added rows from the dataframe. Moreover, the code should output the same result using pandas or dask since it's the same function.
Minimal Complete Verifiable Example:
import random
import sys
from shutil import copyfile

import pandas as pd
from dask import dataframe as dd
from dask.dataframe import DataFrame

# Create random CSV
with open('old.csv','w') as f:
    for _ in range(int(sys.argv[1])):
        f.write(f'{random.randrange(1, 10**9):09}, {random.randrange(1, 10**9):09}, {random.randrange(1, 10**9):09}\n')

copyfile('old.csv', 'new.csv')

# Add three new rows
with open('new.csv', 'a') as f:
    for _ in range(3):
        f.write(f'{random.randrange(1, 10**9):09}, {random.randrange(1, 10**9):09}, {random.randrange(1, 10**9):09}\n')

def process_delta_individually(old_df: DataFrame, new_df: DataFrame, merge_type: str):
    diff_df = old_df.merge(new_df, indicator=True, how='outer').loc[lambda x: x['_merge'] == merge_type]
    print(f'Difference count {merge_type} with dask: {len(diff_df.index)}')
    old_pandas = old_df.compute()
    new_pandas = new_df.compute()
    diff_df_pandas = old_pandas.merge(new_pandas, indicator=True, how='outer').loc[lambda x: x['_merge'] == merge_type]
    print(f'Difference count {merge_type} with pandas: {len(diff_df_pandas.index)}')

new_df = dd.read_csv('new.csv', header=None, delimiter=',', dtype=str, blocksize=None)
old_df = dd.read_csv('old.csv', header=None, delimiter=',', dtype=str, blocksize=None)
process_delta_individually(old_df, new_df, 'right_only')

python test.py 2
Difference count right_only with dask: 3
Difference count right_only with pandas: 3

python test.py 10
Difference count right_only with dask: 0
Difference count right_only with pandas: 3

Environment:

Dask version: 2021.7.0
Python version: 3.9.4
Operating System: macOS Big Sur
Install method (conda, pip, source): pip

Thanks for writing this up. I can reproduce. I will try to take a closer look next week.

Ok so the issue boils down to the way the name of the read-csv task is defined in the DataFrameIOLayer
    label = "read-csv-"
    name = label + tokenize(reader, columns, enforce, head, blocksize)

code.
You can see that the tokenize function depends on reader, columns, enforce, head and blockwise. As soon as the number of lines in old.csv exceeds the number read in by head, all of these fields are identical for old.csv and new.csv.
The impact of this is that dask thinks that your two read-csv tasks are trying to do exactly the same thing. So when they are both included in the same task graph (which is what happens when you call merge on them), one of the tasks gets optimized away. I am opening a PR that resolves this.

Thanks a lot for the fix!  😄


Google App Engine

Is it possible to remove the unsafe package so that your package works with Google App Engine:
parser: bad import "unsafe" in github.com/davecgh/go-spew/spew/common.go

Or if it is absolutely essential to have unsafe then put "// +build !appengine" at the top of the files and have some minimal code (just enough) so projects still compile when deployed to GAE even if functionally they don't do anything.
Your library works in local development mode in GAE. Just not in Deployment.
Your library is very useful when in local development mode.

Thanks in advance

Hi @pjebs,
Unsafe is definitely needed, but the library can operate in a limited fashion without it (on environments where unsafe is not available).
I had a similar need in my fork of go-spew, I wanted it to run in an environment without unsafe (it's not for Google App Enginge, but rather for compiling the Go code to JavaScript with GopherJS), so I've done this there. See https://github.com/shurcooL/go-goon/commit/0cea3a99a941622e45ada7254af0a0802b2b2d24.
A very similar change can be done to go-spew to support GAE.

I can make a PR to apply that kind of change to go-spew for @davecgh. Done so in #36. Feel free to use it if you like and find it helpful, or close it otherwise.

By the way, while unsafe is definitely used to a significant degree, I can't guarantee that it's impossible to implement unsafeReflectValue without it. It might be possible in another way. But I'll leave that for @davecgh.

FYI.  I was on vacation, so I'm not ignoring this issue, I just didn't have net access.  I'll take a look at it over the next couple of days as I catch up on everything.

It should be possible to make a version which works without unsafe, albeit in a limited fashion.  There are several features which require the unsafe requirement.  However, it should still be quite useful without it even if some of the more advanced features wouldn't work.

Not sure for others, but in my case your package is not needed in deployment so there is no need to even make a 'limited version'. It's only needed in development, in which case unsafe works.

It's just currently annoying having to comment out every line that uses your package before deployment and then uncomment them again for development.

I don't think there's any way around that from go-spew's side.

I suppose with fmt.Println you could put it in a helper func that acts normally in development but returns early in production, but you can't do that with go-spew since it will fail to compile in production as soon as it's imported.

Agreed.  That is why I think the best way to handle this is to have a limited version that compiles fine under GAE, just without the extra features that require unsafe.

It won't fail To compile if you put "// +build !appengine" on all the files and have a brand new file with "// +build app engine" with all the currently exported functions etc which just return immediately and do nothing functionally.

@pjebs: Yes, however, it would cause panics because the code relies on the fact that the reflect values can be addressed and interfaced after calling those functions which would be stubbed out.

You could stub them out in your GAE project:
spew_appengine.go:
// +build appengine

func spewDump(args ...interface{}) {
}

spew_noappengine.go
// +build !appengine

func spewDump(args ...interface{}) {
        spew.Dump(args...)
}

Then use spewDump instead of spew.Dump in your project.

As an update, I did most of the work last night to provide support for a limited mode.  There are still a couple of sections related to hex dumping that need to be completed and the tests need to be fixed to handle the different modes.
The approach I'm using is to set a constant a build time which specifies whether or not unsafe is available and moving all unsafe specific code into a separate file which is controlled by build tags.  When unsafe is not available, the features which rely on it will be disabled (i.e the pointer method invocation bits will simply work as if the DisablePointerMethods flag is set, etc).
By default, unsafe will be disabled on Goggle App Engine, and I've also provided a disableunsafe build tag to manually control it.

@pjebs: I don't have access to GAE at the moment to try it, but can you try with pr #38 and confirm it works?

I'll take a look at it soon

Tested and safe to merge

Implemented by #38.

I wonder if there is a way to enable 'unsafe' for GAE local development despite the !appengine build tag unfortunately taking precedence.

Do you know if there is a build tag for local development mode?

https://cloud.google.com/appengine/docs/go/reference#IsDevAppServer

Thanks, but unfortunately that's just an API call so it can't be used at build time.  The issue here is it needs to happen at build time.

Perhaps there is a creative way of implementing it at run time?


Remember possible approximate solution

If I understand correctly, the memetic algorithm checks at each step if a valid solution is found. If this is not the case it also checks if there was a high enough improvement in the population. If this is not the case, the population will be wiped out.
https://github.com/PickNikRobotics/pick_ik/blob/3b5cc04a3e99d6a5323c2bdcd2a9835046adad4f/src/ik_memetic.cpp#L246-L254
While this makes generally a lot of sense, we might throw away valid solutions in case of also accepting approximate solutions. We only check if the best individual in the population is valid for an exact solution.
Therefore, the following scenario is very propable to happen:
Let's say, you search for an IK solution of a pose which is not exactly reachable by the robot. The algorithm will never find a valid exact solution. It will get as close as possible to the goal pose as it can. Then no further improvement is possible. Thereby, the population will be wiped out. The population will again converge as close as possible to the goal and then be wiped out again. This process will continue until the time or generation limit is reached. Then it will be checked if the current best individual would also be accepted as an approximate solution.
It is now pure chance if we get an approximate solution based on when the limit was triggerd. If it was just before another wipeout, we will have a solution. However, if it just after a wipeout, we might get no approximate solution although we had found one (or multiple ones) during execution of the algorithm.
I would propose to save the best individual permanently (without using it further in the population). Then it would be possible to check at the end if this indiviual might provide a better approximate solution than the current best individual of the population.
Sorry, for spaming so many issues/PRs on this repo in the last days. Don't feel stressed to respond.

Ah yes you are right, I somehow did not see that the best_ was set in the sortPopulation() function and then is returned later. Then the current implementation already includes this behavior correctly.


Spatial Generator

Feature description
A new generator dedicated to spatial data.
Anyone looking to utilize instancio for spatial/GIS projects would need to use the DoubleSpec with a hardcoded min/max for latitude and longitude. It gets a little repetitive and error-prone in a large project with many different spatial objects.
Examples
SpatialObject spatial = Instancio.of(SpatialObject.class)
    // ex. Implicitly limit latitude as a double between -90 to 90
    .generate(field(SpatialObject::getLatitude), gen -> gen.spatial.lat())
    // ex. Implicitly limit longitude as -180 to 180 and provide a static or range of precision
    .generate(field(SpatialObject::getLongitude), gen -> gen.spatial.lon().precision(7))

This could also potentially support degrees,minutes,seconds for geographic coordinates.
This is a simple baseline for "spatial" type data. There's opportunity to expand this in the future with generating GeoJson, which is a very common way to represent areas on a map. (https://geojson.io/)
GeoJson is used in a lot of geospatial libraries as a working layer and for visualization, so plenty of custom objects developers create hold onto geojson.
The main question is what to use for the representation. Not sure if Jackson JsonNode is a great idea or not.
Also I'm open to pick up this work myself. My team has been using instancio and we'd make heavy use of this new generator and spec!

Thank you for the suggestion. I think it will be a good addition.
If other types of data are added under spatial() in the future, would it make sense to group lat/lon under coordinate() or point()? e.g.

gen.spatial().coordinate().lon()
gen.spatial().point().lon()

It would be good to have a list of potential methods that might be added in the future and some examples of data they would generate (I'd like to avoid very niche data though and stick with things that are common, like lat/lon).

Yeah absolutely grouping under coordinate() would be ideal for lat/lon.
There's a few samples I can provide that a spatial generator could grow into:
WKT and GeoJson are very portable and used across many GIS tools and implementations
WKT - Well Known Text Representation
There's a bunch of WKT examples on the wiki page. But the ability to generate complicated shapes would be useful for anyone building GIS applications.
(https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry)

gen.spatial().wkt().point() -> POINT (30 10)
gen.spatial().wkt().polygon(5) -> POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))
gen.spatial().wkt().point(39, 41, 145, 155) -> POINT(45 150)

GeoJson

gen.spatial().geojson().point() ->

    {
        "coordinates": [
          20.849573066512846,
          50.190760721311904
        ],
        "type": "Point"
      }

gen.spatial().geojson().polygon() ->

{
        "coordinates": [
          [
            [
              18.388635566512846,
              37.03738153702169
            ],
            [
              14.873010566512505,
              35.47830164839911
            ],
            [
              19.091760566512733,
              34.03418461611774
            ],
            [
              18.388635566512846,
              37.03738153702169
            ]
          ]
        ],
        "type": "Polygon"
      }

Thank you for the examples!
Let's add lat/lon for now. Not sure whether point() or coordinate() is better. The former has the advantage of being shorter.
A PR would be welcome if you have the time to submit one (if you do, please check out building and contributing pages).

Absolutely! I'll get something drafted up this weekend.
Technically speaking, latitude and longitude are each a coordinate that make up a point.
My vote is for .coordinate() for that reason! Either way, I'll get a PR out and adjustments can be made.

Added https://github.com/instancio/instancio/pull/953 as a first pass.
I'd love to expand on this, but wanted to get out a baseline implementation.


Possibility to have class specific overlap threshold

At first glance, your repo looks nice. You have lots of illustrations to explain the interpolated average precision which is really nice. However, is it possible to have a different threshold for different classes? For example, on the KITTI benchmark, the cars require an IoU over 70% to be considered as a correct detection while the pedestrians require 50%.

I will add this feature on Monday.
We can have a dedicated flag for this, either something like:
--specific-class-iou car 0.7
or
--kitti
I think the first option would be better.

@LucasVandroux That feature was added to the code, flag usage:
--set-class-iou [class_1] [IoU_1] [class_2] [IoU_2] [...]
For example, in your case you have to run:
python main.py --set-class-iou car 0.7
By default, all the other classes are set to 0.5 (50%)

@Cartucho, looks nice thanks. I will try it later. It is really a must have 👍


Cyrillic is replaced

Hi!
Thanks for the plugin!
There is a small problem. Cyrillic in the file is replaced with unicode.
Узнай о нас больше
Узнай о нас больше
How can this be avoided?

Hi axperien,
first of all: thanks for reporting this issue!
Can you maybe provide me with a sample setup? E.g. some HTML and gulp task you used?
That would make it easier for me to reproduce the issue.

I found out that this was caused by htmlparser2's option decodeEntities via cheerio's $.html which defaults this to true.
I therefore published a new version which adds the decodeEntities parameter, which defaults to false and therefore fixes your problem. If you ever want to encode decoded html entities, set it to true.
Please use the latest version and let me know if you still have experience any problems.

Fixed in v1.0.1


since v2.3.0, in some specific cases, two consecutive comment vnodes will be merged into one text vnode.

Version
2.3.0
Reproduction link
https://jsfiddle.net/maggiehe/xovqtqd8/
Steps to reproduce
Use the following template with this.currentIndex = 1, then check this._vnode.

foo

{{i}}

What is expected?
The template's childNodes will be compiled into: ["Element", "Element", "Comment", "Comment"]
What is actually happening?
Vue(>=2.3.0) compiles the template's childNodes into [ "Element", "Element", "Text" ], while<EMAIL_ADDRESS>performs correctly.

The bug will lead to this error: The client-side rendered virtual DOM tree is not matching server-rendered content.

I think this is Vue's internal way of tracking things in v-for loops. 'Skipped' elements seem to be stored as empty text nodes, probably for faster processing once they're needed.
You can see how the skipped items all get rendered as empty text nodes here: https://jsfiddle.net/xovqtqd8/7/
Vue seems to be "smart" about simply not processing items further down the list that don't fall in between the condition, although I'm not sure if that's intentional or not.
Someone on the core team might be able to shine more light on this, but to me it doesn't seem like a bug, but an internal way of tracking vnodes.

I think there could be an issue with Vue internally since 2.3, as I can also report that I see text nodes.
The closest thing I can put it to is SVG's a simple component containing an svg seems to cause extra vnodes around the svg. Which is particularly problematic for SSR, as hydration will fail.
Could you confirm if you are using SVGs in the loop.
FYI, loops seem to be fine for me in particular however unable to confirm at this present time if there is an issue in vDOM generation overall.

@TheDutchCoder
SSR will be problematic.
The server side will generate only two real dom nodes:

 , which doesn't match the virtual dom in client side: [Element, Element, EmptyText]. This will result in a hydration failure:(

@blake-newman , I didn't use SVG.
I think my problem may have been introduced in this submission #c5808dc. c.text was optimized to isDef(c.text), so empty comment vnode (node.text==="") could also create a text vnode.
And I tried to launch a pull request. I'm not sure if it's the author's intention, hope it will helpful for you to track the problem.

Same issue here: https://github.com/ElemeFE/element/issues/4622

The extra VNode is a text. I checked the built file of element-ui and found this:
// in the render function
return _c('div', {
  class: [...]
}, [
  ... // some other VNodes
  (_vm.validating) ? _c('i', {
    staticClass: "el-input__icon el-icon-loading"
  }) : _vm._e(),
  (_vm.$slots.append) ? _c('div', {
    staticClass: "el-input-group__append"
  }, [_vm._t("append")], 2) : _vm._e()
])

The bug comes up when _vm.validating and _vm.$slots.append are both false. In other words,

two consecutive comment vnodes will be merged into one text vnode


[feat] add gke release testing

What this PR does / why we need it:
This adds testing of conformant, production grade Kubernetes clusters as a pre-requisite for any release.
Which issue this PR fixes
Supports https://github.com/Kong/kubernetes-ingress-controller/issues/1095
Special notes for your reviewer:
This is only one iteration, there are several related and follow-up items:

https://github.com/Kong/kubernetes-ingress-controller/issues/1613
https://github.com/Kong/kubernetes-ingress-controller/issues/1614
https://github.com/Kong/kubernetes-ingress-controller/issues/1617
https://github.com/Kong/kubernetes-ingress-controller/issues/1616

Do Not Merge:
There's some git history cleanup that the author needs to perform before merging, please let the author merge this when its ready.

Is it a good idea to review before git history cleanup? These tend to introduce bugs.

Is it a good idea to review before git history cleanup? These tend to introduce bugs.

In this case, it's literally just dropping the release workflow trigger on every PR (so that we can verify that the tests are passing before merge, but not leave them on for all prs).

For posterity, example run at https://github.com/Kong/kubernetes-ingress-controller/runs/3203219168?check_suite_focus=true, which looks fine.
It seems like we'd maybe just want to skip the bulk ingress test on GKE to avoid modifying it (I assume to deal with GKE resource quotas), as that's to stress the controller code internals and shouldn't have any difference compatibility-wise from the single-ingress tests. Doesn't look like it really runs slower though (3m random traditional run versus 4m for this), so shrug
Do we have example failure runs or other documentation of the issues with the Knative and AC tests? The TODOs don't mention them and it seems like we'd definitely want to follow up on those.

The changes to the bulk ingress test were just modifying what were semi-arbitrary values: reducing the staggered deployment in half does still leaves the test ultimately verifying what it originally intended to verify. At this point if we want to get deep into the characteristics of performance at a specific scale, I would suggest we treat that as follow up in our upcoming performance testing features: https://github.com/Kong/kubernetes-ingress-controller/issues/1197

Things are looking good. I'm going to remove the test trigger and mark this for a rebase merge once the remaining CI workflows settle. :+1:


Add Group Function for Array

Hi,
I've just added a group function for Array.

@MaximeRDY is this a porting of https://github.com/purescript/purescript-arrays/blob/7bdd04cef18f63afe8fe0bb59b4180e030e1e0f5/src/Data/Array.purs#L843 ?

@gcanti Yes a kind of

Ok, then

should return an Array<NonEmptyArray<A>> so I'd move this function to the NonEmptyArray module

looks like there's something wrong in the implementation: the following tests (from purescript-arrays) fail

const isOdd = (n: number): boolean => n % 2 === 1

const setoidOdd: Setoid<number> = {
  equals: (x, y) => isOdd(x) && isOdd(y)
}

assert.deepEqual(group(setoidNumber)([1, 1, 2, 2, 1]), [[1, 1], [2, 2], [1]])
assert.deepEqual(group(setoidOdd)([1, 3, 2, 4, 3, 3]), [[1, 3], [2], [4], [3, 3]])

Ok maybe I've figured why the tests fail.
The group method work like this:
assert.deepEqual(group(setoidNumber)([1, 2, 1, 1, 2]), [[1, 1, 1], [2, 2]])

I'm wondering why it should respond like this:
assert.deepEqual(group(setoidNumber)([1, 1, 2, 2, 1]), [[1, 1], [2, 2], [1]])

Maybe because it groups successive values? (You may look at purescript test/impl)

I think that you implemented something more like group'
https://github.com/purescript/purescript-arrays/blob/7bdd04cef18f63afe8fe0bb59b4180e030e1e0f5/src/Data/Array.purs#L851
however group is more general (group' can be derived)

@gcanti That make sense :-)
I'll try to do it today or this week-end.
Do you have any advice about the naming for group' ?

Such group can generalized for any Filterable. What about moving to Filterable.ts? (similar to unique in https://github.com/gcanti/fp-ts/pull/510)

Do you have any advice about the naming for group' ?

mhh actually no.. @sledorze any suggestion?

Such group can be generalized for any Filterable

Ah, I missed this. @raveclassic how? Could you please elaborate?

Well I missed that there should be a notion of order of Filterable structures for such functions to work generally

@gcanti I think the difference between group and group' in purescript is not very explicit.
May we be more explicit with a two word name like: globalGroup or groupSorted or groupDistinct?
(I'm bad at naming)

@sledorze maybe groupSort, following this standard pattern:

flatMap = flatten after map
filterMap = filter after map
groupSort = group after sort

@gcanti like it, coherent and in line with point free composition order.

@gcanti Hi,
I've moved the function in NonEmptyArray and I've added the groupSort function.
Tell me if it's ok  :-)

@gcanti
Ok I've pushed what you've suggested.
The only change I've make it's that:
for (let i = 1; i < len; i++) {

@MaximeRDY this is even better
export const group3 = <A>(S: Setoid<A>) => (as: Array<A>): Array<NonEmptyArray<A>> => {
  const r: Array<NonEmptyArray<A>> = []
  const len = as.length
  if (len === 0) {
    return r
  }
  let head: A = as[0]
  let tail: Array<A> = []
  for (let i = 1; i < len; i++) {
    const x = as[i]
    if (S.equals(x, head)) {
      tail.push(x)
    } else {
      r.push(new NonEmptyArray(head, tail))
      head = x
      tail = []
    }
  }
  r.push(new NonEmptyArray(head, tail))
  return r
}

group x 627,242 ops/sec ±0.56% (78 runs sampled)
group2 x 4,381,062 ops/sec ±0.79% (86 runs sampled)
group3 x 10,139,893 ops/sec ±0.43% (89 runs sampled)

@raveclassic your version gives
group x 429,640 ops/sec ±0.84% (88 runs sampled)

The point is in generalization, not in perf :)

I see but that means we can't use your generic function to implement group for arrays, which this PR is all about

Thanks @MaximeRDY


HybridApp crashing in dev due to react-native-reanimated

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

Problem
HybridApp builds are broken currently on main, which will soon be deployed to staging. We believe this PR broke the builds.
Solution
We need to bump react-native-reanimated on App and then the HybridApp module.
View all open jobs on GitHub

Hi 👋 I'm Marcin from Software Mansion and I'd like to work on this

PRs:

https://github.com/Expensify/App/pull/52051
https://github.com/Expensify/Mobile-Expensify/pull/13272


Git: display more information on the branch name

THis patch will display a hash in case there are no branch name, and information about merging, rebasing, cherry-picking, bisecting.

Thanks. Can you post a screenshot of before and after? With this change, is it possible to keep minimal branch info in the prompt, as it is now?

Sorry, I didn't have time to do it before.
Here is the screenshot before:

And the same after:

THe changes are:

display the short sha if htere is no branch name
display some additional information when: rebasing, merging, cherry-picking, bisecting...
all the rest is the same as before

Closing, replacing with #53 - sorry for the inconvenience


redux-resource-fetch

Assuming #275 isn't closed in favor of #250, I should figure out the API for redux-resource-fetch, making the assumption that AbortController is supported.
The popular GitHub fetch polyfill may soon support this: https://github.com/github/fetch/issues/547

One possibility based on #275 :
// There is now only one method!
// The first argument determines which CRUD action it is
crudRequest('read', {
  url: '/pasta/pls',

  // These are options to configure the XHR request
  fetchOptions: {
    credentials: 'include',
    signal: abortController.signal
  },

  // These are properties that are merged into the start and end action by default
  actionProperties: {
    resourceName: 'books',
    mergeMeta: false
  },

  // same as what exists today
  transformData(data) {
   return body.data;
  }
})
  .then(
    (action, body) => dispatch(action)
    (action, err) => dispatch(action)
  );

I'm going to close this as revisit. I'll open it when/if the abort polyfill lands.


Some way to ask people to join the users team

I feel like few people even go to the Forum page. Something that would be as unobtrusive as possible, like a message notification. Too bad you can't send a chat message to yourself.

Make sure you first check they are not part of the team already.

Implemented in v2.3.87


🚸 improve vscode snippet for storage_var

Allowing the developer to jump into the argument block even if he doesn't need to, seems better than not offering this feature. With this improvement, the way we write storage_var that supports an argument is smoother without impacting the experience when you don't need it. In this case, just skip the argument block using tab.

Proposal to outsource the extension here

This PR requires rebasing over 0.10.0.


[Soroban Merge] Create a "Platforms" section

This PR adds a "Platforms" navbar item, that drops down to include Horizon, SDP, Anchor Platform. I've also moved the "Admin Guides" from the /docs section into these respective sections so as to keep everything together.
Still some work to do:

[x] Soroban-RPC should be moved over here from soroban.stellar.org
[x] We use a custom ApiItem as the docItemComponent for the auto-generated openapi pages, but it looks less than good for those admin guide pages. We could probably just add some logic to that ApiItem component to ignore them?
[ ] nginx redirects haven't been added/updated yet
[x] make sure the scripts in package.json are properly written to reflect new filepaths

[ ] test to make sure the redocly things build properly still

Refs: stellar/soroban-docs#757

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Something went wrong with PR preview build please check

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Something went wrong with PR preview build please check

Something went wrong with PR preview build please check

Something went wrong with PR preview build please check

Something went wrong with PR preview build please check

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Something went wrong with PR preview build please check

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Something went wrong with PR preview build please check

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Something went wrong with PR preview build please check

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Something went wrong with PR preview build please check

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr325.previews.kube001.services.stellar-ops.com


Merge editor: expose commands for "accept left/right/combination" for current selection

When I have a merge conflict selected in the merge editor, I would like to be able to accept left/right/combination using a keyboard shortcut. I believe this requires commands which are currently missing. We have merge.acceptAllInput1 and merge.acceptAllInput2 but we need something for the current selection.

merge.toggleActiveConflictInput1 and 2 seem to fit the bill, but there is no combination variant.

I'd like to add to that, once the commands are in place: UI buttons in the gutters for these commands, like in any mature differ (such as meld).


encountering error when using enzyme methods: shallow, mount, etc.

More details can be found on in stack overflow question:
https://stackoverflow.com/questions/55128836/auto-suggest-component-encountered-a-declaration-exception
API

[x] shallow
[x] mount
[ ] render

Version

library
version

enzyme
3.9.0

react
15.3.1

react-dom
15.3.1

react-test-renderer
15.6.2

adapter (below)
1.3.0

Adapter

[ ] enzyme-adapter-react-16
[ ] enzyme-adapter-react-16.3
[ ] enzyme-adapter-react-16.2
[ ] enzyme-adapter-react-16.1
[ ] enzyme-adapter-react-15
[x] enzyme-adapter-react-15.4
[ ] enzyme-adapter-react-14
[ ] enzyme-adapter-react-13
[ ] enzyme-adapter-react-helper
[ ] others ( )

@maksimgm first, you'll need to make sure react-test-renderer has the same minor as react and react-dom - ie, 15.3.
 What exception do you get then?

Also, what are the contents of AutoSuggest?

Can close this issue. After further investigation: the issue was with isomorphic-style-loader
<EMAIL_ADDRESS>Thank you @ljharb


Support for dynamic content size in dropdown

Add means to support dynamic content size in dropdowns
Dropdown positions do not update when content of the dropdown changes in size(This is obvious when either dropup or right properties are set to true). Related issue https://github.com/souporserious/react-popper/issues/60. I don't see how this can be applied to the DropdownMenu. Allowing to pass custom tag can help to create workaround for this but right now Prop type is set to string only(even though react-popper supports both string and component).

components: Dropdown, DropdownMenu
reactstrap version #5.0.0-beta
import method es
react version #15.6.1
bootstrap version #4.0.0-alpha.1

I bumped into this issue as well. Any news on it?
Whenever the screen is forced to re-render the dropdown gets positioned correctly, so this looks more like a glitch in the rendering cycle of the DropdownMenu than an enhancement to me...


Tighten maker /offer API

These fields were optional for backwards compatibility. With new endpoint, they
could be set explicitly from the beginning.
This prevents us from accidentally not charging funding rate when taker goes
short (an optional field on the old /order/sell endpoint).

bors r+


When leave gas price empty, exchange not execute, but button still in pulse state

@huy23121994 Should show error bellow gas price in this case

Fixed in release_0.4.0


Refactored to make containers a first class citizen.

This is extracted from #57 ?

Yes, I'll update that branch and open a new WIP PR once this one is merged.

Any further comments here?

I like this PR! I think it's useful, and looks about right, although I haven't spent much time looking at it at all.
My only reservation is around our other conversation - we may end up changing a lot of this in the near future. However, I still think it's a useful step.

Looks good, thanks!


[server]  html files uploaded to IPFS don't meet HTML spec completely

Describe the bug
using Nu Html Checker,  I found htmls uploaded to IPFS have some errors on HTML syntax
example:
original post on matters
Checker report on IPFS html of this post
Screenshots
report:

Nice catch, please feel free to have a quick fix!

https://github.com/thematters/matters-html-formatter/issues/114 related


Fix empty buffer size on WebGL2

Summary
On WebGL2 we use a uniform binding that is 4096 bytes in size (due to the
way GpuArrayBuffer) works.
In order to not crash on WebGL2, we need to ensure the buffer is big enough
to handle the values we're pretending are there.
Fixes #35

Thanks for taking a look!
Yeah #34 is a pretty big one. I want to sort that out soon. My hunch is it has something to do with how we set up the render graph, but I'm not entirely sure.


Run on Multiple Images

Description of the feature request:
I cant run on multiple images as i am trying to run it on many images and store there output but it is saying
{
"image": "800040_2.pdf_4.jpg",
"description": "I am sorry, I cannot access or process any external files, including images. Therefore, I am unable to extract information from the provided image. \n\nTo assist you, I need the text content of the menu itself. If you can copy and paste the text here, I can help you process it and return the data in the JSON format you requested. \n"
}
What problem are you trying to solve with this feature?
But when i run on single images it works  please let me know what i have done wrong
Any other information you'd like to share?
import os
import json
import google.generativeai as genai
import google.generativeai as genai
from google.colab import userdata
GOOGLE_API_KEY=userdata.get('secretName')
genai.configure(api_key=GOOGLE_API_KEY)
model = genai.GenerativeModel('gemini-1.5-flash')
image_directory = '/content/unzipped_files/New folder/'
for filename in os.listdir(image_directory):
if filename.lower().endswith(('.png', '.jpg', '.jpeg')):
img_path = os.path.join(image_directory, filename)
    # Define your prompt
    prompt = """This image contains the restaurant menu we want to extract the dish name, section , price, description. section will be available at top only if not give blank section. Return output in json format:
                    {section: section , dish name: dish name, price:price, description:description}"""

    # Generate content using the model
    response = model.generate_content([prompt, img_path])  # Pass prompt and image path

    # Create a dictionary for this image
    image_data = {
        'image': filename,
        'description': response.text  # Access the text from the response
    }

    # Save the dictionary as a JSON file
    json_filename = os.path.splitext(filename)[0] + '.json'  # Remove extension and add .json
    json_path = os.path.join(image_directory, json_filename)
    with open(json_path, 'w') as f:
        json.dump(image_data, f, indent=4)

print("JSON files created successfully!")

@sauravsinhaa, Thank you reporting this issue.
This repository is for issues related to Cookbook guides and examples for Gemini API. The output is generated by the Gemini API and for issues related to Gemini API, we would suggest you to use "Send Feedback" option in Gemini docs. Ref: Screenshot below. You can also post this issue on Discourse forum.


[BUG] I can't install my Bloxstrap

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.
[X] I have thoroughly looked through the available Wiki articles and could not find a solution to my problem.
[X] I am using the latest version of Bloxstrap.
[X] I did not answer truthfully to all the above checkboxes.

What problem did you encounter?
I was gonna download Bloxstrap on my PC until i stumble upon this issue:
Bloxstrap.Exceptions.ChecksumFailedException: Failed to verify download of http://setup.rbxcdn.com/version-ad321ed0d27f48b2-RobloxApp.zip
Expected hash: 5d93067558f80b65ca3fe321c9d8b75f
Got hash: 24c19b8d5753ffdf1690f656be5cd6cf
Bloxstrap Log
N/A

You are not using the latest version of Bloxstrap, so I'm not sure why you ticked that checkbox. Also, see https://github.com/pizzaboxer/bloxstrap/wiki/Bloxstrap-is-unable-to-download-Roblox.


Provincial holidays are not being Reported in case of India

I use this to know the status of stock exchanges in India. The stock exchange that I follow is the province with code MH where 15th of October is a holiday declared by state government. But it seems this is not recognized by this program. You can get the official list of holidays from this
https://mmrda.maharashtra.gov.in/public-holidays

@dr-prodigy I would like to submit a patch to fix this.

Did you submit the patch?

NO, not yet. I was waiting for the approval.

Will it help with all state holidays or  with maharastra or stock exchange holidays?

well, ideally there should be all state holidays.

Hi, just fixed and released in beta: thx!


CORS Headers for API Apps

Headers can be defined via config and are only added when app_is_api.
Global routing to method type OPTIONS for api calls responds with a 200, cors headers, and simple message.
Set CORS headers in config files by setting config.cors_headers to a Dict{String,String} containing desired headers. By default this is empty.

@berzley I've added support for 3 in https://github.com/essenciary/Genie.jl/commit/5de0681aff6b31e1f4130d928ea022ab4a9faf46
And I've addressed 1 and 2 in
https://github.com/essenciary/Genie.jl/commit/285e1b7d4f3506555a9537c7d5a72057012f5897
If you run into any problems in your app, let me know.


Veronika and Sveta's AMR annotations should appear here:

Also, "Literature" is somewhat misleading becuase it makes it look like we annotated it, when we in fact did not.

They do appear now under AMR gene tab, if there are PATRIC AMR genes linked to the specific antibiotic. As I understand, mapping AMR roles to specific antibiotics is till work in progress. Hence, you may not see any PATRIC AMR genes for most of the antibiotics.
Here is one example where it does show up:


Fix link in CONTRIBUTING.md

Motivation for this change
broken link
might be also the case in other places
Things done

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

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

Notify maintainers
cc @

I only found one other occurrence in this repo.  I haven't looked into other names that might've gotten changed at the same time.

Thank you. I did not think about link references when I made my changes in the manual.


[Fix #3283] Improve the offense message of Lint/ShadowedException

Before submitting the PR make sure the following are checked:

[x] Wrote good commit messages.
[x] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Used the same coding conventions as the rest of the project.
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
[x] All tests are passing.
[x] The new code doesn't generate RuboCop offenses.
[x] The PR relates to only one subject with a clear title
and description in grammatically correct, complete sentences.

Previously, Rubocop generates a little bit misleading message('Do not
shadow rescued Exceptions') when unnecessary rescued exceptions exist in a same rescue group.
From this commit, Rubocop outputs a different message when it detects unnecessary rescued exceptions.
This fixes #3283

I think the proper solution would actually be to have a single message saying specifically what's get shadowed by what. I don't quite understand the purpose of having different messages, as it's always the same problem.

I was just contemplating what to do to handle this. One of my thoughts was to do what @bbatsov mentioned and list out which exception(s) shadows which other exceptions. The potential downside here is a very long message.
Example:
begin
  a
rescue Exception
  b
rescue StandardError
  c
rescue NoMethodError
  d
end

The message could be along the lines of: "Exception shadows StandardError and NoMethodError." Alternatively, a shorter version of the message could simply be something like: "Exception is shadowing other rescued exceptions."
I also had a thought about breaking this into 2 cops. The problem is the same regardless of one rescue or multiple, but shadowed exceptions in a single rescue could be auto-corrected. Auto-correction could still be accomplished in a single worker, but it may require some extra checks.
I also have some bug fixes that I plan on making a PR for soon.

I see. Thanks.

Btw, if you're going to continue working on this you'll also have to rebase as @rrosenblum made some changes to the cop recently.


mounting

hello I am a Mac user and I have installed all the necicary things needed for sidenoder and for some reason it is not mounting I have deleted and reinstalled macfuse/osxfuse countless time aswell as the app sidenoder itself and for some reason nothing works

The only thing else you can try is to manually configure a drive in rclone using rclone config
https://rclone.org/commands/rclone_config/
Then try to manually mount the drive using rclone mount
https://rclone.org/commands/rclone_mount/
And see if it produces any usefull error, other than that, there is not much i can do

by drive do you mean google drive

any 'drive provider' supported by rclone will do, since the problem is most likely in the actual mount procedure, no matter which 'drive provider' it is

could you point me towards a video of a tutorial for that please

no,      i dont have any links to any video tutorials of rclone, just links to the documentation


sqlite -shm and -wal files cause extra uvicorn reloads

Hey folks, opening an issue instead of a PR because i'm not sure what the best solution is but I can clearly express the problem and you guys can figure out how you want to solve.
The immediate issue is that when i start a fasthtml project from scratch, the project loads 3 times:
$ python main.py
Users found.
Link: http://localhost:5001
INFO:     Will watch for changes in these directories: ['/Users/swyx/Documents/Work/ainews']
INFO:     Uvicorn running on http://<IP_ADDRESS>:5001 (Press CTRL+C to quit)
INFO:     Started reloader process [8628] using WatchFiles
Users found.
Users found.
INFO:     Started server process [8634]
INFO:     Waiting for application startup.
INFO:     Application startup complete.

the 3x "Users found." is the issue, and the cause is the creation of the sqlite files.

now uvicorn has ignore/include options that basically solve this issue, which fasthtml's fast_app() does not expose.  Is it possible you can share a truncated version of your code?

In the meantime, I'm adding your feature request. 😄

@swyxio the serve() function now supports reload_excludes. It is documented here.


Load string literals with managed code

Wanted to get early feedback... @jkotas @MichalStrehovsky

Needs work in lazy string loads. This potentially requires JIT changes which I will work on next.

@jkotas thank you for the feedback, I've addressed them, PTAL.

@jkotas, finally narrowed down the linker errors to remove the /SUBSYSTEM:CONSOLE switch which got me to linking successfully. But then the CLI needs to be updated which is pinned at the moment. I will switch to wmain, it should be a few lines of change when we can update CLI.


Remove unnecessary comment from Icon component

Description
Remove unnecessary comment causing the logging into the console.
Additional context
Fix some typos and use the warning utility instead of the console.warn
Issue reference
https://jira.almacareer.tech/browse/DS-1149

Before submitting the PR, please make sure you do the following

[ ] Read the Contributing Guidelines.
[ ] Follow the PR Title/Commit Message Convention.
[ ] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[ ] Ideally, include relevant tests that fail without this PR but pass with it.

coverage: 80.982% (-15.4%) from 96.371%
when pulling 2d1a8159348a745196071f88134181a3fe9d0d94 on fix/DS-1145-web-react-icon-html-parser
into cd38d9ad4ff8006c0872e65ef7b835d5ca3cdb00 on main.


arch/arm64/src/common/arm64_fatal.c: Fix compilation warning with -We…

…xtra
Summary
When building with systems with -Wextra and -Werror , the following errors are generated for aarch64 compiler:
common/arm64_fatal.c:82:30: error: initialized field overwritten [-Werror=override-init]
   82 |   [ESR_ELX_EC_UNKNOWN]     = "Unknown/Uncategorized",
      |                              ^~~~~~~~~~~~~~~~~~~~~~~
common/arm64_fatal.c:82:30: note: (near initialization for 'g_esr_class_str[0]')
common/arm64_fatal.c:83:30: error: initialized field overwritten [-Werror=override-init]
   83 |   [ESR_ELX_EC_WFX]         = "WFI/WFE",

Even though there is in principle nothing wrong with the code itself, and the error is rather silly, I still would like to propose this small modification to the code, to avoid the warning. The functionality is the same.
Impact
Removes compiler warning with -Wextra. Has no functional impacts.
Testing
Tested on imx9 platform.

[Experimental Bot, please feedback here]
Yes, this PR meets the NuttX requirements, although some sections could be more detailed.  The summary clearly explains the problem and solution. The impact section is adequate. However, the testing section lacks specifics.  It doesn't list the host OS/compiler or the exact imx9 board/configuration used, nor does it provide any "before" and "after" logs demonstrating the warning's elimination.  While the change itself seems minor, providing these details would strengthen the PR and make it easier to review and merge.


mysql_tzinfo_to_sql errors with tzdata 2013f and above

[pashev@nixos:~/nixpkgs]$ /nix/store/l9wcg5md0c01jhfmk943ygf9b67gxli0-mysql-5.1.73/bin/mysql_tzinfo_to_sql /nix/store/m4fgmmsnl8wkmxzvas3kv71sa13v6mj4-tzdata-2014j/share/zoneinfo/ >/dev/null
Warning: Unable to load '/nix/store/m4fgmmsnl8wkmxzvas3kv71sa13v6mj4-tzdata-2014j/share/zoneinfo//iso3166.tab' as time zone. Skipping it.
Warning: Unable to load '/nix/store/m4fgmmsnl8wkmxzvas3kv71sa13v6mj4-tzdata-2014j/share/zoneinfo//posix/iso3166.tab' as time zone. Skipping it.
Warning: Skipping directory '/nix/store/m4fgmmsnl8wkmxzvas3kv71sa13v6mj4-tzdata-2014j/share/zoneinfo//posix/posix': to avoid infinite symlink recursion.
Warning: Unable to load '/nix/store/m4fgmmsnl8wkmxzvas3kv71sa13v6mj4-tzdata-2014j/share/zoneinfo//posix/zone.tab' as time zone. Skipping it.
Warning: Unable to load '/nix/store/m4fgmmsnl8wkmxzvas3kv71sa13v6mj4-tzdata-2014j/share/zoneinfo//posix/zone1970.tab' as time zone. Skipping it.
Warning: Unable to load '/nix/store/m4fgmmsnl8wkmxzvas3kv71sa13v6mj4-tzdata-2014j/share/zoneinfo//zone.tab' as time zone. Skipping it.
Warning: Unable to load '/nix/store/m4fgmmsnl8wkmxzvas3kv71sa13v6mj4-tzdata-2014j/share/zoneinfo//zone1970.tab' as time zone. Skipping it.

@shlevy ?

@rickynils ?

@ip1981 should this be applied to master too?

Is this still relevant?

Mariadb is fine. Can't tell on mysql.


Adding taxdump format and taxdump-to-tree converter

Per discussion with @wasade , I created this format, parser and converter. It is useful for reading NCBI taxonomy database (taxdump) into data frames and convert them into a phylogenetic tree (skbio.TreeNode). It is potentially useful for level-flexible classification of microbiome data.
This functionality was inspired by a similar function implemented by me in Woltka: https://github.com/qiyunzhu/woltka. In developing the current PR, I re-wrote the code in a way that is coherent with scikit-bio standards.
The tentative usage is:
import pandas as pd
from skbio import io, TreeNode
nodes = skbio.io.read('nodes.dmp', format='taxdump', scheme='nodes', into=pd.DataFrame)
names = skbio.io.read('names.dmp', format='taxdump', scheme='names', into=pd.DataFrame)
tree = TreeNode.from_taxdump(nodes, names)

Please complete the following checklist:

[x] I have read the guidelines in CONTRIBUTING.md.

[x] I have documented all public-facing changes in CHANGELOG.md.

[ ] This pull request includes code, documentation, or other content derived from external source(s). If this is the case, ensure the external source's license is compatible with scikit-bio's license. Include the license in the licenses directory and add a comment in the code giving proper attribution. Ensure any other requirements set forth by the license and/or author are satisfied. It is your responsibility to disclose code, documentation, or other content derived from external source(s). If you have questions about whether something can be included in the project or how to give proper attribution, include those questions in your pull request and a reviewer will assist you.

[ ] This pull request does not include code, documentation, or other content derived from external source(s).

Note: REVIEWING.md may also be helpful to see some of the things code reviewers will be verifying when reviewing your pull request.

@wasade I didn't touch the .c files. Perhaps the changes happen automatically when I ran unit tests? Do you know how to fix?

This seems reasonable but would it be possible to not include the changes to the .c files?

@wasade I didn't touch the .c files. Perhaps the changes happen automatically when I ran unit tests? Do you know how to fix?

This seems reasonable but would it be possible to not include the changes to the .c files?

Manually fixed. No worry.

@qiyunzhu, I'm +1 on this. Could you add a mention in the changelog? We can merge after

@wasade Thanks! Changelog edited.

Thanks!!


Support chains other than filter

For comprehensive iptables support, in addition to the filter chain, also support raw, nat, and mangle.
There is an attempt in helpers_iptables.rb (#L24) to support NAT, but this isn't actually compatible with iptables-restore.  This change is going to require a bit of restructuring.

It would be great to see support for this, particularly when wanting to create rules such as -A FORWARD -j REJECT --reject-with icmp-host-prohibited.

I had to get NAT working for my load balancer recipe. I needed all VIPs on the load balancer to send packets out through themselves, rather than the original IP of the host. I hacked together some changes to the cookbook to get it working. The reason it's considered a hack is because of the converge of the ruleset. It's converged using a sort.uniq. Iptables looks at both *nat and filter sections as different sections, each requiring their own COMMIT line. But the sort.uniq sees 2 commit lines and removes one. I hacked around it by modifying the COMMIT line to be COMMIT_NAT and COMMIT_FILTER in the defaults section, and right AFTER the sort.uniq, when it's running through the lines to inject them, I replace anything COMMIT_ with COMMIT. Very hackish, but unless/until there is a different way to roll through these and make them uniq, excluding the COMMIT lines, this is what is needed... YMMV.
Basically, the command I needed support for was exactly this...
iptables -t nat -A POSTROUTING -o eth1 -p tcp -d <IP_ADDRESS> -j SNAT --to-source <IP_ADDRESS>
iptables -t nat -A POSTROUTING -o eth1 -p tcp -d <IP_ADDRESS> -j SNAT --to-source <IP_ADDRESS>

Where <IP_ADDRESS> and.22 are servers in the load balanced pool and <IP_ADDRESS> is the VIP on the load balancer. Using keepaliveD on the load balancer to add the IP to the eth1 interface, but the traffic always flows out of the first IP configured on the interface...
Now, my load balancer recipe calls the firewall_rule like so:
    firewall_rule "api1.vagrant.powerdms.net postrouting src nat to <IP_ADDRESS>" do
      direction :post
      command :snat
      destination "<IP_ADDRESS>"
      dest_interface "eth1"
      protocol :tcp
      to_source "<IP_ADDRESS>"
    end
  end

    firewall_rule "api2.vagrant.powerdms.net postrouting src nat to <IP_ADDRESS>" do
      direction :post
      command :snat
      destination "<IP_ADDRESS>"
      dest_interface "eth1"
      protocol :tcp
      to_source "<IP_ADDRESS>"
    end
  end

The iptables file then gets generated like so:

# position 1
*nat
# position 2
:PREROUTING ACCEPT
# position 3
:POSTROUTING ACCEPT
# position 50
-A POSTROUTING -d <IP_ADDRESS> -o eth1 -p tcp -m tcp -m comment --comment "api01.vagrant.powerdms.net postrouting src nat to <IP_ADDRESS>" -j SNAT --to-source <IP_ADDRESS>
-A POSTROUTING -d <IP_ADDRESS> -o eth1 -p tcp -m tcp -m comment --comment "api02.vagrant.powerdms.net postrouting src nat to <IP_ADDRESS>" -j SNAT --to-source <IP_ADDRESS>
# position 100
COMMIT
# position 101
*filter
# position 102
:INPUT DROP
# position 103
:FORWARD DROP
# position 104
:OUTPUT ACCEPT
# position 150
-A INPUT -p tcp -m tcp -m multiport --dports 22 -m comment --comment "allow world to ssh" -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -m comment --comment "established" -j ACCEPT
-A INPUT -p icmp -m comment --comment "Allow ICMP" -j ACCEPT
-A INPUT -p tcp -m tcp -m multiport --dports 80 -m comment --comment "http" -j ACCEPT
-A INPUT -p tcp -m tcp -m multiport --dports 443 -m comment --comment "web_https" -j ACCEPT
-A INPUT -p tcp -m tcp -m multiport --dports 6380 -m comment --comment "redis_rw" -j ACCEPT
-A INPUT -p tcp -m tcp -m multiport --dports 6388 -m comment --comment "redis_ro" -j ACCEPT
-A INPUT -p tcp -m tcp -m multiport --dports 9200 -m comment --comment "elasticsearch" -j ACCEPT
-A INPUT -p tcp -m tcp -m multiport --dports 55555 -m comment --comment "hirus_compare" -j ACCEPT
-A INPUT -p tcp -m tcp -m multiport --dports 55556 -m comment --comment "hirus_convert" -j ACCEPT
-A INPUT -p tcp -m tcp -m multiport --dports 55557 -m comment --comment "hirus_backup" -j ACCEPT
# position 200
COMMIT

And now the traffic destined for <IP_ADDRESS> gets sent out of that interface and the servers in the load balanced pool see traffic coming from that interface as they should, instead of from the original eth1 IP (<IP_ADDRESS>)...
On to the relevant file changes...
libraries/helpers.rb : When converging the uniq lines into contents, replace any line that has COMMIT_ with COMMIT.
         contents << "# position #{sorted_value}"
         rules.each do |k, v|
           next unless v == sorted_value
+          if k.include?("COMMIT_")
+            k = "COMMIT"
+          end
           contents << k
         end
       end

libraries/helpers_iptables.rb : Several things are changing here...

Add SNAT into the TARGET variable.

Commented out the -t nat addition to the line because it breaks iptables.

Adding --to-source just before firewall_rule.strip!. It's dependent on SNAT being set.

In the default_ruleset, I add the *nat options and I set the COMMIT for NAT to be 100, and move the *filter options to start at 101, with COMMIT_FILTER being 200. This leaves the range in tact for the *filter and gives *nat an equal range to work with. Later on, you'll see that both the nat_position and position will start at 50 and 150 respectively.

       CHAIN = { in: 'INPUT', out: 'OUTPUT', pre: 'PREROUTING', post: 'POSTROUTING' } unless defined? CHAIN # , nil => "FORWARD"}
-      TARGET = { allow: 'ACCEPT', reject: 'REJECT', deny: 'DROP', masquerade: 'MASQUERADE', redirect: 'REDIRECT', log: 'LOG --log-prefix "iptables: " --log-level 7' } unless defined? TARGET
+      TARGET = { allow: 'ACCEPT', reject: 'REJECT', deny: 'DROP', masquerade: 'MASQUERADE', redirect: 'REDIRECT', log: 'LOG --log-prefix "iptables: " --log-level 7', snat: 'SNAT' } unless defined? TARGET

       def build_firewall_rule(current_node, rule_resource, ipv6 = false)
         el5 = (current_node['platform'] == 'rhel' || current_node['platform'] == 'centos') && Gem::Dependency.new('', '~> 5.0').match?('', current_node['platform_version'])
 @@ -13,16 +13,19 @@ def build_firewall_rule(current_node, rule_resource, ipv6 = false)
         if rule_resource.raw
           firewall_rule = rule_resource.raw.strip
         else
          firewall_rule = '-A '

           if rule_resource.direction
            firewall_rule << "#{CHAIN[rule_resource.direction.to_sym]} "
           else
            firewall_rule << 'FORWARD '
           end

-          if [:pre, :post].include?(rule_resource.direction)
-            firewall_rule << '-t nat '
-          end
+          #if [:pre, :post].include?(rule_resource.direction)
+          #  firewall_rule << '-t nat '
+          #end
+

           # Iptables order of prameters is important here see example output below:
           # -A INPUT -s <IP_ADDRESS>/32 -d <IP_ADDRESS>/32 -i lo -p tcp -m tcp -m state --state NEW -m comment --comment "hello" -j DROP
 @@ -46,6 +49,10 @@ def build_firewall_rule(current_node, rule_resource, ipv6 = false)
           end

           firewall_rule << "-j #{TARGET[rule_resource.command.to_sym]} "
           firewall_rule << "--to-ports #{rule_resource.redirect_port} " if rule_resource.action == :redirect
+
+          # Adding to-source for iptables -t nat type of rules
+          firewall_rule << "--to-source #{rule_resource.to_source} " if rule_resource.command == :snat
+

           firewall_rule.strip!

 @@ -93,11 +100,16 @@ def iptables_default_allow!(new_resource)

       def default_ruleset(current_node)
         {
-          '*filter' => 1,
-          ":INPUT #{current_node['firewall']['iptables']['defaults'][:policy][:input]}" => 2,
-          ":FORWARD #{current_node['firewall']['iptables']['defaults'][:policy][:forward]}" => 3,
-          ":OUTPUT #{current_node['firewall']['iptables']['defaults'][:policy][:output]}" => 4,
-          'COMMIT' => 100
+          '*nat' => 1,
+          ':PREROUTING ACCEPT' => 2,
+          ':POSTROUTING ACCEPT' => 3,
+          ':OUTPUT ACCEPT' => 4,
+          'COMMIT_NAT' => 100,
+          '*filter' => 101,
+          ":INPUT #{current_node['firewall']['iptables']['defaults'][:policy][:input]}" => 102,
+          ":FORWARD #{current_node['firewall']['iptables']['defaults'][:policy][:forward]}" => 103,
+          ":OUTPUT #{current_node['firewall']['iptables']['defaults'][:policy][:output]}" => 104,
+          'COMMIT_FILTER' => 200
         }
       end

libraries/provider_firewall_rule_iptables.rb : Modified types.each do loop to check whether the command uses SNAT in the line, and if it does, it generates a line number using nat_position, instead of position. This gives us a proper ordering/numbering of all of our lines..
       types.each do |iptables_type|
         # build rules to apply with weight
         k = build_firewall_rule(node, new_resource, iptables_type == 'ip6tables')
-        v = new_resource.position
-
+        unless k.include?("SNAT")
+          v = new_resource.position
+        else
+          v = new_resource.nat_position
+        end
+

libraries/resource_firewall_rule.rb :

Added the :snat option in the attribute :command
Added the nat_position attribute, setting the value to 50
Change the position attribute value to 150
Added the to_source attribute

     attribute(:firewall_name, kind_of: String, default: 'default')

-    attribute(:command, kind_of: Symbol, equal_to: [:reject, :allow, :deny, :masquerade, :redirect, :log], default: :allow)
+    attribute(:command, kind_of: Symbol, equal_to: [:reject, :allow, :deny, :masquerade, :redirect, :log, :snat], default: :allow)

     attribute(:protocol, kind_of: [Integer, Symbol], default: :tcp,
                          callbacks: { 'must be either :tcp, :udp, :icmp, :\'ipv6-icmp\', :icmpv6, :none, or a valid IP protocol number' => lambda do |p|
 @@ -31,7 +31,9 @@ class Resource::FirewallRule < Chef::Resource::LWRPBase
     attribute(:dest_port, kind_of: [Integer, Array, Range])
     attribute(:dest_interface, kind_of: String)

-    attribute(:position, kind_of: Integer, default: 50)
+
+    attribute(:nat_position, kind_of: Integer, default: 50)
+    attribute(:position, kind_of: Integer, default: 150)
     attribute(:stateful, kind_of: [Symbol, Array])
     attribute(:redirect_port, kind_of: Integer)
     attribute(:description, kind_of: String, name_attribute: true)
 @@ -43,6 +45,9 @@ class Resource::FirewallRule < Chef::Resource::LWRPBase
     attribute(:program, kind_of: String)
     attribute(:service, kind_of: String)

+    # --to-source option for nat in iptables
+    attribute(:to_source, kind_of: String)
+
     # for when you just want to pass a raw rule
     attribute(:raw, kind_of: String)
   end

Thanks @timwelch. I've added a workaround similar to yours, and released v2.4.0. I think we also need to do some refactoring as I've described in the commit message. If you have any opinions on that, let me know :)


Standard way to report errors

Fixes #80

ready for review @miguelsorianod

As this changes the output content (now that I think about it, the same happens with json structured output), should we add some info in the future release notes telling that the shown output of some commands has changed? (in case someone is relying on that)

Looks good to me.
Just some minor comments about how it works and feedback

As this changes the output content (now that I think about it, the same happens with json structured output), should we add some info in the future release notes telling that the shown output of some commands has changed? (in case someone is relying on that)

The json structured output does not break backward compatibility, as it is optional.
Yes, indeed, when there are errors, this PR changes the output (in stderr). Adding release notes about this is a good idea


webjars/requireJS script error

Using  "org.webjars.npm" % "react-autosuggest" % "3.7.3" as an AMD module with RequireJS, requirejs tries to load react from the wrong location, ignoring the path in my requirejs.config
   require.config({         paths: {             jquery: "../lib/jquery/jquery",             bootstrap: "../lib/bootstrap/js/bootstrap",             react: '../lib/react/react',             reactdom: '../lib/react-dom/dist/react-dom',             autosuggest: '../lib/react-autosuggest/dist/standalone/autosuggest'         },         shim: {             bootstrap: {                 deps: ["jquery"]             },             reactdom: {                 deps: ["react"]              },     });
This results in a (failed) 'GET React' using the path of my normal js assets folder when autosuggest tells requirejs to load React as a dependency, though React has already been loaded as a lib. I believe this is due to a single-letter error in the webjars version of autosuggest.js. Specifically, line 5 below:
(function webpackUniversalModuleDefinition(root, factory) { 	if(typeof exports === 'object' && typeof module === 'object') 		module.exports = factory(require("React")); 	else if(typeof define === 'function' && define.amd) 		define(["React"], factory); 	else if(typeof exports === 'object') 		exports["Autosuggest"] = factory(require("React")); 	else 		root["Autosuggest"] = factory(root["React"]); })(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {
define(["React"], factory);
should be
define(["react"], factory);
Perhaps I am misunderstanding requirejs or webjars, but making the R->r change solved the problem for me.

Sounds like a WebJars issue, rather than a react-autosuggest issue. I suggest you open a PR there.


Staging and Prod loadtesting uplift

Increase appResources and probe timeouts for whitehall-frontend
Increase all apps to 3 pod replicas for production.

Thanks!


Photo stream sources

How easily can we fetch from other sources (eg. G+)

Since we have moved everything to our own media platform this is no longer needed.


User defined twice

https://github.com/tmaier/errbit-helm/blob/master/dockerfile/Dockerfile#L9
Error: failed to start container "errbit-helm": Error response from daemon: linux spec user: unable to find user errbit: no matching entries in passwd file

Seems to be related to the changes of PR errbit/errbit#1275
Can you check for other changes necessary based on this?


added null-check to avoid NullPointerException

Codecov Report

Merging #434 (1f1a312) into master (7f3f9f5) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##             master     #434   +/-   ##
=========================================
  Coverage     97.12%   97.12%
  Complexity     2332     2332
=========================================
  Files            84       84
  Lines          5780     5781    +1
  Branches        936      937    +1
=========================================
+ Hits           5614     5615    +1
  Misses           87       87
  Partials         79       79

Impacted Files
Coverage Δ

...org/apache/commons/text/RandomStringGenerator.java
93.50% <100.00%> (+0.08%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Create new api to handle Edit profile info

For reference take a look at  https://www.meetup.com/account/
You need to create a new patch api in users feature to handle update profile
Do not worry about updating location will cover later just  for now handle update name and bio

Hi I would like to work on this. Can you please assign it to me.

Thanks @MrCyberlord  Assigned

@MrCyberlord let me know if you need further help to work on this issues ?


ImageButton ignoring input Image rounding

ui.add(ImageButton::new(
    egui::Image::new(SizedTexture::new(
        *a_texture_id,
        egui::Vec2::new(1.0, 1.0)
    )).rounding(50.0)
));

https://github.com/emilk/egui/blob/master/crates/egui/src/widgets/button.rs#L620 is the problem line I believe
Expected behavior
The image button should respect the input image's rounding. There should also maybe be an exposed .rounding method on the ImageButton. I might try to fix this later myself....

@v-kat did you end up working on this? I'm looking for ways to get comfortable with contributing to egui and the code base in general. Thinking this bug may be a nice intro if you didn't already take it on.

I haven't thanks for asking. You can go ahead with it. I also wanted to checked on keyboard support for ImageButton and menu_image_button too. https://github.com/emilk/egui/pull/3288 is an example small PR

great thanks!

@v-kat I opened draft PR for this last night. If you get a moment just let me know if there's anything you would change and if not I'll mark it ready for review. I did mention in the PR too that a new rounding() method on the ImageButton itself could be a separate issue/enhancement. Let me know if you disagree though.


ListView: Change Row Size

I have a list with a title and a description column.
I want to have the sizing of three rows for each item in my list. How can I change that using the ListView implementation?

Hi @robiharid,
This can be done through the viewFields prop, which is type of IViewField and contains properties such as minWidth, maxWidth and isResizable.
More info here.
Does this answer to your question?


updateUser function added in userController.js

Issue: 61
Short description of what this resolves:
Changes proposed in this pull request and/or Screenshots of changes:

@BuddyLongLegs Please review the changes made

@BuddyLongLegs Added email validation using validator library and no field is updated if the email is invalid

@BuddyLongLegs Added recaptcha verification


Overlapping scrollbar doesn't scroll outer scrollbar

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version: 1.70.0
OS Version:  macOS 12.5 (21G72)

Steps to Reproduce:
There are overlapping scrollbars in the debugger section, in each of the section even if you reach the end of the scroll of the nested section, it does not scroll the outside scrollbar.
I believe it should scroll the outside scrollbar once you have reached the min or max scroll position in the inner scrollbar.
https://user-images.githubusercontent.com/14011001/184428389-5f4aee7a-0115-4e3c-9ca5-94bbcf47e067.mov

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.70.1. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

Similar issue, https://github.com/microsoft/vscode/issues/130901

The outer scrollbar shouldn't show up at all - when the window is short like this, the views should be resizing to fit within it. I'm not sure what is causing their large minimum heights. Maybe you can look at it when you're back @sbatten

@sandy081, do you know how this works?

No idea, These are split views probably @joaomoreno knows better.


protocol.md spacing issue and updates required

The transition to markdown has led to some issues with spacing in the file. Also some of the instructions are outdated (e.g. referring to a Dropbox upload).

This issue has been resolved. Thanks @ggupta23 and @kaylaferko!


Add link to hosted SDD document as website

@stanblum, this is a follow-up of https://github.com/tdwg/sdd/pull/5#issuecomment-1416875440, where you mentioned:

In the meantime, I think I'll make the simplest edits on the SDD GitHub landing page so that the Intro/Primer is easily accessible.

If forgot to mention yesterday that you can include a website and github in the frontmatter, which will show up as buttons in the header, e.g.

This PR adds a https://tdwg.github.io/sdd/SddContents.html as website button on the SDD page. I'm not sure that was your goal though. The referenced page is only one of the two documents of SDD, i.e. the "SDD Part 0: Introduction and Primer to the SDD Standard", so maybe it's better to reference that under here rather than in the header.
@larsgw @baskaufs thoughts?

Given that the Intro/Primer is the only web-ish sort of resource; I'm not
sure referencing it as a website is appropriate, but I'm undecided.  (In
contrast, the xml-schema doc is a single file: SDD.xsd.)
On the other hand, it looks as though the "Permanent IRI" attribute for the
Intro/Primer has got some redirection going on that needs to be "fixed".
The IRI is given as:  http://rs.tdwg.org/sdd/doc/introduction/;  but
redirects to
https://github.com/tdwg/wiki-archive/blob/master/twiki/data/SDD/Primer/SddIntroduction.txt,
which can be ignored now, as the HTML version is available.
I'll ask the Infrastructure and TAG folks how we should handle this.
-Stan
On Tue, Feb 7, 2023 at 12:11 AM Peter Desmet @.***>
wrote:

@stanblum https://github.com/stanblum, this is a follow-up of tdwg/sdd#5
(comment) https://github.com/tdwg/sdd/pull/5#issuecomment-1416875440,
where you mentioned:
In the meantime, I think I'll make the simplest edits on the SDD GitHub
landing page so that the Intro/Primer is easily accessible.
If forgot to mention yesterday that you can include a website and github
in the frontmatter, which will show up as buttons in the header, e.g.
[image: Screenshot 2023-02-07 at 09 07 22]
https://user-images.githubusercontent.com/600993/217187462-1ae05d4a-473f-4a8d-89f3-bc86f006906c.png
This PR adds a https://tdwg.github.io/sdd/SddContents.html as website
button on the SDD page. I'm not sure that was your goal though. The
referenced page is only one of the two documents of SDD, i.e. the "SDD Part
0: Introduction and Primer to the SDD Standard", so maybe it's better to
reference that under here
https://www.tdwg.org/standards/sdd/#introduction-and-primer-to-the-structured-descriptive-data-sdd-standard
rather than in the header.
@larsgw https://github.com/larsgw @baskaufs
https://github.com/baskaufs thoughts?
You can view, comment on, or merge this pull request online at:
https://github.com/tdwg/website/pull/489
Commit Summary

5da3431
https://github.com/tdwg/website/pull/489/commits/5da34317f6b529213c04aa09f6969885a434a5dc
Add link to hosted SDD document as website

File Changes
(1 file https://github.com/tdwg/website/pull/489/files)

M standards/sdd/index.md
https://github.com/tdwg/website/pull/489/files#diff-b57110d2bd71601e9254fbee15f624452cf8fabef9700c2c13946f7385a26f3e
(1)

Patch Links:

https://github.com/tdwg/website/pull/489.patch
https://github.com/tdwg/website/pull/489.diff

—
Reply to this email directly, view it on GitHub
https://github.com/tdwg/website/pull/489, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACKZUDIP3DLVGLUOYAXTX7DWWH7U3ANCNFSM6AAAAAAUTUJRXY
.
You are receiving this because you were mentioned.Message ID:
@.***>

Since it's only a single web page, I'd skip the "website" button and just fix the link.
All of the redirection from rs.tdwg.org URLs is handled by entries in some table in the rs.tdwg.org repository. In the case of documents, redirection is controlled by the browserRedirectUri column of this table. There is also a versions table with the same column. Since this isn't a new version of the document, I'll just update the entry for the SDD primer in both tables as soon as it's live. Just let me know.

FYI, I'm trying to streamline the process of updating the metadata for documents. Ultimately, I'd like there to just be a series of scripts that would automate everything, but I'm not yet there. The start of that work is this script

We got the recommendation from Tim and Matt (@ gbif) to use [standard-name].tdwg.org strategy

wherever possible. It will allow us to move away from GitHub should that be required in the future, and also looks more official.

So I'm going to accept this PR as one step in several that need to be done.  The other steps don't involve the main website, so I'll add issues where appropriate (sdd and rs repos).   But I/we will have circle back here and update the link for the website, when the sdd subdomain has been setup.


TE5: [TC-DIAGSW-1.1] cannot be execute because the cluster is unknown in chip-device-ctrl

Problem
TE5: [TC-DIAGSW-1.1] cannot be execute because the cluster is unknown in chip-device-ctrl
chip-device-ctrl > zclread ? DiagnosticsSoftware
An exception occurred during reading ZCL attribute:
UnknownCluster: DiagnosticsSoftware
Proposed Solution
Include the cluster.

If you type, zclread ?, you will see the cluster name "SoftwareDiagnostic" instead of "DiagnosticsSoftware" by the latest spec. This change will be reflected in TE6.  Refer issue at #9600.


Occational CPU Lockups on high BLE throughput

Describe the bug
We have an application based on a nrf52840. We see occational CPU Lockups while sending BLE notifications every few ms.
It seems to happen more oftnen when CONFIG_ASSERT=y is enabled, but also happens without that.
No log message is output, the MCU simply restarts and the CPU Lockup flag is set.
The code is used for a measurement device. We run an external ADC at 10 kSamples/s and read its data through SPI DMA transfers. After 30 samples (=> 333 kHz) we trigger an Interrupt Handler which copies the data into another buffer.
Then we we release a semaphore. A Kernel Thread is waiting for this semaphore so it can grab the data from the buffer.
If there is enough data for a BLE Notification, it gets created and provided to bt_gatt_notify().
What is the best way to trace this further down?
Environment :

OS: Ubuntu 20.04,
Toolchain: zephyr-sdk-0.12.2
Zephyr Project (Tag 2.5.0)

I can enforce the CPU Lockup with following code in the main loop:
#include <logging/log_ctrl.h>

while (1) {
        if (k_uptime_get() > 5000) {
            log_panic();
        }
}

I might have found the culprit:
I have my own logger backend defined but I haven't defined a custom panic handler:
static uint8_t bt_output_buf[MAX_MESSAGE_SIZE];

static int putMessageToQueue(uint8_t *data, size_t length, void *ctx) {

}

LOG_OUTPUT_DEFINE(log_output_bt, putMessageToQueue, bt_output_buf, MAX_MESSAGE_SIZE);

static void put(const struct log_backend *const backend, struct log_msg *msg) {
    uint32_t flags;
    flags = LOG_OUTPUT_FLAG_LEVEL | LOG_OUTPUT_FLAG_TIMESTAMP | LOG_OUTPUT_FLAG_CRLF_NONE;
    if (IS_ENABLED(CONFIG_LOG_BACKEND_FORMAT_TIMESTAMP)) {
        flags |= LOG_OUTPUT_FLAG_FORMAT_TIMESTAMP;
    }

    log_output_msg_process(&log_output_bt, msg, flags);
}

const struct log_backend_api log_backend_bt_api = {
    .put = put,
    .put_sync_string = NULL,
    .put_sync_hexdump = NULL,
    .panic = NULL,  // <-- If set to NULL, it will crash on log_panic();
    .init = NULL,
    .dropped = NULL,
};

LOG_BACKEND_DEFINE(log_backend_bt, log_backend_bt_api, true);

When I create a panic handler and assign it, it no longer crashes on a log_panic() call.
Can somebody confirm this?

Can somebody confirm this?

I am hoping @nordic-krch can confirm that.

yes, logger expects that panic handler is part of the backend and calls in unconditionally.

OK, closing this then.

Thanks for the clarification.
Sadly I still experience CPU Lockup Resets, even when I disable my custom Log Backend.
Is there any way to trace down why those Lockups get triggered?
I need to nail it down more and create another bug report here.

@carlescufi you might want to reopen this issue, it seems the original problem of the kernel locking up is not resolved.
I've been experiencing this problem for a couple years now.  When there is a panic, it seems like the panic causes a hard fault which causes another panic and then the kernel gets stuck pending on a semaphore.

@sslupsky I see there's #35316 now instead, so let's track this issue there.


Remove Extreme "Bonus" Roles

Remove Parses/Clear count from Extreme/Unreal Raids

Clear count is already in another ticket, just need to remove the parse function.

related to #4

No longer needed. Yipee


[Setup]Fixed Errors at setting up website in Windows OS

Signed-off-by: Harshit-Dandriyal<EMAIL_ADDRESS>Description
The {Make site} is working fine in ubantu without this PR

But, In Windows It was creating a error

Now, On many Unix-based systems (e.g. Linux), TZInfo is able to use the system [zoneinfo] directory as a source of data. However, Windows doesn't include such a directory, so the tzinfo-data gem needs to be installed instead
but still After adding
gem 'tzinfo-data'
gem 'tzinfo'
in Gemfile
Another Error occurs

It was solved by adding
gem 'eventmachine', '1.2.7', git: 'https://github.com/eventmachine/eventmachine.git', tag: 'v1.2.7'
in gemfile
This PR fixes #
[Setup]Fixed Errors at setting up website in Windows OS
Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

@cpepper96 will you have a look this PR?

I just realized this is not meshery/meshery repo. Whoops, I will have to look at this tomorrow 😂

yep this works on my machine. @Harshit-Dandriyal what is the .eventmachine.swp file? Is that necessary? It works on mine without it.
CC: @leecalcote

@cpepper96 I already sent my list of error coming up in this PR. Also, It's happening in windows platform only.

@cpepper96 I think that tz-info dependecy error will be coming up in every windows platform

@leecalcote Done 👍

@Harshit-Dandriyal, what are the eventmachine and tzinfo_data packages used for? Why are they necessary for building this site on Windows and not on Mac and Linux?

@leecalcote
The TZInfo::DataSourceNotFound error is being raised by TZInfo, a dependency of the Active Support component of Rails. TZInfo is looking for a source of time zone data on your system, but failing to find one.
On many Unix-based systems (e.g. Linux), TZInfo is able to use the system zoneinfo directory as a source of data. However, Windows doesn't include such a directory, so the tzinfo-data gem needs to be installed instead. The tzinfo-data gem contains the same zoneinfo data, packaged as a set of Ruby modules.
Rails generates a default Gemfile when the application is first created. If the application is created on Windows, then a dependency for tzinfo-data will be included. However Rails (up to version 4.1.x) omitted :x64_mingw from the list of platforms and therefore didn't work correctly on 64-bit Windows versions of Ruby.
I found this about tzinfo_data

Thanks @leecalcote, I almost forgot about this PR :joy:


gitlab CI build status not updating

Build status no longer shows up in gitlab when a build is finished. The interface shows the status as "running".
This started after a docker container upgrade of drone.
Gitlab: 8.2.x
Drone: 0.4

If there is any data in the drone logs or Gitlab logs please post here.
@Bugagazavr were GitLab statuses ever implemented in Drone? I remember it was a pending feature, but I can't remember if they were ever implemented. I remember we had to provide GitLab with a bunch of custom URLs that they could access to poll the status at https://github.com/drone/drone/blob/master/controller/gitlab.go
@artworx please note that GitLab implementation does not currently have a maintainer, so any GitLab related issues are all filed as help wanted.

Merge Request status, is a proxy status, gitlab go to drone API and ask about current build status for latest commit.
Build statuses implemented like a github, i can see here
https://github.com/drone/drone/blob/master/remote/gitlab/gitlab.go#L238
https://github.com/drone/drone/blob/master/remote/gitlab/client/project.go#L95

I test this feature with gitlab cloud and dev gitlab

@artworx can you reproduce this error, and show me your gitlab log ( without your private information )? I would to see some drone requests with update build status in gitlab.

Sorry for the late reply.
Here is the section of the log where i create a pull request and drone finishes without updating the status in gitlab:
Started POST "/operandi/operandi/merge_requests" for <IP_ADDRESS> at 2016-02-19 00:10:32 +0200
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"[FILTERED]", "merge_request"=>{"title"=>"drone test", "description"=>"", "assign
ee_id"=>"", "source_project_id"=>"1476", "source_branch"=>"feature/drone-bug-test", "target_project_id"=>"1476", "target_branch"=>$
master"}, "namespace_id"=>"operandi", "project_id"=>"operandi"}
Redirected to https://gitlab/operandi/operandi/merge_requests/6
Started GET "/operandi/operandi/merge_requests/6" for <IP_ADDRESS> at 2016-02-19 00:10:32 +0200
  Parameters: {"namespace_id"=>"operandi", "project_id"=>"operandi", "id"=>"6"}
Started GET "//api/v3/projects/operandi%2Foperandi/repository/blobs/5c4960f0afc84bb8a9138472346ebbf796bbc716?filepath=.drone.yml" $
or <IP_ADDRESS> at 2016-02-19 00:10:33 +0200
Started GET "//api/v3/projects/operandi%2Foperandi/repository/blobs/5c4960f0afc84bb8a9138472346ebbf796bbc716?filepath=.drone.sec" $
or <IP_ADDRESS> at 2016-02-19 00:10:33 +0200
Started POST "//api/v3/projects/operandi%2Foperandi/statuses/5c4960f0afc84bb8a9138472346ebbf796bbc716?context=ci%2Fdrone&descripti$
n=this+build+is+pending&ref=feature%2Fdrone-bug-test&state=pending&target_url=http%3A%2F%2Fdrone4%2Foperandi%2Fo$
erandi%2F37" for <IP_ADDRESS> at 2016-02-19 00:10:33 +0200
Started POST "//api/v3/projects/operandi%2Foperandi/statuses/5c4960f0afc84bb8a9138472346ebbf796bbc716?context=ci%2Fdrone&descriptio
n=this+buils+is+running&ref=feature%2Fdrone-bug-test&state=running&target_url=http%3A%2F%2Fdrone4.g%2Foperandi%2Fo$
erandi%2F37" for <IP_ADDRESS> at 2016-02-19 00:10:33 +0200
Started GET "/operandi/operandi/merge_requests/6" for <IP_ADDRESS> at 2016-02-19 00:10:33 +0200
  Parameters: {"namespace_id"=>"operandi", "project_id"=>"operandi", "id"=>"6"}
Started GET "/operandi/operandi/merge_requests/6/ci_status" for <IP_ADDRESS> at 2016-02-19 00:10:34 +0200
  Parameters: {"namespace_id"=>"operandi", "project_id"=>"operandi", "id"=>"6"}
Started GET "/operandi/operandi/merge_requests/6/merge_check" for <IP_ADDRESS> at 2016-02-19 00:10:34 +0200
  Parameters: {"namespace_id"=>"operandi", "project_id"=>"operandi", "id"=>"6"}
Started GET "/operandi/operandi/commit/5c4960f0afc84bb8a9138472346ebbf796bbc716/builds" for <IP_ADDRESS> at 2016-02-19 00:10:37 +0200
  Parameters: {"namespace_id"=>"operandi", "project_id"=>"operandi", "id"=>"5c4960f0afc84bb8a9138472346ebbf796bbc716"}
Started GET "/operandi/operandi/commit/5c4960f0afc84bb8a9138472346ebbf796bbc716/branches" for <IP_ADDRESS> at 2016-02-19 00:10:37 +0200
  Parameters: {"namespace_id"=>"operandi", "project_id"=>"operandi", "id"=>"5c4960f0afc84bb8a9138472346ebbf796bbc716"}
Started GET "/operandi/operandi/merge_requests/6/ci_status" for <IP_ADDRESS> at 2016-02-19 00:10:37 +0200
Started GET "/operandi/operandi/merge_requests/6/merge_check" for <IP_ADDRESS> at 2016-02-19 00:10:37 +0200
  Parameters: {"namespace_id"=>"operandi", "project_id"=>"operandi", "id"=>"6"}
  Parameters: {"namespace_id"=>"operandi", "project_id"=>"operandi", "id"=>"6"}
Started GET "/operandi/operandi.git/info/refs?service=git-upload-pack" for <IP_ADDRESS> at 2016-02-19 00:10:42 +0200
Started GET "/operandi/operandi.git/info/refs?service=git-upload-pack" for <IP_ADDRESS> at 2016-02-19 00:10:42 +0200
Started POST "/operandi/operandi.git/git-upload-pack" for <IP_ADDRESS> at 2016-02-19 00:10:42 +0200
Started POST "/operandi/operandi.git/git-upload-pack" for <IP_ADDRESS> at 2016-02-19 00:10:42 +0200
Started GET "/operandi/operandi.git/info/refs?service=git-upload-pack" for <IP_ADDRESS> at 2016-02-19 00:11:08 +0200
Started GET "/operandi/operandi.git/info/refs?service=git-upload-pack" for <IP_ADDRESS> at 2016-02-19 00:11:08 +0200
Started GET "/operandi/operandi/commit/5c4960f0afc84bb8a9138472346ebbf796bbc716/builds" for <IP_ADDRESS> at 2016-02-19 00:11:42 +0200
  Parameters: {"namespace_id"=>"operandi", "project_id"=>"operandi", "id"=>"5c4960f0afc84bb8a9138472346ebbf796bbc716"}
Started GET "/operandi/operandi/commit/5c4960f0afc84bb8a9138472346ebbf796bbc716/branches" for <IP_ADDRESS> at 2016-02-19 00:11:44 +0200
  Parameters: {"namespace_id"=>"operandi", "project_id"=>"operandi", "id"=>"5c4960f0afc84bb8a9138472346ebbf796bbc716"}

closed due to inactivity as well as others confirming status works with the v4 API

I have a similar issue see https://forum.gitlab.com/t/new-commits-on-merge-request-doesnt-link-new-related-pipeline-using-drone-ci/13264
if anyone has a solution, please share. I don't think that drone is to blame here as everything looks fine there.


Error while selecting date

Dates from future can also be selected while adding income/expense. I guess, it should be disabled.

Yeah! Thanks for addressing this issue, it should be disabled. Feel free to make a pull request if you can fix it!

Thanks, I'll try.

@smrkarkii I would like to work on this. Can you assign this to me?

@anil-muraleedharan Yeah, this issue is still on. You can work on it.

@princid I have raised a PR for this issue could you review it


Integrate RemoteMessaging with NewTabPage

Task/Issue URL: https://app.asana.com/0/1206226850447395/1207703703130204/f
Tech Design URL:
CC:
Description:
Adds RemoteMessaging capability to new NewTabPage layout.
PixelFiring protocol got reorganized and extended, allowing to abstract this functionality and make depending logic testable. So far it was used only in AdAttributionPixelReporter.
Steps to test this PR:

Change RemoteMessagingClient.endpoint value to https://www.jsonblob.com/api/1257306235471781888.
Restart app.
Make sure Internal User flag is set and NewTabPage sections are enabled in debug menu.
Test functionality of all 5 messages.
Check if proper pixels are fired on dismiss, appear, close and actions.
Verify if message does not appear twice after it's dismissed.

Definition of Done (Internal Only):

[ ] Does this PR satisfy our Definition of Done?

Device Testing:

[ ] iPhone 14 Pro
[ ] iPad

Internal references:
Software Engineering Expectations
Technical Design Template

Not sure how compatible it is with the PixelKit work?

@federicocappelli any thoughts on this? Do you think it clashes with PixelKit in any way?

Not sure how compatible it is with the PixelKit work?

@federicocappelli any thoughts on this? Do you think it clashes with PixelKit in any way?

Hi @dus7, from my understanding you wanted to:

Add swift concurrency to the Pixel.fire(...) to fire a pixel synchronously instead of the usual fire-and-forget
Be able to mock pixel firing for testing purposes
Correct?

Your implementation seems good BUT I'm a bit worried about the constant diverging of our approaches across platforms, this could have been a good occasion for adopting PixelKit (only for .appleAdAttribution), adding swift concurrency to it and using the tools in PixelKitTestingUtilities for your unit tests.
My point is that I would like to see more collaboration and various teams working on shared tools instead of each of us re-implementing its own thing. This code becomes immediately tech debt, and another blocker, as soon someone tries to adopt PixelKit in iOS.

Thanks @federicocappelli, this makes complete sense to me. Completely agreed we should not be diverging our approaches and it wasn't my goal at all while writing this. I wasn't aware about the existence of PixelKitTestingUtilities, nor there's any usage of PixelKit yet in iOS app so I just went and solved my own problem which has now escalated to multiple places :).
I'll merge this PR and add a task for myself to add swift concurrency and refactor this code to use PixelKit instead.


Remove "BME33M251"

Follow-up to: https://github.com/arduino/library-registry/pull/427
Resolves https://github.com/arduino/library-registry/issues/428

Putting on hold until @treeaa provides an explanation for https://github.com/arduino/library-registry/pull/438