Relax certain required: true slots in schema

There are a few slots on the Biosample class in the NMDC Schema, most of which are set as required: true in the schema.
This issue seeks to request the modification of the required: true constraint on certain slots on the Biosample class to recommended: true in order to accommodate the fetching of biosample records from upstream sources such as the GOLD database.
The following slots are the ones on which we are requesting the relaxation:

env_broad_scale
env_local_scale
env_medium
 alt
 depth
 subsurface_depth

See https://github.com/microbiomedata/sample-annotator/pull/113 for more details.

alt I agree, elevation is typically used for soil.
the env triad is required for data search
depth, if we're talking about soils should be required. It's a vital slot for data reuse (as is geographic location / lat lon & I'll suggest we make those required)
idk what subsurface depth is?
One thing to consider, currently, as the class Biosample sits, depth, while important for soil, sediment, and water.. isn't relevant for plants. We will need to think about "what is required for all biosamples" vs certain types.
depth is really only required for certain types. All the bioscales plant & rhizosphere (maybe) samples won't have depth.

Regarding the env triad, the choices in the general case are:

relax schema and defer annotation, and have the samples not discoverable via certain search patterns in the interim
keep schema script and force annotation prior to ingest

1 adds additional overhead in the need to perform updates using change sheets later.
2 adds some complexity to the ingest, in that we essentially have to merge two curation streams.
Note that in the specific case of BioScales, we need to merge two streams anyway. Here is the spreadsheet that we got from ORNL
https://docs.google.com/spreadsheets/d/1A6bynpzssAUpnDzoAQPZ-8L5HU2y3IuWX7mRiRrasgk/edit#gid=195687079
It includes the triad. It also includes other metadata we need to load.

Apologies some of the slots I mentioned in the above list are not enforced as required: true, it's mostly just the envo triad, and I think you said that the envo triad being required is pretty essential so we won't make any changes to that.

@sujaypatil96 moving to the next sprint but please let me know if you won't be actively working on it for the next few weeks.

@ssarrafan we plan to address this at the metadata call today.

After a brief discussion, @turbomam and I agree with point 2 from @cmungall: keep schema script and force annotation prior to ingest.
This approach is only possible in this case because ORNL has provided a supplementary file.

see https://github.com/microbiomedata/nmdc-schema/issues/612

leave envo required. we should be able to populate these for soil via gold addition of what stan provided.
Then for other sample types, use envo -> gold mapping to fill out the envo slots.

We may have to revisit leaving all the envo slots as required true. Per Reddy envo terms don't exist for endosphere so env_broad_scale is populated but env_local_scale and env_medium are not. @mslarae13  @cmungall @emileyfadrosh

@sujaypatil96 is this issue still being worked on?  I'll move to the next sprint due to the current activity but let me know if It can be closed or if it needs to go to the backlog.

So far we've found workarounds for the environmental terms so those are still required for now.

GOLD filled in missing values for the MIxS environmental triad for the BioScales project, so we've decided not to relax the schema, but to just leave it as is. So at the moment at least we don't need the changes from the original request of this issue so I think this issue can be closed.


Added sns notification to golang post-submits

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/hold
need to get sns arns

/unhold
ready for review

/lgtm

/approve


any eta on next release?

i am waiting on a change to use this in our project but it has been a couple of weeks. so i wanted to ask

Not sure what is holding them back. Take a look at this.
https://github.com/evilmartians/lefthook/pull/188#issuecomment-895659705

In extreme case I will just point this repo + commit sha
Still better than using 0.7.6 with flaws
BUT #188 might a blocker

I will release 0.7.7 with recent fixes in a couple of days (Friday maybe).
But I want to release #188 in 0.8.0 along with some more changes for releasing, and I need one or two full days for that that I can't find. It is tough. I'm so sorry for this delay.

I think including #231 in 0.7.7 would be great
About releasing #188
Is there a todo list for tasks to be done for releasing it?

0.7.7 has been released.


Gradle build file

Corrected the build.gradle file

Thanks for your contributions! Especially your integration with Guice. That's very helpful.

You are very welcome - thanks for MBassador, it has been a great addition
to my project
On 16 March 2015 at 08:41, Benjamin Diedrichsen<EMAIL_ADDRESS>wrote:

Thanks for your contributions! Especially your integration with Guice.
That's very helpful.
—
Reply to this email directly or view it on GitHub
https://github.com/bennidi/mbassador/pull/105#issuecomment-81506256.

--
regards
David

Happy to hear that. If you stumble upon more things that need better documentation. Please add an issue or submit a PR. I think documentation is currently suboptimal. Happy coding!


supported webpack version

"webpack": "^1.5.3"

But there is no such webpack version yet

webpack is on 1.12.x as of this writing, the real problem is the peerDependency explicitly requires 1.5.x which means I'd have to be 7 minor versions behind to satisfy.


A removed subordinate causes a traceback in terraform plan

This is similar to https://github.com/juju/terraform-provider-juju/issues/186 but with the difference that if you remove the subordinate application (not just the relation to the subordinate application) terraform plan tracebacks.
Terraform version
$ terraform -v
Terraform v1.4.3-dev
on linux_amd64
+ provider registry.terraform.io/juju/juju v0.6.0

Your version of Terraform is out of date! The latest version
is 1.4.4. You can update by downloading from https://www.terraform.io/downloads.html

Affected Resource(s)
juju_integration
Terraform Configuration Files
locals {
  charm_name    = "ubuntu"
  charm_channel = "latest/stable"
}

terraform {
  required_providers {
    juju = {
      source  = "juju/juju"
      version = "0.6.0"
    }
  }
}
provider "juju" {}

resource "juju_model" "relation_test" {
  name = "relation-test"
}

resource "juju_application" "ubuntu" {
  name  = "ubuntu"
  model = juju_model.relation_test.name

  charm {
    name    = local.charm_name
    channel = local.charm_channel
  }

  config = {}

  units = 1
}

resource "juju_application" "telegraf" {
  name = "telegraf"
  model = juju_model.relation_test.name

  charm {
    name = "telegraf"
  }

  units = 0
}

resource "juju_integration" "ubuntu_telegraf" {
  model = juju_model.relation_test.name

  application {
    name = "ubuntu"
  }

  application {
    name = "telegraf"
  }
}

Debug Output
mthaddon@finistere:~/Documents/tmp/tf-relations$ terraform plan
juju_model.relation_test: Refreshing state... [id=d5aa68d0-db27-4156-8ae8-8c814c1e721c]
juju_integration.ubuntu_telegraf: Refreshing state... [id=relation-test:ubuntu:juju-info:telegraf:juju-info]
juju_application.telegraf: Refreshing state... [id=relation-test:telegraf]
juju_application.ubuntu: Refreshing state... [id=relation-test:ubuntu]

Planning failed. Terraform encountered an error while generating this plan.

╷
│ Error: Plugin did not respond
│
│   with juju_application.ubuntu,
│   on main.tf line 20, in resource "juju_application" "ubuntu":
│   20: resource "juju_application" "ubuntu" {
│
│ The plugin encountered an error, and failed to respond to the plugin.(*GRPCProvider).ReadResource call. The plugin logs may contain more details.
╵
╷
│ Error: Plugin did not respond
│
│   with juju_application.telegraf,
│   on main.tf line 35, in resource "juju_application" "telegraf":
│   35: resource "juju_application" "telegraf" {
│
│ The plugin encountered an error, and failed to respond to the plugin.(*GRPCProvider).ReadResource call. The plugin logs may contain more details.
╵
╷
│ Error: Plugin did not respond
│
│   with juju_integration.ubuntu_telegraf,
│   on main.tf line 46, in resource "juju_integration" "ubuntu_telegraf":
│   46: resource "juju_integration" "ubuntu_telegraf" {
│
│ The plugin encountered an error, and failed to respond to the plugin.(*GRPCProvider).ReadResource call. The plugin logs may contain more details.
╵

Stack trace from the terraform-provider-juju_v0.6.0 plugin:

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0xd0 pc=0x1c77b33]

goroutine 41 [running]:
github.com/juju/terraform-provider-juju/internal/juju.applicationsClient.ReadApplication({{{{0xc000758450, 0x1, 0x1}, {0xc00022b219, 0x5}, {0xc00005e580, 0x20}, {0xc000063800, 0x5c0}}}}, 0xc0005cf158)
        github.com/juju/terraform-provider-juju/internal/juju/applications.go:520 +0x393
github.com/juju/terraform-provider-juju/internal/provider.resourceApplicationRead({0x2673500?, 0xc000901680?}, 0xc000424880, {0x1d8e8a0?, 0xc00074a900})
        github.com/juju/terraform-provider-juju/internal/provider/resource_application.go:243 +0x354
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*Resource).read(0xc00023a9a0, {0x2673500, 0xc000901680}, 0xd?, {0x1d8e8a0, 0xc00074a900})
        github.com/hashicorp/terraform-plugin-sdk/v2@v2.25.0/helper/schema/resource.go:724 +0x12e
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*Resource).RefreshWithoutUpgrade(0xc00023a9a0, {0x2673500, 0xc000901680}, 0xc000747ad0, {0x1d8e8a0, 0xc00074a900})
        github.com/hashicorp/terraform-plugin-sdk/v2@v2.25.0/helper/schema/resource.go:1015 +0x585
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*GRPCProviderServer).ReadResource(0xc0008163d8, {0x2673500?, 0xc000901560?}, 0xc000792f80)
        github.com/hashicorp/terraform-plugin-sdk/v2@v2.25.0/helper/schema/grpc_provider.go:613 +0x4a5
github.com/hashicorp/terraform-plugin-go/tfprotov5/tf5server.(*server).ReadResource(0xc00043e0a0, {0x2673500?, 0xc000900db0?}, 0xc00039f320)
        github.com/hashicorp/terraform-plugin-go@v0.14.3/tfprotov5/tf5server/server.go:748 +0x4b1
github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5._Provider_ReadResource_Handler({0x214cb40?, 0xc00043e0a0}, {0x2673500, 0xc000900db0}, 0xc0004f2540, 0x0)
        github.com/hashicorp/terraform-plugin-go@v0.14.3/tfprotov5/internal/tfplugin5/tfplugin5_grpc.pb.go:349 +0x170
google.golang.org/grpc.(*Server).processUnaryRPC(0xc0003d23c0, {0x267bcc0, 0xc000382d00}, 0xc00092c120, 0xc000317a10, 0x36c0450, 0x0)
        google.golang.org/grpc@v1.51.0/server.go:1340 +0xd23
google.golang.org/grpc.(*Server).handleStream(0xc0003d23c0, {0x267bcc0, 0xc000382d00}, 0xc00092c120, 0x0)
        google.golang.org/grpc@v1.51.0/server.go:1713 +0xa2f
google.golang.org/grpc.(*Server).serveStreams.func1.2()
        google.golang.org/grpc@v1.51.0/server.go:965 +0x98
created by google.golang.org/grpc.(*Server).serveStreams.func1
        google.golang.org/grpc@v1.51.0/server.go:963 +0x28a

Error: The terraform-provider-juju_v0.6.0 plugin crashed!

This is always indicative of a bug within the plugin. It would be immensely
helpful if you could report the crash with the plugin's maintainers so that it
can be fixed. The output above should help diagnose the issue.

Expected Behavior
I would expect terraform plan to simply say it's going to re-install the charm and re-establish the relation.
Actual Behavior
See above

This problem looks fixed by #192


Implement user confirmation for re-authenticating

I don't think it's worth adding this dependency for this use case. The original implementation was fairly simple


sample YAML in "Use the Azure CLI action" uses incorrect indentation

Does the sample YAML in "Use the Azure CLI action" work for you? I tried pasting it in, and it failed. I flailed around a while, stumbled across this bug, and came to the realization that the indentation is not correct as currently presented. It would be great if you could fix this and save some pain down the road.
This is what worked for me:

on: [push]

name: AzureLoginSample

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
    - name: Log in with Azure
      uses: azure/login@v1
      with:
        creds: ${{ secrets.AZURE_CREDENTIALS }}

    - name: Azure CLI script
      uses: azure/CLI@v1
      with:
        azcliversion: 2.0.72
        inlineScript: |
            az account show
            az storage -h

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

ID: 081be8c9-7871-db69-977c-9304daa6c870
Version Independent ID: aa3e5074-a630-3756-be86-295d1a2d101f
Content: Connect GitHub and Azure
Content Source: articles/github/connect-from-azure.md
Service: azure
GitHub Login: @N-Usha
Microsoft Alias: ushan

@roalexan Thank you! I'm updating the formatting now.

[like]  Robert Alexander reacted to your message:

From: Julia Kulla-Mader @.>
Sent: Tuesday, March 12, 2024 5:33:52 PM
To: MicrosoftDocs/azure-dev-docs @.>
Cc: Mention @.>; Author @.>
Subject: Re: [MicrosoftDocs/azure-dev-docs] sample YAML in "Use the Azure CLI action" uses incorrect indentation (Issue #744)
@roalexanhttps://github.com/roalexan Thank you! I'm updating the formatting now.
—
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/azure-dev-docs/issues/744#issuecomment-1992197459 or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACHL4U6LQFPGBNV3ARJSZRDYX44ABBFKMF2HI4TJMJ2XIZLTS6BKK5TBNR2WLJDUOJ2WLJDOMFWWLO3UNBZGKYLEL5YGC4TUNFRWS4DBNZ2F6YLDORUXM2LUPGBKK5TBNR2WLJDUOJ2WLJDOMFWWLLTXMF2GG2C7MFRXI2LWNF2HTAVFOZQWY5LFUVUXG43VMWSG4YLNMWVXI2DSMVQWIX3UPFYGLAVFOZQWY5LFVIZDCMRSG42TSOBRHGSG4YLNMWUWQYLTL5WGCYTFNSBKK5TBNR2WLKRSGI3DSNRQGAZTINVENZQW2ZNJNBQXGX3MMFRGK3ECUV3GC3DVMWVDEOBTGEZTEMBUG4ZKI3TBNVS2S2DBONPWYYLCMVWIFJLWMFWHKZNKGI4DGMJTGIZDSMRQURXGC3LFVFUGC427NRQWEZLMVRZXKYTKMVRXIX3UPFYGLLCJONZXKZKDN5WW2ZLOOSTHI33QNFRXHFUCUR2HS4DFVJZGK4DPONUXI33SPGSXMYLMOVS2SMJZHEYDMOJXHA4IFJDUPFYGLJLJONZXKZNFOZQWY5LFVIYTCOBUGAYDSMRWGSBKI5DZOBS2K3DBMJSWZJLWMFWHKZNKGIYTEMRXGU4TQMJZQKSHI6LQMWSWYYLCMVWKK5TBNR2WLKRSGI3DSNRQGAZTINUCUR2HS4DFUVWGCYTFNSSXMYLMOVS2UMRYGMYTGMRQGQ3TFAVEOR4XAZNFNRQWEZLMUV3GC3DVMWVDEOBTGEZTEMRZGIYKO5DSNFTWOZLSUZRXEZLBORSQ.
You are receiving this email because you were mentioned.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


Image similarity export to coreml on a model > 2GB fails

Starting brute force nearest neighbors model training.
[libprotobuf FATAL google/protobuf/wire_format.cc:830] CHECK failed: (output->ByteCount()) == (expected_endpoint): : Protocol message serialized to a size different from what was originally expected.  Perhaps it was modified by another thread during serialization?
terminate called after throwing an instance of 'google::protobuf::FatalException'
what():  CHECK failed: (output->ByteCount()) == (expected_endpoint): : Protocol message serialized to a size different from what was originally expected.  Perhaps it was modified by another thread during serialization?
I am facing this issue when I use 400000 images to build the similarity search.

Thanks for reporting this. Can you share the code snippet that caused this error.

Thanks for the quick reply.
It's the same snippet which is given in the documentation.
reference_data = tc.image_analysis.load_images('LIM')
reference_data = reference_data.add_row_number()
reference_data.materialize()
model = tc.image_similarity.create(reference_data)
model.export_coreml('sim_model_large.mlmodel')
It fails in tc.image_similarity.create(reference_data)

Your error message smells like an issue with the export_coreml. Can you try it without the export_coreML but on a smaller set of data? I suspect you are hitting the 2G limit on protobuf.

I tried with 1.6GB mlmodel which worked fine. I am just having issue with larger dataset. can't we use the similarity for larger dataset?

Are you trying to deploy this on your phone? or using it locally? If its the latter, you can do the '.save' instead of '.export_coreml'.
I think we are hitting the 2GB (see https://chromium.googlesource.com/external/github.com/google/protobuf/+/HEAD/src/google/protobuf/message_lite.cc#289)  limit of a protocol message when exporting to coreml.
This should work fine if you do .save. I'll make a change to the user guide right away to make that clear.
model = tc.image_similarity.create(reference_data)
model.save('myModel.mdl')

We'll try and work out how to serialize the larger model.

I can able to save the model now.
Thanks a lot!

I've changed the title to reflect the bug.

This is a Won't Fix. Protobuf can't support very large messages (>= 2 GB) with decent performance; we max out at about 2 GB on export to Core ML as a result. In real usage, it's unlikely a 2GB+ model will be the right tradeoff between size and usefulness for a macOS or iOS app.

开始蛮力最近邻居模型训练。
[libprotobuf重要google / protobuf / wire_format.cc：830]检查失败：（output-> ByteCount（））==（expected_endpoint）：：协议消息序列化为与最初预期大小不同的大小。也许它是在序列化期间被另一个线程修改的？
抛出'google :: protobuf :: FatalException'实例之后调用终止终止
what（）：检查失败：（output-> ByteCount（））==（expected_endpoint）:：协议消息序列化为与最初预期大小不同的大小。也许它是在序列化期间被另一个线程修改的？
当我使用400000张图像建立相似度搜索时，我面临着这个问题。

Hello, have you solved the problem of saving the model?I face the same problem but don't know how to solve it.My training model reached more than 2G.Looking forward to your reply. Thank you

Starting brute force nearest neighbors model training.
[libprotobuf FATAL google/protobuf/wire_format.cc:830] CHECK failed: (output->ByteCount()) == (expected_endpoint): : Protocol message serialized to a size different from what was originally expected. Perhaps it was modified by another thread during serialization?
terminate called after throwing an instance of 'google::protobuf::FatalException'
what(): CHECK failed: (output->ByteCount()) == (expected_endpoint): : Protocol message serialized to a size different from what was originally expected. Perhaps it was modified by another thread during serialization?
I am facing this issue when I use 400000 images to build the similarity search.

Hello, have you solved the problem of saving the model?I face the same problem but don't know how to solve it.My training model reached more than 2G.Looking forward to your reply. Thank you


[SCB-712]Do not register service path to service center when not necessary

Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Make sure there is a JIRA issue filed for the change (usually before you start working on it).  Trivial changes like typos do not require a JIRA issue.  Your pull request should address just this issue, without pulling in other changes.
[ ] Each commit in the pull request should have a meaningful subject line and body.
[ ] Format the pull request title like [SCB-XXX] Fixes bug in ApproximateQuantiles, where you replace SCB-XXX with the appropriate JIRA issue.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Run mvn clean install to make sure basic checks pass. A more thorough check will be performed on your pull request automatically.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Coverage decreased (-0.04%) to 87.008% when pulling 10fded6b74c31f8c9e2ea63a95f7f381432f0272 on liubao68:path2 into c78c08cebdc84fc73971b4d04966b060c51321a1 on apache:master.


Constructor for text annotations

https://strusoft.freshdesk.com/a/tickets/26364
https://github.com/strusoft/femdesign-api/blob/1c4106ac2f6e2b51dde46894b46e24e8f4a08f33/FD 21.01.003.xsd#L5095-L5105
User wants to add text to their model for visualisation purposes.

[x] C# constructor
[x] Grasshopper component

Actions:

[ ] Add "TEXT" layer as default - must also be created and added to geometry.
[x] Add option to set style
[x] Split GH component into constructor and deconstructor/modify component
[ ] Add set/get methods to Model object.

Add set/get methods to Model object is not straight forward. Best option is to utilise IStructureElement - however this raises some questions about the model constructors.

Construct textAnnotation

Deconstruct/modify


Change status message 'video' to 'media'

Changed occurences of 'video' to 'media', since youtube-dl supports audio files too, not only videos.
Sorry for the branch name, it's because of using GitHub's builtin editor.

While it's technically correct, it feels awfully stilted. Why not instead add a property to the playlist object and motdify the few extractors that don't return videos to set that property?

Agreed!


Suggestions for the AIIDE competition and/or ladder

I have finally got around to listening to the Undermind podcasts and noticed that in one episode, you asked long-time bot developers for suggestions for StarcraftAITournamentManager for AIIDE.  Pasting the relevant discussion from Discord:
I have some suggestions for what's missing from current tournament setups:
1. Rules/logic for Current Working Dir and run_proxy.bat
Refer to the e-mail conversation I had with Dave and Rick about this at the end of Oct '18.
Clarify in the Rules page whether the new TM software will set the current working dir to the Starcraft dir (e.g. C:\TM\Starcraft) or the AI dir (e.g. C:\TM\Starcraft\bwapi-data\AI), for DLL bots and non-DLL bots like EXEs/JARs.  Afaik, sc-docker always sets the current working dir to the Starcraft dir (not the AI dir) then starts bwapi-data/AI/.dll or bwapi-data/AI/run_proxy.bat.  Should non-DLL bots submit a run_proxy.bat file, and if so, should it change the working dir at all (if so, to what absolute path or what relative path?)?  Or for non-DLL bots, perhaps authors should submit a run_proxy.bat file that either doesn't set/change it, or sets it to a particular environment var if it exists (e.g. AIIDE_STARCRAFT_DIR), otherwise the bot is allowed to set it to whatever they like (so that it will work on their personal dev/test environments and AIIDE without editing).  Even UAlbertaBot is confusing - its' run_proxy.bat does "cd c:\TM\Starcraft\bwapi-data\AI" then "c:\TM\Starcraft\bwapi-data\AI\UAlbertaBot.exe" then its' config file sets the "ReadDirectory" setting to "../read/" and "WriteDirectory" to "../write/".  Even though the Rules page says to use "bwapi-data/read" and "bwapi-data/write".  If this isn't fixed or clarified (ideally fix StarcraftAITournamentManager to follow the Rules page, which is also how sc-docker works), we will keep seeing broken bots and teething problems in the various competitions.  It is a pity this single issue has caused so many broken/weak bots in past AIIDE & CIG competitions.

PurpleWave / Cheese Maven: I think StarCraft directory is intended to be the one true working directory
just that implementations of run_proxy.bat in tournaments (namely, CIG) have not achieved that consistently

Afaik, the latest dev version of StarcraftAITournamentManager sets it to the .../Starcraft/bwapi-data/AI folder (not the .../Starcraft folder), so unless that is fixed, the run_proxy.bat file must be set up to include a pushd or cd command that changes the working dir (to e.g. C:\TM\Starcraft or ../..) in order to get the bot to work properly (e.g. find BWTA2 map data at the correct location, and so that File I/O uses the correct paths to the read and write folders etc).
The main change would be to edit ClientCommands.java and change the line:
WindowsCommandTools.RunWindowsCommand("cd " + ClientSettings.Instance().ClientStarcraftDir + "bwapi-data\\AI & "+ ClientSettings.Instance().ClientStarcraftDir + "bwapi-data\\AI\\run_proxy.bat", false, false);
to:
WindowsCommandTools.RunWindowsCommand("cd " + ClientSettings.Instance().ClientStarcraftDir & "+ ClientSettings.Instance().ClientStarcraftDir + "bwapi-data\\AI\\run_proxy.bat", false, false);
... and also change UAlbertaBot accordingly if you still want UAlbertaBot to work.  I don't know whether any other old AIIDE bots would need updating (possibly just some of their run_proxy.bat files).  On the AIIDE competition website (maybe on the Rules page) I also suggest showing a sample run_proxy.bat file for a JAR bot and a sample run_proxy.bat for an EXE bot.
2. Ensure the Tournament Module allows some permissions for some versions of BWAPI
Update: this point has been moved into #32.
After the bug in point 7 is fixed, rebuild the TournamentModule.dll's (for BWAPI 4.2.0 and 4.1.2 at least - I wouldn't bother fixing 4.0.1 Beta, and I wouldn't bother changing 3.7.4 which doesn't allow any permissions) to allow bots to do setLatCom(false) and setCommandOptimizationLevel(a value other than 1, i.e. especially 0 or 2, but perhaps some other authors might want 3 or 4).  They don't affect the opponent bot at all - it only affects what info BWAPI returns to you, and some bots rely on them.  The default should probably stay as 1, but I think bots should be allowed to set it to 0 and other values if they want to, even though a value of 0 may increase the bot's APM and replay file sizes, because some bots rely on them and currently there is no way for a bot to check what the command optimization level is. And anyway, currently, BWAPI version 4.2.0/4.1.2/4.0.1 Beta bots have always done this until now, due to the bug, so I don't think it's a problem.  I suggest to also allow leaveGame(), so that bots can leave the game to indicate they are resigning/surrendering in lost positions, or in bugged states to attempt to avoid crashing later (and this may help address https://github.com/bwapi/bwapi/issues/719
).  This might also help increase the overall game rate, so long as Starcraft or bots don't/rarely crash when leaving, because bot-vs-bot endgames can often take a lot of time if the winning bot is weak/slow.  Personally, I don't care whether sendText/printf/setTextSize are allowed, so I would probably disallow them on anti-collusion grounds and in case they help to increase performance, but I think the others should be disallowed.
Note: until the bug noticed in point 7 is fixed, the Tournament Module for BWAPI versions 4.2.0, 4.1.2 and 4.0.1 Beta actually allows all permissions (even for DLL bots, not just for non-DLL bots).  This point should be addressed after point 7 is fixed.
3. Game Speed slider setting in game lobbies
Update: this issue has been moved to #37.
At least a few months before the competition (so we have time for sufficient training/testing), tell us in the Rules page whether the Game Speed slider in the game lobbies will be set to Normal or Fastest (i.e. LF3 or LF6 respectively).  I added a feature request to BWAPI to make organizers' management easier for this (https://github.com/bwapi/bwapi/issues/807).  If you want to use "Fastest", I suggest you ask as early as possible whether there are any objections from the big teams like Facebook and Sumsung and other serious competitors, because bots that rely on ML training might need a lot of time/resources to be re-trained.
4. Ability to disable bots (not just ignore their results)
Ability to disqualify a bot (manually at least, perhaps also automatically based on some thresholds) so that it doesn't play any of the remaining games, e.g. if it crashes/times out too much.  I know there's already a feature to exclude a bot from the results summaries, but afaik it still plays all the remaining games.  I could be wrong.  I don't want this ability for my testing - it's just an idea you might find helpful.
5. Better checks for why some games fail to start
Better checks for whether the TM actually handed control to each individual bot for frame 0 and whether each individual bot actually returned control to the TM on frame 0, so that it is clear whether games that didn't start properly are a problem before each bot was started (i.e. not either of the bots' fault), or a problem after each bot tried to start.  I haven't investigated whether the following is how StarcraftAITournamentManager already works, but please check the following cases:

If HeroBot started ok and returned control to the TM on frame 0, but the TM never got as far as starting the call(s) to MegaBot's binaries for frame 0, HeroBot should count it as a win, and MegaBot's "total games played" shouldn't count that game.  Or if you want symmetry, count is as a loss for MegaBot.
If HeroBot started ok and returned control to the TM on frame 0, and the TM started the call(s) to MegaBot's binaries for frame 0 but the TM never got as far as passing control to MegaBot for frame 0 (e.g. missing mandatory DLL dependencies, so MegaBot didn't get as far as entering its onStart() function), HeroBot should count it as a win, and it's up to you whether it should be counted as a loss for MegaBot (if you want symmetry) or MegaBot's "total games played" shouldn't count that game.  In this case, it's unclear whether to blame MegaBot or an environmental problem caused by the TM or Starcraft/bots from old games (e.g. out of memory from a old processes that are still running for whatever reason).
If HeroBot started ok and returned control to the TM on frame 0, and the TM passed control to MegaBot for frame 0 but MegaBot didn't return control back to the TM for frame 0 (this happened a lot for some bots like MegaBot), HeroBot should be assigned a win (rather than ignoring the game entirely), and MegaBot should be assigned a loss.

I don't know whether there's any way in the TM to distinguish between the last two cases though.  In all cases, try to distinguish the various cases as much as feasible in a field that stores the reason for the result for that bot.
6. Request a new official BWAPI 4.x release
Update: this point has been moved into #34.
Request a new official BWAPI 4.x release (4.2.0 was released most recently, so it would be something like 4.3.0) and build the corresponding TournamentModule.dll (& add it & its source code to GitHub).  A few bots are probably now using a more recent dev version of BWAPI than 4.2.0 (post-4.2.0 includes improvements to BWAPI's latency compensation logic, among other things).
7. TournamentModule.dll allows all permissions for BWAPI version 4 (e.g. 4.2.0, 4.1.2, 4.0.1 Beta)!
Update: this point has been moved into #32.
Due to a change to a BWAPI function's argument type as part of the first release of version 4 that was not correspondingly migrated into the Tournament Module (i.e. the TournamentModule::onAction function's first argument type was changed from an into to a BWAPI::Tournament::ActionID), permissions like enableFlag(CompleteMapInformation), setLocalSpeed(42) are not enforced by TournamentModule.dll, because the default implementation of the function that is defined in BWAPI is being used, which always returns true.  This is why the Sling bot was able to successfully do setLocalSpeed(42) and setFrameSkip(0) until Sling's source code was patched, and the Tyr/TyrProtoss bot was able to successfully do setLocalSpeed(10) in the AIIDE and CIG competitions, which slowed down the runs.  If any bot that uses BWAPI 4 had cheated by doing things like enableFlag(CompleteMapInformation), the tournament module wouldn't have stopped them.  Note that this is true for non-DLL bots and for DLL bots (originally I thought it only affected non-DLL bots, but after investigating and finding the cause of the bug I realized it affects DLL bots too).
8. Add a Win Percentage Per Map Cycle Graph
In the summary results, add a graph for "Win Percentage Per Map Cycle Graph".  So if there are 10 maps, rather than ~100 points the X axis, there would only be 100/10 = 10.  For each point on the X axis, it would only consider the games for that particular cycle through the set of maps (not consider the earlier cycles too).  This avoids the noise caused by bots being better on some maps than others, and makes it easier to identify turning points in the progress of a bot's learning.
9. Add a Win Percentage Over Time by Map Cycle Graph
In the summary results, add a graph for "Win Percentage Over Time by Map Cycle Graph". For each point on the X axis, it would only consider the games for that map cycle and the earlier cycles combined.  This avoids the noise caused by bots being better on some maps than others, and shows the rankings as-at the end of each map cycle.
10. Add an ability to pick race randomly out of Terran/Protoss/Zerg in the game lobby
I am not suggesting to forbid picking "Random" race in the game lobby - just to allow bots to specify that the TM should pick randomly out of Terran/Protoss/Zerg from the drop-down in the game lobby.  This makes the management easier for authors so they can easily write and update a single bot that supports playing as different races (rather than needing to set up & update one bot that always plays as Terran like tscmoo (Terran), one bot that always plays as Protoss like tscmoop, one bot that always plays as Zerg like tscmooz).  Note: in terms of game results records and File I/O, it is important to distinguish between picking "Random" race from the drop-down and picking a specific race out of Terran/Protoss/Zerg, because the meta is quite different when the opponent knows your race at the very start of the game - they don't need to scout your race or common proxy locations to help rule out some of the various possible early game attacks like 4-6 pool, offensive sunken rush, cannon rush, BBS or bunker rush etc.  Some human players despise (& I get the feeling some bot authors dislike) that the meta is different against Random race players that exploit the fact that the opponent does not know their race, compared with knowing the opponent's race.  I know that Dave doesn't see this as a concern for AIIDE until a bot actually relies on it, but personally I think this feature would be handy for future-proofing in case it becomes a problem sooner than expected.  No big deal.
11. Add support for BWAPI 3.7.5
Add support for BWAPI 3.7.5.  I wouldn't use it, but some of the GOAL-based bots in particular, might.
12. Add remaining SSCAIT & CIG maps with BWTA2/BWTA data
Add the map files and BWTA2 & BWTA data for the SSCAIT and CIG maps.  E.g. create "maps/sscai" and "maps/cig" folders for the map files within each ZIP file in the "server/required" folder that corresponds to a particular BWAPI version, and similarly for the "bwapi-data/BWTA" and "bwapi-data/BWTA2" folders.  This will make it easier for the CIG organizers to run their competitions, and would be very convenient for bot authors that want to train their bot.  I know there is occasionally talk of changing the map pool for some comps/ladders, but I wouldn't hold my breath.  The map files and BWTA2 & BWTA data for the remaining CIG maps can be downloaded from here.  The map files for SSCAIT can be downloaded from here but I am not aware of an official source for their BWTA2/BWTA data.  I could send you the files I have, or I could fork & add what I have.  I probably downloaded them from another bot, or I made a bot generate them.
13. Separate storage
It's quite time-consuming to manage the "Required_BWAPI_.zip" files, e.g. to add a support for a new BWAPI version or add maps to all supported BWAPI versions.  Most of the contents don't seem to vary according to the BWAPI version, so a feature that might make it easier for organizers and bot authors to manage in future is to separate the common files to a separate ZIP file.  I.E. almost everything except the BWAPI-related DLLs, bwapi.ini, "Multiple Instance Hack.bat", TournamentModule.dll, Broodwar.map, bspatch.exe, starcraft.bsdiff, maybe injectory.x86.exe (not sure whether this depends on BWAPI version), and SNP_DirectIP.snp.  I suggest that almost all of the files that are used on client VMs except the actual bot files/data are installed on client VMs.  Some automation could be added that recreates the bwapi-data folder etc and copies the files into place each game, rather than downloaded every time a client downloads a bot.  This avoids wasting a lot of time downloading a lot of data from the server every game.  Some folders should be re-created every game though, e.g. the bwapi-data folder, and maybe the characters folder, and maybe older BWAPI versions like 3.7.4 or 3.7.5 have some special files/folders (not sure).  Likewise, the files associated with a particular version of BWAPI could all be installed somewhere on the client VMs and copied into place every game, depending on the BWAPI version used by the bot.
14. Add dependencies for BWAPI/bot-related libraries
Install onto the client VMs' Starcraft folder the DLLs etc for BWAPI-related libraries that bots commonly depend on such as the various versions of BWAPI bridge (bwapi_bridge1_2.dll, bwapi_bridge2_3.dll, bwapi_bridge2_4.dll, bwapi_bridge2_5.dll, bwapi_bridge2_6.dll), QtCore4.dll, QtGui4.dll, and the files sc-docker has at https://github.com/Games-and-Simulations/sc-docker/tree/master/docker/dlls.  And config files used by some bots like Aiur to configure where the correct locations of the read and write folders are (directories.txt, file_settings.txt) to stop them updating files in the Starcraft folder itself.  This would really help to more easily set up and manage client VMs and avoid a lot of headaches trying to get bots to start / work properly due to missing DLL dependencies or File I/O configuration issues.  I can add the files I have to a fork if you like.

Thanks Chris! Appreciate the feedback. We'll get to this list as the work on the ladder progresses

FYI, I edited the Description to add suggestion #10.

After some investigation, debugging, fixes and testing in my fork (I will push to my fork soon), I have updated the Description for points 2 and 7 accordingly.

I have moved point 3 into a separate issu: #37.

Summary:

Resolved: 1, 2, 3, 4, 6, 7
Will do soon: 11, 13
Will look at/do later: 5, 8, 9, 10, 12
Unsure: 14

1. Rules/logic for Current Working Dir and run_proxy.bat
I agree with you on this and have made this change so that the working dir is the Starcraft dir.
2. Ensure the Tournament Module allows some permissions for some versions of BWAPI
Fixed by @chriscoxe
3. Game Speed slider setting in game lobbies
This will be Normal, to be updated soon on the competition website
4. Ability to disable bots (not just ignore their results)
I made some changes to this feature so that now excluding a bot prevents future games with the bot from being played, and removes it completely from the results summary and detailed results. Server restart is required, obviously, and you can re-parse the results of a completed tournament with the standalone result parser.
5. Better checks for why some games fail to start
I accounted for everything I could think of without changing the TournamentModule when I added the Game "End Type" that now appears in the detailed results. I'll have another look at this.
6. Request a new official BWAPI 4.x release
BWAPI 4.4.0 has been released and is now supported.
7. TournamentModule.dll allows all permissions for BWAPI version 4 (e.g. 4.2.0, 4.1.2, 4.0.1 Beta)!
Fixed by @chriscoxe
8. Add a Win Percentage Per Map Cycle Graph & 9. Add a Win Percentage Over Time by Map Cycle Graph
I'll add these.
10. Add an ability to pick race randomly out of Terran/Protoss/Zerg in the game lobby
Shouldn't be hard to do, but I'm missing how this is easier for authors than just picking "Random" in the lobby.
11. Add support for BWAPI 3.7.5
I'll do this soon.
12. Add remaining SSCAIT & CIG maps with BWTA2/BWTA data
I will look at this after doing 13.
13. Separate storage
I'll do this soon.
14. Add dependencies for BWAPI/bot-related libraries
I'm not sure if you're asking for something to be added to the project, since we don't provide the SC environment. Do you want us to have a list of libraries that will be available in the competition?

10. Add an ability to pick race randomly out of Terran/Protoss/Zerg in the game lobby
There's actually an important strategic difference: If an opponent picks Random race from the drop-down in the game lobby then you don't know which race they are using until one of your units comes into sight range of one of their units.  Conversely, if either Terran or Protoss or Zerg is picked from the drop-down at random (with 1/3 probability each) then you know their race at the very start of the game.  If you know their race then it cuts down the types of opponent strategies you need to prepare against or scout for (e.g. zerg rush, cannon rush, bunker rush) and may make it easier to decide whether to wall off, whether/where to place a bunker, what build order you want to use against that race, how early to send out a scouting worker etc, if you have not seen one of the opponent's units yet.
14. Add dependencies for BWAPI/bot-related libraries
I wasn't talking about the files installed by the Starcraft / Brood War installers/patchers - I was suggesting to add (and occasionally update) a containing the set of BWAPI-related and bot-related library DLL or other kinds of library files that are common requirements by many bots, e.g. the BWAPI bridge and Qt DLLs that I mentioned, the client-bridge, gmp/libgmp/mpfr DLLs from sc-docker that I mentioned.  And config files used by some bots like Aiur to configure where the correct locations of the read and write folders are (directories.txt and file_settings.txt files in the Starcraft program folder) to stop them updating files in the Starcraft folder itself (because Aiur and other bots like that look for those kinds of files in the current working directory, which should normally be the Starcraft program folder).  I expect it's easier for competition organizers and users if a set of files was maintained rather than having to trouble-shoot to identify the missing files / try to find them online.  Asi I said, I can add the files I have to a fork if you like.

Will not be a priority for us as it will not be a feature in the AIIDE competition


Added TicTacToe to canvas

Made a Canvas class based on @reachtarunhere 's continuous world  https://github.com/reachtarunhere/aima-demo. This class is a more general version which can be used to make a canvas and draw on it and interact with it using the object's methods. Currently you can draw lines, rectangle and arcs with different colors. Canvas can interact with mouse clicks. If @norvig is ok with this kind of implementation, I will add more support like text, images, mouse movement etc.

@Chipe1  Most humbly and respectfully I want to convey that you seem to have extended part of the code which itself was waiting approval as per my previous comment. As per discussion on the thread, it would be nice if we can complete a generic class before implementing specific examples e.g. Tic Tac Toe. Hence I was working in parallel to complete it. I have implemented support for images, smoothing of walls, discrete version of the world.
I had mentioned

Also I am a little confused about how this should be organized like a MVC and where this code should go when I make a PR.

which clearly conveys that I was working on putting on a PR. Frankly I don't know how we should deal with this moving forward. We should work collectively to avoid duplication of effort.I acknowledge the fact that a TicTacToe is different from a generic class. I respect your gesture for mentioning the source link but it would be better if we can avoid such situations in future.

@reachtarunhere Yeah, I agree with you. I have stopped developing TTT once I have had a look at your aima-demo & interactive blocks code. I am planning on to build stuff upon it.
So, best thing is open a PR with the code you have completed till now and we all build/develop upon it.

My intention was to work on a class which was not related to the algorithms in the book, but to directly draw on the canvas using basic shapes and I have mentioned this in issue #160. This implementation doesn't intend to solve the MVC problem, but instead to help in the 'View' part. This will just replace the canvas part of the continuous world not the main python code. I didn't know you were working on the canvas part(eg. adding images). I thought you were working with grids to implement the walls and how to organize the MVC structure. In any case I'm sure we would need to draw basic shapes and take input from the canvas, hence this PR. I mentioned your continuous world because I couldn't figure out how to make display(HTML(...)) affect the canvas when called from kernel.execute. Your code is where I found the solution and made its structure similar to @reachtarunhere 's continuous so that integrating it into the MVC would become easy. The TicTacToe is just a rough demo made by hard-coding the methods of the class. I included that because I thought @SnShine could complete the TicTacToe in the jupyter notebook using the canvas and I could have a review if it had enough functionality. I actually wanted to add this for showing the different steps in search algorithms in search.ipynb.

@SnShine the difficulty is that there is no clarity in terms of how the view and the model will be kept separated and where these general classes for canvas and grids go (new files? grid.py?). I asked the same question on the issue that was raised by you. Once there is a reply by the maintainers about that I'll make a PR.

@reachtarunhere and others, my apologies for being out of the loop for a few days,
I think grid.py is a good place to put the code for managing both discrete and continuous two-dimensional worlds. There will also have to be a grid.js or canvas.js file; whatever name makes sense.
I think the model is a class that contains a mapping from locations to objects in that locations, for example {(1, 2): [Wumpus], (2, 3): [Gold, Agent]}. The View then has everything we need to draw these objects.
What else would you like to have decided? I'm excited to see this all working soon!

@norvig Here a few things on which I need your opinion. Before the questions I would like to explain the current work-flow when both the view and model reside in one class. This is just an example.
We init the world using. a = GridWorld() and this class has methods like handle_click, handle_drag etc. So when we click a command like a.handle_click(coordinates) is called in the background and the changes are made to the model. We also have methods like a.change_background(coordinates, color) which are accessed both directly by the user in IPy shell and by our handler methods.

Where do the methods that handle interactions go (view or model)?
How do the model and view talk to each other? This is necessary because interactions result in changes in the model. (both will need to have references/pointers to each other?)
Also, what happens when something like a = GridWorld() is executed. Are we initializing the model or the view. If one of them initializes the other then does the view initialize the model or other way round? I am not sure about what object (view or model) will be stored in "a". As we currently use some methods that belong to view like  a.show() and some that belong to the model like a.add_agent(coordinates).

In case if the questions are not clear please comment here and I will try to elaborate on them.

@norvig, about this PR, do we need a class to manage drawing onto the canvas. With this class, we can call python functions like object.line() or object.image() to draw onto the canvas. It is useful when we do all our computation and data storage in python. This class doesn't facilitate storing any data in JavaScript as such an implementation would probably need JavaScript dependent functions and may clutter the code base. If you decide to use this class where should this class be present? It is currently in a separate .py file due to IPython import statement which works on jupyter notebook, but not in default python. Should there be a separate .js file which is easy to edit and extend or should all the JS functions be stored as strings inside the python Canvas class?

@Chipe1 I think it would be better with a separate .js file. I like the idea of a python class that can draw lines, images, text.

@norvig  Please answer my query. I am waiting for your reply to move forward with the PR for grid and continuous  world implementations.

@reachtarunhere, here's an attempt to answer your questions. There are many ways to do it, but this should give you an idea. Let's take the tic-tac-toe-game as an example.

Create the model: tttt = TicTacToe(). This is an object that contains the board (initially empty), the player whose turn it is (initially, say, X), and maybe an indication of whether anyone has won the game. There should be a method for ttt.make_move(location).

Create the view: view = TicTacToeView(ttt). There should be  onclick methods that call ttt.make_move(location) for each location, and maybe something that changes a display when someone wins or there is a draw.

There are two ways for the view to display itself. One is that whenever there is an onclick action, it queries the complete state of the view, and displays that. For small problems like tic-tac-toe, that will work fine. For more complicated worlds, we would want to do an incremental display, where the model would have to tell the view whenever something changed. So, the click triggers a call to ttt.make_move(location), and that in turn calls back to view.record_change(location, old_value, new_value) or something like that.

@norvig I finished implementing the Canvas class that I had mentioned. I would like to work on showing different search algorithms on canvas and am waiting for this PR to get merged. Also, there is an example usage of TicTacToe which @SnShine can use to implement interactive TicTacToe.


pass exclude in explore

Codecov Report

Merging #304 (c7067dd) into master (84ec522) will increase coverage by 0.05%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #304      +/-   ##
==========================================
+ Coverage   72.54%   72.59%   +0.05%
==========================================
  Files          43       43
  Lines        8595     8594       -1
==========================================
+ Hits         6235     6239       +4
+ Misses       1699     1696       -3
+ Partials      661      659       -2

Impacted Files
Coverage Δ

worker/worker.go
60.41% <100.00%> (-0.09%)
:arrow_down:

master/task_manager.go
91.91% <0.00%> (+3.67%)
: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 84ec522...c7067dd. Read the comment docs.


SampleGen: improve error message on invalid parameter name in attributes

Doing this:
parameters:
  attributes:
  - parameter: this_has_a_typo
    description: "..."

Results in this:
WARNING: toplevel: (lint) control-presence: Service speech.googleapis.com does not have control environment configured.
ERROR: toplevel: Unexpected exception:
java.lang.NullPointerException

Followed by a chunk of time trying to figure out what's undefined 😎
/cc @googleapis/samplegen

Fixed by ^^^^^ #2799.


No more display :(

Hello, for days I have the following ad.
"There are no reachable stations".
The whole thing was running for months without any problems.
Has something changed on the module?
Sorry for my bad Englisch....

There are currently no direct trips from "Drosselberg, Erfurt" to "Anger, Erfurt". Remove the direction line from your config and you will see, that the module is working.

Thanks for the answer.
Can it be that the station numbers have changed?
I will continue to monitor this.

The station IDs haven't changed. But because SEV lines are showing, I suspect it is just a temporary situation.


[Feature Request] Add permissions for commands and gamerules

LuckPerms
or
PlayerRoles
With LuckPerms you need permission nodes (FabricPermissionsAPI), with PlayerRoles you can use those or give players access to a vanilla OP level (1, 2, 3, or 4).
It'd be nice to allow features such as "doItemColours" (gamerules) just for certain people.
You can currently limit the commands for certain players using PlayerRoles but having permission nodes for LuckPerms would be amazing.

That's amazing! thanks

Feature has been implemented for boolean rules, for now not planning on implementing this for integer rules as I cannot think of an elegant way of doing that.


Fix TRIM/DISCARD of small regions

We present a virtual sector size of 512 to the VM but are likely using
a 4096 byte native sector size on the local SSD, therefore we have to
take care to align calls to fcntl(F_PUNCHHOLE).
Previously we would align up the fp_offset to the native sector size
and then compute the length of the unaligned initial region we need
to manually zero by aligned_offset - fp_offset. Unfortunately this
fails to take into account that the fp_length might be smaller than
this, for example:
assume fp_offset = 1024 and fp_length = 512 (i.e. TRIM one sector)
=> aligned_offset = 4096
=> len_to_zero = aligned_offset - fp_offset = 3072
and we will erase 3072 bytes even though the request was for 512.
We will then go on to calculate a -ve number for the fcntl(F_PUNCHHOLE)
call which will return EINVAL, but damage has already been done.
This patch caps the size of the initial region to fp_length.
Signed-off-by: David Scott<EMAIL_ADDRESS>

I've got the stress test which found this, but it still doesn't run to completion because of an APFS bug. The APFS bug is probably not data-corrupting but it does fail the TRIM which fails the test. Once I've made a workaround for that bug I'll see if I can setup a CI somewhere to run it.

I've made some updates following review with @rn. I'm going to try to get the stress test workaround in place now.
FYI @rn I think found a typo in the patch you looked at earlier: guarding the fcntl it used to say if (aligned_length > bc->bc_delete_alignment) { but I think this should be if (aligned_length >= bc->bc_delete_alignment) { (i.e. if the length is exactly equal to 4096, we should still use fcntl). I've updated the patch.


Server Error after deleting a user

Hello!
Noticed a (possible) bug:

Create a token
Register the user with this token
Delete this created user
After deleting, it is impossible to enter the Firewall State section in GUI, it displays just “Server Error”
With the same error I can't request the configuration for the next created user
After restarting WAG everything works correctly again, but inconvenient
Using docker container fyi
Can anyone please confirm that this error exists, or what should I do to avoid this server error?

Howdy, I need some more information to replicate.
What version are you on?
Can you provide your server logs?

Yeah I cant replicate this with my current setup.
Which is Wag v7.3.1-35-ga3348c2 via docker.
I already have 1 user, not sure if you were doing with a blank setup.
I go create registration token for user abc . Use said token, then delete said user and all is fine.

Thanks for the response!
I'm using v7.3.1 from August 16
Here is what the error looks like in the logs:
WAG[6186]: 2023/10/03 04:25:02 registration token for  test created
WAG[6186]: 2023/10/03 04:28:13 test *ip* successfully registered as *ip* : *some-token*
WAG[6186]: 2023/10/03 04:28:34 test deleted
WAG[6186]: 2023/10/03 04:28:38 error getting firewall rules data Error: lookup: key does not exist

Also here is error related to "unable to receive conf for next created user":
WAG[6186]: 2023/10/04 11:48:09 registration token for  *new user* created
WAG[6186]: 2023/10/04 11:49:05 *user* *ip* unable to add device:  attempted to add a device with address that already exists

Huhhhh. Well that's certainly interesting.
To provide context.
That first error is saying that when the user was created it was not added to the ebpf firewall map.
But then the second error says that it was added.
Does this happen on a completely fresh install? I.e new database?
Could you also provide your kernel version and distro?

Distro and kernel are Amazon Linux 2 with Linux 5.10.192-182.736.amzn2.x86_64 x86_64
Most likely not happens on fresh, I tested adding/removing/configuring users before, and didn’t notice anything like that
I'll keep an eye on it to see what could be causing this problem

Ah alright, sweet, definitely super weird that its happening but if its not reproducible then Im not sure what to do about it.
Thanks for those details tho!
I have just added more logging to the API endpoints on failure on the unstable branch.  But obviously not released.
If you have a db that has routinely caused this then I might ask you to share that

I am going to close this issue as I cannot replicate.
If you (or anyone else) experience this issue again feel free to reopen it


Performance on iPhone 4S

Hi we're experiencing quite poor performance on an iPhone 4S with UnityMainThreadDispatcher taking up a few milliseconds of CPU time every single frame. We suspect that it's because it called Application.internetReachability every frame. There are reports that that function leaks memory which is consistent with our findings, but the performance is the big problem for us.
Is it possible to rewrite this test to use something else? Or not test every single frame, but cache the result for at least a few seconds?
I will try to go in at some point and fix it myself, but the .sln file does not open in MonoDevelop or Xamarin (I am on Mac OS X) so it's not easy to get set up developing for this project.

We're now going to use #711 to track this issue.


CX Chrome Extension - All currencies are treated as ETH, conversion calcs treat all currencies as ETH

When adding an Expanse or UBIQ wallet via the Chrome Extension the balances for the accounts are shown as an ETH balance, not an EXP or UBQ balance.
The balance amount is correct, but it's being shown as the incorrect currency.
I have the node selector, top right, set to the appropriate node for the currency of the wallet I'm adding, so that's not the issue.
Other values (USD etc.) are being calculated as if the Expanse value is actually an ETH balance.
In my case, I have a new Expanse account that only has 1.8 EXP in it right now, but the extension is telling me that it's worth over 300 dollars.
Clearly, that's not right. 1.8 ETH is worth over 300 dollars, not 1.8 EXP.
The same thing applies for UBIQ and I'm assuming for any other currency.
Actual example for my UBIQ balance:
Account Balance
139.123770535 ETH  <---- Should be UBQ
Equivalent Values
38963.00318 USD  <---- This is NOT what my current UBQ balance is worth in USD
32695.47731 EUR
10.58454 BTC
TLDNR version:  All balances for all currencies are being treated as ETH, and all conversion calcs to other currencies are done as if all balances are ETH instead of what they actually are.

To add to this, on the My Wallets page, where your wallets are listed after you've added them, the balances for each wallet are also shown as ETH instead of the correct currency.
The values are correct, the currency codes shown are not.
Me Expanse balance, for my Expanse Wallet, is currently showing as:   1.129 ETH

Indeed. The variables and interacting system available on most pages is not yet been implemented here. Unfortunately, we are focused to finishing v4 rather than changing the Chrome Extension at this time. This should be a fairly straightforward fix, and help would be appreciated. If anyone is interested, please ping me here or in Slack and I will attempt to assist.


Fix additions in middle of formatted diffs

Fix issue where if a git diff adds an addition
to an already perfactly formated paragraph the
changes would only wrap the addition leaving to
suboptimal wrapping. #8

Sorry for the delay on getting to this @amarjotgill. If you're still willing to work on this, I think we're quite close to landing it!
If I understand correctly, the current state of things is that with this PR:

addition-in-middle-generic.in.html
addition-in-middle-no-newline.in.html fails
addition-in-middle-of-p.in.html passes

Is that correct? I think some more conditions like the ones described in https://github.com/domfarolino/specfmt/pull/17/#discussion_r1849412994 are probably all that is needed to get this issue closed.

Currently all test cases pass with current implementation but this may be because my test is written inadequately.

I guess what I'm saying is that I believe https://github.com/domfarolino/specfmt/pull/17/files#diff-ca0a219b185ec8fb72fc0a77bad2f272154661ceea5c1794215f553f1f1e75a1 has the wrong expectations. We should expect the new <p> to be on a new line, so I consider the implementation ultimately "failing", if it produces an output where the <p> does not get wrapped to a new line.


GUI 3D: camera interaction isn't cancelled when passing hover a meshButton3D

Bugs

Bug repro on playground (frame.html):
Expected result: camera should stop moving after releasing the click/touch
Current result:
camera is:

still linked to mouse movement on Desktop (screencast)
continue to rotate by itself, even if a new user touch is made (video demo)

That was quick, thanks! Funny that it's just a matter of one line cutting-pasting :-p


Adding Blank Rule When Opening pop up intially

When you open the Chrome extension is adding  a blank rule like this:

Need to find source of this problem and stop it adding blank rules.

The issue was in popup.js file, needed to move creating the rule element to the addbutton listener to resolve to prevent creating duplicate rules. Should be resolved now


[Fetch] - Adds PATCH to the list of normalized method names

I encountered a problem described in #4594 where fetch would fail if called with lowercase patch as the method name with a request body.
It turns out that the list of normalized method names didn't include PATCH. This should now contain the complete list of supported request methods.

Closing RE @ide's explanation that this is a synced copy of github/fetch
RE https://github.com/facebook/react-native/issues/4594#issuecomment-162272546


add notebook

Add notebook that creates a GIF and static image of 100 U.S. lakes, from least to most circular. Uses data from LAGOS-US LOCUS link

Static chart:

Add a README that includes the final charts


Adding dind to the build environment

@CjHare needs a docker server for the integration tests, this supplies that.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Catch Guzzle parse request errors

As discovered during @clue's talk at Typo3 days https://www.youtube.com/watch?v=q2pVVDZtuJs Guzzle's request parser can throw an exception but we don't catch it. This PR adds catching that exception and emitting it as an error.

@clue ping :sunglasses:

Otherwise this LGTM, perhaps squash this into two concise commits? :+1:

Nah will quash it on merge into one commit, easier 😄


Support boolean grants

Libjwt provides jwt_valid_add_grant_bool to add boolean grants. Unfortunately, lighttpd configuration syntax doesn't provide an unambiguous way to parse a boolean.
The current workaround to this is to just use integers as booleans (like the lighttpd configuration syntax suggests), or to use JSON claims (#5).
I don't see a way around this aside from refactoring the claims configuration into claims-<integer|string|boolean>.

Workaround tested in d44b1a1c325967456378a688ecf58db0998b6d09.

ISTM that using "json-claims" config is a reasonable and relatively straightforward solution.


TESTING: trying to update mongo to get latest dependencies

Looks like we're getting the latest!


Feedback for “Get Started”

Is it possible to request the subtree from the locale bundle? For example, if I had my locale bundle look like this...
{
  questions: [
    "What is your name?",
    "How old are you?",
  ]
}

...is there a way of getting all those questions into an object so that I can randomly select one?
const questions = getScopedI18NSubtree("questions");
console.log(questions[Math.random() ... ])

(I see I can do something like this t("questions.1"), but that's not helpful if I don't know how many items are in the array)

I suppose a workaround for that could be:
{
    ...
    questions: {
      count: 3,
      list: [
        "What is your name?",
        "What is your quest?",
        "What is the airspeed velocity of an unladen swallow?",
      ],
    },
}


Creation of mesh file with dataset for UGRID

I created a repository to test mesh file creation with mdal-python : https://gitlab.com/jmkerloch/test-mdal-python.
I'm trying to create mesh file with all available drivers from my MDAL build.
I managed to create some mesh file but I don't understand why there is no data when using UGRID driver.
from mdal import PyMesh, drivers, MDAL_DataLocation
import numpy as np

def get_ugrid_driver():
    for test_driver in drivers():
        if test_driver.name == "Ugrid":
            return test_driver
    return None

driver = get_ugrid_driver()
test = PyMesh(driver)

# Create vertices and faces
test.vertices=np.array([(0. , 0., 0.), (1. , 0., 0.), (2. , 0., 0.), (0.5, 1., 0.), (1.5, 1., 0.), (1. , 2., 0.)], dtype=[('X', '<f8'), ('Y', '<f8'), ('Z', '<f8')])
test.faces=np.array([(3, 0, 1, 3), (3, 1, 4, 3), (3, 1, 2, 4), (3, 3, 4, 5)], dtype=[('Vertices', '<u4'), ('V0', '<u4'), ('V1', '<u4'), ('V2', '<u4')])

# Add group for data on faces
group= test.add_group("test_data_on_face", location=MDAL_DataLocation.DataOnFaces)

# Define data
faces_val = [(i,) for i in range(test.faces.shape[0])]
data = np.array(faces_val, dtype=[('U', '<f8')])

# Add to group
group.add_data(data)

test.save(f"created_ugrid_mesh.nc")

The mesh is displayed in QGIS but there is no dataset test_data_on_face
@runette could you provide some guidance for ugrid mesh with dataset creation ?

Sorry for the delay - I have been traveling
I do really need to create better documentation - I know.
The control flow is based on the MDAL C API to keep the bindings fairly
simple.
However, I would use a slightly different flow. The reason you are having
to give a group URI is that the mesh does not yet have a uri - this is a
requirement of the C API
I would do something like ...
ds = Datasource("Ugrid:created_ugrid_mesh.nc")
With ds.add_mesh() as test:
.... Create the vertices and faces etc
test.add_group( ... ) # should not need a uri
test.save()
Etc - should work but I am currently on my phone so cannot test it and have
probably made some typos :)
On Tue, 30 May 2023, 10:36 jmkerloch, @.***> wrote:

@runette https://github.com/runette It seems that we need to indicate
the uri of the group so we can save it. In my code there was also missing
the save of the group.
I managed to create a Ugrid file with time support. Here is the python
code.
from mdal import PyMesh, drivers, MDAL_DataLocationimport numpy as np
def get_ugrid_driver():
for test_driver in drivers():
if test_driver.name == "Ugrid":
return test_driver
return None
driver = get_ugrid_driver()test = PyMesh(driver)
Create vertices and facestest.vertices=np.array([(0. , 0., 0.), (1. , 0., 0.), (2. , 0., 0.), (0.5, 1., 0.), (1.5, 1., 0.), (1. , 2., 0.)], dtype=[('X', '<f8'), ('Y', '<f8'), ('Z', '<f8')])test.faces=np.array([(3, 0, 1, 3), (3, 1, 4, 3), (3, 1, 2, 4), (3, 3, 4, 5)], dtype=[('Vertices', '<u4'), ('V0', '<u4'), ('V1', '<u4'), ('V2', '<u4')])
Add group for data on facesgroup= test.add_group("test_data_on_face", location=MDAL_DataLocation.DataOnFaces, uri="Ugrid:created_ugrid_mesh.nc")
Define data  faces_val = [(i,) for i in range(test.faces.shape[0])]data = np.array(faces_val, dtype=[('U', '<f8')])
reversed_faces_val = [(i,) for i in reversed(range(test.faces.shape[0]))]reversed_data = np.array(reversed_faces_val, dtype=[('U', '<f8')])
Add to groupnb_time = 24for time in range(nb_time):
if time%2:
    group.add_data(data, float(time))
else:
    group.add_data(reversed_data, float(time))

group.save()
test.save(f"created_ugrid_mesh.nc")
For me it seems that there are no issue with mdal-python. I'm closing this
issue.
—
Reply to this email directly, view it on GitHub
https://github.com/ViRGIS-Team/mdal-python/issues/8#issuecomment-1568006848,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AARC2MZYN5P6YOCJKZXHA3LXIWWSPANCNFSM6AAAAAAYS5HJH4
.
You are receiving this because you were mentioned.Message ID:
@.***>

I tried to add the uri to PyMesh but I must use a Datasource.
I was trying wihout a datasource because I will only have one mesh on my file.

Both ways work.
I just think the datasource way is more intuitive and it also automatically
closes the PyMesh object - which is a wrapper around the C object - cleanly.
On Wed, 31 May 2023, 12:17 jmkerloch, @.***> wrote:

I tried to add the uri to PyMesh but I must use a Datasource.
I was trying wihout a datasource because I will only have one mesh on my
file.
—
Reply to this email directly, view it on GitHub
https://github.com/ViRGIS-Team/mdal-python/issues/8#issuecomment-1569912935,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AARC2M5KXGZZ6VS2XYVFGBDXI4LEZANCNFSM6AAAAAAYS5HJH4
.
You are receiving this because you were mentioned.Message ID:
@.***>

This worked for me
from mdal import Datasource, MDAL_DataLocation
import numpy as np
ds = Datasource("created_ugrid_mesh.nc", "Ugrid")
with ds.add_mesh() as test:
test.vertices=np.array([(0. , 0., 0.), (1. , 0., 0.), (2. , 0., 0.), (0.5, 1.,
0.), (1.5, 1., 0.), (1. , 2., 0.)], dtype=[('X', '<f8'), ('Y', '<f8'), ('Z',
'<f8')])
test.faces=np.array([(3, 0, 1, 3), (3, 1, 4, 3), (3, 1, 2, 4), (3, 3, 4, 5)],
dtype=[('Vertices', '<u4'), ('V0', '<u4'), ('V1', '<u4'), ('V2', '<u4')])
Add group for data on faces
group= test.add_group("test_data_on_face", location=
MDAL_DataLocation.DataOnFaces)
Define data
faces_val = [(i,) for i in range(test.faces.shape[0])]
data = np.array(faces_val, dtype=[('U', '<f8')])
reversed_faces_val = [(i,) for i in reversed(range(test.faces.shape[0]))]
reversed_data = np.array(reversed_faces_val, dtype=[('U', '<f8')])
Add to group
nb_time = 24
for time in range(nb_time):
if time%2:
group.add_data(data, float(time))
else:
group.add_data(reversed_data, float(time))
group.save()
test.save()
On Wed, 31 May 2023 at 12:23, Paul Harwood @.***> wrote:

Both ways work.
I just think the datasource way is more intuitive and it also
automatically closes the PyMesh object - which is a wrapper around the C
object - cleanly.
On Wed, 31 May 2023, 12:17 jmkerloch, @.***> wrote:

I tried to add the uri to PyMesh but I must use a Datasource.
I was trying wihout a datasource because I will only have one mesh on my
file.
—
Reply to this email directly, view it on GitHub
https://github.com/ViRGIS-Team/mdal-python/issues/8#issuecomment-1569912935,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AARC2M5KXGZZ6VS2XYVFGBDXI4LEZANCNFSM6AAAAAAYS5HJH4
.
You are receiving this because you were mentioned.Message ID:
@.***>

That got mangled - should have been
from mdal import Datasource, MDAL_DataLocation
import numpy as np

ds = Datasource("created_ugrid_mesh.nc", "Ugrid")

with ds.add_mesh() as test:
    test.vertices=np.array([(0. , 0., 0.), (1. , 0., 0.), (2. , 0., 0.), (0.5, 1., 0.), (1.5, 1., 0.), (1. , 2., 0.)], dtype=[('X', '<f8'), ('Y', '<f8'), ('Z', '<f8')])
    test.faces=np.array([(3, 0, 1, 3), (3, 1, 4, 3), (3, 1, 2, 4), (3, 3, 4, 5)], dtype=[('Vertices', '<u4'), ('V0', '<u4'), ('V1', '<u4'), ('V2', '<u4')])

# Add group for data on faces
    group= test.add_group("test_data_on_face", location=MDAL_DataLocation.DataOnFaces)

# Define data
    faces_val = [(i,) for i in range(test.faces.shape[0])]
    data = np.array(faces_val, dtype=[('U', '<f8')])

    reversed_faces_val = [(i,) for i in reversed(range(test.faces.shape[0]))]
    reversed_data = np.array(reversed_faces_val, dtype=[('U', '<f8')])

# Add to group
    nb_time = 24
    for time in range(nb_time):
        if time%2:
            group.add_data(data, float(time))
        else:
            group.add_data(reversed_data, float(time))
    group.save()
    test.save()


invalid character '<' looking for beginning of value

Hi,
While I am trying to pull it from docker hub I get "invalid character '<' looking for beginning of value" issue.
Could you please assist me on this and let me know how I can resolve the issue.
'''
docker pull hub.docker.com/tiredofit/nginx-ldap
Using default tag: latest
Pulling repository hub.docker.com/tiredofit/nginx-ldap
invalid character '<' looking for beginning of value
'''
Thank you.
Dan

Hi Dan,
Interesting, Docker hub is no longer serving it that way. I get the same results. I've updated the Readme to use their shorter version:
docker pull tiredofit/nginx-ldap:latest
Hope this helps!

Thank you Dave for your quick response and action. I could successfully
clone and run this app (via docker-compose)
First of all, I am pretty new to docker and development environment. It is
a while that I am struggling to find an appropriate solution for my case
and I think your nginx-ldap app might be more suitable for my case.
I will really appreciate if you could help me to set up and configure this
app for my environment.
Here is the case:

I have a web application (kafka-manager, port: 9000) on a container in
the same machine that this nginx-ldap container is.
I have a ldap server which is sitting on another host.
My goal is:
1- Everybody who wants to access kafka-manager should authenticate against
ldap
2- Restrict everyone's access to different pages of this application so
that only a particular ldap group would have permission to do the changes
and the rest can just view it. (this group and role is already defined and
configured on ldap side)

Thank you for your assistance in advance.
Best Regards,
Daniel
On Tue, Sep 25, 2018 at 3:10 PM Dave Conroy<EMAIL_ADDRESS>wrote:

Closed #1 https://github.com/tiredofit/docker-nginx-ldap/issues/1.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/tiredofit/docker-nginx-ldap/issues/1#event-1866627236,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Akhtif56o_vfJU-rnm5Z3g9C-nD6Fxhqks5uen-KgaJpZM4W5Dll
.

Hi Daniel,
While you could use this image in this scenario as a baseline for what you are trying to accomplish it looks like the majority of your work would be in managing a custom configuration file for Nginx. How I have this image setup is just managing authentication via basic auth (authenticating against LDAP) on the root page. In order to seperate you would need to create additional location directives to have different ACLs per folder/area in the 02-default.conf and then rebuild the image.
While it is certainly possible, I would actually recommend a much stronger solution. If you already have an LDAP directory in use with proper groups, is to setup something like LemonLDAP (I have an image too tiredofit/lemonldap:1.9-alpine-latest as the setup is pretty detailed that works right out of the box) and then use my tiredofit/nginx or my nginx-php-fpm images with the environment variable AUTHENTHICATION_MODE=LLNG then serve your web content that way.
With this you'd get the start of a single sign on solution that you could use for not only that application but many, also taking advantage of SAML/OpenID Connect. It allow access to applications and their subfolders by means of rules. It is a very robust product and I use in production with over 8000 users. I'm quite well versed in authentication and these sorts of infrastructure alignment scenarios, so if you or your organization is interested in some consulting I would be glad to help. All of the images I share here on github are in active production so work quite well together.

Hi Dave,
Actually, I was not able to figure this out after a while spending time on
it !
I am just evaluating to find a simple and proper solution for my case, then
we might go farther and make it more specific and customized !
For my first step: I want a docker container, runs nginx with ladap
capabilities, forces everyone who requests for a web
application (kafkamanager:9000) to authenticate against the ldap server.
[Assume this web application is being run in a different container on the
same host].
So far, I have not found a simple and well-documented solution ! I was
hoping your solution would be able to fulfill this requirement ! Not sure
where the issue is but seems it is not obeying from "docker-compose.yml"
and "02-default.conf" settings and every time it is just running through
its default (hard-coded) configuration !! it doesn't even listen to port
9000 despite my configuration on "02-default.conf", also I couldn't find a
way to stop nginx inside the container (I just try to kill the process) !!
I am a bit confused with "nginx.conf", "01-ldap.conf", "02-default.conf",
"Dockerfile", "docker-compose.yml", ... . I really need to understand the
exact call flow.
I would really appreciate your time and your help.
Thank you,
On Wed, Sep 26, 2018 at 4:18 PM Dave Conroy<EMAIL_ADDRESS>wrote:

Hi Daniel,
While you could use this image in this scenario as a baseline for what you
are trying to accomplish it looks like the majority of your work would be
in managing a custom configuration file for Nginx. How I have this image
setup is just managing authentication via basic auth (authenticating
against LDAP) on the root page. In order to seperate you would need to
create additional location directives to have different ACLs per
folder/area in the 02-default.conf and then rebuild the image.
While it is certainly possible, I would actually recommend a much stronger
solution. If you already have an LDAP directory in use with proper groups,
is to setup something like LemonLDAP (I have an image too
tiredofit/lemonldap:1.9-alpine-latest as the setup is pretty detailed
that works right out of the box) and then use my tiredofit/nginx or my
nginx-php-fpm images with the environment variable
AUTHENTHICATION_MODE=LLNG then serve your web content that way.
With this you'd get the start of a single sign on solution that you could
use for not only that application but many, also taking advantage of
SAML/OpenID Connect. It allow access to applications and their subfolders
by means of rules. It is a very robust product and I use in production with
over 8000 users. I'm quite well versed in authentication and these sorts of
infrastructure alignment scenarios, so if you or your organization is
interested in some consulting I would be glad to help. All of the images I
share here on github are in active production so work quite well together.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/tiredofit/docker-nginx-ldap/issues/1#issuecomment-424855595,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AkhtiZxHc72g05qxBQk_ZnvVceJvkvfVks5ue-EvgaJpZM4W5Dll
.


[Stay On Screen] Fix max X and max Y of the object position

Tested in fullscreen and windowed with the hitbox debugger, it's works fine now.

This won't work for objects having their origin not at 0;0 though right?

This won't work for objects having their origin not at 0;0 though right?

Indeed like on the existing live version.

Ok, let's go ahead with this but we should rework this and the expressions we have to expose the AABB of an object I think.
I think we had other extensions wanting to compute the bounds/the center of an object and they could not, because CenterX/Y can also be changed as it's the center of rotation.


Basic iOS 15 support

This introduces an equivalent replacement for iOS 16 only .system(_:design:weight:) for iOS 15 and a super simple hack to make it compile on iOS 15 without ViewThatFits.
Overall, not perfect but makes the framework importable in projects still supporting iOS 15

@hiddevdploeg pinging this. please approve and merge or request changes when you get the chance.


Nginx proxy suddenly fails with 'No such file or directory' on large POST

Describe the bug
When using nginx as a proxy with 'large' requests it stops working under certain conditions with error messages like
Aug 30 16:37:38 master-d6fe9a19 nginx[630]: 2023/08/30 16:37:38 [crit] 630#630: *4513431 open() "/tmp/nginx_client_body/0000000009" failed (2: No such file or directory), client: <IP_ADDRESS>, server: mdi-web, request: "PUT /api/rest/v1/blob/S6mLU5bKEGs?4k_hd_wallpapers_11.jpg HTTP/1.1", host: "<IP_ADDRESS>", referr>

Seems that systemd-tmpfiles.service is deleting the subdirectory in tmp preventing nginx from functioning properly. This happens after 10 days of inactivity.
Steps To Reproduce
Steps to reproduce the behavior:

Activate nginx.service
Wait 10 days leaving the service unused
Check existence of /tmp/systemd-private-%b-nginx.service-*/tmp/nginx_client_body

Expected behavior
The directories in tmp created by nginx on startup are never deleted while nginx is running.
Our current workaround is
  # do not delete the directories created upon nginx startup
  systemd.tmpfiles.rules = [
    "X /tmp/systemd-private-%b-nginx.service-*/tmp/nginx_*"
  ];

This rule should be included automatically when nginx is enabled.
Additional context
Seems to exist since #198314 (544c526393f15c946a77ed0f6f11f5d3b90e50b8).
Notify maintainers
@fpletz @ajs124 @raitobezarius
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[root@master-2337c24c:~]# nix-info -m
 - system: `"x86_64-linux"`
 - host os: `Linux 6.1.29, MDI master, 96dd4bff, nobuild`
 - multi-user?: `no`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.13.3`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

PR #257828


Update README.md

Added GDevelop game engine.
Why do you think the link is worth adding to this list?
GDevelop is designed to be simple enough for first-time game developers but it also has the ability to create advanced games.
Does this project has any License?
MIT license

thanks @tristanbob


Login page showing multiple scroll sliders

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

Action Performed:

Go to login screen
Zoom a bit
Scroll screen Horizontal first to see default Scroll slider - then Vertical to see custom Expensify slider.

Expected Result:
It should Show any one slider which is consistent on all platform
Actual Result:
It shows multiple scroll sliders on zooming the login page
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[x] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number:
Reproducible in staging?: Needs reproduction
Reproducible in production?: Needs reproduction
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/43996225/228304662-be5853ab-70be-4ade-b9d2-7eb526806d3b.MP4
Expensify/Expensify Issue URL:
Issue reported by: @DinalJivani
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1679988909208839
View all open jobs on GitHub

Triggered auto assignment to @sophiepintoraetz (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

Bug0 Triage Checklist (Main S/O)

[ ] This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
[ ] This bug is not a duplicate report (check E/App issues and #expensify-bugs)

If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead

[ ] This bug is reproducible using the reproduction steps in the OP. S/O

If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
If the reproduction steps aren't clear and you determine the correct steps, please update the OP.

[ ] This issue is filled out as thoroughly and clearly as possible

Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.

[ ] I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

I wonder if this is happening with other pages. I'm going to make it external.

Job added to Upwork: https://www.upwork.com/jobs/~012f454b50e1a96ade

Current assignee @sophiepintoraetz is eligible for the External assigner, not assigning anyone new.

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

Proposal
Please re-state the problem that we are trying to solve in this issue.
We don't want to show multiple scrollbars.
What is the root cause of that problem?
The scrollbars comes from the browser and ScrollView scrollbar. Here is a screenshot to prove it from a codesandbox here https://codesandbox.io/s/github/necolas/react-native-web/tree/0.19.0/packages/react-native-web-examples?from-embed&initialpath=%2Fscroll-view

When we pinch the page, the viewport will be zoomed, thus the scrollbar shows. But actually, we already set the user-scalable to no here with the intention to prevent any zoom. This works except for Safari. Starting on iOS 10, user-scalable is being ignored.
What changes do you think we should make in order to solve the problem?

I think the main issue is the zooming thing. So, we need to prevent it with some js found here https://stackoverflow.com/a/38573198.
We need to add below code to index.html.
document.addEventListener('touchmove', function (event) {
  if (event.scale !== 1) { event.preventDefault(); }
}, {passive: false});

This will prevent the zoom (event.scale) when we pinch the screen. We need to set passive to false because we call prevent default inside it.

There is also a logic to prevent zoom when double tap from the SO, however I can't test double tap on simulator.
What alternative solutions did you explore? (Optional)
We can hide the scrollbar from ScrollView.

Thank you guys, assigning @huzaifa-99 🚀

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

@huzaifa-99 - are you able to get around to finishing the PR?

Still reviewing it looks like!

Reviewing label has been removed, please complete the "BugZero Checklist".

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

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

If no regressions arise, payment will be issued on 2023-05-02. :confetti_ball:
After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.

[ ] External issue reporter
[ ] Contributor that fixed the issue
[ ] Contributor+ that helped on the issue and/or PR

As a reminder, here are the bonuses/penalties that should be applied for any External issue:

Merged PR within 3 business days of assignment - 50% bonus
Merged PR more than 9 business days after assignment - 50% penalty

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

[ ] [@parasharrajat] The PR that introduced the bug has been identified. Link to the PR:
[ ] [@parasharrajat] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:
[ ] [@parasharrajat] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:
[ ] [@sophiepintoraetz] Determine if we should create a regression test for this bug.
[ ] [@parasharrajat] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.
[ ] [@sophiepintoraetz] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:

Summarising payments due on 2 May:

$250 for @DinalJivani - reporting
$500 for @huzaifa-99 for PR being merged 12 business days after being assigned the PR
$500 for @parasharrajat, as the bonus penalty also applies to you

Unfortunately, Rajat, I don't think those are good enough reasons to cancel the bonus as both of these were in your control.
For 1), you can discuss things in a timely manner, I see that there were delays on both ends to that conversation
For 2) You could always get another C+ involved to help you out - whilst computer issues are annoying, they are not Expensify's responsibility to make sure you have the correct testing tools (e.g. this is something you could have asked for help on or had resolved prior to this issue).
I know it's disappointing to receive such news but sometimes that's how it goes!

All right - offers are out!

Payments went out yesterday/today - check your emails?
On Wed, 3 May 2023 at 8:23 PM, Huzaifa Rasheed @.***>
wrote:

@sophiepintoraetz https://github.com/sophiepintoraetz bump ^
—
Reply to this email directly, view it on GitHub
https://github.com/Expensify/App/issues/16625#issuecomment-1532631878,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKHTNLQANE5OOHTA2PQXFKLXEIIYDANCNFSM6AAAAAAWKZPPWE
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Product Changes https://community.expensify.com/categories/product-changes


Remove unused async-stream dep

git grep async_stream returns no matches.

Great. Thank you.

Thanks for the merge!


fix: set default value for DOCUMENTS_BUCKET

Codecov Report

Merging #213 into master will decrease coverage by 0.07%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master     #213      +/-   ##
==========================================
- Coverage   61.31%   61.24%   -0.08%
==========================================
  Files          49       49
  Lines        2629     2629
==========================================
- Hits         1612     1610       -2
- Misses        710      711       +1
- Partials      307      308       +1

It looks like this change is already in your other PR: https://github.com/moov-io/customers/pull/210/files#diff-b6d88306487b4c586da70e9d345a9200L168

@vxio It is in the other PR, but I thought this would end up getting merged sooner. I'll just close this and handle it in the other PR.


$ref aren't handled

Hey Mohsen,
I see the $ref is ignored at the moment. Do we plan to handle it in future?

this module is not resolving refs

I know resolution is out of the scope but, if there is a node having value in ref, it should at least show it as a ref (better if assign a href. I have implemented something like this for my own usage by modifying the rendered output of this library.
`		const rendered = renderedSchema.render();
	// make refs hyperlinked to the definitions by adding an anchor tag
	const types = rendered.getElementsByClassName('type');
	for (let i = 0; i < types.length;) {
		if (types[i].innerText.startsWith('#')) {
			const a = document.createElement('a');
			a.href = types[i].innerText;
			a.innerText = types[i].innerText.match(/([^/]+$)/)[0];
			// replacing the child removes it from "types" so no need to i++
			types[i].parentNode.replaceChild(a, types[i]);
		} else {
			i++;
		}
	}`

If you think its simple enough for you to implement into the library, that will be cool otherwise I will try to understand your code and raise a PR

raised PR regarding this. https://github.com/mohsen1/json-schema-view-js/pull/22


Cannot teleport players

I cannot teleport to other players or teleport one person to another, I get this error instead. I have not verified this on SpongeForge yet, only SpongeVanilla.

SpongeVanilla -
Minecraft: 1.11.2
SpongeAPI: 6.0.0-SNAPSHOT-e108372
SpongeVanilla: 1.11.2-6.0.0-BETA-231

This was fixed in d29616bc75a625f415a67bb98b4c1df9de70ef85


Automatically generate extractor/loader documentation from individual Meltano YAML files

Migrated from GitLab: https://gitlab.com/meltano/hub/-/issues/32
Originally created by @DouweM on 2021-01-12 23:24:15

The extractors and loaders on the hub are driven by the "old" Markdown files from meltano.com. After standardization the website should be updated to read from the YAML files.

View 16 previous comments from the original issue on GitLab


Automatically post new api versions in changelog

If we want in the releases to document every new api version included we need to develop an automated method of doing that.

Fixed by adding changelog command to apidiff.


[gh-556] clear schemes for init create and import.

Resolves #556

The fastcrypto has a breaking change, and maybe we need to lock the fastcrypto dependency to a commit hash.


Adds support for freebsd and 386 arch

What does this do / why do we need it?
Adds support for more platform
Which issue(s) does this PR fix?
fixes #1418

LGTM

That was quite quick @sdboyer 🤣.


Guarding nil-pointer for MeshConfig.ServiceSettings.Settings

To avoid nil-pointer exception, this PR guards the nil-pointer for MeshConfig.ServiceSettings.Settings.

In response to a cherrypick label: #41176 failed to apply on top of branch "release-1.12":
Applying: Avoid MeshConfig.ServiceSetting == nil
Using index info to reconstruct a base tree...
M	pilot/pkg/model/cluster_local.go
Falling back to patching base and 3-way merge...
Auto-merging pilot/pkg/model/cluster_local.go
Applying: Use fluent expression
Using index info to reconstruct a base tree...
M	pilot/pkg/model/cluster_local.go
Falling back to patching base and 3-way merge...
Auto-merging pilot/pkg/model/cluster_local.go
CONFLICT (content): Merge conflict in pilot/pkg/model/cluster_local.go
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0002 Use fluent expression
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

In response to a cherrypick label: new issue created for failed cherrypick: #41178

In response to a cherrypick label: #41176 failed to apply on top of branch "release-1.13":
Applying: Avoid MeshConfig.ServiceSetting == nil
Using index info to reconstruct a base tree...
M	pilot/pkg/model/cluster_local.go
Falling back to patching base and 3-way merge...
Auto-merging pilot/pkg/model/cluster_local.go
Applying: Use fluent expression
Using index info to reconstruct a base tree...
M	pilot/pkg/model/cluster_local.go
Falling back to patching base and 3-way merge...
Auto-merging pilot/pkg/model/cluster_local.go
CONFLICT (content): Merge conflict in pilot/pkg/model/cluster_local.go
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0002 Use fluent expression
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

In response to a cherrypick label: new issue created for failed cherrypick: #41179

In response to a cherrypick label: new pull request created: #41180

In response to a cherrypick label: new pull request created: #41181


DO NOT REVIEW

What

Why

How Tested

Process & policy checklist

[ ] I have updated the project documentation to reflect my changes if necessary.
[ ] I have read the CONTRIBUTING documentation.

Is this a breaking change?

[ ] This change causes current functionality to break.

For testing only.


[CCAP-488] - scaffold provider type

🔗 Jira ticket

✍ Description

📷 Design reference

✅ Completion tasks

[ ] Added relevant tests
[ ] Meets acceptance criteria

Every screen that is behind a feature flag should have a condition that prevents it from being displayed.

yeah, I was originally thinking that since these are just placeholders it was ok to not prevent people from seeing them, but maybe it makes sense to put that logic in place for each and every one of these new screens now... and not when each engineer picks up a ticket and works on the specific screen itself. That seems more foolproof, to just make one new class that checks the flag and it's false just redirect the person to the homepage (or whatever) instead of showing the new screen.
that would be consistent for every single new screen and just ensure that an engineer doesn't forget to do it during the implementation.
not sure if the correct way to do this is a condition on each new screen vs skipLogic. I'll defer to folks who have a bit more FFL experience than me on that, but I think @enyia21 is correct here that we should do this upfront now vs my original feelings on it. 😄

Won't adding a skip condition for each screen make testing for us really difficult? @enyia21 @cram-cfa


i18n(ko-KR): update configuration.mdx

What kind of changes does this PR include?

Changes or translations of Starlight docs site content

Description

update configuration.mdx
I am participating in Hacktoberfest, please label it (hacktoberfest-accepted)

Thanks for the translation.
I think this may be missing the changes from #881 which uses a BCP-47 language tag with a regional subtag for the "Translating labels" section example.

Thanks for the good point! I updated it.