Sixth post

Thank you very much for the sixth meeting blog post!
I'd like to invite you to help yourself to merge this PR, and as we discussed before, we should start merging PRs by technical writers themselves for quick iterating and move faster.
According to our settings of this repo: a PR will be able to be merged by the contributor who has write privileges after:

There's already 3 approvals from other contributors
It passed the CI tests
It has no conflict

The technical writers team of GSoD'21 have all granted the write privilege I believe (they are all in the @wechaty/writers team).
So please try to merge this PR by yourself and let's see if the settings are correct, if it works, then I'd like to suggest that we can start merging those PRs which you believe it should be merged.
Please let me know what you think, thank you very much.

Hi @huan,

So please try to merge this PR by yourself and let's see if the settings are correct, if it works, then I'd like to suggest that we can start merging those PRs which you believe it should be merged.

I wasn't able to merge this (probably you can't merge your own PRs and @proudofsimin, might be able to merge this)

So please try to merge this PR by yourself and let's see if the settings are correct, if it works, then I'd like to suggest that we can start merging those PRs which you believe it should be merged.

Unable to merge this one #962

@Rohitesh-Kumar-Jain Closing the PR and opening again might work.


icanhazdadjoke v1.1 (Independent Publisher) - Add a new action to connector

Add new action to icanhazdadjoke connector. Fetch a joke by Joke ID. Also, exposed Joke ID param from other actions as well.

When submitting a connector, please make sure that you follow the requirements below, otherwise your PR might be rejected. We want to make you have a well-built connector, a smooth certification experience, and your users are happy :)
If this is your first time submitting to GitHub and you need some help, please sign up for this session.

[x] I attest that the connector works and I verified by deploying and testing all the operations.
[x] I attest that I have added detailed descriptions for all operations and parameters in the swagger file.
[x] I attest that I have added response schemas to my actions, unless the response schema is dynamic.
[x] I validated the swagger file, apiDefinition.swagger.json, by running paconn validate command.
[x] If this is a certified connector, I confirm that apiProperties.json has a valid brand color and doesn't use an invalid brand color, #007ee5 or #ffffff. If this is an independent publisher connector, I confirm that I am not submitting a connector icon.

If you are an Independent Publisher, you must also attest to the following to ensure a smooth publishing process:

[x] I have named this PR after the pattern of "Connector Name (Independent Publisher)" ex: HubSpot Marketing (Independent Publisher)
[x] Within this PR markdown file, I have pasted screenshots that show: 3 unique operations (actions/triggers) working within a Flow. This can be in one flow or part of multiple flows. For each one of those flows, I have pasted in screenshots of the Flow succeeding.
[x] Within this PR markdown file, I have pasted in a screenshot from the Test operations section within the Custom Connector UI.
[x] If the connector uses OAuth, I have provided detailed steps on how to create an app in the readme.md.

Dear partner,
We apologize for the delay you might be experiencing while we are working on a high volume of connector requests. Rest assured that we are doing everything we can to address this volume. We are taking measures like improving our processes and hiring additional team members to guarantee resolving your connector requests in a timely manner.
Please let us know if you have any questions in the meantime.

[[certify-connector]]

Hi @last72, I hope you are doing well. I want to follow up with you and let you know that your connector is in production deployment. this process will complete within 4-6 weeks.
Please let me know if you have any questions.
Thank you very much.

hi @last72 I hope you are doing well. This is to inform you that your connector is now fully deployed, and in documentation deployment now. The process will be complete by the end of the week.
Please let me know if you have any questions.
Thank you very much.

@last72 Apologies for the delay in response.
Congratulations! The deployment of your connector and documentation page is now complete, We have a short survey on the connector certification process that we would like for you to complete. Your feedback is appreciated and will help us improve the program, Thanks.


addition of consul delete action

Added consul.delete action to delete a list of Keys from consul under a given key, with optional recursion

Sorry Andy!
I merged into the wrong branch and had to back out. Please send a PR against tuxinvader:tux-consul


Freeze Armbian & additional build options

Various minor fixes and features adds

freeze Armbian at latest stable release (sunxi-4.20)
build option to manually set root password (development only)
build option to configure default wifi network (needs additional hardware module)
display build options (dedicated script function)

To be replaced by rebased branch / pr


Support returning nested semantic types from ML_Predict

This PR fixes two issues:

ML_PREDICT now can take in UDT as parameters:

df = spark.createDataFrame({"image": [Image(uri="s3://...")]}).registerTempView("images")
spark.sql("SELECT ML_PREDICT(yolov5, image) from images")

and 2. now a ML_PREDICT can returns list of struct as well as UDTs.
I've changed the torch pre/post transforms to return box2d instead of array<array<float>>.

Only one important thing:
I think unpickle should not be exposed to end user.

@changhiskhan take another look?


Disable publishing gh pages on scheduled builds

Fixes #33.
Merge Request - GuideLine Checklist
Guideline to check code before resolve WIP and approval, respectively.
As many checkboxes as possible should be ticked.
Checks by code author:

[ ] There is at least one issue associated with the pull request.
[ ] The branch follows the naming conventions as defined in the git workflow.
[ ] New code adheres with the coding guidelines
[ ] Tests for new functionality has been added
[ ] A local test was succesful
[ ] There is appropriate documentation of your work. (use doxygen style comments)
[ ] If new third party software is used, did you pay attention to its license? Please remember to add it to the wiki after successful merging.
[ ] If new mathematical methods or epidemiological terms are used, has the glossary been updated ? Did you provide further documentation ?
is present or referenced. Please provide your references.
[ ] The following questions are addressed in the documentation*:  Developers (what did you do?, how can it be maintained?), For users (how to use your work?), For admins (how to install and configure your work?)
For documentation: Please write or update the Readme in the current working directory!

Checks by code reviewer(s):

[ ] Is the code clean of development artifacts e.g., unnecessary comments, prints, ...
[ ] The ticket goals for each associated issue are reached or problems are clearly addressed (i.e., a new issue was introduced).
[ ] There are appropriate unit tests and they pass.
[ ] The git history is clean and linearized for the merge request.
[ ] Coverage report for new code is acceptable.

Codecov Report

Merging #34 (3cba974) into main (060245c) will increase coverage by 0.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main      #34      +/-   ##
==========================================
+ Coverage   62.38%   62.40%   +0.01%
==========================================
  Files          88       88
  Lines        5881     5881
  Branches     2063     2063
==========================================
+ Hits         3669     3670       +1
  Misses        536      536
+ Partials     1676     1675       -1

Impacted Files
Coverage Δ

cpp/epidemiology/abm/person.cpp
84.00% <0.00%> (+2.00%)
:arrow_up:

Continue to review full report at Codecov.

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


Intended purpose of notmuch backend?

What is the intended purpose of the notmuch backend?
Is the idea that you can sync from imap to a notmuch backend directly? (so that notmuch does not need to be installed/configured on your system?)
An email client like aerc can use a notmuch backend directly, it seems you would not need a Maildir at all in that case.
But neverest does not seem to create a notmuch DB, and notmuch itself still depends on a Maildir being present.
Sorry if this is rather obvious, but I have trouble seeing the big picture.

Initially the notmuch backend comes from Himalaya, and like aerc it makes sense. For Neverest it's a bit less obvious. The only advantage of using notmuch over maildir is that you do not need to re-index messages. If you manipulate directly the maildir, notmuch is not aware of changes and the db needs to be update manually. If you use the notmuch backend, then it manipulates the maildir and takes care of updating the database.

Thanks, I think I understand now. You will usually sync to Maildir+notmuch, and in that case it removes the need to do notmuch new.

Yes. If Neverest was alone, it would not make sense to specifically develop the notmuch backend. But since notmuch support is already there in the Pimalaya core email-lib, it does not cost that much to propose it.


Update to Bevy 0.13

This PR updates bevy_ascii_terminal to support Bevy 0.13, bumping the version to 0.15.0.
NOTE: Depends on https://github.com/sarkahn/sark_grids_rs/pull/2 and https://github.com/sarkahn/bevy_tiled_camera/pull/6 being published.

Hey, curious if there are plans to merge this? Using this plugin in my game and this blocks a 0.13 upgrade.
Thanks!


Can i have two properties with the same foreign key?

public class FileRecord : RelativeEntity
    {
        public Guid DmsId { get; set; }
        public int EntityId { get; set; }
        public string MimeType { get; set; }
        public FileRecordEntity Entity { get; set; }

        [ForeignKey("EntityId")]
        public virtual Decision Decision { get; set; }
        [ForeignKey("EntityId")]
        public virtual Invitation Invitation { get; set; }
    }

Can i have two properties with the same foreign key?
EF Core version: 1.0.0
Operating system: Win10 64
Visual Studio version: VS2015

@ntsekouras Yes. Are you seeing an error? If so, please provider error, stack trace, and full repro code.

Closing as we have answered the question. If you see an error, reply with details and we will reopen.

At line:1 char:1

dotnet ef migrations add filerecordsTest

  + CategoryInfo          : NotSpecified: (Process is term...rflowException.:String) [], RemoteException
  + FullyQualifiedErrorId : NativeCommandError

The other 2 classes are like this
public class Invitation : AuditedEntity
{
    ...
    public List<FileRecord> FileRecords { get; set; }
}

We also set up fluent API like this
/*          FileRecorts           */
modelBuilder.Entity<FileRecord>()
	.HasOne(r => r.Decision)
	.WithMany(c => c.FileRecords)
	.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<FileRecord>()
	.HasOne(r => r.Invitation)
	.WithMany(c => c.FileRecords)
	.OnDelete(DeleteBehavior.Restrict);

StackOverflow in latest codebase too. Setting EntityId as foreign key for one relationship removes the other one and when convention re-discover the other relationship, it will try to use EntityId and same thing repeats.

Is there a workaround for v1.0 of efcore?

@ntsekouras You would need to remove the annotations, configure one of the relationships using Fluent API and the other one using Model API:
modelBuilder.Entity<FileRecord>().HasOne(f => f.Decision).WithMany().HasForeignKey(f => f.EntityId);
modelBuilder.Entity<FileRecord>().Ignore(f => f.Invitation);

var fileRecordEntityType = modelBuilder.Entity<FileRecord>().Metadata;
var invitationEntityType = modelBuilder.Entity<Invitation>().Metadata;
fileRecordEntityType.AddForeignKey(
    new[] { entityType.FindProperty("EntityId") },
    invitationEntityType.FindPrimaryKey(),
    invitationEntityType)
    .HasDependentToPrincipal(typeof(FileRecord).GetTypeInfo().GetDeclaredProperty("Invitation"));


bundle package creates weird folder structure when using --path parameter

Hello,
I'm not sure if this is intended behavior or if I use --path wrong. Anyway, when using --path parameter with bundle package I get a weird path structure for the downloaded gems:
bundle package --no-install --path vendor/bundle

will create the cache in vendor/bundle/vendor/cache/. Fair enough, this might make sense although I would expect bundler is smart enough to create the cache in vendor/bundle.
If I run:
bundle package --no-install --path vendor/cache

The cache is as expected in vendor/cache/. However, it also creates the subfolders vendor/cache/vendor/cache/ (empty) and vendor/cache/ruby/2.4.0/cache/ (with the gems for the ruby version).
When I run first
bundle install --path vendor/bundle

and afterwards
bundle package --no-install

(so the path is already set in ,bundle/config)
I get the expected folder structure
vendor/bundle/ruby/2.4.0/cache/

and
vendor/bundle/ruby/2.4.0/cache/

I would say this is not expected behavior ...
Bundler version 1.16.1
ruby 2.4.3p205 (2017-12-14 revision 61247) [x86_64-linux-gnu]

This looks like the issue has been answered.


Release 0.3.2

[ ] on dev

[x] merge all outstanding PRs

[x] #68
[x] #84

[x] ensure the versions have been bumped

[x] run doit preflight:release

[x] ensure CHANGELOG.md is up-to-date
[ ] validate on binder

[ ] https://mybinder.org/v2/gh/jupyrdf/ipyforcegraph/dev?urlpath=lab%2Ftree%2Fexamples%2F_index.ipynb

[x] validate on ReadTheDocs

[ ] https://ipyforcegraph.readthedocs.io/en/latest/

[x] make a PR from dev to main
[x] wait for a successful build of main

[x] https://github.com/jupyrdf/ipyforcegraph/actions/runs/4950920001/jobs/8855187131

[x] download the dist archive and unpack somewhere
[x] create a new release through the GitHub UI

[x] pick a new release name to go with the version of real (or imaginary) force

[x] reduced selective

[x] paste in the relevant CHANGELOG.md entries
[x] upload the artifacts

[x] upload distribution to package repositoriescd dist
twine upload *.tar.gz *.whl
npm login
npm publish jupyrdf-jupyter-forcegraph-$VERSION.tgz
npm logout

[x]<EMAIL_ADDRESS>[x] https://pypi.org/project/ipyforcegraph/0.3.2/

[ ] postmortem

[ ] handle conda-forge feedstock tasks

[x] https://github.com/conda-forge/ipyforcegraph-feedstock/pull/5
[x] https://anaconda.org/conda-forge/ipyforcegraph/files?version=0.3.2

[ ] validate on binder via simplest-possible gists

[ ] pip requirements.txt

[ ] URL of pip binder here

[ ] conda environment.yml

[ ] URL of conda binder here

[ ] create postmortem PR from main targeting dev

[x] #87
[x] bump to next development version
[x] bump the CACHE_EPOCH
[x] rebuild yarn.lock
[x] rebuild .github/locks

[x] run doit env:lock
[x] run rm -rf .github/locks
[x] from a clean command prompt

[x] 🐧source envs/lock/bin/activate
[ ] 🪟 call envs/lock/Scripts/activate.bat)

[x] run doit lock
[x] commit the new locks

[ ] update release procedures with lessons learned in
.github/ISSUE_TEMPLATE/release.md

For the time being, not going to do binder.


Configuration variables

#49

Closes #17
Let me know when this is ready for review! This looks like some great work so far!
In the future, can you please make sure to name your branches like ali/config-variables-i17 to indicate your name, the feature, and the related issue number? Thanks :)

When this is ready, can you please rebase? You may find it beneficial to squash some commits too

Important note: you had an out-of-bounds memory situation when you constructed the demo strings as a certain length, and then set their max length to greater than their constructed length.
Other comments in my changes:

Very inconsistent naming.
In the unit tests, don't write a comment like "should return 2". That's the whole point of the assert. The person reading the comments can read the code. Instead, writing something like "Success case: ..." is more useful, as it explains what you were thinking as you wrote the code. Comments are most useful when used to explain "why", not "what".
CONFIG_comapre_search_config_names has a typo, and is entirely unnecessary. Its design does not offer any safety over using strcmp, as you're relying on strlen on c-strings, just one level up, with many extra lines of code.
Orphan code (code which is not executed nor used) doesn't belong in a PR.

Next Steps
I've made the changes and pushed them. Have only done a tiny bit of testing. Can you please review the code, test it, and ensure you're happy with it? Thanks!
Using GitHub Desktop, you'll need to delete your local branch and then re-pull it.


Handle exit from Mix.Project.load_paths (instead of crashing node)

This handles the situation where reprise gets packaged into a release, where a call to Mix.Project.load_paths results in this error:
18:33:15.626 [error] GenServer Reprise terminating
Last message: :wake
State: {{{2014, 10, 31}, {18, 33, 14}}, 1000}
** (exit) an exception was raised:
    ** (Mix.Error) Cannot access build without an application name, please ensure you are in a directory with a mix.exs file and it defines an :app name under the project configuration
        (mix) lib/mix.ex:235: Mix.raise/1
        (mix) lib/mix/project.ex:303: Mix.Project.compile_path/1
        (mix) lib/mix/project.ex:343: Mix.Project.load_paths/1
        (reprise) lib/reprise.ex:129: Reprise.Runner.beams/0
        (reprise) lib/reprise.ex:144: Reprise.Runner.beam_modules/0
        (reprise) lib/reprise.ex:171: Reprise.Runner.go/2
        (reprise) lib/reprise.ex:81: Reprise.Server.handle_info/2
        (stdlib) gen_server.erl:599: :gen_server.handle_msg/5

Instead of crashing the node, it causes the reprise application to terminate.

Hi!
In new Reprise (0.5.0) I totally dropped using Mix.Project.load_paths and happily just use :code.get_path. This also has a property of picking up consolidated beams, which in turn are produced in dev mode since Elixir 1.2.
This means I removed your catches because I think they are not needed anymore.
Would you be able to check it? I don't know how to reproduce your original situation.
TIA :)


Consider retiring or reducing this page and pointing people at another

To DRY up the docs and clear down some of the outstanding open issues, perhaps just point readers to this page?
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/http-requests?view=aspnetcore-2.2

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

ID: 7b506236-b211-eb9d-b571-5efecdde76c8
Version Independent ID: 24434b0e-0b82-e477-9440-2cc8f135df75
Content: Use HttpClientFactory to implement resilient HTTP requests
Content Source: docs/architecture/microservices/implement-resilient-applications/use-httpclientfactory-to-implement-resilient-http-requests.md
Product: dotnet
Technology: dotnet-ebooks
GitHub Login: @nishanil
Microsoft Alias: nanil

Hi @lukepuplett, thanks for your feedback!
The page makes sense as an introduction to the HttpClientFactory in the context of the Microservices Architecture guide.
This is also used to generate the related e-book (https://aka.ms/microservicesebook), where it's even more important for a unified content, so a simple link would juts not be enough.
However, the content will be improved based on the feedback.
Thanks.


net: Listen fails on Windows when SYSTEMROOT environment variable is not set

Under Windows, net.Listen fails with the error message socket: The requested service provider could not be loaded or initialized. when the SYSTEMROOT variable is not set. This can e. g. be achieved by running an exec.Command with a non-nil Env that doesn't contain the parent process's environment.
I have written a sample application demonstrating the issue under https://github.com/Xjs/envless-listen.
This issue can be reproduced with go version go1.9 windows/amd64 under Windows 10.
According to https://msdn.microsoft.com/en-us/library/windows/desktop/ms740668(v=vs.85).aspx, this error occurs if some DLL cannot be loaded, so I assume a Windows socket syscall needs to load a DLL which is not found if SYSTEMROOT is unset.
I don't know how this issue is best mitigated. I don't even know if the leverage point is net or rather os/exec. One could imagine something like exec.Cmd never omitting SYSTEMROOT from the environment on Windows, even when passing a non-nil Env. However, if it is possible to infer the system root from some other source, the net package might also consider re-setting it. It might also be fine just leaving it as-is and documenting somewhere that sockets under Windows require access to that library.

I always pass current process environment to the child. If you need to add or delete some environment variables, do that, but leave all other variables as is. If you show your program, we could show you how to do it.
Alex

That is something I have never seen myself. What are those situations?
I imagine systems that need to be relied upon producing reproducible outputs. For example (not written in Go, though), I have seen stripping of environments in build contexts in the Bazel project.

Adding such magic to the standard library is a bad idea. If I remove something from the child's environment, I expect it to be gone and not for the stdlib to silently add it back behind my back.
It's not really a Go problem though, is it? Just normal system behaviour. What parts (if any) to scrub from the child's environment is inherently application-specific and should be solved there.

Bugs like this one are why I filed #25210

@bradfitz will do if I encounter a case where a necessary variable is removed. (In fact, https://github.com/bazelbuild/rules_go/issues/736 contains a discussion about a missing TMPDIR variable, but I digress.)
I appreciate #25210 very much. It would at probably make the present issue more transparent. Also, There, you suggested force-inheriting certain special variables in os/exec, too. I would consider this a possible resolution for the present issue as well.

@slrz

It's not really a Go problem though, is it? Just normal system behaviour. What parts (if any) to scrub from the child's environment is inherently application-specific and should be solved there.

Maybe so. On the other hand, I didn't expect the standard library to import a DLL at all, when everybody keeps telling me that one of the strengths of Go is that it produces statically-linked, self-contained binaries.
I'm still not sure what exactly needs to be done here, but I think there should be done something to avoid the original issue (net not functioning when exec'd with an empty environment on Windows) without me having to add Windows-specific code to my exec.Command invocation.
I have found that MinGW's env command-line tool doesn't remove certain variables (among those SYSTEMROOT) when using env -i. Similar magic might be justified in os/exec, wouldn't it?

I didn't expect the standard library to import a DLL at all, when everybody keeps telling me that one of the strengths of Go is that it produces statically-linked, self-contained binaries.

DLLs is how you access system services on Windows. So, if you want to open a file or read from network connection, you have to use DLL. But you don't need to know about these, because Go standard library calls into DLLs. So in that regard Go programs is very muc "self-contained binaries".

I'm still not sure what exactly needs to be done here, but I think there should be done something to avoid the original issue (net not functioning when exec'd with an empty environment on Windows) without me having to add Windows-specific code to my exec.Command invocation.

exec.Command invocation returns exec.Cmd struct
https://golang.org/pkg/os/exec/#Cmd
if you leave Env field nil (it is set to nil by default), then your child process will inherited all your environment variables. That child process will not have problem using Windows networking.
I suspect you are modifying Env filed. Well some of those variables are important for other code that runs on your system. So you cannot just do as you please.
Alex

My point exactly. It took me some time to figure out that the net.Listen call failed due to the missing environment variable SYSTEMROOT. The example repository demonstrates the difference between a nil and a non-nil Env field.
I don't want to do as I please, but I want to know what I'm doing. ;) It would be great if it were documented that code is relying on specific environment conditions.
I honestly didn't know that Go needs to access DLLs on Windows. (A colleague just told me that they reckon go binaries also dynamically-linked against glibc under Linux. I didn't know that, either.) Is there an overview about dependencies of Go binaries within the standard library? Where can I see that a DLL is required for some stdlib function?
I like @bradfitz' suggestion to platform-specifically preserve some environment variables in os/exec. This would resolve @25210 and also the present issue. However, I don't know which variables could be vital on Windows, you seem to have much more insight. If you point me in the right direction, I am happy to provide a pull request for os/exec or for the documentation of net that addresses these Windows specifics.

I don't want to do as I please, but I want to know what I'm doing. ;)

From my experience, when you creating child process on Windows, you should not remove or change existing variables, unless you have good reason for changing them. Because software installed on your computer might be using these variables.
That is what you need to know. And you must follow that rule.

It would be great if it were documented that code is relying on specific environment conditions.

Environment variables change from one computer to another. There are no rules about which variables are safe to delete and which are not. These variables depend on your OS version and software that you install on your computer.

Is there an overview about dependencies of Go binaries within the standard library?

What kind of "overview" you are after? Why do you need to know Go dependencies?  Go binaries will find whatever DLLs your WIndows provides automatically.

Where can I see that a DLL is required for some stdlib function?

You can read stdlib function source code to find what DLLs they use.
Alex

What kind of "overview" you are after? Why do you need to know Go dependencies?  Go binaries will find whatever DLLs your WIndows provides automatically.

Wrong. If you remove SYSTEMROOT, Go binaries won't be able to net.Listen anymore. This is exactly what I provided in the example in my first post. That's the entire point of this issue.

You can read stdlib function source code to find what DLLs they use.

Right. Why isn't this documented? This is the kind of stdlib dependency I'm after.

Why isn't this documented?

I do not know.

This is the kind of stdlib dependency I'm after.

I understand.
Alex

I found some MS reference about sub-process creation, cf. under section lpEnvironment, https://docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-createprocessa
It appears that Go implements correctly the expected behavior because if cmd.Env is left to nil, the environment variables are inherited from the parent process. Assigning an empty array as in the example, imposes explicitly to start the sub-process with an empty set of environment variables.
The relevant part becomes:
        env := []string{}
	cmd := exec.Command("listener")
	switch {
	case working:
		env = append(env, "SYSTEMROOT="+os.Getenv("SYSTEMROOT"))
		cmd.Env = env
	case failing:
		// nothing assigned and Env remains nil
		// failing means only that SystemRoot was not explicitly assigned.
	}

	cmd.Stdout = os.Stdout
	cmd.Stderr = os.Stderr

	err := cmd.Run()

As stated in go1.13 release notes, %SYSTEMROOT% is now inherited.
The failure submitted cannot be reproduced:
Xjs\envless-listen>go version
go version go1.13 windows/amd64

Xjs\envless-listen>envless-listen.exe
# envless-listen

This is to demonstrate that on Windows, the SYSTEMROOT variable needs to be set in order for a `net.Listener` to work. This is especially not the case when executed from an os.Cmd with a custom environment.

## Setup

`cd listener && go build`
`go build`

## Working case

`./envless-listen -working`

## Failing case

`./envless-listen -failing`

Xjs\envless-listen>envless-listen.exe -working

Xjs\envless-listen>envless-listen.exe -failing

It seems issue can be closed.

Thanks, closing.


Port file wiki editor

Merged in changes from @mfraezz for conditionally loading the ember index.html file within flask
Updated the file view/revisions page to reflect current OSF behavior

@binoculars, I would submit your own PR straight to develop instead of having to go through me.


Polish the Span Tree

Summary
Now, as the first version of Span Tree is basically complete, the code quality needs to be improved, before I get to build another layer of functionalities on top of it.
Value
While we don't want to merge Span Tree to master immediately (but rather as part of larger double-rep effort), the code should undergo review and refactoring.
Thus obvious issues can be remedied right now, instead of waiting for the merge. And the eventual PR won't be that hard to finish.
Specification
In cooperation with Wojciech go over the code, make sure that API conforms to planned GUI needs.
Get the feedback on code quality / style and apply it.
Acceptance Criteria & Test Cases
Wojciech says that feedback was applied properly.

@wdanilo was the feedback applied properly?


[LYFT][STRMCMP-1143] Add an S3 connector for the beam python SDK

This PR adds a separate S3 connector (with a corresponding translation layer in the LyftFlinkStreamingPortableTranslations). This is based on the S3EventSource.
An example Beam Python pipeline using the S3 source can be found here. This has been tested with the beamperfk8s3 job.
It will help us expedite review of your Pull Request if you tag someone (e.g. @username) to look at it.
Post-Commit Tests Status (on master branch)

Lang
SDK
Apex
Dataflow
Flink
Gearpump
Samza
Spark

Go

---
---
---
---
---
---

Java

Python

---

---
---
---

The changes look good !
However, I want to run by the idea of leveraging LyftFlinkStreamingPortableTranslations#translateS3AndKinesisInputs internally from s3.py with the conditional checks in LyftFlinkStreamingPortableTranslations and the Event connector to promote code reuse.
Keeping the two separate seem sensible for now but am foreseeing changes like https://jira.lyft.net/browse/STRMCMP-1126 that will force us to duplicate code :(

If I understand the recommendation correctly, it would implytranslateS3AndKinesisInputs has a conditional check (maybe based on whether the kinesisConfig is passed or not) and keep s3.py as is?
I think that's a reasonable change and I'm open to making it. My concern with that is, we'll always be tightly coupled with the user config being the same for just S3 and the bootstrapping usecase. Even though that's the current assumption in translateS3Inputs right now, we can choose to evolve our S3 source differently from the bootstrapping API usecase in the future if needed. So, my preference is to keep them separate and maybe we could make the code even more DRY by abstracting all the JSON parsing into a util method?
I believe the specific config options that will be added with https://jira.lyft.net/browse/STRMCMP-1126  could be folded into the S3Config class (which is re-used across translateS3AndKinesisInputs and translateS3Inputs).

If I understand the recommendation correctly, it would implytranslateS3AndKinesisInputs has a conditional check (maybe based on whether the kinesisConfig is passed or not) and keep s3.py as is?
I think that's a reasonable change and I'm open to making it. My concern with that is, we'll always be tightly coupled with the user config being the same for just S3 and the bootstrapping usecase. Even though that's the current assumption in translateS3Inputs right now, we can choose to evolve our S3 source differently from the bootstrapping API usecase in the future if needed. So, my preference is to keep them separate and maybe we could make the code even more DRY by abstracting all the JSON parsing into a util method?
I believe the specific config options that will be added with https://jira.lyft.net/browse/STRMCMP-1126 could be folded into the S3Config class (which is re-used across translateS3AndKinesisInputs and translateS3Inputs).

Agree to keep it as is keeping future evolution in mind.

/approve (👍)


withRecursive query has wrong SQL Server template mapping

Observed vs. expected behaviour
When using withRecursive clause against a SQL Server instance, the resulting SQL is not compliance with SQL Server. It uses with recursive statement that is not supported by SQL Server (it only uses with):
(Take a look to Additional details at the end of this issue as I found the exact place of the error)
Steps to reproduce
Not sure if I have to include a detailed description of tables and the query for that ones, if you need it let me know and I would try to build up the typical example of getting all children of a parent using with recursive. But the QueryDsl sintax would be:
//alias for make join queries easier
DocumentQueryDsl docs = new DocumentQueryDsl("docs");
//required to reference columns of the cte table, using the alias
DocumentQueryDsl cteChildren = new DocumentQueryDsl("cteChildren");
EntityPathBase<DocumentQueryDsl> cte = new EntityPathBase<>(DocumentQueryDsl.class, "cteChildren");

SQLQuery<String> descendantsQuery = sqlQuery
    .withRecursive(cte, Q_DOC_DSL.DOCUMENT_ID, Q_DOC_DSL.PARENT_ID)
    .as(unionAll(
      select(docs.DOCUMENT_ID, docs.PARENT_ID).from(docs).where(docs.PARENT_ID.eq(documentId).and(docs.COLLECTION_ID.eq(collectionId))),
      select(docs.DOCUMENT_ID, docs.PARENT_ID).from(docs, cte).where(cteChildren.DOCUMENT_ID.eq(docs.PARENT_ID).and(docs.COLLECTION_ID.eq(collectionId))))
    )
    .select(cteChildren.DOCUMENT_ID).from(cte).distinct();

And this ends up generating a SQL like this:
with recursive "cteChildren" ("DOCUMENT_ID", "PARENT_ID") as ((select "docs"."DOCUMENT_ID", "docs"."PARENT_ID" from "DOCOS" "docs" where "docs"."PARENT_ID" = ? and "docs"."COLLECTION_ID" = )
union
(select "docs"."DOCUMENT_ID", "docs"."PARENT_ID" from "DOCOS" "docs", "cteChildren" where "cteChildren"."DOCUMENT_ID" = "docs"."PARENT_ID" and "docs"."COLLECTION_ID" = ?))
select "cteChildren"."DOCUMENT_ID" from "cteChildren"

that causes the following exception:
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near 'cteChildren'.
	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:260)
	at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1547)
	at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:528)
	at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:461)
	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7342)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2688)
	at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:224)
	at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:204)
	at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:383)
	at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:1471)
	at com.querydsl.sql.AbstractSQLQuery.fetch(AbstractSQLQuery.java:446)

Environment
Querydsl version: 4.1.2 (although I checked the affected template on 5.0.0 version and it's the same code, so it does not change the issue)
Querydsl module: sql
Database: Microsoft SQL Server 14
JDK: Amazon Corretto 11.9
Additional details
I located the issue in the com.querydsl.query.SQLServerTemplates class. The constructor does not override default withRecursive mapping (like OracleTemplates does) to use with. So the default value with recursive is used instead.
Adding setWithRecursive("with "); to the constructor fix the issue.

As a workaround I copied the com.querydsl.query.SQLServerTemplates class in our project and add the fix setting the setWithRecursive("with "); in the constructor. But obviously I prefer to have this fix in a version of this awesome library :-D


Chem: RDKit minimal lib - refining structure

Datagrok uses RDKit minimal lib for cheminformatics related calculations. Minimal lib is limited to a subset of features presented in RDKit which is usually wrapped and used in Python. Some more features will be useful in the minimal lib. Features that refine the structure are among them. In Python RDKit they are used in rdMolStandartize module:
Canonicalize();
Normalize();
Reionize();
FragmentParent();
Implement these both functions RDKit minimal lib using c++
Add this functionality to JS wrapper and to CFFI wrapper

This issue has been mirrored in Jira: https://reddata.atlassian.net/browse/GROK-14851


Happy Holidays! ❄ ⏳ The team will be on break from Dec 22nd 2023 to Jan 3rd 2024

Happy Holidays ❄⏳
The maintainers will be taking a break for the holidays, between Dec 22nd and Jan 3rd, and will be back to help with your questions, issues, and feature requests in the new year. We hope you also find some time to relax and recharge. If you open an issue during this time, please be patient and rest assured that the team will respond as soon as we can after we're back.

Holidays are over, back to work


fixes: Made the header responsive

I made the profile header responsive for smaller or mobile screens. while maintaining the current appearance for larger screens. View the images for a clear look

Nice work @DavOlufuwa


Pressing tab replaces symbol

I want to return Task.FromResult(result)

But pressing tab/dot/space completely replaces next word
How do change this behaviour?

yes, me too
I had to delete vscode because of this bug

reverting to older vscode worked for me. 1.78 didn't have this issue.


tspcontrol with http input plugin causing issue for tsp

Hi, I wanted to try tspcontrol to restart the http plugin but I if I use --infinite --ignore-errors options, the http plugin isn't restarted and tsp goes into a loop and can't be terminated. Without --infinite --ignore-errors it works.
Here's the tsp command:
tsp -v --control-port 188 -t -I http --ignore-errors --infinite http://<IP_ADDRESS>:8088/channel1 -P continuity -O ip <IP_ADDRESS>:5000
Then the tspcontrol command:
tspcontrol -d -v --tsp <IP_ADDRESS>:188 restart -v 0 --ignore-errors --infinite http://<IP_ADDRESS>:8088/channel2
And tsp then stars looping like this (it seems to be stuck with the original options, unable to break that loop before restarting the plugin with new options):
* 2020/09/02 13:44:34 - http: unknown initial input bitrate
* 2020/09/02 13:44:58 - control commands: received from <IP_ADDRESS>:56810: restart -v 0 --ignore-errors --infinite http://<IP_ADDRESS>:8088/channel2
* 2020/09/02 13:44:58 - http: restarting due to remote tspcontrol
* 2020/09/02 13:44:58 - http: downloading from http://<IP_ADDRESS>:8088/channel1
* 2020/09/02 13:44:58 - http: MIME type: video/mpeg, expected size: unknown
* 2020/09/02 13:44:58 - Warning: http: MIME type is video/mpeg, maybe not a valid transport stream
* 2020/09/02 13:44:59 - http: downloading from http://<IP_ADDRESS>:8088/channel1
* 2020/09/02 13:44:59 - http: MIME type: video/mpeg, expected size: unknown
* 2020/09/02 13:44:59 - Warning: http: MIME type is video/mpeg, maybe not a valid transport stream
* 2020/09/02 13:44:59 - http: downloading from http://<IP_ADDRESS>:8088/channel1
* 2020/09/02 13:44:59 - http: MIME type: video/mpeg, expected size: unknown
* 2020/09/02 13:44:59 - Warning: http: MIME type is video/mpeg, maybe not a valid transport stream
* 2020/09/02 13:45:00 - http: downloading from http://<IP_ADDRESS>:8088/channel1
* 2020/09/02 13:45:00 - http: MIME type: video/mpeg, expected size: unknown
* 2020/09/02 13:45:00 - Warning: http: MIME type is video/mpeg, maybe not a valid transport stream
* 2020/09/02 13:45:01 - http: downloading from http://<IP_ADDRESS>:8088/channel1
* 2020/09/02 13:45:01 - http: MIME type: video/mpeg, expected size: unknown

Hi Jan,
Sorry about this. This is a bug of course. Quite easy to fix, fortunately.
I just fixed it in commit c97d550827b4fca354fb363dfbe9625262f37e6a. Let us know if it works for you.

Thank you, I tried and it's fixed.


LSP Hover: Support go_to button links in the hover box

eg

Since this is not yet part of the LSP spec, we'd need to return an additional field in the hover response.
With tower-lsp, there seems to be no way to override the method signature that they define. Opened an issue: https://github.com/ebkalderon/tower-lsp/issues/393
We'll either need this to be supported in tower-lsp or move to another framework to be able to do this feature.

Actually, never mind. We can just add the links in the markdown and it looks fine.

I was looking at how rust-analyzer does it, which involves implementing the hover provider on the client side to handle the extra actions argument from the hover response, but I don't see why that's necessary.

New problem I'm running into: https://github.com/microsoft/vscode/issues/180913


SEnt transaction unspent

Created a sent transaction from Sparrow multi sig and successfully confirmed with 2 hard wallets. All I get after multiple attempts is that the amount sent is unspent. It is like its blocked and I cannot send or retrieve any BTC out of the Sparrow multi sig wallet

It's not clear to me what you mean by "multiple attempts".
That said, please use Github for bugs or feature requests, and support queries on Telegram at https://t.me/SparrowWallet.


ListView Selection - setState

Category
[ ] Enhancement
[X ] Bug
[ ] Question
Version
Please specify what version of the library you are using: [v2.4.0]
Expected / Desired Behavior / Question
Expecting selection icons to hold state
Observed Behavior
On selection - calling setState in _getSelection re-renders the selection icons - so they don't show up as selected - ant cannot be selected again
Steps to Reproduce
Same issue as #11
  private _getSelection = (items: any[]) => {
    console.log('Selected items:', items);
    this.setState({
      selected: true,
    });
  }

<ListView
          key={'main'}
          items={this.state.items}
          viewFields={viewFields}
          compact={true}
          selectionMode={SelectionMode.multiple}
          selection={this._getSelection}
          showFilter={true}
          filterPlaceHolder="Search Policies..."
          dragDropFiles={true}
          onDrop={this._getDropFiles}
          stickyHeader={true} />

Thanks!

Still getting this issue - any help?

@jaxnz the issue is still in Triage mode, meaning we haven't looked into it yet.

Hi @jaxnz,
I cannot reproduce the issue using the code you've provided.
listview-selection.zip
If you are controlling the items/selection state from your component you can also try beta version as we were recently fixing some issues with ListView selection.

Sorry for the late reply, I can confirm updating to the beta fixed the issue.

Same issue, but installing beta with npm install @pnp/spfx-controls-react@next --save fixed it. thank you, @AJIXuMuK


build error

hello @aserbremen
There were no problems with the previous build, but today, I am informing you that a grammar problem occurred while deleting the build and attempting a new build. If you correct the part where the error occurs and build, there will be no problem using it, but please check.
/home/dong/3d_slam/src/Multi-Robot-Graph-SLAM/src/mrg_slam/apps/mrg_slam_component.cpp: In member function ‘void mrg_slam::MrgSlamComponent::save_map_service(mrg_slam_msgs::srv::SaveMap_Request_<std::allocator >::ConstSharedPtr, mrg_slam_msgs::srv::SaveMap_Response_<std::allocator >::SharedPtr)’:
/home/dong/3d_slam/src/Multi-Robot-Graph-SLAM/src/mrg_slam/apps/mrg_slam_component.cpp:1466:56: error: ‘zekhro_utm’ was not declared in this scope; did you mean ‘zero_utm’?
ofs << boost::format( "%.6f %.6f %.6f" ) % zekhro_utm->x() % zero_utm->y() % zero_utm->z() << std::endl;
^~~~~~~~~~
zero_utm
zekhro_utm -> zero_utm

I am not sure where this error is coming from. which branch are you using? because on the main branch I don't find this typo

Well... this happened when I first performed a git pull operation today and built it using the colcon build command.

It's a different story, but I used turtlebot4
You are using ROS_DISCOVER_SERVER to communicate your SLAM topics. However, sometimes the connection of velodyne Lidar is unstable and a problem occurs where it sticks on and off... In the case of velodyne, it is communicating with my PC through WIFI through a router. Is this the problem?...
I'm curious what you think...!

Inside your ROS2 colcon workspace you can vcs pull src to update all repositories


Full BufferWriter

It looks like BufferWriter has a max capacity. When a call to Append fails because the queue is full, it returns false but nothing ever checks or acts on the return value. So if there is a slow network bandwidth, there could be a lot of RTP packets lost because of the way the software is setup not because of the underlying protocol. Is that the intended behavior?

This may be causing my issues.  Locally I can stream UDP great.  Over a network it seems to drop all keyframe packets.
You may wish to follow my fork at github.com/ZoneMinder/RtspServer.  I will be making PRs eventually as I figure things out.

Yeah, I've basically ripped this apart now.

I'll be following your work.  Currently doesn't compile for me though.


Trying to override already registered file type Makefile

Have a recently new CLion 2020.2 install noticing this plugin conflict?
com.intellij.diagnostic.PluginException: Trying to override already registered file type Makefile [Plugin: name.kropp.intellij.makefile]
at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.loadFileTypeBeans(FileTypeManagerImpl.java:345)
at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.initStandardFileTypes(FileTypeManagerImpl.java:236)
at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.(FileTypeManagerImpl.java:179)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at com.intellij.serviceContainer.ConstructorInjectionKt.instantiateUsingPicoContainer(constructorInjection.kt:47)
at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClassWithConstructorInjection(ComponentManagerImpl.kt:664)
at com.intellij.serviceContainer.ServiceComponentAdapter.createAndInitialize(ServiceComponentAdapter.kt:49)
at com.intellij.serviceContainer.ServiceComponentAdapter.doCreateInstance(ServiceComponentAdapter.kt:37)
at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:113)
at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:67)
at com.intellij.serviceContainer.BaseComponentAdapter.getInstance$default(BaseComponentAdapter.kt:60)
at com.intellij.serviceContainer.ComponentManagerImpl$preloadServices$future$1.run(ComponentManagerImpl.kt:821)
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1736)
at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:215)
at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:26)
at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:194)
at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:186)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
at java.base/java.lang.Thread.run(Thread.java:834)

Ah seems to be conflicts with DockDockGo
So maybe needs to handle the exception with a warning

+1

I have got the same problem too. With this conflict, it will do nothing and it will prevent me from accessing settings, causing whole AS to freeze
Luckily there is a workaround. There is an error on the down-right corner. Click on it and disable Makefile plugin and restart

Now you can disable or uninstall useless DockDockGo and re-enable Makefile support again

The plugin has been moved to https://github.com/JetBrains/intellij-plugins and is now bundled in CLion and GoLand.
This repository is no longer maintained, please submit all feature requests and bug reports to https://youtrack.jetbrains.com/issues/CPP


Here are some warning

env: with npm and webpack
I  don't know what to do to solve the problem
WARNING in ./~/mdast-github/index.js
Critical dependencies:
368:19-370:14 the request of a dependency is an expression
@ ./~/mdast-github/index.js 368:19-370:14
WARNING in ./~/mdast-github/LICENSE
Module parse failed: /Users/user-mac/Desktop/workspace/test/www/node_modules/mdast-github/LICENSE Line 1: Unexpected identifier
You may need an appropriate loader to handle this file type.
| (The MIT License)
|
| Copyright (c) 2015 Titus Wormer<EMAIL_ADDRESS>@ ./~/mdast-github ^./.*$
WARNING in ./~/mdast-github/history.md
Module parse failed: /Users/user-mac/Desktop/workspace/test/www/node_modules/mdast-github/history.md Line 7: Unexpected number
You may need an appropriate loader to handle this file type.
|
|
| 1.0.0 / 2015-08-19
| ==================
|
@ ./~/mdast-github ^./.*$
WARNING in ./~/mdast-github/package.json
Module parse failed: /Users/user-mac/Desktop/workspace/test/www/node_modules/mdast-github/package.json Line 2: Unexpected token :
You may need an appropriate loader to handle this file type.
| {
|   "_args": [
|     [
|       "mdast-github",
@ ./~/mdast-github ^./.*$
WARNING in ./~/mdast-github/readme.md
Module parse failed: /Users/user-mac/Desktop/workspace/test/www/node_modules/mdast-github/readme.md Line 1: Unexpected token ILLEGAL
You may need an appropriate loader to handle this file type.
| # mdast-github
|
| Auto-link references to commits, issues, pull-requests, and users like GitHub: Writing on GitHub.
@ ./~/mdast-github ^./.*$
webpack: bundle is now VALID.
webpack: bundle is now INVALID.
Hash: e08bf16a6fc25d471f1f
Version: webpack 1.12.9
Time: 346ms

This is something relating to webpack. Check out these docs: https://github.com/webpack/docs/wiki/webpack-for-browserify-users#ignore-missing.
As I understand from them, you can ignore these warnings.

@wooorm
one more thing, how to parse gfm style task lists by using mdast-html, the output looks like general lists

Seems so. It’s not yet implemented in mdast-html. If you’d like to get this, please raise an issue on mdast-html’s repo.

I'm giving up...


Add scip-typescript indexing job

The sourcegraph.com auto-indexing queue has a lot of jobs so it takes a long time for the index to catch up with the latest commit. Having the indexing job in the repo makes sure we always have precise intel for the latest commits.

See commit history to confirm that the CI job works as expected, the successful indexing job is here https://github.com/sourcegraph/cody/actions/runs/5552067893/jobs/10138941958
Precise intel https://sourcegraph.com/github.com/sourcegraph/cody@4cfcbe4b0b697dd5d3eb680a51de5399f682cdad/-/blob/lib/ui/src/Chat.tsx?L92:18-92:38


SignAndSendTransferTest run failed

I can't run successfully
Please help me
Thanks very much

Hi! The library needs to be setup with your payload signing correctly. We are planning to update our code so that it's easier to do.

Hello, Thank you very much for your reply. I'm an exchange developer. I need your help.
My senderPrivateKeyStr is generated by Ed25519.    I should use senderPrivateKeyStr by SR25519,right?

Hi! The library needs to be setup with your payload signing correctly. We are planning to update our code so that it's easier to do.

Hello, Thank you very much for your reply. I'm an exchange developer. I need your help.
My senderPrivateKeyStr is generated by Ed25519. I should use senderPrivateKeyStr by SR25519,right?


LP isn't registering perms correctly

Hi,
Long story short, LP check command deems that players have permissions, but when they attempt to run commands or features through other plugins - its as if they don't actually have this permission.
For example, the permission nte.moderator is set to the group default, when running a check on a player I get the following:
[10:46:36 INFO]: [LP] Permission check result on user Gang for permission nte.moderator: true

Yet when this player joins, they aren't provided the tab prefix, this also stretches further to any other permission such as essentials.fly, players are provided with the no permission message.
Is there any chance you can implement a new check for this, even if its experimental via a toggle.
Thanks

I've also had a similar problem to this. My default group had essentials.fly, but Admin couldn't do /fly even though they inherited it from mod which inherits from helper which inherits from default. Important to note here that I am using a cross server setup. Since I was using a cross server setup, I had to specify for the parent to be context server=serverNameHere or they would not inherit the permissions from default group on that server.
I don't know if this is intentional or not in LuckPerms, but I wonder if this is the same problem you are having with a cross server setup. I urge you to check to see if this solves your problem if you are using a cross server setup (where LuckPerms shares the same database, and every server under a bungee proxy has separate permissions from each other using contexts for server=serverName).

@ProSl3nderMan there is a good chance you changed include-global in your LP config - if that's changed, contexts must be set for perms to apply

@ProSl3nderMan there is a good chance you changed include-global in your LP config - if that's changed, contexts must be set for perms to apply
Assuming the default value is suppose to be true, I have not changed it, yet it stills requires me to apply the context.

Could you pastebin that config here, or even confirm for certains that it's not? Also, if you've changed the contexts file to add default contexts, then global will not be default, and you'd have to explicitly set another to apply

Could you pastebin that config here, or even confirm for certains that it's not? Also, if you've changed the contexts file to add default contexts, then global will not be default, and you'd have to explicitly set another to apply

After further investigation, it was because of a group named member not inheriting default since another admin deleted it.. I apologize for the misinformation, everything said by me should be disregarded, other then the fact that if you are using cross-server permission setup, you should verify that include-global is properly setup for your configuration, set to true if you want all permissions inherited from global, or false for just the contexts regarding your server.
Thank you, @Laarryy .


Can't export QuickStatements (Wikidata; it just opens empty new tab)

I can't export QuickStatements when using this with Wikidata. When I click Wikibase -> Export to Quick Statements then configure things until there are tasks in the Preview and then click Wikibasa -> Export to QuickStatements as described here, it just opens an empty new tab and refreshes the page so I'm back where I was before clicking Export to Quick Statements the first time. I already tried refreshing the page and trying again.
When I log in and select Wikibase edits and let it do the Wikidata edits, no edits are made after it slowly runs through up to 100% (despite that some should be made according to the Preview).
To Reproduce
Steps to reproduce the behavior:

Use the tool to configure columns and so on
Wikibase -> Export to Quick Statements
Have this configured so it shows some statements in the preview that are to be done on Wikidata
Wikibase -> Export to Quick Statements again (it's the same when using Export -> QuickStatements file instead)

Current Results
A new tab is opened with an empty page and nothing is downloaded (and no QuickStatements are shown). The other tab where OpenRefine is running is back to where it was before step 2 so one has to press the export twice again for the same thing to occur.
Expected Behavior
I think it should download a QuickStatements file or show them in the page for copying. Moreover, when an error occurs something should be shown in the console and/or the Web developer console and/or the Web UI.
Screenshots

Versions

Operating System: Linux
Browser Version: Firefox
JRE or JDK Version: openjdk version "17.0.13"
OpenRefine: 3.8.5 (2024-10-29)

Datasets

Additional context

Nothing to add but confirming I was coming there to find information about the exact same issue. I am also using OR 3.8.5 under linux.

@symac Thanks for this info – this is how I found it works with version 3.7.9 (2024-02-10). There it downloads a file just fine (it also opens an empty new tab that it still there after the download). I also tried version 3.6.2 but that version failed to run with this error: HTTP ERROR 500 java.lang.UnsupportedClassVersionError: com/fasterxml/jackson/databind/ObjectMapper has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0

Thanks for reporting, this is indeed another problem with my vulnerability fix. It should be corrected soon.

@prototyperspective we've released a fix for this issue in version 3.8.6.


GeoSeries pandas.dataframe.shift bug

Describe the bug
GeoSeries did not behave as expected when it was used as input to call pandas.DataFrame.shift.
(pandas API doc : https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.shift.html)
To Reproduce
My test code:
import pandas as pd
from arctern import GeoSeries

g_s = pd.Series(["POINT (0 1)","POINT (3 5)"])
pd_df = pd.DataFrame({'s':g_s})
pd_a = pd_df.shift(periods=1,axis=1).dropna()
pd_b = pd_df.shift(periods=1,axis=0).dropna()
#pd.testing.assert_frame_equal(pd_a,pd_b)  # expected not equal (as expected)

g_s = GeoSeries(["POINT (0 1)","POINT (3 5)"])
g_df = pd.DataFrame({'s':g_s})
g_a = g_df.shift(periods=1,axis=1).dropna()
g_b = g_df.shift(periods=1,axis=0).dropna()
pd.testing.assert_frame_equal(g_a,g_b)         # expected not equal  (not as expected)

Expected behavior
Expect the shift function to behave differently when the parameters axis are 0 and 1.

I think it is a pandas bug.
I run a test like this:
    import pandas as pd
    g_s = pd.Series(["POINT (0 1)","POINT (3 5)"], dtype='string')
    g_df = pd.DataFrame({'s':g_s, 'q':g_s})
    g_a = g_df.shift(periods=1,axis=1)
    print(g_a)

Got result
             s            q
0         <NA>         <NA>
1  POINT (0 1)  POINT (0 1)

Reproduce
I run a test like this:
    import pandas as pd
    # g_s is a Series with pandas extension string array(EA)
    g_s = pd.Series(["POINT (0 1)","POINT (3 5)"], dtype='string')
    g_df = pd.DataFrame({'s':g_s, 'q':g_s})
    g_a = g_df.shift(periods=1,axis=1)
    print(g_a)

Got result
             s            q
0         <NA>         <NA>
1  POINT (0 1)  POINT (0 1)

Conclusion
I think it is a pandas bug. When g_s is a Series with pandas EA, will produce wrong result.

Indeed, the Pandas interface does not always behave as expected, and I did a test similar to the code in your response.
import pandas as pd
from arctern import GeoSeries

pd_s = pd.Series(["POINT (0 1)","POINT (3 5)"],dtype='string')
pd_df = pd.DataFrame({'s':pd_s})
pd_a = pd_df.shift(periods=1,axis=1).dropna()
pd_b = pd_df.shift(periods=1,axis=0).dropna()
pd.testing.assert_frame_equal(pd_a,pd_b)  # not as expected

This case is almost the same as mentioned in the issue. All right, I will close this issue.


Update ci version

What changes are proposed in this pull request?
Please outline the changes and how this PR fixes the issue.
https://github.com/Alluxio/alluxio/issues/16963
Why are the changes needed?
Please clarify why the changes are needed. For instance,

If you propose a new API, clarify the use case for a new API.
If you fix a bug, describe the bug.

Does this PR introduce any user facing changes?
Please list the user-facing changes introduced by your change, including

change in user-facing APIs
addition or removal of property keys
webui

may i ask what is the motivation or benefit from the newer versions? or perhaps the older versions are becoming deprecated? @fengshunli
there is a saying about "if it's not broken, don't fix it"
also please take notice of the request to sign the CLA. we cannot merge any contributions until the signed agreement is accepted, thanks.

The v2 version is just a demo version, the 3 version solves some risks, is safer and has more complete functions

this seems like the relevant news article regarding v2 -> v3: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/

You can see that version 3 has solved a lot of dependency compatibility and loopholes see https://github.com/actions/checkout/releases

CLA has been signed @Xenorith

alluxio-bot, merge this please


Upgrage tip to version 6

Not super straightforward because the API has changed considerably.

Also depends on cytoscape-popper updating: https://github.com/cytoscape/cytoscape.js-popper/issues/39


How can I add snippet from plugin ( ./local/share/xxx recursively ) ?

E.g, I install solid-snippets through lazy.vim,  so my snippets are in /home/xxx/.local/share/nvim/lazy/solid-snippets/snippets; what would be the easiest & future-proof way to add snippets installed this way ?

You can use the search_paths option. In this case you can use search_paths = {vim.fn.stdpath('data') .. '/lazy/solid-snippets/snippets'}


Only output build errors, not warnings, on error

This resolves https://github.com/zeit/ncc/issues/373, so that TypeScript errors will only display the direct error message, instead of all the possible Webpack warnings first.
In addition the ncc externals logging is added under the --debug-log flag only to reduce noise, although we can possibly leave this as well (let me know what you think @styfle).

@guybedford CI is failing though

Just figuring out why CI is failing... should be able to get this green shortly.

Ok, should pass this run with some luck.

Codecov Report

Merging #375 into master will decrease coverage by 0.19%.
The diff coverage is 33.33%.

@@            Coverage Diff            @@
##           master     #375     +/-   ##
=========================================
- Coverage   74.61%   74.41%   -0.2%
=========================================
  Files          12       12
  Lines         386      387      +1
=========================================
  Hits          288      288
- Misses         98       99      +1

Impacted Files
Coverage Δ

src/index.js
83.95% <33.33%> (-0.53%)
:arrow_down:

Continue to review full report at Codecov.

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


Visual bug in the config

I jokingly add minecraft:dirt in the Additional block states that drop leaves, and I saw that there are Dirt in the Additional leaf block settings. And then when I deleted minecraft:dirt from the entry, the setting is still there and it's annoying me that Dirt is beside all those leaves 😭

How to recreate:

Open fallingleaves config
Go to Experimental tab, and put any block in the Additional block states that drop leaves entry
See that there is that block in Leaf Block Settings tab
Delete the entry that you put your block in
See that that block is still in your Leaf Block Settings tab

If there's any way to access the config so I can delete it myself please inform me. Thanks.

Oh right, that is a thing! 😄
I think the easiest fix is to open your Falling Leaves config file (found in the .minecraft profile folder under config/fallingleaves.json) and delete these lines:
    "minecraft:dirt": {
      "spawnRateFactor": 1.0,
      "isConiferBlock": false,
      "spawnBreakingLeaves": true
    },

I'm not sure if there's a good general fix for this, since this behavior is sort of intentional.
The idea is to keep all settings around in case you uninstall and later reinstall a mod or enable dirt leaves at some point again.
It only shows up, since we can't be fully sure what is or isn't a leaf block in the main menu.
Maybe I can change it so it doesn't save stuff that uses default values at least? Need to see if that's possible.

Thank you!! Keep up the good work my man.

Released a new version which doesn't save default leaf settings.
Still requires a restart to get rid of the entry, but at least it's not permanent anymore.


Generate components in angular workspace/application with ChangeDetection onPush

🐞 Bug report
Command (mark with an x)

[x] new
[ ] build
[ ] serve
[ ] test
[ ] e2e
[x] generate
[ ] add
[ ] update
[ ] lint
[ ] extract-i18n
[ ] run
[ ] config
[ ] help
[ ] version
[ ] doc

Is this a regression?
N/A
Description
One should be able to generate angular application with changeDetection.OnPush components.
🔬 Minimal Reproduction

npx @angular/cli@12 new web-apps --create-application false
cd web-apps
yarn ng config schematics.@schematics/angular:component.changeDetection OnPush
yarn ng generate application admin-dashboard --prefix ad --routing --style css
Review generated projects/admin-dashboard/src/app/app.component.ts and there is no changeDetection set.

🔥 Exception or Error

🌍 Your Environment

Angular CLI: 12.2.0
Node: 16.6.1
Package Manager: yarn 1.22.10
OS: darwin x64

Angular: 12.2.0
... animations, cli, common, compiler, compiler-cli, core, forms
... platform-browser, platform-browser-dynamic, router

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1202.0
@angular-devkit/build-angular   12.2.0
@angular-devkit/core            12.2.0
@angular-devkit/schematics      12.2.0
@schematics/angular             12.2.0
rxjs                            6.6.7
typescript                      4.3.5

Anything else relevant?

yarn ng generate component components/home --project admin-dashboard and changeDetection is set to onPush for generated projects/admin-dashboard/src/app/components/home/home.component.ts

When’s generating an application you can use the --view-encapsulation flag.
https://angular.io/cli/generate#application-command

You can also set this via the config
ng config schematics.@schematics/angular:application.changeDetection OnPush

Reopening cause I got confused with another option

At the moment this is working as expected since the application schematic doesn’t have the ChangeDetection
Let’s leave this open for the time being and see if there is a strong enough interest from the community to add this feature.
My 2 cents is that this is too trivial to add manually (which also happens to be rare) and hence it doesn’t warrant an API change in the application schematic.

@alan-agius4 @mgechev maybe it's will be improved for https://angular.io/guide/strict-mode ?

@splincode, enabling onPush by default is not something that we want to do for a number of reasons, also OnPush doesn’t fit in the strict mode scope as this changes the runtime behaviour.
See https://github.com/angular/angular-cli/issues/21278 and https://github.com/angular/angular-cli/issues/17589#issuecomment-639402075


During training wavenet, predicted output audio is only of few sec (22kb) for every step.

I have completed training tacotron model. Now, I am training wavenet there is no any problem in training but the evaluated output from wavenet is only of few sec (22kb) for each step. Why doesn't the model output's full audio?

you find any solution regarding this issue ? kindly let me know about your work and its progress .. leaving my email<EMAIL_ADDRESS>


Improve contrast ratio for comments

Assuming the goal for this theme is to have good readability, I would suggest changing the comment's colour or intensity.
The current contrast between comments and the background is considered a fail according to WebAIM.

Thanks a lot for your suggestion. I forgot to check the contrast ratio of the comments. Now it meets the WCAG AA standard (although it still doesn't meet the WCAG AAA standard - I feel it's too bright and difficult to distinguish from regular text). We're updating it in all the themes.
After we complete all the adjustments, I will close this issue.


Add ingress resource to prestashop charts

What this PR does / why we need it: Add a ingress resource for prestashop deployment
Special notes for your reviewer: Ingress templates and values inspired from wordpress chart. Deployment pass on my cluster.

/assign @sameersbn

Sorry, i have commited with<EMAIL_ADDRESS>as my email address but sign CLA with my personal address.

Nice @lchabert ! @sameersbn @carrodher can you take a look?
You still need to update the PR using the account you used to sign the CLA

/ok-to-test
/lgtm


Tracker could compile also track kernels of individual elements

It gets tricky to keep it together with customised local particle apis. We drop this for now


Feature: Minimize window at program startup

Add the option "Minimize window at program startup" so that the window does not have to be minimized manually every time

What window exactly?

That window (start-on-login is enabled)

That's weird, it shouldn't show on launch (even with start-on-login enabled). I'll see if I can find the reason

Also, would it be possible to completely disable the tray icon so that the app just runs in the background if I'm only using the remote controls?

You mean as a service? Then the application can start and stop the service? In my case I would start the application only to change the settings. The service always runs in the background.

I think, the option to hide the tray icon.

@leroyloren: you can use the satellite service, and disable 'launch on login' for the agent. You won't be able to use all sensors/commands though. You can always just hide the icon in the overflow.

Sorry, can't reproduce :(


[1.11] Merge dependent tests into one big scenario

High-level description
Bacports: https://github.com/dcos/dcos/pull/3623

Update dcos-diagnostics to the latest version with small fixes and upgraded dependencies

Corresponding DC/OS tickets (obligatory)
These DC/OS JIRA ticket(s) must be updated (ideally closed) in the moment this PR lands:

DCOS_OSS-4322

Checklist for all PRs

[ ] Added a comprehensible changelog entry to CHANGES.md or explain why this is not a user-facing change:
[x] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:
[x] Read the DC/OS contributing guidelines
[x] Followed relevant code rules Rules for Packages and Systemd

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[x] Change log from the last version integrated (this should be a link to commits for easy verification and review): https://github.com/dcos/dcos-diagnostics/compare/f612504f524c74f10b48c0e1a2cdb06820529e50...a6a4009d8610f947badf3d93bc4d0874cf50230d
[x] Test Results: https://travis-ci.org/dcos/dcos-diagnostics/builds/440056367
[x] Code Coverage (if available): https://codecov.io/gh/dcos/dcos-diagnostics/compare/cc04232576c777824ef7bb6bd8d3bc01aba0d602...a6a4009d8610f947badf3d93bc4d0874cf50230d

@mesosphere-mergebot bump-ee

@mesosphere-mergebot bump-ee

Hi @janisz  - Please resolve the conflicts and we can merge this one directly.

@mesosphere-mergebot bump-ee

@mesosphere-mergebot label Ready For Review


Test AI Plugin in CJS and ESM

Test the AI plugin written in CommonJS (CJS) and ES Modules (ESM). The plugin written in CJS should be executed in both environments, and the plugin written in MJS should also be executed in both environments.

Needed for #3

This has been tested. The package allows importing the outlier plugin in all combinations.

CJS app with CJS plugin
CJS app with ESM plugin
ESM app with CJS plugin
ESM app with ESM plugin

All versions successfully sent messages to Telegram. However, in cjs app, the times were a bit off (maybe open-telemetry works better in ESM)
verisions used oas-tools/oas-telemetry 0.4.0 (npm)


Git integration

Problem/Motivation
I upload my sanitized config files to GitHub (i.e. I use secrets.yaml a lot and don't push it) and I'd love to not have to open the terminal addon to be able to add, commit & push changes.
Expected behavior
Git integration for at least add, commit & push
Actual behavior
No Git integration
Steps to reproduce
Search for Git integration in the settings
Proposed changes
No clue

Hi there,
Thank you for your request, nevertheless, this already exists...

Closing this request for obvious reasons...

Hi @smccloud,
The add-on documentation is about getting the add-on running and configured. For more information about the Cloud9 IDE, please refer to the official Could9 website & documentation.
../Frenck


Drop headerbar.flat?

Ear Tag has a flat headerbar, which is discouraged since makes it unclear where to drag the window from and cuts off the elements in the scroll view nastily:

I suggest just dropping the .flat style class.

This was also pointed out to me in the This Week in GNOME Matrix, and I fixed it locally but forgot to commit it :p
I'll push the change in a sec.


File not uploading ...

Everything is in screenshot.
url = https://www2.cbox.ws/box/?boxid=2404343&boxtag=AjxNHs
Device: Android 5.1.1, API 22
file uploading from any browser normally. but using your webview i can select the file but nothing uploading or happening :(

i tested in both :
compile 'com.github.delight-im:Android-AdvancedWebView:v3.1.3'
compile 'com.github.delight-im:Android-AdvancedWebView:v3.0.0'

It seems you didn’t implement all the Activity methods described in the README, such as onActivityResult.

It seems you didn’t implement all the Activity methods described in the README, such as onActivityResult.

Thanks. It's Working Perfectly  👍 👍 👍


rdpwrap.ini parameters needed for Windows 1909 (OS Build 18363.959)

Has anyone got the parameters and offsets for rdpwrap.ini for Windows 1909 (OS Build 18363.959)
What is required to find what needs to be put into rdpwrap,ini as then if I get to know how to do this for myself, I can contribute here if I manage to get to find out how to create the right entries for rdpwrap.ini.

Sorry. found fault. Windows Defender was blocking rdpwrapper.dll after a recent round of Windows Update.


how to use await in unstated-next

hi
i am a noob
in unstated, i can used async like this:
class CounterContainer extends Container {
  state = { count: 0 };
  increment = async () => {
    await this.setState({ count: 1 });
    console.log(this.state.count); // 1
  };
}

in unstated-next, how to do this, can you make a demo ?
thank you very much

let sleep = ms => new Promise(res => setTimeout(res, ms))

function useCounter() {
  let [count, setCount] = useState(0)
  let increment = async () => {
    await sleep(100)
    setCount(count => count + 1)
  }
  return { count, increment }
}

Make sure you use the setValue(latestValue => latestValue + 1) syntax so you don't run into issues using an old copy of count

thank you very much

Will it be necessary to wrap methods in useCallback?
let sleep = ms => new Promise(res => setTimeout(res, ms))

function useCounter() {
  let [count, setCount] = useState(0)
  let increment = useCallback(async () => {
    await sleep(100)
    setCount(count => count + 1)
  }, []);
  return { count, increment }
}


I want to add my uBlogger theme

Theme submission
This theme is a fork of another LoveIT theme, unfortunately the developer abandoned it since May, I volunteered to support this theme. At the moment, I have already fixed some bugs and added some changes that are not in the original theme. Therefore, I would like to publish my theme in your directory
Link to my theme repository: https://github.com/uPagge/uBlogger
I made sure that...

[x] the repository contains a good README.md describing my theme
[x] an open source license has been added to LICENSE.md
[x] all metadata have been added to theme.toml
[x] screenshots have been added in the images/ folder with the required dimensions
[x] in case I'm using a customized demo via the exampleSite folder that

[x] https://example.com is set as base url in exampleSite/config.{toml, yaml, json} to avoid the abuse of unused domains
[x] I tested that my theme's demo works with the content directory of gohugoio/HugoBasicExample

[x] I tested my theme against the gohugoio/HugoBasicExample

[x] I've checked the developer tools' console in my browser for error messages

[x] in case my theme is using Hugo Pipes features like toCSS and PostCSS that I have committed the /resources directory with all generated assets, for my theme to work in the basic version of Hugo

Link to my Twitter account (optional): https://twitter.com/upagge
Questions
do I understand correctly that you can deploy my demo site exampleSite and I don't have to do that.
I would also like to know if I can somehow update the information on this demo site?

Hello, is anyone here?

Yes, but the process takes longer than 5 days :) Resources are scarce. I am not a team member but I could try to test it, when I find some time. I just looked into the open issues and they are plenty.

Thank you for your reply))

Hello Struchkov,
thank you for sharing this theme with the Hugo community.

do I understand correctly that you can deploy my demo site exampleSite and I don't have to do that.

Do you mean that you prefer that the demo is hosted on www.themes.gohugo.io (by us) instead of https://ublogger.netlify.app/ (by you)?

Let's post the demo here https://ublogger.netlify.app. Just, when I did PR, there was not yet this site

Your theme is already live on Hugo's theme site. Next, I'll promote your theme on Hugo's official Twitter account.


Tracking forecasting paradigms refactor

There are three main tasks now:
Task1: MTS_Task
Pram:
    - his_len
    - pred_len
    - data_mode: (time, dim1, dim2) --> (time_series_num, time_range, dim, 1)
        + 0: (1, time, dim1*dim2, 1)
        + 1: (dim1, time, dim2, 1)
        + 2: (dim2, time, dim1, 1)
    - batch_size
    - project_name
    - dataset_list
    - output_dir
Output:
    - log file saved in 'output_dir/project_name/log/xxxx.yaml'
    - checkpoints saved in 'output_dir/project_name/checkpoints/task_id/model.pth'
    - model_config snapshot saved in 'output_dir/project_name/checkpoints/task_id/configs.yml'

Task2: TTS_Task
Param:
    - his_len
    - pred_len
    - data_mode: (time, dim1, dim2)
        + 0: (time, dim1, dim2)
        + 1: (time, dim2, dim1)
        + 2: (time, dim1*dim2, 1)
    - batch_size
    - project_name
    - dataset_list
    - output_dir
    - graph_init is 'pearson' in this task.
Output:
    - log file saved in 'output_dir/project_name/log/xxxx.yaml'
    - checkpoints saved in 'output_dir/project_name/checkpoints/task_id/model.pth'
    - model_config snapshot saved in 'output_dir/project_name/checkpoints/task_id/configs.yml'

Task3: GraphTask-Prior
    - only for prior graph tensor model
    - to test which graph initialization is better
Param:
    - his_len
    - pred_len
    - data_mode: the same as 'TTS_Task'
    - batch_size
    - project_name
    - dataset_list
    - output_dir
    - graph_init: ['inverse_pearson', 'random']
Output:
    - log file saved in 'output_dir/project_name/log/xxxx.yaml'
    - checkpoints saved in 'output_dir/project_name/checkpoints/task_id/model.pth'
    - model_config snapshot saved in 'output_dir/project_name/checkpoints/task_id/configs.yml'

For MTS:

data_mode: (time, dim1, dim2) --> (time_series_num, time_range, dim, 1)

0: (1, time, dim1*dim2, 1)
1: (dim1, time, dim2, 1)
2: (dim2, time, dim1, 1)

The above data_modes need to be aligned with the corresponding paradigms.

Tensor-direct: [T_in, N, M] -> [Model] -> [T_out, N, M] (N, M can transpose)
MTS-Modality-individual: [T, N]x M -> [Model]x M -> [T, N]x M (N, M can transpose)
MTS-Modality-independent: [T, N]x M -> [Model]x 1 -> [T, N]x M  (N, M can transpose)
MTS-Modality-mixing: [T, NxM] -> [Model] -> [T, NxM]

Transpose of N and M can be passed as a separate parameter rather than being mixed into data_mode.


fix(ContactIOS): set name as phone number if contact name is null

This PR aim to handle ios contact without name

What happened?


separate magnitude and unit for age?

There was earlier discussion in #27 about the age fields in MiAIRR. The actual age field is a physical quantity, which means it has both the magnitude and unit combined together into a text field. This makes it problematic to perform range queries on the age which is desirable for the CRWG API. Should we consider separating this field into two fields: age and age_unit where age is number and age_unit is an enum (yr, wk, day)?

The other option would be to have a "controlled" vocabulary for this in the sense that for the string field to be valid (according to the standard) it needs to be in a specific format with a number and a unit. From an API perspective, one could still describe range queries on the object (give me all ages > "40 yr"), but this would mean that the implementation of the combined API service and repository would need to handle the comparison. From a repository perspective, we would almost certainly split this up into two fields as Scott suggests, but that doesn't necessarily mean that the API does.
FWIW, the other topic raised in the other thread is age ranges. Studies often provide age information in this way and there is no way to get an exact age. Internally, we already have an extension that stores age range (age in years represented by a floating point number in our case) so we can search on this.

The other option would be to have a "controlled" vocabulary for this in the sense that for the string field to be valid (according to the standard) it needs to be in a specific format with a number and a unit.

I would consider that more like a new "data type" versus a controlled vocabulary because all programs end-to-end would have to parse and interpret that field in a special way differently from the base data types like integers, strings and numbers. OpenAPI doesn't have a mechanism to specify custom formats like that, so we would have to define (and somehow enforce) this ourselves, which seems like added complexity. The two field proposal allows standard data types to be used.

MiniStd's take on this one was always that the MiAIRR "Age" field holds a physical quantity and everything else is considered formating (we discussed this at least twice). Howver, I understand that there should be an simple way to query on this information. Also, we did not think to much about ranges.
Let's tackle the representation in the schema first: Would it be sufficient if we had 3 keys age_min, age_max and age_unit?

It's perfect reasonable that UIs or data submission forms can combine the multiple fields into a formatted physical quantity age field for MiAIRR.
For ranges, I was thinking of being able to query with a range, but I suppose it is also relevant to specify a range? If yes, In the case when a single age is specified versus a range, it needs to be clear which field to use to hold the value, or both age_min and age_max must have the same value.
Doing a range query against a single value, versus doing a range query against another range, are two different queries. They require a different logical expression. Users would have to know ahead of time which one to use, or we have to define the fields in a way so that a single logical expression works for all cases.

Let's tackle the representation in the schema first: Would it be sufficient if we had 3 keys age_min, age_max and age_unit?

Should work. If we assume that age_min is used when specifying a single age value and age_max should be null, if age_max is not null then the age is assumed to be a range. The following expression should work for both when querying for a single age value (query_age).
((age_max is missing) and (age_min = query_age))
or ((age_max is not missing) and (age_min <= query_age) and (age_max >= query_age))

If querying for a range (query_age_min, query_age_max) then this expression can be used.
((age_max is missing) and (age_min >= query_age_min) and (age_min <= query_age_max))
or ((age_max is not missing) and (age_min <= query_age_max) and (age_max >= query_age_min))

The age field can be kept as a MiAIRR reporting field.
look good? @bcorrie @bussec

Yes, this seems reasonable to us... This is essentially what we are already doing... The only difference is that it might be a good idea to suggest (require?) that if an explicit age is given that age_min == age_max. Then you can simply use (age_min <= query_age) and (age_max >= query_age) and don't have to check the special case of one of them being missing...

The only difference is that it might be a good idea to suggest (require?) that if an explicit age is given that age_min == age_max.

That seems reasonable. I initially avoided because I wasn't sure how code would know if the data represented a single age or a range, but I guess they can check if age_min = age_max.
However, if we do, we need to "require" it, otherwise data entry errors will cause queries to fail, that is, all code everything which sets the age must remember to set both fields. Unfortunately there isn't a way to specify this in the schema so it would need to be documented, seems fragile...
Maybe instead of age_min and age_max, we name the fields age_magnitude and age_range. Then age_magnitude is the single value and becomes the lower bound for a range with age_range being the upper bound. Suggestions on other names?
But I tend not to like having fields which can be interpreted in multiple ways. Maybe we should be more explicit and separate the range and magnitude fields with age_magnitude, age_min, age_max.

While I like the age_magnitude and age_range idea in general, IMO it makes more sense to define

age_magnitude as the mean of age_min and age_max and
age_range as (age_max-age_min)/2

I would like to propose that age_unit should hold an SI compliant unit symbol (i.e. "a", not "y" or "yr").

I would like to propose that age_unit should hold an SI compliant unit symbol (i.e. "a", not "y" or "yr").

I'm not familiar with "a" as a unit of time. I'm fine with restricting to standard unit symbols. Is there a table that we should incorporate as a controlled vocabulary?

@bcorrie @bussec Have we come to a consensus on this? It would be nice to have this specified more clearly for ADC API V1

No consensus yet that I am aware of but I was thinking along the same lines - that we should try and resolve for the ADC API.
I find the use of age_magnitude a bit confusing. It doesn't really sound like a magnitude to me - magnitude usually means size... Are we talking about size? Why not just "age" and "age_range"? But then that is confusing because if you take age alone, it is misleading. Maybe age_average and age_range as that is what they truly are. But I find that a bit confusing as well...
I think it might be best to lean towards using terminology and fields that most closely map to how a an experimenter would describe this. I think they would say something like "... Subject A was female between 10 and 20 years old" => age_min, age_max, age_unit? Correct me if I am wrong...

The underlying issue is how to represent either a point value or an interval, and then allow queries which may either be a point value or interval.
Query with a point value "age":30 could have two interpretations:

want only records with exactly age=30 (so no records with intervals)
I want records where age is exact or falls in the interval (so a record with interval [20,40]) would be returned.

Query with an interval requires

If the record has a point value, does it lie within the interval
If the record has an interval, do the intervals overlap

Technically, you could specify how the intervals overlap, like one interval completely encloses the other...
So those are the queries we need to support, what is the best way to structure the data so they can be easily supported.
Let's assume we have fields age (which represents the point value, or the range minimum) and age_range_max, the queries (in pigdin json) would be:
For query (1), except this doesn't exclude records which have a range where the lower bound is exactly the age, e.g. [30,50]
"age":30

For query (2)
"age", ">=", 30, "and", "age_range_max", "<=", 30

For query (3) with interval [20,40], here is the proper query if the record has a point value
"age", ">=", 20, "and", "age", "<=", 40

For query (4) with interval [20,40], here is the proper query (interval overlap) if the record has an interval
"age", ">=", 20, "and", "age", "<=", 40

"or"

"age_range_max", ">=", 20, "and", "age_range_max", "<=", 40

so the queries almost work out except for (1).

If we don't want to have that query (1) handled improperly, then we need to have separate fields for a point value versus an interval.
Let's assume we have fields age (which represents the point value) and age_range_min and age_range_max (which represent an interval), the queries (in pigdin json) would be:
For query (1), this properly
"age":30

For query (2)
"age":30

"or"

"age_range_min", ">=", 30, "and", "age_range_max", "<=", 30

For query (3) with interval [20,40], here is the proper query if the record has a point value
"age", ">=", 20, "and", "age", "<=", 40

For query (4) with interval [20,40], here is the proper query (interval overlap) if the record has an interval
"age", ">=", 20, "and", "age", "<=", 40

"or"

"age_range_min", ">=", 20, "and", "age_range_min", "<=", 40

"or"

"age_range_max", ">=", 20, "and", "age_range_max", "<=", 40

So my conclusion is that we need three fields.

Sounds good to me, just to make sure that I understood the implication for annotators:

If you have an exact age, you only annotate age while age_range_* stay NULL
If you have an age range, you annotate the age_range_* keys but not `age

Meaning that if all three keys are NOT NULL something is wrong.
And coming back to your earlier suggestion, I agree that would would make sense to have a controlled vocabulary for units and their abbreviations.

OK, my head hurts consider all of those options. 8-) Using my suggestion of age_min and age_max, where for a point value we require age_min = age_max, I think the concept is more intuitive (you are describing a min and a max for the age range) and the logic is easier... The only down side is the case where you have to have both min and max set. If you wanted to support one of them being null (indicating a point age), then the calculation of the other can be done when you test for equality.
For query (1), want all data that is exactly 30
30 >= age_min && 30 <= age_max

For query (2), want all data where the exact query number (30) is within the range
30 >= age_min && 30 <= age_max (same as above)

For query (3) with interval [20,40], assuming record has an point age (e.g. age_min == age_max == 30), here is the proper query
40 >= age_min && 20 <= age_max

For query (4) with query interval [20,40], assuming record has a range (e.g. age_min == 10 age_max == 30), here is the proper query
40 >= age_min && 20 <= age_max (same as above)

If I look at the logic, I think this works - given the possibilities below:
Age range possibilities
        age_min                      age_max
              10                             30 (interval overlap low == True)
              30                             45 (interval overlap high == True)
              30                             35 (query interval contains age interval == True)
              10                             50 (query interval contained by age interval == True)
              10                             15 (query interval outside age interval low == False)
              45                             50 (query interval outside age interval high == False)

So the logic is much simpler. There are two cases, if the query is a point query you do this:
30 >= age_min && 30 <= age_max

and if the query is a range query you do this:
40 >= age_min && 20 <= age_max

If you want closed or open intervals you add/drop the = in the equality. If you want to support one of them being null rather than enforcing both, before calculating you can do:
if age_min == NULL age_min = age_max
else if age_max == NULL age_max = age_min
If both are NULL you don't have an age...

Actually, I think it is simpler than that. I think a simple:
query_max >= age_min && query_min <= age_max

works for all cases if you promote a point age or point query to a min/max where min==max.

Actually, I think it is simpler than that.

Brilliant!

So does that mean we want to go with age_min, age_max, and age_unit
"... Subject A was female between 10 and 20 years old" => age_min = 10, age_max = 20, age_unit = "y" or "a" (yet to be agreed on unit terminology).
With:

age_min = 10, age_max = null
age_min = null, age_max = 10
age_min = 10, age_max = 10

Being equivalent and all implying a point value of 10 units of age. We could enforce one of these being the correct way of specifying a point age and make the others error conditions.
age_min = null, age_max = null means there is no age.
age_min != null and age_max != null and age_unit = "value" is an error (we have no age but an age_unit - this doesn't make sense)
age_min != null or age_max != null and age_unit = null is an error (we have an age but no unit - this doesn't make sense).

I suppose the only question I had is do we keep age to be a combined display value, and the three new fields are essentially just for the API for doing query? Or are we deprecating age?

Dare I say deprecate age? I think that makes sense for the DataRep part (the actual YAML spec) for sure.

I agree with deprecating age and already put this change on the agenda for this week's MiniStd call.

The proposed changes were accepted by MiniStd. As this is a MiAIRR field, should we follow the (proposed) deprecation process in #248 ?

The proposed changes were accepted by MiniStd. As this is a MiAIRR field, should we follow the (proposed) deprecation process in #248 ?

I agree.
Any suggestions on how we document this well? The MiAIRR section of the doc under AIRR Standards is pretty sparse, while the data submission section is heavily weighted on NCBI implementation. Should we expand the MiAIRR section, or should we put all this under the AIRR Data Model and the schema definitions?

Do we want to suggest or specify a default for age_unit? If not, what does it mean to have an age_min or age_max without an age_unit?

Controlled vocabulary for units of age here: https://www.iau.org/publications/proceedings_rules/units/

time (1)
minute
min or "
60 s

time
hour
h
3600 s = 60 min

time
day
d
86 400 s = 24 h

time
year (Julian)
a
31.5576 Ms = 365.25 d

If not, what does it mean to have an age_min or age_max without an age_unit?

Wild guess: That the annotator skipped physics classes in Junior High?

Funny, but not helpful 8-)

Darn, I got it wrong again! So lets try helpful, but not funny instead:
A physical quantity without a unit is formally wrong (unless it is dimensionless, which measure of time are not). Therefore IMO the question should not be "what do we default to if people fail to provide it" but rather "how do we keep people from enter invalid data".

Looking at this, there are three more things that crossed my mind:

In #254 we specify age_min and age_max as integer. Should this be number instead (AFAIK there is no separate float data type in OpenAPI, right @schristley ? ).

We now have for the first time the situation that a single MiAIRR field ("Age") is composed of several keywords (age_min, age_max, age_unit ). Would this create any problem?

A very simple way of dealing with our unit discussion would be to always encode time in seconds (by definition) and leave it to the UI to sort out the conversion. We should just avoid using int32 as data type ;-). The downside of this is that it would not be human-readable anymore, so from a MiniStd perspective it is not the preferred solution, but I wanted to hear the DataRep / ComRepo ideas on this.

Controlled vocabulary for units of age here:

I believe we also want weeks (common for mice) and months. My preference is that we don't use abbreviations but have the controlled_vocabulary be the full words.

Do we want to suggest or specify a default for age_unit?

I think having a default, which is potentially wrong, is worse than leaving it blank, though if the default was something like "unspecified" then that might be okay. But I'm still not clear how that is any different from null.

If not, what does it mean to have an age_min or age_max without an age_unit?

It's a validation error. If you want, you can create some new x-airr attributes that defines the relationship, and the validation routines can check for them. Or you can just add these checks into your repository. Or you can just document it. Or do all three.

In #254 we specify age_min and age_max as integer. Should this be number instead (AFAIK there is no separate float data type in OpenAPI

yes, they should be number

We now have for the first time the situation that a single MiAIRR field ("Age") is composed of several keywords (age_min, age_max, age_unit ). Would this create any problem?

not yet! Conceptually I don't see it as a problem as MiAIRR is (abstractly) about information while the three fields are the implementation. Technically, we might have to alter some scripts, and etc., but that's usually no big deal. We might find in the future that we want to do this for other physical quantities as well, age was just the most obvious one.

A very simple way of dealing with our unit discussion would be to always encode time in seconds

yuck!