[Bug]: The table is always in commit state

What happened?
In the commit method, if the snapshot is commit successfully, but an exception occurs in the database and the status update of OptimizingProcess fails, commit will be executed again during the next schedule. Since hasCommitted is already true, the code for database update cannot be called (the database has been restored at this time Normal), this table will always be in the committing state.
https://github.com/apache/amoro/blob/6ef1be7ebee65fcef6f9ca5db9984b248b0768be/amoro-ams/src/main/java/org/apache/amoro/server/optimizing/OptimizingQueue.java#L555-L588
Affects Versions
0.7.1
What table formats are you seeing the problem on?
Iceberg
What engines are you seeing the problem on?
AMS
How to reproduce
No response
Relevant log output
2024-12-13 16:07:19,925 ERROR [async-optimizing-commit-executor-0] [OptimizingQueue] [] - lichen.billing_fact.dwm_i5_eco_sn_user_bw(tableId=120055) Commit optimizing failed
org.apache.amoro.server.exception.PersistenceException: org.apache.ibatis.exceptions.PersistenceException:
### Error updating database.  Cause: java.sql.SQLException: Cannot get a connection, pool error Timeout waiting for idle object, borrowMaxWaitDuration=PT2S
### The error may exist in org/apache/amoro/server/persistence/mapper/OptimizingMapper.java (best guess)
### The error may involve org.apache.amoro.server.persistence.mapper.OptimizingMapper.updateOptimizingProcess
### The error occurred while executing an update
### Cause: java.sql.SQLException: Cannot get a connection, pool error Timeout waiting for idle object, borrowMaxWaitDuration=PT2S
......
......
> grep "has already committed" ams-info.log
2024-12-13 16:08:19,926 WARN [async-optimizing-commit-executor-2] [OptimizingQueue] [] - lichen.billing_fact.dwm_i5_eco_sn_user_bw(tableId=120055) has already committed, give up
2024-12-13 16:09:19,926 WARN [async-optimizing-commit-executor-9] [OptimizingQueue] [] - lichen.billing_fact.dwm_i5_eco_sn_user_bw(tableId=120055) has already committed, give up
2024-12-13 16:10:19,927 WARN [async-optimizing-commit-executor-9] [OptimizingQueue] [] - lichen.billing_fact.dwm_i5_eco_sn_user_bw(tableId=120055) has already committed, give up
2024-12-13 16:11:19,927 WARN [async-optimizing-commit-executor-1] [OptimizingQueue] [] - lichen.billing_fact.dwm_i5_eco_sn_user_bw(tableId=120055) has already committed, give up
2024-12-13 16:12:19,927 WARN [async-optimizing-commit-executor-7] [OptimizingQueue] [] - lichen.billing_fact.dwm_i5_eco_sn_user_bw(tableId=120055) has already committed, give up
2024-12-13 16:13:19,928 WARN [async-optimizing-commit-executor-1] [OptimizingQueue] [] - lichen.billing_fact.dwm_i5_eco_sn_user_bw(tableId=120055) has already committed, give up
2024-12-13 16:14:19,930 WARN [async-optimizing-commit-executor-9] [OptimizingQueue] [] - lichen.billing_fact.dwm_i5_eco_sn_user_bw(tableId=120055) has already committed, give up
2024-12-13 16:15:19,930 WARN [async-optimizing-commit-executor-5] [OptimizingQueue] [] - lichen.billing_fact.dwm_i5_eco_sn_user_bw(tableId=120055) has already committed, give up
2024-12-13 16:16:19,931 WARN [async-optimizing-commit-executor-2] [OptimizingQueue] [] - lichen.billing_fact.dwm_i5_eco_sn_user_bw(tableId=120055) has already committed, give up
2024-12-13 16:17:19,935 WARN [async-optimizing-commit-executor-3] [OptimizingQueue] [] - lichen.billing_fact.dwm_i5_eco_sn_user_bw(tableId=120055) has already committed, give up
2024-12-13 16:18:19,935 WARN [async-optimizing-commit-executor-6] [OptimizingQueue] [] - lichen.billing_fact.dwm_i5_eco_sn_user_bw(tableId=120055) has already committed, give up
2024-12-13 16:19:19,935 WARN [async-optimizing-commit-executor-2] [OptimizingQueue] [] - lichen.billing_fact.dwm_i5_eco_sn_user_bw(tableId=120055) has already committed, give up
2024-12-13 16:20:19,935 WARN [async-optimizing-commit-executor-8] [OptimizingQueue] [] - lichen.billing_fact.dwm_i5_eco_sn_user_bw(tableId=120055) has already committed, give up
2024-12-13 16:21:19,936 WARN [async-optimizing-commit-executor-4] [OptimizingQueue] [] - lichen.billing_fact.dwm_i5_eco_sn_user_bw(tableId=120055) has already committed, give up
2024-12-13 16:22:19,936 WARN [async-optimizing-commit-executor-7] [OptimizingQueue] [] - lichen.billing_fact.dwm_i5_eco_sn_user_bw(tableId=120055) has already committed, give up
2024-12-13 16:23:19,936 WARN [async-optimizing-commit-executor-2] [OptimizingQueue] [] - lichen.billing_fact.dwm_i5_eco_sn_user_bw(tableId=120055) has already committed, give up
2024-12-13 16:24:19,936 WARN [async-optimizing-commit-executor-9] [OptimizingQueue] [] - lichen.billing_fact.dwm_i5_eco_sn_user_bw(tableId=120055) has already committed, give up
2024-12-13 16:25:19,937 WARN [async-optimizing-commit-executor-1] [OptimizingQueue] [] - lichen.billing_fact.dwm_i5_eco_sn_user_bw(tableId=120055) has already committed, give up

....

Anything else
This has happened before. The status lasted for several hours. Restarting the service solved the problem.

Are you willing to submit a PR?

[x] Yes I am willing to submit a PR!

Code of Conduct

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

could you assign to me？

@ihadoop Hi, of course, do you have any suggestions for modifications (I didn’t see your comment this morning, so I submitted a PR)

Ok，using your pr


file download in notebook: stream content to disk rather than memory

See: #197
tutorials/Test_Data_Fetching.ipynb : basic_fetch
The whole response payload is loaded into memory twice. First on download & file write. Second when constructing the digest.  Both these operations can chunked and streamed. The IO operations are also not wrapped around with context managers (which is sometimes understandably tricky in notebooks but good to have where possible).
Otherwise, it's a convenient helper for people who like to work within the notebooks; hencewhy enabling streaming expands the use-case to larger files.

[x] tested on 1gb sample file
[ ] test on dummy file larger than my RAM (which isn't hard to do seeing as I crashed some of the kernels a few times)

How the file download thingo will look like; yes my connection is slow :(

Looks pretty slick, but installing tqdm on the fly could cause problems if the user can't install packages for some reason. Is it possible to either skip the use of tqdm or put some exception handling around it so it will still work otherwise? I very much like using tqdm but I'm not sure about it. If we want to make it a requirement, I'd probably rather add it to the requirements up-front rather than dynamically try to install it in a notebook. What are your thoughts? Maybe I'm worrying about it too much.

but installing tqdm on the fly could cause problems if the user can't install packages for some reason.

I had similar thoughts. tqdm is fairly widely used and there's not any major vulnerabilities (apart from very old versions) as far as I checked. I was also trying to find a "temporary package install" cell-only magic that cleans up automatically, but I'm not quite knowledgeable about ipython to know if that's easily achievable.
If there's compatibility concerns then the easiest solution is to just remove tqdm altogether. That part is mostly a helpful user-feedback thing; which is useful. Although, the focus of the PR is the streaming to disk to allow for larger (>available RAM) file downloads.
An option like show_progress: bool = True is possible, but we'll have to use pip install via subprocess in order to embed it within the python function: https://pip.pypa.io/en/latest/user_guide/#using-pip-from-your-program.


Type conversions for DefaultValue property

 Issue by mylady
Thursday May 05, 2016 at 16:40 GMT
Originally opened as https://github.com/gsscoder/commandline/issues/312

hi,
i'm new to this libray and i followed instructions in the wiki
just do some simple test and i'm confused with the default value and metavalue
for example
 [Option('i', "ip", HelpText = "set remote server ip", DefaultValue = "<IP_ADDRESS>")]
 public string RemoteIPAddress { set; get; }

 [Option('r', "remote", HelpText = "set remote server port, tcp protocol like", DefaultValue = 8000u)]
 public uint RemotePort { set; get; }

if i change type of RemoteIPAddress to IPAddress,there will be an exception report bad default value  string can't be coverted to IPAddress,but for the attribute value ,IPAddress.Any or IPAddress.Loopback can't be set because they are static value
then as the type uint,if i set DefaultValue of RemotePort to 8000,it also cause exception that int can't be converted to uint even if i set MetaValue to "uint"
i dont't quite get it ,any help will be appreciated

 Comment by nemec
Thursday May 05, 2016 at 21:10 GMT

Hi @mylady, you're right - this library doesn't yet support custom type converters.
To accomplish what you want, you can set the default IPAddress.Any in the constructor of your options class. It's not a complete replacement for DefaultValue's behavior, but if all you want to do is provide a non-null default value if -i is not specified, it should work for you.
The uint issue is odd. Since you're using a uint literal in your definition, it should be working fine. In fact, I just tested in LINQPad by copy and pasting your RemotePort property above and it works for me!

 Comment by nemec
Saturday May 07, 2016 at 23:23 GMT

I agree, type conversions for the DefaultValue property would be a great feature. It's not supported right now, though.

 Comment by mylady
Friday May 06, 2016 at 09:07 GMT

@nemec thx for your help
for the uint DefaultValue,I mean if I set DeafaultValue to 8000(int),it will cause exception
and if MetaValue means the type name of the Property,even if i set MetaValue to uint,and set DefaultValue to 8000 it will also throw exception
In my point of view,if i can declear the exact type of the value,  the command line parser should
do the type validation for me or provide a way to validate it.
Take IPAddress for example:
I can use type string to hold the value but i have to make sure the input value is a valid IPAddress not some bad value like "123" or "abc".If i specify this argument's type in custom option class to IPAddress, both valid value like '<IP_ADDRESS>' or invalid value "123" will cause parse failure .This makes
type declearation meaningless
So i think if the type conversion should be provided for at least some common system type(may be it has ready been done but i dont't see it work) and for the custom type you could add a basic validator for developers to extends and call it during the process of argument parse,after all it's all strings ,yes?


Added code for largest subarray sum

pull request merged, now please close the issue, you can also contribute to other repo's-https://github.com/avinash201199/Hacktoberfest-Guide
Note- only 2 pr per day on a single repo is accepted.
follow for more such repo to contribue :)


Slide.show() not working after closing with drag

I show the slide view with a button click.
If I close the Slide view by dragging it, I can't open it again.

Can you provide a piece of code?


Improve facet_wrap; Introduce linkxaxes, linkyaxes for facet_wrap and facet_grid

[replaces #285 - the PR branch is now in the main repo, so that the docs preview works]
Implements #203
What already works
  Code
# ╔═╡ de609488-23c4-11ec-10b6-dbf425a6bbe8
begin
	using Pkg
	Pkg.develop("AlgebraOfGraphics")
	Pkg.add("CairoMakie")

	using AlgebraOfGraphics, CairoMakie
end

# ╔═╡ a8f90b4a-d4fb-48c7-8238-b039e4196dea
dta = let
	N = 100
	x = rand(1:10, N)
	(;
		x,
		y = x .+ 2 .* rand.(),
		c = rand(["a", "b", "c"], N),
		d = rand(["α", "β"], N)
	)
end

# ╔═╡ 3cbdd2e7-343e-4f62-9c35-582647cf1a5d
plt = data(dta) * visual(Scatter) * mapping(
		:x, :y, color = :c,
		layout = :c
)

# ╔═╡ ad438c1c-3478-41ad-a138-05ac1b5f3288
begin
	linkxaxes = false
	linkyaxes = false #false
	facet = (; linkxaxes, linkyaxes)

	draw(plt; facet)
end

https://user-images.githubusercontent.com/6280307/135813480-40f82f4b-0155-4ccb-8f43-630558a4eb68.mov
What doesn't work (yet)
df = (
	sepal_length = 1 .+ rand(100),
	sepal_width = 2 .+ rand(100),
	petal_length = 3 .+ rand(100),
	petal_width = 4 .+ rand(100)
)
xvars = Symbol.(["sepal_length", "sepal_width"])
yvars = Symbol.(["petal_length" "petal_width"])
layers = linear() + visual(Scatter)

data(df) * layers * mapping(xvars, yvars, col=dims(1), row=dims(2)) |> draw
end

which currently gives

but should rather give

I don't think ggplot2 can do this. I have code for this ready (https://github.com/greimel/AoGExtensions.jl/pull/1).

@piever, this is now ready for review. It is now possible to link x-axes columnwise and y-axes rowwise. In fact, I made this the default behavior (in line with ggplot2).
Facet grid
https://user-images.githubusercontent.com/6280307/136775796-5a70b0ff-86eb-49ef-925e-61e50987ec9c.mov
  Code
# ╔═╡ 1c742cfd-d929-4611-a12f-a9898eb42a77
begin
	using Pkg
	Pkg.activate(temp = true)

	Pkg.add(["Revise", "DataFrames", "CairoMakie", "Chain"])
	Pkg.develop("AlgebraOfGraphics")

	using Revise
	using Chain, DataFrames
	using CairoMakie, AlgebraOfGraphics
end

# ╔═╡ 2f4e00ca-c8b6-4373-b23f-222bced30062
df1 = let
	N = 100
	x0 = rand(1:10, N)
	i = rand(["α", "β"], N)
	j = rand(["a", "b", "c"], N)

	x = map(zip(x0, j)) do (xx, jj)
		shift = jj == "a" ? -2.9 : jj == "c" ? 2.9 : 0.0
		xx + shift
	end

	y = map(zip(x0, i)) do (xx, ii)
		shift = ii == "α" ? -3.9 : 3.9
		xx + 2 + shift + rand()
	end

	(; x, y, i, j)
end

# ╔═╡ 5831596b-8d05-40b4-a799-afdf319a2bb0
let
	@chain df1 begin
		data(_) * visual(Scatter) * mapping(
			:x, :y, color = :j,
			row = :i, col = :j
		)
		draw(;
			#facet = (linkxaxes = :all, linkyaxes = :all) # current default
			#facet = (linkxaxes = :colwise, linkyaxes = :rowwise) # new default
			#facet = (linkxaxes = :colwise, linkyaxes = :rowwise, hidexdecorations = false)
			#facet = (linkxaxes = :none, linkyaxes = :none)
		)
	end
end

Facet wrap
https://user-images.githubusercontent.com/6280307/136776743-8cdcfd1f-5f29-4369-b874-145e247f728b.mov
  Code
# ╔═╡ 3b075862-4fac-4cd6-8ef9-d9eecfb07339
df = (
		sepal_length = 1 .+ rand(100),
		sepal_width = 2 .+ rand(100),
		petal_length = 3 .+ rand(100),
		petal_width = 4 .+ rand(100)
	)

# ╔═╡ 59de9c96-12f9-4073-91e6-abd6f14d64dd
begin
	xvars = Symbol.(["sepal_length", "sepal_width"])
	yvars = Symbol.(["petal_length" "petal_width"])
	layers = linear() + visual(Scatter)

	plt = data(df) * layers * mapping(xvars, yvars, col=dims(1), row=dims(2))

	draw(plt;
		#facet = (linkxaxes = :all, linkyaxes = :all)
		facet = (linkxaxes = :colwise, linkyaxes = :rowwise) # new default
		#facet = (linkxaxes = :none, linkyaxes = :none) # current default
		)
end

Regarding defaults, it looks to me as if ggplot2 by defaults links everything, see here, and you need to specify that you want free scales.

You seem to be right. I've checked that a few days ago and I am always confused about what ggplot2 does. I am totally fine with changing the default to :all.

The code is actually getting longer. Let me know if I've overlooked something.

Looks great!


CCCM limits the charge/discharge current depending on the SOC - adjustable....

Can we have this values adjustable?
For some batteries, 5A current for balancing is too much.

fix in #238
Users can now edit the value in utils.py in CC_CURRENT_LIMIT1

👍🏻 thx


Problem when get big data (nested) JSON

Hi,
Now im facing problem when read data. But my problem is only occur when the data is quite large / nested.
My json data is like this:
"automation" : {
                "list" : {
                  "-Lx-LXFnaUfvUouthP0_" : {
                    "enabled" : true,
                    "if" : {
                      "-Lx-LXFpweKWAxPMe28V" : {
                        "schedule" : {
                          "schedule" : "Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu",
                          "time" : "10:00"
                        }
                      }
                    },
                    "name" : "Nyalakan lampu pukul 10:00",
                    "then" : {
                      "-Lx-LXFrgt_md37dYsXK" : {
                        "status" : {
                          "path" : "-Lvy6cd-WipQ4H7raeoO/ruang/-Leys3zqG-jSit2FhMBY/alat/lampu/30aea4044b28/status",
                          "set" : true
                        }
                      }
                    }
                  },
                  "-Lx-YbBhLzKSyLsTngi9" : {
                    "enabled" : true,
                    "if" : {
                      "-Lx-YbBjGqed2rfMys0a" : {
                        "schedule" : {
                          "schedule" : "Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu",
                          "time" : "23:0"
                        }
                      }
                    },
                    "name" : "Matikan lampu pukul 23:00",
                    "then" : {
                      "-Lx-YbBkNZWlmiBWuC8f" : {
                        "status" : {
                          "path" : "-Lvy6cd-WipQ4H7raeoO/ruang/-Leys3zqG-jSit2FhMBY/alat/lampu/30aea4044b28/status",
                          "set" : false
                        }
                      }
                    }
                  }
                }
              },

When i try to get automation/list data i got no data, my code is:
if (Firebase.get(firebaseData,"automation/list/"))
  {
    FirebaseJson &json = firebaseData.jsonObject();
    //Print all object data
    Serial.println("Pretty printed JSON data:");
    String jsonStr;
    json.toString(jsonStr, true);
    Serial.println(jsonStr);
    Serial.println();
}

but if i try to get automation/list/-Lx-LXFnaUfvUouthP0_ data, there is no problem, i got the data correctly:
Pretty printed JSON data:
{
    "enabled": true,
    "if": {
        "-Lx-LXFpweKWAxPMe28V": {
            "schedule": {
                "schedule": "Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu",
                "time": "10:00"
            }
        }
    },
    "name": "Nyalakan lampu pukul 10:00",
    "then": {
        "-Lx-LXFrgt_md37dYsXK": {
            "status": {
                "path": "-Lvy6cd-WipQ4H7raeoO/ruang/-Leys3zqG-jSit2FhMBY/alat/lampu/30aea4044b28/status",
                "set": true
            }
        }
    }
}

Could you please help me?
Thank You

Can you get the completed data from firebaseData.jsonString()?

Okay, i try it

still, got nothing

If data was truncated, try to change the value of FIREBASE_RESPONSE_SIZE which is 400 bytes by default.
This consume more free heap.

i try to change its value to 4000, then restart my Arduino IDE, but still got nothing

Please export JSON from console and use some online JSON editor service to cut only data you want and post here?
I want to test and analyze it.

okay

Due to rx buffer size reserved for BearSSL is not enough, which the library sets it to 512 byte as default.
You can change it to _client->setBufferSizes(2048, 512); // 6384 bytes for rx, 512 bytes for tx bytes.
This library allows user to reserved more memory for BearSSL libray, by call Firebase.lowMemBSSL(false); (16384 for rx, 512 for tx) in case of lage amount of data.
This will cost your contantly memory per Firebase Data object for WiFi client buffer memory.
I may let user to set the amont of reserved memory for BearSSL in the future update.

okay, thank you


Wrong version number for api endpoints

While the version for the general api endpoint in the swagger docs is set correctly, the version numbers for the configuration-service and the mongodb-datastore are set to 0.1.0.
Please adjust the version numbers accordingly.

The mechanism is quite easy to implement. As an example, this is what we do in api-service:
https://github.com/keptn/keptn/blob/0.7.1/api/Dockerfile#L30-L31
https://github.com/keptn/keptn/blob/0.7.1/api/swagger.yaml#L5


Update integration tests after support for weights2

LGTM - only thought is do we still need _tsconfig.json?


Make sidebar open on hover

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Make sidebar open on hover

fixed


add changyan comment box

I'am from china.It's glad to use canvas.But I found that chinese users can not use disqus,so I added the changyan comment tool it is a well-known chinese comment tool like disqus.

Thanks for sending this @Qsnh! I'll take a look at this and merge it in as soon as I've verified it doesn't need any changes. 👍

@Qsnh Quick question on this PR. Do you think it'd be wise to choose one comment system over another, or have both readily available to the user? Would it be smart to just check for the environment timezone, and if it's in China, then we give the Changyan comments, and if not then we use Disqus?

@austintoddj yes,sure,i will change this pr.

#140


Fix documentation for Sort::TOPOLOGICAL

The libgit2 documentation says "no parents before all of its children are
shown", which is exactly the opposite of what the rust docstring said.
This got me quite confused for a bit :smile:

Thanks!


[Issue]: How to hide redundant messages of github-actions in the PRs

Describe the issue
There are too many github-actions messages in the PRs, and reviewers' comments will be hidden. Is it possible to only show the useful comments? Or only hide the redundant comments?
I've created a script to hide the annoy github actions notifications. Install it on Greasy Fork.
Steps to reproduce
No response
Screenshots and logs

Additional Information
No response

It would be great to fix this somehow!

I created a tampermonkey script for it. One can install it on Greasy Fork.


http request error with playground container should be handled

Related to https://github.com/projectatomic/ai-studio/issues/147

Currently this is what is displayed if we prompt the container when it is not ready


Fix ordering of docker-compose args

Change-type: patch
Signed-off-by: Kyle Harding<EMAIL_ADDRESS>

@balena-ci I self-certify!


Feature DEX-1252 Validate Token

What this PR does
Implemented the client validation endpoint.
Notion link
Notable decisions & other stuff

Reviewed the PrimerResultViewController
Refactor ClientService.swift adding the validation point
Introduced a new field for Endpoint

var shouldParseResponseBody: Bool { get } -> Default to true
To avoid custom checks based on API Verb when it comes to parsing the response

Moved DummySuccess into a typealias of SuccessResponse so apparently both serves the same purpose but the latter is an actual JSON response.
other minor refactor

Instructions on how to test this
If you initialize the Universal Checkout, the app should behave as normal.
In case we encounter an invalid token, at any point of the payment flow, the universal checkout should show an error.
Before merging
QA

[ x] I manually tested this with a demo application (simulator)
[ ] I manually tested this with a demo application (real device)
[ ] I wrote unit tests for each new util-like function
[ ] I wrote at least basic e2e tests for the new functionalities or new paths
[ ] If this PR introduces UI changes, I manually tested this PR on iPhone 8 (iOS 10, 12, 14), iPhone 12, and iPhone 12 Max
[ ] If this PR modifies the behavior of an API, I did my best to make my new API backward compatible
[ ] If this PR modifies the API, I attempted to implement the feature with an example

Documentation

[ ] If this PR modifies the API, I updated the API Reference.
[ ] If this PR adds new options to the API, I wrote some documentation or guide in the online documentation
[ ] If the PR modifies the API, I wrote some documentation to deprecate it

After merging

Make sure a new release has been pushed to Cocoapods trunk

Closing in favour of: https://github.com/primer-io/primer-sdk-ios/pull/329


Pasting to page title fields - Remove styles

Request from Niko Miranowicz
Copying and pasting into page title (either from outside Xerte or from another text field in Xerte) can include style (e.g. background colour).
There's no easy way to remove the formatting without looking at source view.
Can we force plain text pasting? Or include remove format button?

I'll add the 'Remove formatting'button to the toolbar of the one line text inputs (it is already available on the textareas)


typerep of an abstract type prints  a strange message.

For example, if I write
type t [@@deriving typerep]

then, ppx_typerep_conv says: typerep cannot be applied on abstract types, except like 'type t [@deriving typerep ~abstract].  It has two problems:

@ sign is printed only once.  It is a simple buggy use of @@ in printf format at line 643 of ppx_typerep_conv.ml.  It should be @@@@.
If I use type t [@@deriving typerep ~abstract], ppx_typerep_conv says: Unrecognized [@@deriving] option syntax.  I use ppx_deriving.3.3.  Is it a correct way to specify the argument?  Or, do I need to use ppx_deriving of another version?

I use ppx_deriving.3.3. Is it a correct way to specify the argument? Or, do I need to use ppx_deriving of another version?

I think the best way is using ppx_driver, which is what we use internally. The second point is probably a small issue with the ppx_deriving compatibility layer.

For the second point, ppx_type_conv uses labelled arguments, while ppx_deriving uses records. So when using ppx_deriving you need to write: [@@deriving typerep { abstract }]

Amazingly, the missing @ in the error message haven't been fixed, so I just did that.
I think interoperability with ppx_deriving works differently now (no translation of syntax), which should stop the second problem.

Amazingly, the missing @ in the error message haven't been fixed, so I just did that.
I think interoperability with ppx_deriving works differently now (no translation of syntax), which should stop the second problem.

The fix is in commit fe9e47a75c004c4d765722848d6de29ef1cf830d.


Introduce _customRealmProperties() to all Realm Objects to allow for client-generated RLMProperties (via Swift Macros)

Goals
Allow client code to generate RLMProperties for Objects.
Background
Late last year I started investigating performance problems in our app. Specifically, App Launch was taking ~700ms to perform the first read from a Realm: without migration, without Realm Sync. I isolated it to the creation of RLMSchema.shared(). I then attempted to use Swift Macros to try and generate the schema during compile time, but I had no luck.
Reading the GitHub issues and discussions for "macros", I found these:

https://github.com/realm/realm-swift/discussions/8194#discussioncomment-7529043
https://github.com/realm/realm-swift/issues/8270#issuecomment-1863122863

@tgoyne was kind enough to reply and shared his experimental work from back in July to do exactly what I wanted. His branch also included some explorations into something similar to Apple's @Model, which I'm not interested in at this point. But it was a great jumping off point.
This PR
This PR introduces the minimum set of changes required for the Swift Macro to work.

[RLMObjectBase] Add _customRealmProperties()
[RealmSwift] Check _customRealmProperties() from within getProperties()
[RLMProperty] Expose convenience init similar in shape to @Persisted property wrapper

More about the Macro
You can find the macro here: https://github.com/rjchatfield/realm-swift-macro
I'm pretty excited about this. I'm new to macros, and used a lot of what @tgoyne built last year. I stripped it down to just generating class func _customRealmProperties() -> [RLMProperties]. I tested this out in my own codebase and saw promising improvements.
Here is an example:
@CompileTimeSchema
open class FooObject: Object {
    @Persisted(primaryKey: true) var id: String
    @Persisted var name: String
    @Persisted(indexed: true) internal var key: String
    @Persisted public internal(set) var nestedObject: NestedObject?
    @Persisted private var embeddedObjects: List<NestedEmbeddedObject>

    var computed: String { "" }
    func method() {}

    @CompileTimeSchema
    @objc(ObjcNestedObject)
    public class NestedObject: Object {
        @Persisted(primaryKey: true) var id: String
        @Persisted var name2: String!
        @Persisted var nestedNeighbour: FooObject.NestedEmbeddedObject?
    }

    @CompileTimeSchema
    @objc(ObjcNestedEmbeddedObject)
    private final class NestedEmbeddedObject: EmbeddedObject {
        @Persisted var name3: String
    }
}

The macro's output:
open class FooObject: Object {
    @Persisted(primaryKey: true) var id: String
    @Persisted var name: String
    @Persisted(indexed: true) internal var key: String
    @Persisted public internal(set) var nestedObject: NestedObject?
    @Persisted private var embeddedObjects: List<NestedEmbeddedObject>

    var computed: String { "" }
    func method() {}
    @objc(ObjcNestedObject)
    public class NestedObject: Object {
        @Persisted(primaryKey: true) var id: String
        @Persisted var name2: String!
        @Persisted var nestedNeighbour: FooObject.NestedEmbeddedObject?

        public override class func _customRealmProperties() -> [RLMProperty]? {
            return [
                RLMProperty(name: "id", objectType: Self.self, valueType: String.self, primaryKey: true),
                RLMProperty(name: "name2", objectType: Self.self, valueType: String?.self),
                RLMProperty(name: "nestedNeighbour", objectType: Self.self, valueType: FooObject.NestedEmbeddedObject?.self)
            ]
        }
    }
    @objc(ObjcNestedEmbeddedObject)
    private final class NestedEmbeddedObject: EmbeddedObject {
        @Persisted var name3: String

        override class func _customRealmProperties() -> [RLMProperty]? {
            return [
                RLMProperty(name: "name3", objectType: Self.self, valueType: String.self)
            ]
        }
    }

    open override class func _customRealmProperties() -> [RLMProperty]? {
        return [
            RLMProperty(name: "id", objectType: Self.self, valueType: String.self, primaryKey: true),
            RLMProperty(name: "name", objectType: Self.self, valueType: String.self),
            RLMProperty(name: "key", objectType: Self.self, valueType: String.self, indexed: true),
            RLMProperty(name: "nestedObject", objectType: Self.self, valueType: NestedObject?.self),
            RLMProperty(name: "embeddedObjects", objectType: Self.self, valueType: List<NestedEmbeddedObject>.self)
        ]
    }
}

I then used this in my own codebase. I annotated the 467x Objects & EmbeddedObjects with @CompileTimeSchema (in 322 files). There is a bug in Swift which stopped me using it in 7 places, but that is already fixed in the next version of Swift.
The performance is great.

Before
After

RLMSchema.shared()
612ms
233ms (45%)

This Macro SPM package depends on nothing else by Swift Syntax (which may one day be exposed through the Swift Toolchain and avoid re-compilation). I separated out all the tests into a separate module to avoid some SPM resolution issues I had in my codebase. https://github.com/rjchatfield/realm-swift-macro-tests/tree/main
Requested stats
ProductName:		macOS
ProductVersion:		14.3.1
BuildVersion:		23D60

/Applications/Xcode-15.1.0.app/Contents/Developer
Xcode 15.1
Build version 15C65

pod not found
(not in use here)

/bin/bash
GNU bash, version 3.2.57(1)-release (arm64-apple-darwin23)

/opt/homebrew/bin/carthage
0.39.0
(not in use here)

/usr/bin/git
git version 2.39.3 (Apple Git-145)

Thanks for reading
This is my first PR into Realm. I'm open to any and all feedback at this point. I also understand this change may not be wanted by Realm/Mongo, and I accept what ever you want to do with this PR. Thanks. :)

Hey, thanks for this. We'll have a meeting on Monday to go over it - the initial feedback from the team is that the approach seems reasonable.
A few things would be needed before we can accept this though:

We'd need you to sign a CLA (the form can be found here).
We'd like to have at least some minimal testing of the feature to make sure we don't accidentally break it in the future. You may want to hold off on this until we're able to give you more concrete feedback after Monday, though, to make sure you don't have to redo them in case the implementation needs bigger changes.

Updates:

I've added tests, as requested. I hope they're good enough.
I've edited the author to match my GitHub email address.


Dev

Minor updates to Trane.
transformation_ops: bug fix in diff
transformation_ops_test: new test for the found bug
labeler: timing and logging of execution
prediction_problem: runtime improvements in hyper parameter generation
filter_ops: adding allowed types to operations
File formatting updated to conform to python standards.

I just made some changes to the to_json classmethods so that they pass. I'm also in the process of taking a look at tox.
I don't understand the hyperparameter assertions enough to fix them though. Could you take a look at those? They're getting caught by circleCI.


TAJO-1801: Table name is not unique of tableDescMap in QueryMasterTask

+1

Thanks for the quick review.


tinymce not initialized for django admin inline

after clicking "add another" for django admin inlines, the tinymce interface is not initialized

Your description is not informative at all. Please provide more detailed information, such as:

Your exact configuration, including versions of used packages.
Steps to reproduce the problem.

Yeah, sorry for the lack of detail - I was in a rush earlier. Following up now:
Django==1.11.4
django-tinymce4-lite==1.4.2

I think the problem should be relatively simple to reproduce, I'll describe it for now and try to come up with an example later, time permitting.

Create an admin page where the inline model has a TinyMce widget.
Click "Add Another" in the inline and notice how the second inline will not allow getting focus.

I can't click inside the second TinyMCE box.
Debugging further, I can see that this has to do with the selector.

You can see in the screenshot above the selector is textarea#id_template_overrides-__prefix__-content. The __prefix__ needs to be replaced with the number representing which inline it is, i.e. 0, 1, 2 etc. You can see the name attribute of the texarea from the django admin code does this correctly: template_overrides-1-content.
You can see how the original django-tinymce took various measures to rectify this:

Original method django-tinymce used for handling inlines properly: https://github.com/aljosa/django-tinymce/pull/43/files

Method number 2 which they use now: https://github.com/aljosa/django-tinymce/pull/99/files along with an issue with this approach: https://github.com/aljosa/django-tinymce/issues/210

I don't know if it really needs to be that complicated. Modern django offers inline form events: https://docs.djangoproject.com/en/1.11/ref/contrib/admin/javascript/
I'm still debugging further and don't have a great solution in mind yet.

Thank you for the information. I will investigate this.


core[minor]: Add factory for looking up secrets from the env

Add factory method for looking secrets from the env.

cc @ccurme , @baskaryan , @efriis another factory method for secrets


FillY: add support for filling above and below with two different colors

The PlotFillAboveBelow function is useful for me but it seems lack in ScottPlot5.

https://scottplot.net/cookbook/4.1/category/plottable-fill/

ScottPlot 4 does this... https://scottplot.net/cookbook/4.1/category/plottable-fill/
ScottPlot 5 has this... https://scottplot.net/cookbook/5.0/FillY/
I bet FillY may be used in ScottPlot 5 to achieve the "fill above and below" effect. If not, it's pretty close, and maybe a small addition could help improve this support.

I use DataStreamer to get "Real-Time" chart for only last 250 points. Till now I did not found how to use it for DataStreamer.

I hope it can also support left and right filling.

This feature was added in 829496b8e6cecffb38a68671ec36c389571fb236 and will be available in the next release 🚀
var sp = myPlot.Add.Scatter(xs, ys);
sp.FillY = true;
sp.FillYValue = 0;
sp.FillYAboveColor = Colors.Green.WithAlpha(.2);
sp.FillYBelowColor = Colors.Red.WithAlpha(.2);

Thanks for this function, Scatter plots typically display data left-to-right,  is it possible to use this plot type to display data bottom-to-top like [SignalXY],with Data.Rotated = true;


For curiosity Is this project still actively maintained

For curiosity, Is this project still actively maintained, as last commit was Oct 16, 2023

Hi @spirillen! Since BarbBlock narrowly-scoped to sites that inappropriately use DMCA takedowns to remove themselves from other blocklists, it doesn't need to be changed much. When it started up I feared that that would become more common, but happily it has not! That said, if it does happen again, I will be happy to add them.

Super, I add you to my search project 👍🏻 https://github.com/external-sources/hosts-sources


Versioning plugin: allow default version order

Use SemVer order by default. Without this versionsOrdering is set to an empty list and the dropdown is not displayed (source)

This is a great find, thank you!
I'll add some tests and minor refactorings.


Can't invoke Python 3.7 image locally

I'm trying to deploy a function and am having issues testing locally (on a linux server) as described in the docs:
https://docs.aws.amazon.com/lambda/latest/dg/images-test.html#images-test-AWSbase
https://hub.docker.com/r/amazon/aws-lambda-python
Here are the steps to reproduce, using a simple Python app:

Create app.py:

def main(event, context):
    print(event)
    print()
    print(context)

if __name__ == '__main__':
    event = 'testing'
    context = '123'
    main(event, context)

Create Dockerfile:

FROM amazon/aws-lambda-python:3.7
COPY app.py ${LAMBDA_TASK_ROOT}
CMD ["app.main"]

Build container:

docker build -t local-lambda-test .

Start the container in one shell:

docker run -p 9000:8080 local-lambda-test:latest

In another shell, send the container the same test payload from the docs:

curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{"payload":"hello world!"}'

I expect to see the container logs print the payload and context, but instead I get a bad response and the container does nothing.

Here is what happens on my end after I start the container as in step 4 above:

I run docker run -p 9000:8080 local-lambda-test:latest and get the following output:

Verify connection with telnet to rule out connection issues:

Send payload to the container and get an error in the response:

For the love of all that is holy, does anyone know what's going on here?!  Have any of you seen this problem before, or have an idea of where I might be going wrong?
Thanks!

I ran your steps exactly, here's what I see:
$ docker run -p 9000:8080 local-lambda-test:latest
time="2021-09-22T22:24:05.372" level=info msg="exec '/var/runtime/bootstrap' (cwd=/var/task, handler=)"
time="2021-09-22T22:24:27.366" level=info msg="extensionsDisabledByLayer(/opt/disable-extensions-jwigqn8j) -> stat /opt/disable-extensions-jwigqn8j: no such file or directory"
time="2021-09-22T22:24:27.366" level=warning msg="Cannot list external agents" error="open /opt/extensions: no such file or directory"
START RequestId: 1b21fcb0-53cb-4778-a9e3-b6c238b98ad7 Version: $LATEST
{'payload': 'hello world!'}

Thanks @justinmk3  - if you're not able to duplicate the issue then I'll dig in and see if I can find any networking issues.

Has this been solved? I have the same issue, just running the example explained here
https://docs.aws.amazon.com/lambda/latest/dg/python-image.html
But with PYTHON 3.7 or 3.6 I got no response and an error due to glibc

It is basically not possible to run aws-lambda with python versions older than 3.8. I thought it was my code or dependencies generating the issue, but not it is vanilla image with no code
Any suggestions?


[modify] opendata : dataset importer

Coverage increased (+0.008%) to 84.296% when pulling da74d36304330975b6da8b1a43c13a9cb5d8b446 on feature/opendata_dataset_importer into b967d0652764db1b61c48478cd889c1df505af85 on master.


Move all code relating to forcing additional line brakes inside MathML away from XML

The conversion of MathML linebreaks to two split up MathML expressions, needed for DOC, will be moved to html2doc as preliminary, DOC-specific processing before conversion to MathML

This is PDF-specific, not DOC-specific processing. I'm going to handle this as passthrough once https://github.com/metanorma/mn-native-pdf/issues/764 is done: so

isodoc/lib/isodoc/presentation_function/math.rb
def mathml_linebreak(node)
      node.at(".//*/@linebreak") or return
      m = Plurimath::Math.parse(node.to_xml, :mathml)
        .to_mathml(split_on_linebreak: true)
      ret = Nokogiri::XML("<m>#{m}</m>").root
      ret.elements.each_with_index do |e, i|
        i.zero? or e.previous = "<br/>"
      end
      node.replace(<<~OUTPUT)
        <math-with-linebreak>#{ret.children}</math-with-linebreak>
        <math-no-linebreak>#{node.to_xml}</math-no-linebreak>
      OUTPUT
    end

The final expression needs to be instead:
      node.replace(<<~OUTPUT)
        <passthrough formats=",pdf,">#{ret.children}</passthrough>
        <passthrough formats=",html,doc,">#{node.to_xml}</passthrough>
      OUTPUT

Later on we may need to preserve Semantic XML MathML along with Presentation XML MathML, but math-no-linebreak is the canonical, Semantic version of the MathML. (PDF is forcing us to break the MathML into two different expressions on linebreak.)

Since this is a PDF specific problem, we will only have normal MathML in XML.
We need to remove all PDF-specific math processing away from the Ruby stack and have this bug (presumably a rendering bug in Batik) addressed as close to the problem as possible.
Ping @intelligent2013
Originally posted by @opoudjis in https://github.com/metanorma/isodoc/issues/609#issuecomment-2461948436

@Intelligent2013 Obviously this is for the next fortnightly sprint of Presentation XML refactoring, starting Monday.

This is a jEuclid issue. I don't believe that I can solve this jEuclid issue in two weeks, or at all.

The request is not that you solve the rendering issue, because you've been clear that you can't, but that you do in XSLT what is currently being done in Plurimath through the --split-on-linebreak attribute: breaking up  MathML expressions at @linebreak into separate expressions, and then rendering them. So from https://github.com/plurimath/plurimath/issues/179:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mstyle displaystyle="true">
    <mrow>
      <mo>⌊</mo>
      <mrow>
        <mi>σ</mi>
        <mo linebreak="newline"/>
        <mi>θ</mi>
      </mrow>
      <mo>⌋</mo>
    </mrow>
  </mstyle>
</math>

would thus go to:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mstyle displaystyle="true">
    <mrow>
      <mo>⌊</mo>
      <mrow>
        <mi>σ</mi>
       </mrow>
  </mstyle>
</math>
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mstyle displaystyle="true">
    <mrow>
      <mrow>
        <mi>θ</mi>
      </mrow>
      <mo>⌋</mo>
    </mrow>
  </mstyle>
</math>

That is what I get Plurimath to do currently, before passing the XML to you; @ronaldtse ’s expectation is that I do not manipulate the XML, and that therefore that gets done by the XSLT.

XSLT updated.

I didn't expect you to get this done for this release! Thank you very much!


Using ForumSys OpenLDAP Server with the NoDatabaseUserProvider

Laravel Version: 5.7.21
Adldap2-Laravel Version: 9.1.4
PHP Version: 7.2.13
LDAP Type: OpenLDAP

Description:
I can't get the NoDatabaseUserProvider working with the Forum Systems Online LDAP Test Server. I get it working with the DatabaseUserProvider. But with the NoDatabaseUserProvider, after a trying to login, I'm redirected back to the login page. When I check the logs in Telescope, I see that the LDAP authentication was working:

Do I miss something?
Steps To Reproduce:
Here is my project: https://github.com/hurik/Adldap2-Laravel-NoDatabaseUserProvider-Example-Project
Thanks, for your help.

I'm having the same issue, has been logged in and authenticated, but when called using Auth::user(), it's not there. However, there is my uid stored in session.


Incorporate Infinum open source templated changes

:page_facing_up: Context
Syncing with open source template by Infinum.  These changes also improve Github's community standards for Sentinel
:pencil: Changes

Tweaks to Github templates
Added files for code of conduct, contributing and security
Updated readme

@AsimRibo no need to read everything in detail. Just check if we didn't make some obvious mistakes on templates and if readme looks good and makes sense


feat: add Mutiny support

Hi @martinbonnin
I'm back with Mutiny integration for Apollo client.
Thanks to project maintainers @cescoffier && @jponge whose gave me a lot of feedbacks.
See our discussion.

@aoudiamoncef CI fails with
incompatible types: io.smallrye.mutiny.Uni<java.lang.Object> cannot be converted to io.smallrye.mutiny.Uni<com.apollographql.apollo.api.Response<T>>

Can you take a look?

And now complaining on metalava signatures. @aoudiamoncef , should I update them ?

And now complaining on metalava signatures. @aoudiamoncef , should I update them ?

Fixed, it was an issue with package name of io.smallrye.mutiny.subscription.BackPressureStrategy

🥳


wrong juliapkg.json path found

this is just a standard python package setup as following
.
├── README.md
├── juliapkg.json
├── pdm.lock
├── pdm_build.py
├── pyproject.toml
├── src
│   └── bloqade
│       ├── __init__.py
└── tests
    ├── __init__.py
    ├── test_scalar.py
    └── test_shape.py

where in the bloqade module, it calls juliacall, directly running python test_shape.py will not use juliapkg.json but creates an empty new one. This behavior does not look right.
This is causing things like pytest not working

Ok, I realize currently you are doing this by copying juliapkg-dev.json to juliapkg.json in CI...
So it has to live next to the module __init__.py file? Or I'm missing something?
This is really annoying tbh while writing a Python package along with the Julia components because juliapkg-dev.json has to be there, then releasing gets annoying because I will need to run an extra hook to do it.
I don't have a good way of doing this after spending the whole afternoon tweaking pre-build hooks...


WhatsApp input message field is impossible to read

Just updated to the latest WhatsApp darkmode.css, after the previous one had issues with the text in messages not being able to be read. Now this one has a different problem, where the input field is white (which it shouldn't be) and the text is light grey, making it very hard to read what you are writing.

Go into %appdata%/Franz/recipes/whatsapp/darkmode.css
At the bottom of the file change "_3FRCZ" reference color from #eee (light color) to #282d37 (dark color)
._3FRCZ{
color: #282d37 !important;
}

Go into %appdata%/Franz/recipes/whatsapp/darkmode.css
At the bottom of the file change "_3FRCZ" reference color from #eee (light color) to #282d37 (dark color)
._3FRCZ{
color: #282d37 !important;
}

Thank you.
Can you make a pull request? @lapentad

Updated to the new file, and confirmed the change from @lapentad was in there. However, this change just makes the text darker so it is easier to read, and does not fix the color of the box, which is white and does not match the rest of the dark theme. I've edited the code myself and the change that should be added is:
._3FRCZ{
color: #eee !important;
}
._3uMse{
background-color: #282d37 !important;
border-color: #282d37 !important;
}


Update Invite and Remove to medium sized buttons on the Manage Members page

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

Action Performed:

Click on the account avatar
Click on the workspace name to navigate to the workspace settings
Click on Manage members to navigate to the manage members page
Observe the small size of the Invite and Remove buttons at the top of the page

Expected Result:
We'd like to update the sizing to the newly introduced medium sized button with the following parameters:

standard component border radius, which is already set as a variable
font size at 13px, this font size value is already set as a variable
button height at 40px, this component height is already set as a variable

Actual Result:
The existing buttons are small.
Workaround:
N/A
Platform:

Where is this issue occurring?

Web
iOS
Android
Desktop App
Mobile Web

Version Number: 1.1.25-0
Reproducible in staging?: Y
Reproducible in production?:
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

Upwork Job URL: https://www.upwork.com/jobs/~01c323c4970d8150aa
Issue reported by: @shawnborton
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1641205017374500
View all open jobs on GitHub

Triggered auto assignment to @roryabraham (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

Triggered auto assignment to @trjExpensify (AutoAssignerTriage), see https://stackoverflow.com/c/expensify/questions/4749 for more details.

So I think @mananjadhav is already adding the medium sized button in his PR, now we just need to implement it in this particular area of the App.

Yeah, I've added https://github.com/Expensify/App/pull/6856. Can we also have a few other areas mentioned so that I send in a proposal to club them into a single PR?

The workspace invite page might be the only area I can think of for now...

Yeah, I think that's the only place I can think of too.

So I think @mananjadhav is already adding the medium sized button in his PR, now we just need to implement it in this particular area of the App.

If the button is being added in another PR, shall we update the OP of this one then? It sounds like this is just about implementing it on the Manage members page as a follow-up, right?

Yup, I agree with that.

Proposal
The small fix is to update the type in the Button component of WorkspaceMembersPage.
https://github.com/Expensify/App/blob/fbb4674521536923ee83c6e3f093fbe6bc029f9f/src/pages/workspace/WorkspaceMembersPage.js#L275-L289
<Button
      medium // this change
      ... other props
  />

Triggered auto assignment to Contributor-plus team member for initial proposal review - @parasharrajat (Exported)

Current assignee @roryabraham is eligible for the Exported assigner, not assigning anyone new.

OP updated.
Upwork job here: https://www.upwork.com/jobs/~01c323c4970d8150aa

If I am not mistaken , this can only be taken after https://github.com/Expensify/App/pull/6856 is merged. Right.
But as only Manan has proposed and he is also handling https://github.com/Expensify/App/pull/6856. I think I am good with @mananjadhav 's proposal. He can take it up after https://github.com/Expensify/App/pull/6856.
cc: @roryabraham
:ribbon: :eyes: :ribbon:  C+ reviewed

Also, I think this button can also be replaced https://github.com/Expensify/App/pull/6958

Good catch, I agree Rajat.

Thanks for highlighting @parasharrajat. Will update that too

📣 @mananjadhav You have been assigned to this job by @trjExpensify!
Please apply to this job in Upwork and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑💻
Keep in mind: Code of Conduct | Contributing 📖

I've sent the offer on Upwork, Manan. Let's update the title to note the issue it's held on as well for the time being.

Sorry for the delay here. I'll work on reviewing #6856 as soon as I can.

This does not need to be on hold now.

Updated the title. Once the PR has deployed to prod, Melvin should add the Awaiting Payment date.

The solution for this issue has been :rocket: deployed to production :rocket: in version 1.1.30-3 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:

https://github.com/Expensify/App/pull/7224

If no regressions arise, payment will be issued on 2022-01-25. :confetti_ball:

7-days since the prod deploy and we're looking good. Settled up with you on Upwork, @mananjadhav. Thanks, everyone! 🎉

@trjExpensify I applied for C+. Sorry for not doing that early.

@trjExpensify gentle ping in case you missed the above comment's notification.

All good, @parasharrajat. Will settle once accepted 👍


chore(Data/Set/Function): rename some lemmas

Set.maps_image_to → Set.mapsTo_image_iff;
Set.maps_univ_to → Set.mapsTo_univ_iff;
Set.maps_range_to → Set.mapsTo_range_iff.

In all cases, use implicit arguments instead of explicit arguments.
In the last case, also generalize from Type* to Sort*
and replace the RHS with its simp-normal form.
Old lemmas stay there but are now deprecated.

I've probably missed some discussions on Zulip, but why are you keeping the old versions ? And why change theorems into lemmas in some places ?
Otherwise LGTM
bors d+

I've probably missed some discussions on Zulip, but why are you keeping the old versions ?

See these Zulip threads: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Backward.20compatibility and https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Renaming.20monotonicity.20of.20powers.20lemmas

And why change theorems into lemmas in some places ?

While we don't have a formal coding style about theorem vs lemma, I'm using lemma for trivial statements. In this PR, when I typed a new statement, it became lemma; when I edited an existing paragraph, it stayed theorem.

bors merge


DS-41: theming

It's weird some of these linting errors didn't get fixed when I ran yarn lint:fix

/lgtm


Build and Dev commands fail in a Remix workspace without installing the node_modules in the application

The Problem
After creating an empty Remix workspace with
npx<EMAIL_ADDRESS>--preset=@nrwl/remix

and installing the root packages
npm install

I cannot run any command targeting a Remix app.
nx build webapp

or
nx dev webapp

fails with the following error
command not found: remix
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! webapp@ build: `npx remix build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the webapp@ build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?

To make it work I need to run npm install inside the apps/webapp folder contrary to what the tutorial video and Readme shows.
Expected behavior
The commands should be able to use the root node_modules version of Remix to run the commands as shown in the video and Readme.
Additional Info
OS: MacOS 12.3.1
CPU: Chip M1 Pro
Node: 16.14.2

Can you try using npx to run the command?:
npx nx dev webapp

Sorry @philipjfulcher , I just saw the notification for your comment. I'll try later today but I think I encountered something like what @rjaguilar is describing.

The way I solved this is to add a proper project.json file with root and rootSource, then I'm able to launch via the NX console extension in vscode.


Fatal error. Internal CLR error. (0x80131506)

Describe the bug
Abort with Message
To Reproduce
run asa collect -a
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
Fatal error. Internal CLR error. (0x80131506)
at System.Buffer._Memmove(Byte ByRef, Byte ByRef, UInt64)
at System.Buffer.Memmove(Byte ByRef, Byte ByRef, UInt64)
at System.Span1[[System.Byte, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].ToArray()    at PeNet.Header.Authenticode.ContentInfo..ctor(System.Span1)
at PeNet.Header.Authenticode.AuthenticodeInfo..ctor(PeNet.PeFile)
at PeNet.HeaderParser.Authenticode.AuthenticodeParser.ParseTarget()
at PeNet.PeFile.get_Authenticode()
at AttackSurfaceAnalyzer.Collectors.WindowsFileSystemUtils.GetSignatureStatus(System.String)
at AttackSurfaceAnalyzer.Collectors.FileSystemCollector.FilePathToFileSystemObject(System.String)
at AttackSurfaceAnalyzer.Collectors.FileSystemCollector.g__TryIterateOnDirectory|9_0(System.String)
at AttackSurfaceAnalyzer.Collectors.FileSystemCollector.b__9_5(System.String)
at System.Threading.Tasks.Parallel+<>c__DisplayClass44_02[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].<PartitionerForEachWorker>b__1(System.Collections.IEnumerator ByRef, Int32, Boolean ByRef)    at System.Threading.Tasks.TaskReplicator+Replica1[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].ExecuteAction(Boolean ByRef)
at System.Threading.Tasks.TaskReplicator+Replica.Execute()
at System.Threading.Tasks.TaskReplicator+Replica+<>c.<.ctor>b__4_0(System.Object)
at System.Threading.Tasks.Task.InnerInvoke()
at System.Threading.Tasks.Task+<>c.<.cctor>b__274_0(System.Object)
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(System.Threading.Thread, System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef, System.Threading.Thread)
at System.Threading.Tasks.Task.ExecuteEntryUnsafe(System.Threading.Thread)
at System.Threading.Tasks.Task.ExecuteFromThreadPool(System.Threading.Thread)
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
System Configuration (please complete the following information):
Windows 10 Pro
19042.360
Additional Context

Thanks for your report.  What version of Attack Surface Analyzer are you running?
This has been an issue in the past with a known cause in PENet before which we've addressed.  If you can run collect with --single-thread --verbose it should print the name of the file right before the crash.  Identifying that file will help us solve the issue.
If you are experiencing this on the latest version of Attack Surface Analyzer we will need additional information about the file which causes the crash to investigate further.

How can i provide the File?

I believe you can zip it and attach it to a comment here.
-------- Original Message --------
On Nov 25, 2020, 3:16 AM, mhbosch wrote:

How can i provide the File?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

Thanks. I'll take a look today and forward to the PENet team if appropriate.
-------- Original Message --------
On Nov 25, 2020, 9:29 AM, mhbosch wrote:

DRWUI.zip
Ok, here ist the File.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

This looks like this is an issue with our PE Net dependency, see the referenced bug to track the issue further.  They have previously been very responsive when we encounter issues with unique binaries so hopefully we will have a fix soon.
Because of the way the error propagates we can't just catch it unfortunately.
In the interim you can use the --skip-directories argument to skip the directory containing this binary so you can complete the rest of your scan.

First, i updated the Software to the actual Version. This skip the error.

Glad to hear that you are no longer having the issue.  Thanks for all your detail.
I'll keep this open to track the needed update to the PE Net dependency to handle the provided file.

Hi,
I'm experiencing the same issue.
"Fatal error. Internal CLR error. (0x80131506)
at System.Buffer.__Memmove(Byte*, Byte*, UInt64)
at System.Buffer.__Memmove(Byte*, Byte*, UInt64)
at System.Buffer._Memmove(Byte ByRef, Byte ByRef, UInt64)
at System.Buffer.Memmove(Byte ByRef, Byte ByRef, UInt64)
at PeNet.Header.Authenticode.AuthenticodeInfo..ctor(PeNet.PeFile)
at PeNet.HeaderParser.Authenticode.AuthenticodeParser.ParseTarget()
at AttackSurfaceAnalyzer.Collectors.WindowsFileSystemUtils.GetSignatureStatus(System.String)
......
"
Thanks for the help above, I've narrowed down the issue to a specific file. Unfortunately I can't provide that file for analysis, at least not yet.
Is there something else I could test to further analyze the situation? This is a signed dll. Can the signing cause issues, so if I'll replace the signed dll with unsigned one, can it help?

Hi, tested the following changes to the problematic file and still the same crash happens.
Directly self compiled without signing and setting metadata / file properties.

Thanks for the additional details. I've filed a bug with PENet and will investigate further this week.
-------- Original Message --------
On Nov 30, 2020, 4:09 AM, Ragol wrote:

Hi, tested the following changes to the problematic file and still the same crash happens.
Directly self compiled without signing and setting metadata / file properties.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

This should be fixed with #563 based on the initial file for this bug.  @ragolsec if your test file still fails with the new version (should be live in 20-30 minutes) we would need the file to be able to identify why it is failing.

Seems to have fixed also the issue I was seeing.
Thanks for quick response!


Cow: Watch gsmareya.com

Cow requests the watch of the watch_keyword gsmareya\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

gsmareya\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


No audio for generated .mp4s (OSX 10.15.6)

It appears that there is no audio attached for .mp4s generated on OSX.

Fixed, looks like I had to manually set some audio codec stuff: https://github.com/Zulko/moviepy/issues/820#issuecomment-399301560
I uploaded the update to PyPI, so try upgrading to see if it works now.
python3 -m pip install --upgrade get-stick-bugged-lol


cudaCrop() failed to get input/output image pointers (should be cudaImage)

I am trying to just crop an image and I get this error:
cudaCrop() failed to get input/output image pointers (should be cudaImage)
I am using basic camera.Capture() to get the initial image and cuda to allocate memory for the destination image. Here is my code:
            initalImage = camera.Capture()

            cropBorder=((initalImage.width-1024)/2,(initalImage.height-768)/2)
            crop_roi = (cropBorder[0], cropBorder[1], 1024 + cropBorder[0], 768 + cropBorder[1])

            activeImage = jetson.utils.cudaAllocMapped(1024, 768, format=initalImage.format)

---> Here is where I get the error message:
jetson.utils.cudaCrop(initalImage, activeImage, crop_roi)
            detections = net.Detect(activeImage)

Please help, my project depends on this working.

The camera is acquired with this line:
camera = jetson.utils.videoSource("csi://0")

Hi @Gensight, can you try jetson.utils.cudaAllocMapped(width=1024, height=768, format=initalImage.format) instead?

Thank you so much. I am getting an invalid ROI now so I'll work on that.

OK, that's good progress - I would try either reducing or increasing your ROI by 1px

Turns out that jetson.utils.videoSource("csi://0") only runs at 1280x720 and I was trying to crop using 768. I have to figure out how to get the correct resolution I need with videoSource() but I am good for now. Thank you again, you are great!

for CSI cameras, videoSource will just support the modes the camera supports. You could pick the closest mode the camera supports with something like this:  jetson.utils.videoSource("csi://0", argv=['--input-width=1024', '--input-height=768'])    (these modes should be printed out near the beginning of the terminal log).  Otherwise, you could rescale with jetson.utils.cudaResize()

Yes, I found the --input-width/height parameters and they work great.


[PoC] test: improve performance

Reason
Tests should render part %s are meaningful and provide more info than a single should render test. The tradeoff is performance because Jest automatically takes care of the cleanup. In the worst-case scenario, we end up with 22 renders of Date Picker. CI would run faster with this change.
Approx. 1.5 s for each render

Proposed solution

Disable global cleanup (for a single test - by importing from @testing-library/react/pure)
Describe the parts & exports set of tests with one cleanup after all tests
Enable cleanup after each test in the second set of "normal" tests

Other solutions

Remove parts test and check only one render (not meaningful)

Effect
After the fix, Date Picker tests take only 30% of time.

@Omikorin
LGTM. Any downsides to this appraoch?

@Omikorin
LGTM. Any downsides to this appraoch?

I didn't find any


Let us change which system sound notifications use

If any plans to make it the notification sound play from the client itself are shelved for the forseeable future, is it possible (and easier) to allow us to change the OS sound used? I assume this is possible because on Windows 8.1 it plays from the 'Default Beep' and not the 'Notification' sound. Would be nice to change the sound it plays from to something that is basically never played otherwise, to curtail any annoyance on hearing system sounds that I don't want or need.

I plan to do something like that, relying on the client itself to play a selectable sound. For example, a duck quack. Constants for this were introduced in my PR #1546.
External sounds are another possibility, for example rune loader (defunct) allowed one to select a wav file to play on idle. I personally selected a "thump" sound from an air pipe as it wasn't searing to my ears.
Still, I'd like RL to quack at me.

Obviously Runelite not using an OS sound would be the end goal in mind for me (I don't like Chrome pinging me when my ctrl+f gets zero results for every letter until I stop typing).
I just assume doing that takes a lot more code work than just having a drop down list of what system sounds/locations the notification can be played from.

I don't like adding user ability to select their own .wav file. We should just provide some selected list and use that, or, just use some default sound and don't even give the choice to the user.

Honestly at the end of the day I don't care about sound file customization, I just suggested this because I thought it'd be easier to implement than the eventual making the sound play from Runelite itself and not use hook the OS events for sounds.

Duplicate of #920


[Spinner] Any way to change color and size ?

I'd like to make the spinner bigger than the given option size which is 20px * 20px with 100% scaling.
And change the color of it.
Thank you.

You can override width, height, and color via the regular style prop if size and color props don't work for you.
How large is your target size though and what does your design look like?

@vladmoroz
I guess I didn't read the documentation properly...
By "style prop", do you mean regular CSS?

How large is your target size though and what does your design look like?

The target size is 40px * 40px and the design is the same as the provided Spinner component from Radix-UI Themes except for the color which is #027FFF.

Yeah, with regular CSS
We'll consider adding more sizes but this should work in the meantime

Guess this can be closed


Catch downloads a .webloc file that I can't open

I've been having this problem for a while. Catch will download a .webloc file from ShowRSS and I can't open it anywhere (including dragging it to my torrent app). I like being able to start downloads on my own when I know it won't interfere with other things going on in my network, so I really like having a file I can open, but I just don't know what to do with .webloc files.
Any help would be much appreciated!

The .webloc file contains a magnet: link. Double-clicking it should be exactly the same as clicking a magnet: link in a webpage. Maybe your Mac isn't setup to handle magnet: links? On mine, double-clicking these .weblocs results in Transmission launching and adding the torrent.

Closing due to inactivity


IllegalArgumentException when sorting cookies in ClientCookieEncoder

We use Netty to crawl a lot of websites, and from time to time get the following exception:
java.lang.IllegalArgumentException: Comparison method violates its general contract!
java.base/java.util.TimSort.mergeHi(TimSort.java:903)
java.base/java.util.TimSort.mergeAt(TimSort.java:520)
java.base/java.util.TimSort.mergeForceCollapse(TimSort.java:461)
java.base/java.util.TimSort.sort(TimSort.java:254)
java.base/java.util.Arrays.sort(Arrays.java:1441)
io.netty.handler.codec.http.cookie.ClientCookieEncoder.encode(ClientCookieEncoder.java:165)

I tried to write a testcase to reproduce the behavior, but since TimSort only throws this exception under some circumstance, I failed.
However, I think I can spot the cause. The code in question uses this comparator (io/netty/handler/codec/http/cookie/ClientCookieEncoder.java:91):
   /**
     * Sort cookies into decreasing order of path length, breaking ties by sorting into increasing chronological
     * order of creation time, as recommended by RFC 6265.
     */
    private static final Comparator<Cookie> COOKIE_COMPARATOR = (c1, c2) -> {
        String path1 = c1.path();
        String path2 = c2.path();
        // Cookies with unspecified path default to the path of the request. We don't
        // know the request path here, but we assume that the length of an unspecified
        // path is longer than any specified path (i.e. pathless cookies come first),
        // because setting cookies with a path longer than the request path is of
        // limited use.
        int len1 = path1 == null ? Integer.MAX_VALUE : path1.length();
        int len2 = path2 == null ? Integer.MAX_VALUE : path2.length();
        int diff = len2 - len1;
        if (diff != 0) {
            return diff;
        }
        // Rely on Java's sort stability to retain creation order in cases where
        // cookies have same path length.
        return -1;
    };

If I pass two cookies C1 and C2 with the same path length to this function it would return C1 < C2 and C2 < C1. This - in my eyes  - is a violation of contract. And I suspect, this is causing the exception.
Returning 0 instead of -1 should fix this.
Expected behavior
Cookies are always sorted by path
Actual behavior
Sorting cookies by path sometimes throws an exception
Steps to reproduce
Difficult. Depends on the concrete cookies set, since TimSort contract violation detection is a byproduct which is triggered occasionally. TimSort does not actively looks for contract violations.
Minimal yet complete reproducer code (or URL to code)
Not available
Netty version
4.1.43.Final
JVM version (e.g. java -version)
openjdk version "11.0.4" 2019-07-16
OpenJDK Runtime Environment (build 11.0.4+11-post-Ubuntu-1ubuntu218.04.3)
OpenJDK 64-Bit Server VM (build 11.0.4+11-post-Ubuntu-1ubuntu218.04.3, mixed mode, sharing)
OS version (e.g. uname -a)
Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-62-generic x86_64)

@gerdriesselmann this sounds about right... Are you interested in providing a PR to fix it ?


Can't use "}" in cmd line

Checklist

[x] I have read the appropriate section in the contributing
guidelines
[x] I believe this issue is a problem with polybar itself and not a misconfiguration on my part.
[ ] I have searched for other open and closed issues that
may have already reported this problem.
[ ] I have checked the known issues page for this problem.

Describe the bug

When I put "}" in a CMD line,polybar return this in the logs:
polybar|warn:  Invalid color in formatting tag detected: "fi", using fallback "#ffff0000". This is an issue with one of your formatting tags. If it is not, please report this as a bug.
polybar|error: Failed to parse contents (reason: Unrecognized attribute 's')
"{" just fine.
Expected behavior:

Actual behavior:

Was it working before?

Did you also experience this bug in an earlier version of polybar (yes/no/don't know)?
If no, what was the last version where this worked correctly?

To Reproduce

Polybar Log

Screenshots

Environment:

WM:bspwm
Distro:Linux SAL 5.14.2-arch1-2 #1 SMP PREEMPT Thu, 09 Sep 2021 09:42:35 +0000 x86_64 GNU/Linux
Output of polybar -vvv:
polybar 3.5.6

Features: +alsa +curl +i3 +mpd +network(libnl) +pulseaudio +xkeyboard
X extensions: +randr (+monitors) +composite +xkb +xrm +xcursor
Build type: Release
Compiler: /usr/bin/c++
Compiler flags: -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -Wall -Wextra -Wpedantic -O3 -DNDEBUG
Linker flags: -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now

Additional context

Duplicate of #2040
Will be fixed in 3.6.0


Client should not send _type when creating a link from a tree

The client seems to send _type property when creating a link from a tree.

Fixed in 0caab2f.


Fresh install fail

I get this on Node v8.9.0 or v9.0.0
sudo npm i -g splash-cli
/Users/alec/.nvm/versions/node/v8.9.0/bin/splash -> /Users/alec/.nvm/versions/node/v8.9.0/lib/node_modules/splash-cli/bin/index.js
npm ERR! path /Users/alec/.nvm/versions/node/v8.9.0/lib/node_modules/splash-cli/pm2 interval.js
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall chmod
npm ERR! enoent ENOENT: no such file or directory, chmod '/Users/alec/.nvm/versions/node/v8.9.0/lib/node_modules/splash-cli/pm2 interval.js'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

Should be fixed, test it please, for me is everything ok wiht node 8.7.0

On 9.0.0
~ » sudo npm install --global splash-cli                                                                                alec@Alecs-MacBook-Pro
Alias tip: _ npm install --global splash-cli
Password:
/Users/alec/.nvm/versions/node/v9.0.0/bin/splash -> /Users/alec/.nvm/versions/node/v9.0.0/lib/node_modules/splash-cli/bin/index.js

><EMAIL_ADDRESS>install /Users/alec/.nvm/versions/node/v9.0.0/lib/node_modules/splash-cli/node_modules/fsevents
> node install

node-pre-gyp ERR! Tried to download(undefined): https://fsevents-binaries.s3-us-west-2.amazonaws.com/v1.1.3/fse-v1.1.3-node-v59-darwin-x64.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for<EMAIL_ADDRESS>and<EMAIL_ADDRESS>(node-v59 ABI, unknown) (falling back to source compile with node-gyp)
gyp ERR! clean error
gyp ERR! stack Error: EACCES: permission denied, rmdir 'build'
gyp ERR! System Darwin 17.2.0
gyp ERR! command "/Users/alec/.nvm/versions/node/v9.0.0/bin/node" "/Users/alec/.nvm/versions/node/v9.0.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "clean"
gyp ERR! cwd /Users/alec/.nvm/versions/node/v9.0.0/lib/node_modules/splash-cli/node_modules/fsevents
gyp ERR! node -v v9.0.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/Users/alec/.nvm/versions/node/v9.0.0/bin/node /Users/alec/.nvm/versions/node/v9.0.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js clean' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/Users/alec/.nvm/versions/node/v9.0.0/lib/node_modules/splash-cli/node_modules/fsevents/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at emitTwo (events.js:135:13)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:224:7)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:943:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:220:5)
node-pre-gyp ERR! System Darwin 17.2.0
node-pre-gyp ERR! command "/Users/alec/.nvm/versions/node/v9.0.0/bin/node" "/Users/alec/.nvm/versions/node/v9.0.0/lib/node_modules/splash-cli/node_modules/fsevents/node_modules/node-pre-gyp/bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /Users/alec/.nvm/versions/node/v9.0.0/lib/node_modules/splash-cli/node_modules/fsevents
node-pre-gyp ERR! node -v v9.0.0
node-pre-gyp ERR! node-pre-gyp -v v0.6.39
node-pre-gyp ERR! not ok
Failed to execute '/Users/alec/.nvm/versions/node/v9.0.0/bin/node /Users/alec/.nvm/versions/node/v9.0.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js clean' (1)
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/splash-cli/node_modules/fsevents):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>install: `node install`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

+<EMAIL_ADDRESS>added 449 packages in 31.442s

splash command then fails with:
~ » splash                                                                                alec@Alecs-MacBook-Pro
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string
    at assertPath (path.js:28:11)
    at Object.resolve (path.js:1184:7)
    at Function.sync (/Users/alec/.nvm/versions/node/v9.0.0/lib/node_modules/splash-cli/node_modules/mkdirp/index.js:68:14)
    at client (/Users/alec/.nvm/versions/node/v9.0.0/lib/node_modules/splash-cli/client.js:98:10)
    at Object.<anonymous> (/Users/alec/.nvm/versions/node/v9.0.0/lib/node_modules/splash-cli/bin/index.js:61:1)
    at Module._compile (module.js:641:30)
    at Object.Module._extensions..js (module.js:652:10)
    at Module.load (module.js:560:32)
    at tryModuleLoad (module.js:503:12)
    at Function.Module._load (module.js:495:3)

On 8.9.0
~ » sudo npm install --global splash-cli                                                                                alec@Alecs-MacBook-Pro
Alias tip: _ npm install --global splash-cli
/Users/alec/.nvm/versions/node/v8.9.0/bin/splash -> /Users/alec/.nvm/versions/node/v8.9.0/lib/node_modules/splash-cli/bin/index.js

><EMAIL_ADDRESS>install /Users/alec/.nvm/versions/node/v8.9.0/lib/node_modules/splash-cli/node_modules/fsevents
> node install

[fsevents] Success: "/Users/alec/.nvm/versions/node/v8.9.0/lib/node_modules/splash-cli/node_modules/fsevents/lib/binding/Release/node-v57-darwin-x64/fse.node" already installed
Pass --update-binary to reinstall or --build-from-source to recompile
+<EMAIL_ADDRESS>added 449 packages in 14.921s

splash command then fails with:
~ » splash                                                                                alec@Alecs-MacBook-Pro
TypeError: Path must be a string. Received undefined
    at assertPath (path.js:28:11)
    at Object.resolve (path.js:1186:7)
    at Function.sync (/Users/alec/.nvm/versions/node/v8.9.0/lib/node_modules/splash-cli/node_modules/mkdirp/index.js:68:14)
    at client (/Users/alec/.nvm/versions/node/v8.9.0/lib/node_modules/splash-cli/client.js:98:10)
    at Object.<anonymous> (/Users/alec/.nvm/versions/node/v8.9.0/lib/node_modules/splash-cli/bin/index.js:61:1)
    at Module._compile (module.js:635:30)
    at Object.Module._extensions..js (module.js:646:10)
    at Module.load (module.js:554:32)
    at tryModuleLoad (module.js:497:12)
    at Function.Module._load (module.js:489:3)

Should been fixed in the latest commit. Can you try to do the following steps?

Clone this repo
Run yarn install or npm install
Run npm start

On 9.0.0:
~/projects/personal/3rd-party/splash-cli(node>=8) » npm i                                                                              alec@Alecs-MacBook-Pro

><EMAIL_ADDRESS>install /Users/alec/projects/personal/3rd-party/splash-cli/node_modules/fsevents
> node install

node-pre-gyp ERR! Tried to download(404): https://fsevents-binaries.s3-us-west-2.amazonaws.com/v1.1.2/fse-v1.1.2-node-v59-darwin-x64.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for<EMAIL_ADDRESS>and<EMAIL_ADDRESS>(node-v59 ABI) (falling back to source compile with node-gyp)
  SOLINK_MODULE(target) Release/.node
  CXX(target) Release/obj.target/fse/fsevents.o
In file included from ../fsevents.cc:6:
In file included from ../../nan/nan.h:192:
../../nan/nan_maybe_43_inl.h:112:15: warning: 'ForceSet' is deprecated [-Wdeprecated-declarations]
  return obj->ForceSet(isolate->GetCurrentContext(), key, value, attribs);
              ^
/Users/alec/.node-gyp/9.0.0/include/node/v8.h:3114:3: note: 'ForceSet' has been explicitly marked deprecated here
  V8_DEPRECATED("Use CreateDataProperty / DefineOwnProperty",
  ^
/Users/alec/.node-gyp/9.0.0/include/node/v8config.h:321:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
1 warning generated.
  SOLINK_MODULE(target) Release/fse.node
  COPY /Users/alec/projects/personal/3rd-party/splash-cli/node_modules/fsevents/lib/binding/Release/node-v59-darwin-x64/fse.node
  TOUCH Release/obj.target/action_after_build.stamp
added 729 packages in 25.488s
------------------------------------------------------------

On 8.8.0 npm i succeeded.

Ok thank you, in the evening i'll release a new update for  node 8.x . I think that on node 9.x is a dependency (fsevents) issue, not a splash-cli issue.
However I'll try to investigate..

I had no problems to do a fresh install on node 9.0.0..

No updates.


No symbols returned

Pulsar v1.123.0 (AppImage)
serve-d v0.7.6 with workspace-d v3.7.0
On Linux Mint 22 Cinnamon

After installing serve-d and this pulsar package, regardless of project or file being open, no symbol is being detected. symbols-view just shows an empty symbol list.
No errors in console. The serve-d process, spawned by pulsar, is running in the background.
My provider list (copied from Symbols View Redux providers):

ctags provided by symbol-provider-ctags
Tree-sitter provided by symbol-provider-tree-sitter
serve-d provided by pulsar-ide-d

What could be happening here?

I was able to verify that serve-d was giving me symbols yesterday when I was sanity-checking the extension, so I'm not sure why this could be happening.
Try going to the symbols-view settings and adding pulsar-ide-d in the “Prefer Certain Providers” field, then reload the window for safety's sake. If that still doesn't fix it, reply with some sample code that exhibits the problem and I'll see if I can reproduce it.

Also, you can check “Enable Debug Logging” in the symbols-view settings to see more stuff in the dev tools console. Maybe that'll tell you something about which provider is being chosen.

It seems to be a misconfiguration issue. Here is the console output
logger.ts:19 D (serve-d) stderr serve-d v0.7.6 with workspace-d v3.7.0
logger.ts:19 D (serve-d) stderr Included features: "d", "workspaces"
logger.ts:19 D (serve-d) stderr Built: Sun Jan  7 16:11:39 2024
logger.ts:19 D (serve-d) stderr with compiler LDC v2.106 on linux littleEndian
logger.ts:19 D (serve-d) stderr dub, dfmt and dscanner are bundled within (compiled in)
logger.ts:19 D (serve-d) stderr 2024-12-02T16:17:47.177 [error] extension.d:342:validateConfigurationItemsResponse Got invalid configuration response from language client. (not an array)
logger.ts:19 D (serve-d) stderr 2024-12-02T16:17:47.177 [error] extension.d:461:__lambda6 Syncing user configuration failed!
logger.ts:19 D (serve-d) stderr 2024-12-02T16:17:47.177 [warning
logger.ts:19 D (serve-d) stderr ] extension.d:463:__lambda6 Didn't receive any configuration notification, manually requesting all configurations now
logger.ts:19 D (serve-d) stderr 2024-12-02T16:17:47.188 [error] extension.d:342:validateConfigurationItemsResponse Got invalid configuration response from language client. (not an array)

So one thing to try would be to download serve-d version v0.8.0-beta.18; that's the version I tested against.
Still, it's not immediately obvious to me why this error is happening. It seems to be during the workspace/configuration exchange; that's a highly standardized process during which the client reports its capabilities to the server. It's not often that things go wrong here. (Version 0.7.6 of serve-d dates back to January, but the LSP spec doesn't evolve that quickly.)
It seems to be hitting this code path, but I'm not sure why. If this issue still occurs after you update serve-d, I'd suggest the following:

Open the developer console
Execute the following line: atom.config.set('core.debugLSP', true)
Reload the window or relaunch Pulsar
Open the console again and filter the console on workspace/configuration; the extension should report what it's sending to serve-d. If it's invalid, it should look pretty obviously invalid. If you're unsure, you can copy the plaintext of what it's sending or else attach a screenshot.

Sorry for the trouble; my flirtation with D started and ended on the day I created this package. My skill is in being able to turn language servers into useful Pulsar packages, but some language servers are very generic, whereas others assume you have some familiarity with the language in question.

It works after updating serve-d. It prompted me to update DCD. And I'm seeing symbols now.
Thanks!

Happy to see this resolved. I’ll try to remember to update the README to mention a specific version of serve-d. Thanks!


Add newline char at the end of metadata files

from @shcheklein comment https://github.com/iterative/example-repos-dev/pull/133#discussion_r967719911

Correct me if I am wrong, but this is already fixed right?


good

its good job. but it can be caught. can you make something better than this

its good job. but it can be caught. can you make something better than this

I can try adding more different weird space characters but after that I've done about everything I could in terms of plane text obfuscation. And at that point I would guess if any AI detectors detect it then it's for the fact that the text isn't in any 1 language and looks like it would be written by a robot.

your tool only obfuscate text. its not permanent solution to bypass ai detection. Being developer, can you design something which will transform 100% ai text to 100% human text

"Being a developer" maybe instead of complaining you could contribute...

i am not complaining sir. i am just requesting you.


Issue with memory mapped GeoIP DB files in Linux?

Hi. I would appreciate any second opinions on this issue. I noticed that the current MaxMind enabled plugins (geoip_acl, header_rewrite, and maxmind_acl) all use the memory mapped method to open GeoIP DB files using the MaxMind libraries. The geoip_acl and header_rewrite plugins use the old geopi-api-c that allows either loading the DB into memory (GEOIP_MEMORY_CACHE) or using a memory map (GEOIP_MMAP_CACHE). The newer maxmind_acl plugin uses the newer libmaxminddb that only allows the memory map mode (MMDB_MODE_MMAP).
The potential issue is whether over-writing the DB files on the disk is visible to the MaxMind libraries. My testing on Linux says that it is although the Linux man page says that the behavior is unspecified --

 MAP_PRIVATE
              Create a private copy-on-write mapping.  Updates to the mapping are not visible to other processes  mapping  the
              same  file,  and  are not carried through to the underlying file.  It is unspecified whether changes made to the
              file after the mmap() call are visible in the mapped region.

Since changes are visible -- this can interfere with any in-progress look-ups when the over-write happens. In addition, if the newer DB file is larger than the older DB file, then pointers to areas of the file extending beyond the original file size may be considered by the MaxMind libraries to be corrupted DB pointers. I think the pointer vs size checking would prevent any segmentation faults at least. So in general, you would need to close and re-open the DB files if they are over-written on disk.
So should we --

consider a documentation update for this issue?
consider loading the DB files into memory?
is this an issue on other platforms?

Test program I used on Linux --

1. Create data file of "0" of 4096 x 5 size.

while true ; do echo -n "0" ; done | dd if=/dev/stdin of=test-0-05.dat iflag=fullblock bs=4096 count=5

2. Create date file of "1" of 4096 x 10 size.

while true ; do echo -n "1" ; done | dd if=/dev/stdin of=test-1-10.dat iflag=fullblock bs=4096 count=10

3. Test with mmap() with PROT_READ MAP_PRIVATE ( used in geoip-api-c ) --

System Page Size: 4096
Trial 00000:
Reached page:  0 address:      0 first-byte: 0
Reached page:  1 address:   4096 first-byte: 0
Reached page:  2 address:   8192 first-byte: 0
Reached page:  3 address:  12288 first-byte: 0
Reached page:  4 address:  16384 first-byte: 0
Length = 20480 last-byte-of-file = 0
Trial 00001:
Reached page:  0 address:      0 first-byte: 0
Reached page:  1 address:   4096 first-byte: 0
Reached page:  2 address:   8192 first-byte: 0
Reached page:  3 address:  12288 first-byte: 0
Reached page:  4 address:  16384 first-byte: 0
Length = 20480 last-byte-of-file = 0
--- replacing test.dat file : 0-file to 1-file ---
Trial 00002:
Reached page:  0 address:      0 first-byte: 1
Reached page:  1 address:   4096 first-byte: 1
Reached page:  2 address:   8192 first-byte: 1
Reached page:  3 address:  12288 first-byte: 1
Reached page:  4 address:  16384 first-byte: 1
Reached page:  5 address:  20480 first-byte:
Reached page:  6 address:  24576 first-byte: h
Reached page:  7 address:  28672 first-byte: �
Segmentation fault (core dumped)

4. Test with mmap() with PROT_READ MAP_SHARED ( used in libmaxminddb ) --

System Page Size: 4096
Trial 00000:
Reached page:  0 address:      0 first-byte: 0
Reached page:  1 address:   4096 first-byte: 0
Reached page:  2 address:   8192 first-byte: 0
Reached page:  3 address:  12288 first-byte: 0
Reached page:  4 address:  16384 first-byte: 0
Length = 20480 last-byte-of-file = 0
Trial 00001:
Reached page:  0 address:      0 first-byte: 0
Reached page:  1 address:   4096 first-byte: 0
Reached page:  2 address:   8192 first-byte: 0
Reached page:  3 address:  12288 first-byte: 0
Reached page:  4 address:  16384 first-byte: 0
Length = 20480 last-byte-of-file = 0
--- replacing test.dat file : 0-file to 1-file ---
Trial 00002:
Reached page:  0 address:      0 first-byte: 1
Reached page:  1 address:   4096 first-byte: 1
Reached page:  2 address:   8192 first-byte: 1
Reached page:  3 address:  12288 first-byte: 1
Reached page:  4 address:  16384 first-byte: 1
Reached page:  5 address:  20480 first-byte:
Reached page:  6 address:  24576 first-byte: h
Reached page:  7 address:  28672 first-byte: �
Segmentation fault (core dumped)

Test Program Listing --

#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>
#include <unistd.h>

int main(int argc, char *argv[]) {
  char *addr;
  FILE *fd;
  int length;
  int x;
  int count = 0;
  int chksum = 0;

  system("cp -f test-0-05.dat test.dat");
  length = 4096 * 5;

  printf("System Page Size: %ld\n", sysconf(_SC_PAGE_SIZE));

  fd = fopen("test.dat", "rb");
  addr = mmap(NULL, length, PROT_READ, MAP_SHARED, fileno(fd), 0);

  while (1) {
    if (count == 2) {
      system("cp -f test-1-10.dat test.dat");
      printf("--- replacing test.dat file : 0-file to 1-file ---\n");
      length = 4096 * 10;
      sleep(2);
    }
    printf("Trial %05d:\n", count);
    for (x = 0; x < length; x++) {
      if (x % 4096 == 0) {
        printf("Reached page: %2d address: %6d first-byte: %c\n",
               (int)(x / 4096), x, addr[x]);
      }
    }
    printf("Length = %d last-byte-of-file = %c\n", length, addr[length - 1]);
    sleep(2);
    count++;
  }

  return 0;
}

Agreed, it does seem like an issue, I had not had a chance to test it with the new maxmind_acl one since we havent put it into production yet. That one will close existing opened mmdb's and reload but only on restart or on remap reload when the plugin reloading makes a new instance, so I can see corruption being an issue

opened an issue with mmdb as well, since it just seems like good functionality to have, https://github.com/maxmind/libmaxminddb/issues/256

@pbchou can you try your test with a method as outlined here, https://github.com/maxmind/geoipupdate/blob/main/pkg/geoipupdate/database/local_file_writer.go
Its in golang but you should be able to do something similar in C, i.e. write new db to a temp file, rename it to the existing DB, and then issue a sync call to atomically write the changes? This is what is recommended from the mmdb devs and what their updater tool does

If you change the test to not reset the length (when count == 2) and use a mv instead of a copy, things run along fine (still reading 0s). I'm not sure changing the length there is a valid state since mmap is with the original length.

The test resets the length in case the new DB is larger than the old one, and there are pointers to the regions of the file which are larger than the old file. It turns out the look-up function in the MaxMind libraries do have a pointer vs size check so it should result in a return of "corrupted database" rather than causing a segmentation fault. I assume this mv-vs-cp method works because the mmap is anchored to the disk contents rather than the file. Is there an issue with possible over-write of the disk contents after the disk sectors are freed when the original DB is replaced (perhaps old file needs to be kept with a dummy *.old file name)?

On unix systems, when you atomically replace a file (or use rm for that matter), the file is merely unlinked. The space associated with the file is not freed until all open file handles are closed. There is no need to keep it with a dummy name. See rename(2) and unlink(2)`.

Before the database is opened with MMDB_open(), why not first copy the database file  as possibly a hidden file and then MMDB_open() and get a file handle to the copy.  Any changes to the configured database file would not affect ATS but, the plugin could notice the change to the configured filename and make another copy, use MMDB_open() to get a 2nd file handle to the new copy.  When it is determined safe to do so, swap the the active file handle with the new file handle and MMDB_close the old file handle.  Maybe using a smart pointer to the active file handle or a mutex in order to swap file handles.

So some feedback from us now that we've started deploying this plugin. Yes doing a copy is an issue, but doing the mv should be atomic. In my testing while using the maxmind plugin, doing a move of a temporary file on top of the existing one allowed ATS to continue using its old copy until a reload is issued and the plugin is reloaded and picks up the new file from disk
Thats at least to how it relates to the ats maxmind plugin

If this is still an issue please reopen.


wait-until command continues to wait until the end timeout, eventhough the command is successfull independently

First of all, thank you very much for creating this handy tool. in recent days we came across one issuse, as mentioned below, however, we do not see this issue in the earlier versions of the same same wait-until tool. Can you please take a look once?
Thank you in advace.
What is seen is as follows,
when we execute the below command independently, the command comes out fine.
Working - the below command works independently and comes out as it is able to find the string.
docker-compose exec -T AdminCntr grep -iq 'The server sarted in RUNNING mode.' /u01/oracle/user_projects/domains/access_domain/logs/as.log
not working - although the command was successful in the above step it fails when we use wait-until
./wait-until "docker-compose exec -T AdminCntr grep -iq 'The server started in RUNNING mode.' /u01/oracle/user_projects/domains/access_domain/logs/as.log" 10
command was never successful, aborting due to 10 s timeout!

Hi,
So for clarity you're saying with this command:
./wait-until "docker-compose exec -T AdminCntr grep -iq 'The server started in RUNNING mode.' /u01/oracle/user_projects/domains/access_domain/logs/as.log" 10

The v0.1.1 version of wait-until fails with a timeout but the older v0.1.0 version of wait-until works with the same command?
Are you 100% sure you're running the command in the same environment? What happens if you change 10 to 100? Does it eventually work?
Can you come up with a reproduceable test case?

Thanks, I'm able to reproduce this here when using the postgres connection test from the documentation.
I just reverted #5 which changed the behavior of the script and pushed v0.1.2 which uses the old version of the script which is working.


build_torcx_store: Make the LTS Docker CE version the default

Prepare alpha for beta promotion.

They just posted a 17.09.1 RC, so I'll wait until the last minute to merge in case that gets released before beta is built.


Feat(intellisense): format long ints in signatures with separators

Thanks for your help. I'm not sure if this is the correct repo to file this request, please point me in the right direction if this is wrong.
Sometimes I have a big int as a default value of a function:
def train_using_labels(
    comparers: Iterable[LevelComparer],
    left: ir.Table,
    right: ir.Table,
    *,
    max_pairs: int = 1_000_000_000,
) -> Weights:

Note that I have the _ separators in there to make it readable. When I hover over a usage of that function, the intellisense popup prints it plain, with no separators. This makes it difficult to read:

Can we either:

print it exactly as formatted? This seems more difficult, as I'd imagine after parsing we only are passing around the abstract representation.
add some sort of formatting logic, perhaps simply the python equivalent of  adding the _ separator, eg print(f"{1_000_000_000:_}")

Thanks for the suggestion. Transferring to discussions for up votes.


Archive tree with new api

Fixes #5416

merging in the master branch should fix your build I think


GOV.UK Platform as a Service (PaaS)

Base URL:

https://api.cloud.service.gov.uk/v3 - AWS Dublin (eu-west-1)
https://api.london.cloud.service.gov.uk/v3 - AWS London (eu-west-2)

Documentation URL:

http://v3-apidocs.cloudfoundry.org/version/3.74.0/

Description:
GOV.UK PaaS allows government departments to host web facing services in the AWS cloud in Dublin and London regions.
GOV.UK PaaS is built on Cloud Foundry
There are two major versions of the API, v2 and v2.
The API provides a comprehensive set of resources to manipulate the internal state of your Cloud Foundry Organisation, Spaces, Services and Applications.
GOV.UK PaaS Technical Documentation for Users
The  API  handles all requests from the Cloud Foundry Command Line Interface (CLI) which is the primary user interface for users of the platform.

@RosalieDM I added some details about our Platform as a Service, the API is pretty comprehensive and is interesting because

it is versioned
it is very large
it exposes endpoints in both AWS Dublin and AWS London
Users will mainly use the CLI to interact with it although they are at liberty to call it directly
The api is also the target of a number of other components such as https://plugins.jenkins.io/cloudfoundry https://docs.travis-ci.com/user/deployment/cloudfoundry/ but there may be others we don't know about


A few make cleanups + guix manifest

Please see commit messages for descriptions of the various changes.

Noticed, that texlive-setspace is not in the meta package?  Cannot build the proposal.   Converting to draft PR.


Indonesian Translation: Terrarium

translate from English to Indonesian language

@microsoft-github-policy-service agree

@microsoft-github-policy-service agree