config.yml could not be found during "openshifter create"

This error has been reported during the creation of the VM on GCE
openshifter create cluster01

and File

provider: gce
dns:
  zone: my-openshift-domain
  suffix: openshift.mydomain.com

# Generate SSH key pair: e.g. `ssh-keygen -t rsa -b 4096 -C<EMAIL_ADDRESS>-f openshift-key`
ssh:
  key: openshift-key

users:
  - username: admin
    password: password
    admin: true
  - username: user
    password: password
    sudoer: true
  - username: user
    password: password
    generic: true
    min: 0
    max: 3

nodes:
  count: 1
  infra: false
  type: n1-standard-1
  size: 10

gce:
  account: demo-384301dab612.json
  # See a list of regions & zones: https://cloud.google.com/compute/docs/regions-zones/regions-zones
  region: europe-west1
  zone: europe-west1-b
  project: stellar-spark-169312

-->
ERRO[0283] Problem reading stdout read |0: file already closed
INFO[0283] Gathering cluster information
INFO[0283] Executing Ansible
ERRO[0284] ERROR! the playbook: /Users/chmoulli/MyApplications/go-wks/src/github.com/cmoulliard/openshifter/openshift-ansible/playbooks/byo/config.yml could not be found  source=Ansible
INFO[0284] Ansible finished
INFO[0284] Gathering cluster information

For openshifter create cluster01 the file has to be named cluster01.yml

No as the code append the suffix .yml. So this is not required to pass openshifter create cluster01.yml

The missing config.yml is actually the Ansible playbooks used for installing OpenShift.
Inside /Users/chmoulli/MyApplications/go-wks/src/github.com/cmoulliard/openshifter you need to do git clone https://github.com/openshift/openshift-ansible.git && cd openshift-ansible && git checkout release-1.5

This is what I have done. Should be good to document it

Yes, should be. We need to document the tool more thoroughly. At this time the best way to understand the external dependencies is to check the Dockerfile.

Tracking in #24


Adapter stops working from time to time

I upgrade from 0.7.x to 1.0.1 several weeks ago. Since then the adapter stps reading data or writing to the objects. After restarting the adapter continues working. There are no error messages in the log. I have now setup the cron so the adapter is restarted ever x hours. That would be ok if the adapter reads and transmits the send data to the heater. Is it like this? Does the adapter read and transmit the send-data with startup?

I upgrade from 0.7.x to 1.0.1 several weeks ago. Since then the adapter stps reading data or writing to the objects. After restarting the adapter continues working. There are no error messages in the log. I have now setup the cron so the adapter is restarted ever x hours. That would be ok if the adapter reads and transmits the send data to the heater. Is it like this? Does the adapter read and transmit the send-data with startup?

I checked and unfortunately the adapter does not do an initial read/write of the IO values - it onl waits for changes or time triggers. Would be nice if an inital read/write with the start of the adapt would be added to the adapter. Thanks :) Georg

To your first post. After a adapter restart the send commands at empty. For me it is important why you have the problems after the update. It is very helpful when you give me your logs during the time when the adapter stops working. Please let run your instance in debug modus.

To the second post.....I can try to include it in a next version, but the problem is when you send a lot of commands in a row, the connection to right object is wrong.

no comment --> close


Use consistent catch blocks and exception detail messages.

This PR addresses issue #27 which is about consistent exception message handling.

This looks good to merge. Thanks!

I will merge this after PR #43 is merged in.


Domain cancelation status

Hi there,
Thanks for this wonderful package! I really appreciate that you put in this much time and effort to create such a nice package.
I've got one question, is there a possible way to check if a owned domain name is canceled?
Thanks in advance,
Ramon

Hi Ramon,
When you get the domain details you would see a cancellationDate.
{   "domain": {     "name": "example.com",     "authCode": "kJqfuOXNOYQKqh/jO4bYSn54YDqgAt1ksCe+ZG4Ud4nfpzw8qBsfR2JqAj7Ce12SxKcGD09v+yXd6lrm",     "isLocked": false,     "registrationDate": "2016-01-01",     "renewalDate": "2017-01-01",     "isWhitelabel": false,     "cancellationDate": "2017-01-01 12:00:00",     "cancellationStatus": "signed",     "isDnsOnly": false,     "tags": [       "customTag",       "anotherTag"     ]   } }

Hi Peter,
Thanks for your awnser, What are you doing to get those results?
I'm using:
->domainService()->getInfo('example.com')

But I do not get those results like yours.
Thanks in advance,
Ramon

I got those from the REST api, but that is not available for everyone, let me check what the response is. Maybe the model does not have that field, but maybe it can be added to it.

You are right, that field is not present in the result. I will contact them about it.

Thanks Peter!

Hi @petericebear
Did you hear anything in return from TransIP??
Thanks in advance!

Hi Ramon,
Sorry for late reply. The soap api wont change at this time. You can send a support ticket and ask for the activation of the REST api. I use the SOAP and REST api for some functionalities..
More info about the docs can be found here in advance: https://api.transip.nl/rest/docs.html.
If you have any more questions about it let me know.

Yes! Got in contact with them, they've enabled the REST Api for me!
Thanks for the heads up! :-)

@RamonSmit let me know if you encounter some problems. I use it with the Laravel Framework, if you need some code or help contact me.

@RamonSmit let me know if you encounter some problems. I use it with the Laravel Framework, if you need some code or help contact me.


Is it possible to get the pair which price increased by X percent in the last minute?

Hi @iluz0r , you would have to obtain all 1m candlesticks for all pairs, and then calcualte the percentage increase yourself. Please see the example folder on how to obtain candlestick data for a given pair.


Window content doesn't refresh if windows are resized via the Accessibility API

Describe the issue
When using our app Moom to resize UTM windows, window content does not automatically resize to fit. (This will also be true of other apps that resize windows using the Accessibility API.)
It appears to us that your code that does automatic resizing on window size change doesn't run if the window is resized via the Accessibility API, but does run on manual resizing. A customer recorded this video that demonstrates the issue: After resizing with Moom, the content doesn't adapt to the new window size. But as soon as the user manually adjusts the window size after using Moom, the content adapts to the new size.
If UTM implemented windowDidResize in the window's delegate or observed the didResize notification for that window, and then applied the same logic it applies when manually resizing, then the content would automatically scale when Moom (or any other app that resizes via the Accessibility API) is used to resize UTM's windows.
Configuration

UTM 4.3.5 (87)
macOS 13.5.1
Apple M1 Pro CPU

Crash log
N/A
Debug log
N/A
Upload VM
N/A

Thank you for addressing this so quickly; we (and other Accessibility API apps) and your users appreciate the support!
-rob.


Blog RSS is no longer updated

This is a...

[ ] Feature Request
[x] Bug Report

Problem:
The RSS feed for the Blog at http://blog.kubernetes.io/feeds/posts/default is no longer updated with new posts.
Proposed Solution:
Resume updating the RSS feed (or offer a new one)
Page to Update:
https://kubernetes.io/blog

Hey there! Have you checked out this link? https://kubernetes.io/feed.xml It seems to have the most up-to-date information. We've recently changed the way Kubernetes.io works under the hood and you may have found something we need to get rid of. Thanks!

@zparnold perfect, thanks! Sorry I hadn't spotted that. Dropping a redirect at the old feed address could help redirect feed readers subscribed to the old address.

Reopening as I have the same problem and a care to fix it.
I am subscribed to http://kubernetesio.blogspot.com/feeds/posts/default.  That is a redirect to http://blog.kubernetes.io/feeds/posts/default.

blog.kubernetes.io redirects to https://kubernetes.io/blog/.
http://blog.kubernetes.io/feeds/posts/default gives a completely different RSS than is at https://kubernetes.io/feed.xml.

Can someone please look into configuring Blogger to redirect the feed?  Otherwise we have potentially thousands of users who aren't getting the latest blog posts.

/cc @zacharysarah

/reopen

@craigbox Is there anything prohibiting you from updating your own subscription?
At this point, unless there's an obvious fix that's trivial to implement, we're not willing to devote time or resources to customizing Blogger. Closing this issue.

Cool URIs don't change.
I updated my own subscription because I work in this space and noticed there was a problem. There was no indication that I would have to - at the very least we could have posted something on Blogger saying "This feed isn't being updated any more, please resubscribe.
I don't know how many people have just been orphaned by this but it could conceivably be in the thousands.
https://support.google.com/feedburner/answer/78465?hl=en suggests that it is probably as easy as a new URL in the Blogger console.  I would be very happy to test and actuate this.  Who has access to the Blogger installation?

https://support.google.com/feedburner/answer/78465?hl=en suggests that it is probably as easy as a new URL in the Blogger console.

I added a FeedBurner URL pointing to https://kubernetes.io/feed.xml. Can you verify whether it's working?

31 new posts showed up in the old feed yesterday
(Hopefully the dates are OK going forward; I'll check in on this)


FR: compiler source vs target separation

currently compiler output is hard coded compiler.py#L75

that presents various problems when using transcrypt
with various external build systems

it would help to have compiler source vs target separation
and expose compiler target root directory as configurable parameter

Yes, indeed this should be in, to achieve more flexibility.

As of version 3.9.0, Transcrypt now has the --outdir command line parameter that lets you specify the build folder.


Add basic validation implementation

Closes: https://github.com/mercurius-js/validation/issues/1
Draft PR that adds a basic implementation. At the moment, I have just focussed on proving the concept for external policies:

JSON Schema (ajv)
JTD (ajv)
Functional approach (field arguments only)

This has the following caveats (which I think are okay for v1?):

Functional approach only works for arguments. I think extending this beyond arguments is pretty complicated and maybe better for future versions?
I am only considering input data. Again, for v1, I think validating on outputs is too much for the time being and just focussing on inputs is probably a better initial approach?

Let me know what you think about the above caveats and what I've done so far. The quality of the code isn't great atm as there are a lot of things to polish up, but the core ideas are there if you'd like to take an early look :)
Still to do:

[x] Directive support (using JSON Schema and external policy logic)
[x] List support
[x] Schema type inference
[x] Better options validation
[x] Make sure it works in the gateway
[x] Deduplication of code and general clean up
[x] Get coverage to 100%
[x] Add ability to register custom formats using the Ajv API
[ ] Typings
[ ] Examples
[x] Benchmarks
[ ] Documentation (inc. function docstrings)

Open Questions:

Do we want to support validation of full types for v1?

Made some more progress - next steps are to tidy things up a bit, add extra testing and then move onto:

Documentation
Types
Examples

Almost there with the documentation. I'll push that up with the examples tonight and then crack on with the typings :)

Amazing work!

Thanks! It's been very fun to code :)

Finalising the rest of the docs after a couple of changes - once that's done this afternoon I'll bring it out of draft :)


Fix test_suite outer cmake

Ensure RPP exists before finding packages and dependencies in the test suite

@kiritigowda All that's changed in this PR is endif(NOT RPP_FOUND) has moved from L94 down to L249.
Rest of the code has been tabbed in.


Wrong documentation for EU data residency

Hello,
I've encountered an issue when trying to change the host for EU data residency.
The documentation suggests the following modification:
mixpanel.init(
  "YOUR_TOKEN",
  {
    host: "https://api-eu.mixpanel.com",
  },
);

This contradicts the code, where the default config is as follows:
const DEFAULT_CONFIG = {
    test: false,
    debug: false,
    verbose: false,
    host: 'api.mixpanel.com',
    protocol: 'https',
    path: '',
};

And more importantly, it is incompatible with the way metrics.set_config overrides the host, as it would mess up the result of the split call:
metrics.set_config = function(config) {
    Object.assign(metrics.config, config);
    if (config.host) {
        // Split host into host and port
        const [host, port] =  config.host.split(':');
        metrics.config.host = host;
        if (port) {
            metrics.config.port = Number(port);
        }
    }
};

I don't know if this is the right place to ask this, but could someone edit the documentation so that host becomes api-eu.mixpanel.com?
Thank you for your help

Thanks for pointing out! We'll get this fixed on the documentation site.

This has been fixed. Thanks again for sharing with us!


MIDI single track conversion is not correct

end of track during a multi track converted to normal track happens.
it means that the conversion to single track is not completely
correct
when is 1 track there should be only 1 end of track at the end.
the others should be discarded.
it does not sound completely correct for the percussions.
So the conversion from multi track to single track must be reviewed

related to https://github.com/Raffaello/sdl2-sonic-drivers/issues/198


test job cannot run

I used podman desktop to create a kind cluster in Windows 11, and then installed the installation prompt. After executing
helm repo add kwasm http://kwasm.sh/kwasm-operator/
helm repo update
helm install -n kwasm --create-namespace kwasm kwasm/kwasm-operator
kubectl annotate node --all kwasm.sh/kwasm-node=true

kubectl apply -f https://raw.githubusercontent.com/KWasm/kwasm-node-installer/main/example/test-job.yaml

, the test job kept prompting
Error from server (BadRequest): container "wasm-test" in pod "wasm-test-gzmkj" is waiting to start: ContainerCreating

When checking the pod, the following prompt appeared.
Name:                wasm-test-gzmkj
Namespace:           default
Priority:            0
Runtime Class Name:  wasmedge
Service Account:     default
Node:                kind-cluster-control-plane/<IP_ADDRESS>
Start Time:          Thu, 19 Oct 2023 19:07:57 +0800
Labels:              batch.kubernetes.io/controller-uid=445ed769-bed3-4841-82be-08bd246dd95a
                     batch.kubernetes.io/job-name=wasm-test
                     controller-uid=445ed769-bed3-4841-82be-08bd246dd95a
                     job-name=wasm-test
Annotations:         module.wasm.image/variant: compat-smart
Status:              Pending
IP:
IPs:                 <none>
Controlled By:       Job/wasm-test
Containers:
  wasm-test:
    Container ID:
    Image:          wasmedge/example-wasi:latest
    Image ID:
    Port:           <none>
    Host Port:      <none>
    State:          Waiting
      Reason:       ContainerCreating
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-x4xkp (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  kube-api-access-x4xkp:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason                  Age                 From               Message
  ----     ------                  ----                ----               -------
  Normal   Scheduled               10m                 default-scheduler  Successfully assigned default/wasm-test-gzmkj to kind-cluster-control-plane
  Warning  FailedCreatePodSandBox  33s (x48 over 10m)  kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = failed to get sandbox runtime: no runtime for "wasmedge" is configured

How to deal with this problem

Hi @tqq1994516 ,
Thanks for reporting that problem!
I tried to reproduce that problem with podman-desktop on mac (since I have no windows machine at hand). When I used podman machine set --rootful like described in the docs, I was able to run the KWasm operator on kind successfully.
Can you reproduce the problem on Windows?
Does the installer job have any logs?
How is your podman machine configured?

Hi @tqq1994516 , Thanks for reporting that problem!
I tried to reproduce that problem with podman-desktop on mac (since I have no windows machine at hand). When I used podman machine set --rootful like described in the docs, I was able to run the KWasm operator on kind successfully.
Can you reproduce the problem on Windows? Does the installer job have any logs? How is your podman machine configured?

I checked again and it was caused by the node's pod not being ready.


How to use Arangodb as an in memory db.

My Environment

ArangoDB Version:        3.7.2
Storage Engine:             RocksDB
Deployment Mode:       Single Server
Deployment Strategy:   ArangoDB Starter
Configuration:
Infrastructure:
Operating System:        Ubuntu 16.04
Total RAM in your machine:        4Gb
Disks in use:         HDD
Used Package:               Debian or Ubuntu .deb

Component, Query & Data
Affected feature:

AQL query (if applicable):

AQL explain and/or profile (if applicable):

Dataset:

Size of your Dataset on disk:

Replication Factor & Number of Shards (Cluster only):

Steps to reproduce

Problem:
This is not a problem per se. I want to use Arangodb as an in memory database with no persistence. Because I have the 3.7.2 version the MMFiles are removed so I only have the RocksDB for database engine. Is there a way to configure RocksDB to save the data only in memory (ram) and not persist them to disk?
Expected result:

Hi,
the MMFiles storage engine also wasn't in memory only -  the indices were built up in memory on startup.
we explain how the rocksdb block caches work in this Article: https://www.arangodb.com/docs/stable/tutorials-reduce-memory-footprint.html

If you truly want everything in RAM, then create a tmpfs mount point somewhere and set your ArangoDB data directory to write directly to that mount point.

As a side note, in 3.6 and older there was an option to create volatile collection in the MMFiles storage engine:

isVolatile: If true then the collection data is kept in-memory only and not made persistent. Unloading the collection will cause the collection data to be discarded. Stopping or re-starting the server will also cause full loss of data in the collection. Setting this option will make the resulting collection be slightly faster than regular collections because ArangoDB does not enforce any synchronization to disk and does not calculate any CRC checksums for datafiles (as there are no datafiles). This option should therefore be used for cache-type collections only, and not for data that cannot be re-created otherwise. (The default is false) This option is meaningful for the MMFiles storage engine only.

https://www.arangodb.com/docs/stable/http/collection-creating.html

Thank you for your time and your recommendations. This "issue" can close from my side. Keep up the good work guys! Cheers!


Move settings logs from config.get_settings to `main.check_settings…

…` (ref #1451)
Checklist before merging

[ ] I added an appropriate entry to CHANGELOG.md
[ ] I merged main into the current branch.

Within this branch, working in tests/data/example_server_startup.

With FRACTAL_LOGGING_LEVEL=20:

$ poetry run fractalctl start

WARNING:root:FRACTAL_TASKS_DIR="Tasks" is not an absolute path; converting it to "/home/tommaso/Fractal/fractal-server/tests/data/example_server_startup/Tasks"
INFO:     Started server process [188759]
INFO:     Waiting for application startup.
2024-04-30 16:14:12,925 - fractal_server.app.db - WARNING - SQLite is supported (for version >=3.37) but discouraged in production. Given its partial support for ForeignKey constraints, database consistency cannot be guaranteed.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://<IP_ADDRESS>:8000 (Press CTRL+C to quit)

With FRACTAL_LOGGING_LEVEL=10:

$ poetry run fractalctl start

WARNING:root:FRACTAL_TASKS_DIR="Tasks" is not an absolute path; converting it to "/home/tommaso/Fractal/fractal-server/tests/data/example_server_startup/Tasks"
INFO:     Started server process [188717]
INFO:     Waiting for application startup.
2024-04-30 16:14:01,614 - fractal_server.app.db - WARNING - SQLite is supported (for version >=3.37) but discouraged in production. Given its partial support for ForeignKey constraints, database consistency cannot be guaranteed.
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - Fractal Settings:
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - PROJECT_NAME: Fractal Server
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - PROJECT_VERSION: 2.0.1
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - OAUTH_CLIENTS_CONFIG: []
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - JWT_EXPIRE_SECONDS: 84600
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - JWT_SECRET_KEY: *****
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - COOKIE_EXPIRE_SECONDS: 86400
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - DB_ENGINE: sqlite
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - DB_ECHO: False
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - POSTGRES_USER: None
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - POSTGRES_PASSWORD: *****
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - POSTGRES_HOST: localhost
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - POSTGRES_PORT: 5432
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - POSTGRES_DB: None
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - SQLITE_PATH: test.db
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - FRACTAL_DEFAULT_ADMIN_EMAIL<EMAIL_ADDRESS>2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - FRACTAL_DEFAULT_ADMIN_PASSWORD: *****
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - FRACTAL_DEFAULT_ADMIN_USERNAME: admin
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - FRACTAL_TASKS_DIR: /home/tommaso/Fractal/fractal-server/tests/data/example_server_startup/Tasks
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - FRACTAL_RUNNER_BACKEND: local
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - FRACTAL_RUNNER_WORKING_BASE_DIR: Artifacts
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - FRACTAL_LOGGING_LEVEL: 10
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - FRACTAL_LOCAL_CONFIG_FILE: None
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - FRACTAL_SLURM_CONFIG_FILE: None
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - FRACTAL_SLURM_WORKER_PYTHON: None
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - FRACTAL_SLURM_POLL_INTERVAL: 5
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - FRACTAL_SLURM_ERROR_HANDLING_INTERVAL: 5
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - FRACTAL_API_SUBMIT_RATE_LIMIT: 2
2024-04-30 16:14:01,687 - fractal_server_settings - DEBUG - FRACTAL_RUNNER_TASKS_INCLUDE_IMAGE: Copy OME-Zarr structure;Convert Metadata Components from 2D to 3D
INFO:     Application startup complete.
INFO:     Uvicorn running on http://<IP_ADDRESS>:8000 (Press CTRL+C to quit)


Fixed issue with IPv6 localhost address ::1

@LukevdPalen could you provide a test case around this?

hi !
Will you merge this p-r?
I wanna treat ipv6.

I will take a look at this today hopefully

Merged these changes in with some others

:clap:


[Feedback] docs/components/spark-operator/user-guide/gcp.md

The specified image does not exist.

/assign @ChenYi015 @mwielgus @yuchaoran2011 @vara-bonthu @jacobsalway

This is referring to gcr.io/ynli-k8s/spark:v2.3.0-gcs right?

The GCP related documentation have not been updated for years, I have no idea whether it is still applicable now.

I would suggest to remove this documentation page if that doesn't work now.

To be clear, this is the jar that works for us:
jars:
        - "local:///opt/spark/jobs/lib/gcs-connector-3.0.2-shaded.jar"

relevant hadoopConf:
fs.AbstractFileSystem.gs.impl: "com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS"
fs.gs.impl: "com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem" # testing
fs.gs.auth.service.account.enable: "false"
fs.gs.auth.type: "UNAUTHENTICATED"


Bluetooth advert packet size is size of maximum packet not size of actual data

Describe the bug
Data is being added to an advert and scan response when Bluetooth advertising is starting on an nRF5340 with a single 128-bit UUID and short 25 character device name, this results in a packet of 259 bytes being sent to the network core even though the data is no-where near this long. The problem in the code, subsys\bluetooth\host\adv.c seems to be this:
/* Set legacy data using Extended Advertising HCI commands */
static int hci_set_ad_ext(struct bt_le_ext_adv *adv, uint16_t hci_op,
			  const struct bt_ad *ad, size_t ad_len)
{
	struct bt_hci_cp_le_set_ext_adv_data *set_data;
	struct net_buf *buf;
	int err;

	buf = bt_hci_cmd_create(hci_op, sizeof(*set_data));
	if (!buf) {
		return -ENOBUFS;
	}

	set_data = net_buf_add(buf, sizeof(*set_data));
	(void)memset(set_data, 0, sizeof(*set_data));

	err = set_data_add(set_data->data, BT_HCI_LE_EXT_ADV_FRAG_MAX_LEN,
			   ad, ad_len, &set_data->len);
	if (err) {
		net_buf_unref(buf);
		return err;
	}

	set_data->handle = adv->handle;
	set_data->op = BT_HCI_LE_EXT_ADV_OP_COMPLETE_DATA;
	set_data->frag_pref = BT_HCI_LE_EXT_ADV_FRAG_DISABLED;

	return bt_hci_cmd_send_sync(hci_op, buf, NULL);
}

Here, sizeof(*set_data) is 255 bytes and this full buffer is passed via HCI to the other side rather than the actual size of the data in the buffer
Impact
Annoyance, it can be worked around by allowing a larger buffer size on the network core application but is inefficient.
Environment (please complete the following information):

OS: Windows 10
Toolchain: GNU Arm Embedded Toolchain 10.3-2021.07
Commit SHA or Version used: nRF Connect SDK 1.6.1 which uses Zephyr 2.6

Note: This would not be only advertising commands, but also other commands that are of variable length.

I wonder if "bug" is a proper label for this, as it more of an optimization request, is it not?

I think we can call it that. Actually I'm not sure what the impact on performance is here. If RPMsg is using shared memory then nothing should be "sent" in this case.
But it would be interested to know the impact of HCI over UART as well.

The reason I labelled this a bug was because we were getting advertising failed errors in our application when built for the nRF5340 but they worked fine on the nRF52840, our adverts aren't large in size and so we have to specifically add a workaround for the nRF5340 for this issue to support the large message

@thedjnK Enabling CONFIG_BT_EXT_ADV=y on hci_rpmsg would make the buffers equal size on both sides.


Add presets to Claim conditions

📝 Changed routes:

/evm/[...paths]

(view full size)

Commit a223623ebd4350445a341a030f7ea9da01635a2c (https://thirdweb-9yrh6lhtw.thirdweb-preview.com).


The application was crashed calling glfwInit and glfwTerminate  more than once

I called glfwInit and glfwTerminate more than once.
So application was crashed.
-Environment
Mac OS X 10.9.5
glfw 3.2.1
-Application Specific Information:
objc_msgSend() selector name: selectedKeyboardInputSourceChanged:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libobjc.A.dylib                   0x00007fff92e39097 objc_msgSend + 23
1   com.apple.CoreFoundation          0x00007fff93506e0c __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
2   com.apple.CoreFoundation          0x00007fff934c8f79 ____CFXNotificationPostToken_block_invoke + 137
3   com.apple.CoreFoundation          0x00007fff9346948c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
4   com.apple.CoreFoundation          0x00007fff9345aae5 __CFRunLoopDoBlocks + 341
5   com.apple.CoreFoundation          0x00007fff9345a3de __CFRunLoopRun + 814
6   com.apple.CoreFoundation          0x00007fff93459e75 CFRunLoopRunSpecific + 309
7   com.apple.HIToolbox               0x00007fff91da4a0d RunCurrentEventLoopInMode + 226
8   com.apple.HIToolbox               0x00007fff91da4685 ReceiveNextEventCommon + 173
9   com.apple.HIToolbox               0x00007fff91da45bc _BlockUntilNextEventMatchingListInModeWithFilter + 65
10  com.apple.AppKit                  0x00007fff8d5b524e _DPSNextEvent + 1434
11  com.apple.AppKit                  0x00007fff8d5b489b -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
12  a.out                             0x000000010bcf9e81 _glfwPlatformPollEvents + 113
13  a.out                             0x000000010bcf2517 glfwPollEvents + 55
14  a.out                             0x000000010bce9af8 main + 72
15  libdyld.dylib                     0x00007fff8a51e5fd start + 1

-Sample code
#include <GLFW/glfw3.h>
int main(void)
{
   GLFWwindow* window;
   for(;;){
       glfwInit();
       window = glfwCreateWindow(640, 480, "Simple example", NULL, NULL);
       glfwPollEvents();
       glfwDestroyWindow(window);
       glfwTerminate();
   }
}

there are more than one problems with your code, you should call glfwInit(); in a if statement, and you should not call glfwDestroyWindow(window); like you do, also you are calling glfwCreateWindow inside a loop, thus it is recreating a window over and over again, glfwCreateWindow should be outside the loop, try these fixes and see if they work, if not there is a bug in glfw
`#include <GLFW/glfw3.h>
int main(int argc, char* argv[])
{
GLFWwindow* window;
if(!glfwInit())
    return -1;

window = glfwCreateWindow(900, 506, "Some Window in GLFW!!!");
if(!window)
{
    glfwTerminate();
    return -1;
}

 bool isDone = false;

 while(isDone == false)
 {
     glfwPollEvents();

     if(glfwWindowShouldClose(window))
     {
         glfwDestroyWindow(window);
         glfwTerminate();
     }

     glfwSwapBuffers(window);
 }

return 0;

}`

Thank you for replying.
But this code is for reproducing crashes.
Calling glfwInit, glfwPollEvents and glfwTerminate more than once causes a crash.
I write a new sample code for eproducing crashes.
When I push closing button two or three times, this application crashes.
#include <GLFW/glfw3.h>

int my_sub_system()
{
   if (!glfwInit())
       return -1;

   GLFWwindow* window;
   window = glfwCreateWindow(640, 480, "Example", NULL, NULL);
   if (!window)
   {
       glfwTerminate();
       return -1;
   }

   while (!glfwWindowShouldClose(window))
   {

       // draw some objects

       glfwSwapBuffers(window);
       glfwPollEvents();
   }

   glfwDestroyWindow(window);
   glfwTerminate();

   return 0;
}

int main(void)
{
   for(;;){ // repeatedly call my sub system
       int error_code = my_sub_system();
       if (error_code != 0)
           return error_code;
   }
}

Definitely seems like a legit bug, i tried to reproduce your error using you code and could not get it to happen, seems like this bug is only effecting Apple systems e.g. ( i am on windows 10 ), so one from the GLFW team should look at this and see what is causing the problem, sorry i could not be of more help, i hope you find a answer to this bug.

Cannot reproduce with f48b63de38ba72c6b63825c0ae2bb355d8716ec3 on OS X 10.11.6.

This may be a genuine bug but without reproducibility I don't know that I can do anything about it.

I seem to be having a similar issue on Linux; I asked a question on Stack Overflow about a segfault I'm getting when I call glfwInit, then glfwCreateWindow, then glfwTerminate, then glfwInit again.

@samestep That is a separate issue. Please open a new issue for that.

@elmindreda Sorry about that; I thought it may possibly be the same issue. I've detailed my problem in #819.

It could be unique to the users set up and build system, if it is a legitimate bug, the only way to find it would be to configure your build system to be the same as the user to replicate the same scenario the user had, which @durswd never posted his build system configurations e.g. ( is he using XCode or building from command line using GNUC, etc., and how his projects configurations set ), giving this information can rule out any possibilities of errors on his part and solidify that this may be a actual problem , to replicate and or fix this bug more information is needed from @durswd

Sorry for lack of informations.
*build system configurations

cmake version 3.6.1
g++ 4.2.1 Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn) Target: x86_64-apple-darwin13.4.0 Thread model: posix
xcode Version 6.2 (6C131e)

@durswd Please see if the fix by @patricksnape in #826 resolves this for you.


Feature/e2e telemetry

Resolve #2330

Warning, the merge will not compile, liveState has been removed from SDK


[Feature][Config-UI] Responsive Sidebar for Better View on Smaller Windows

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Description
Takes Unnecessary Space on smaller screens

While Setting up Lake, placing the windows side by side, you can see that the sidebar takes up a lots of unnecessary space and the actual route pages are kind of hidden.

Mobile View is Mostly hidden by the sidebar

When Comes to small mobile view screens, you can see that the sidebar completely hides the viewport, in that case the user if he want to make a quick change or something with his phone, it would be impossible for him to do that.

Use case
I want to implement a responsive sidebar feature for DevLake, mostly for the above two use cases

When the user is setting up Lake
A customer might need that he has documentation in one half of the window and Lake in the another half, which gives a very smooth setup experience with a responsive sidebar.

When the user is using smaller screen size like Tablets
According to what I think, there might not be a huge number of customers using mobiles for Lake, but there can a plenty of customers using Tablets, it would be a good option to add responsiveness to the sidebar so that those users can take full advantage the main view.

Related issues
No response
Are you willing to submit a PR?

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

Code of Conduct

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

I agree, totally. @yumengwang03 @Startrekzky FYI

I agree, totally. @yumengwang03 @Startrekzky FYI

I agree too. It's nice to make it responsive here.

So, should I convert my draft PR to Ready to Review PR? @klesh & @Startrekzky, just waiting for your inputs.


Placing ball correctly on game interruptions and moving robots away if required

This address #156 and the consequences of doing it, i.e. handling the cases where just placing the ball where the foul occurred has risks of placing the ball in intersection with a robot
Requested tasks:

[X] Write repositioning system in Rulebook, Line 825.
[x] Place properly ball during

[X] ball_holding
[x] ball_handling
[x] Forceful contact

[x] Test use cases

[x] Moving only penalized robots
[x] Removing fallen robots
[X] Placing ball at alternative locations, see ball_holding/multi_robot_kid, forceful_contact/charging
[X] Moving robots away because there is no alternative locations, see goal_kick/procedure and corner/procedure

With the latest changes, this PR handle most of the cases although it has two identified bugs.

When fallen robots are removed in penalize_fallen_robots_near, they are moved twice which leads them to an unexpected position
While implementation of Indirect Free Kicks is now closer to what is specified in the rule, there are still some TODO to address.

Only the test introduced by this PR fails, see #195


cython.parallel.threadid unavailable in function arguments

It looks like this is a valid cython code.
from cython import parallel
x = parallel.threadid()
print(x)

But this is not.
from cython import parallel
print(parallel.threadid())

This might be just a symptom of a larger issue. Many things are not possible with the cython module when compiled with cython, compared to when run with python. Like accessing its module object.
import cython
x = cython

print(parallel.threadid()) looks like a bug.

Not being able to assign the cython module isn't. The Cython module isn't really a proper module, should really only be cimported (a compile-time action), and doesn't have an actual module object associated with it. It can be imported so it's possible to write pure-Python code with optional Cython features.
If you were able to assign the cython module then people would do things like:
import cython

if something():
     x = cython
else:
     class Dummy:
         def cclass(self, var):
             return var
    x = Dummy()

@x.cclass
class C:
    pass

Suddenly you've made the choice of whether C is a cdef or regular class a runtime decision rather than a compile-time decision...

Cython explicitly tracks usage of its own special "modules" in the InterpretCompilerDirectives AST transformation in ParseTreeTransforms.py. PR welcome that adds support for this.

Suddenly you've made the choice of whether C is a cdef or regular class a runtime decision rather than a compile-time decision...

That's true.
However, I wonder if that's the right way to go about it as there are more ways to try to trick the compiler. Like having an intermediate decorator calling cython.cclass. I guess Cython could benefit from having an explicit notion of "compile-time executable" code.

Cython explicitly tracks usage of its own special "modules" in the InterpretCompilerDirectives AST transformation in ParseTreeTransforms.py. PR welcome that adds support for this.

I gave it a go. I think the method ParallelRangeTransform.visit_CallNode lacks a call to self.visitchildren(node) in order to visit the functions arguments and not just the function name.
https://github.com/cython/cython/blob/f0b6dc27632e6777a1b90e66c98a8aa86d608dea/Cython/Compiler/ParseTreeTransforms.py#L1190-L1193
But when I changed self.visit(node.function) to a self.visitchildren(node), then the compiler crash much later because parallelRangeNode doesn't have a method analyse_types. I guess the traversal shouldn't recurse into the argument of a prange.
When add a call to visitchildren only when the node is not a parallel directive, then some tests fail unexplicably. And I already spent way too much time trying to reproduce the issue outside of runtest.py without any success.
I give up.

@Celelibi As far as I can tell your "add a call to visitchildren only when the node is not a parallel directive" seems to work fine. Thanks for the pointer on what needed changing - I'm not sure why it wasn't working for you.

@da-woods, for what it's worth, here's the log of runtest.py for on the tests "parallel" on your PR.
$ python3 ./runtests.py -vv --no-cpp parallel
Python 3.8.3rc1 (default, Apr 30 2020, 07:33:30)
[GCC 9.3.0]

Running tests against Cython 3.0a3 879af4af720e18ad0546102cc4b9160e828a0999
Using Cython language level 2.
Backends: c

runTest (__main__.CythonCompileTestCase)
compiling (c/cy2) parallel_compile_float_rank ... ok
runTest (__main__.CythonCompileTestCase)
compiling (c/cy2) e_cython_parallel ... ok
runTest (__main__.CythonRunTestCase)
compiling (c/cy2) and running numpy_parallel ... test_parallel_numpy_arrays (numpy_parallel)
Doctest: numpy_parallel.test_parallel_numpy_arrays ... ok
runTest (__main__.CythonRunTestCase)
compiling (c/cy2) and running parallel ...
#### 2020-05-14 13:09:33.803802
outer_parallel_section (parallel)
Doctest: parallel.outer_parallel_section ... ok
parallel_exc_replace (parallel)
Doctest: parallel.parallel_exc_replace ... ok
parallel_exceptions2 (parallel)
Doctest: parallel.parallel_exceptions2 ... ok
test_chunksize (parallel)
Doctest: parallel.test_chunksize ... FAIL
test_clean_temps (parallel)
Doctest: parallel.test_clean_temps ... ok
test_closure_parallel_privates (parallel)
Doctest: parallel.test_closure_parallel_privates ... ok
test_closure_parallel_with_gil (parallel)
Doctest: parallel.test_closure_parallel_with_gil ... ok
test_descending_prange (parallel)
Doctest: parallel.test_descending_prange ... ok
test_else_clause (parallel)
Doctest: parallel.test_else_clause ... ok
test_inner_private (parallel)
Doctest: parallel.test_inner_private ... ok
test_nan_init (parallel)
Doctest: parallel.test_nan_init ... ok
test_nested_break_continue (parallel)
Doctest: parallel.test_nested_break_continue ... ok
test_nogil_cdef_except_clause (parallel)
Doctest: parallel.test_nogil_cdef_except_clause ... ok
test_num_threads (parallel)
Doctest: parallel.test_num_threads ... ok
test_parallel (parallel)
Doctest: parallel.test_parallel ... ok
test_parallel_exc_cdef (parallel)
Doctest: parallel.test_parallel_exc_cdef ... ok
test_parallel_exc_cpdef (parallel)
Doctest: parallel.test_parallel_exc_cpdef ... ok
test_parallel_exc_nogil_swallow (parallel)
Doctest: parallel.test_parallel_exc_nogil_swallow ... ok
test_parallel_exceptions (parallel)
Doctest: parallel.test_parallel_exceptions ... ok
test_parallel_exceptions_unnested (parallel)
Doctest: parallel.test_parallel_exceptions_unnested ... ok
test_parallel_with_gil_continue_unnested (parallel)
Doctest: parallel.test_parallel_with_gil_continue_unnested ... ok
test_parallel_with_gil_return (parallel)
Doctest: parallel.test_parallel_with_gil_return ... ok
test_pointer_temps (parallel)
Doctest: parallel.test_pointer_temps ... ok
test_prange (parallel)
Doctest: parallel.test_prange ... FAIL
test_prange_break (parallel)
Doctest: parallel.test_prange_break ... ok
test_prange_continue (parallel)
Doctest: parallel.test_prange_continue ... ok
test_prange_in_with (parallel)
Doctest: parallel.test_prange_in_with ... ok
test_prange_matches_range (parallel)
Doctest: parallel.test_prange_matches_range ... ok
test_propagation (parallel)
Doctest: parallel.test_propagation ... ok
test_pure_mode (parallel)
Doctest: parallel.test_pure_mode ... ok
test_reassign_start_stop_step (parallel)
Doctest: parallel.test_reassign_start_stop_step ... ok
test_return (parallel)
Doctest: parallel.test_return ... ok
runTest (__main__.CythonRunTestCase)
compiling (c/cy2) and running parallel_swap_assign_T425 ... swap (parallel_swap_assign_T425)
Doctest: parallel_swap_assign_T425.swap ... ok
swap5 (parallel_swap_assign_T425)
Doctest: parallel_swap_assign_T425.swap5 ... ok
swap_attr_values (parallel_swap_assign_T425)
Doctest: parallel_swap_assign_T425.swap_attr_values ... ok
swap_cmp5 (parallel_swap_assign_T425)
Doctest: parallel_swap_assign_T425.swap_cmp5 ... ok
swap_list_items (parallel_swap_assign_T425)
Doctest: parallel_swap_assign_T425.swap_list_items ... ok
swap_py (parallel_swap_assign_T425)
Doctest: parallel_swap_assign_T425.swap_py ... ok
swap_recursive_attr_values (parallel_swap_assign_T425)
Doctest: parallel_swap_assign_T425.swap_recursive_attr_values ... ok
runTest (__main__.CythonRunTestCase)
compiling (c/cy2) and running pure_parallel ... prange_regression (pure_parallel)
Doctest: pure_parallel.prange_regression ... ok
prange_with_gil (pure_parallel)
Doctest: pure_parallel.prange_with_gil ... ok
prange_with_gil_call_nogil (pure_parallel)
Doctest: pure_parallel.prange_with_gil_call_nogil ... ok
run (__main__.PureDoctestTestCase)
running pure doctests in pure_parallel ... prange_regression (pure_doctest__pure_parallel)
Doctest: pure_doctest__pure_parallel.prange_regression ... ok
prange_with_gil (pure_doctest__pure_parallel)
Doctest: pure_doctest__pure_parallel.prange_with_gil ... ok
prange_with_gil_call_nogil (pure_doctest__pure_parallel)
Doctest: pure_doctest__pure_parallel.prange_with_gil_call_nogil ... ok
runTest (__main__.CythonRunTestCase)
compiling (c/cy2) and running sequential_parallel ...
#### 2020-05-14 13:09:43.883730

=== C/C++ compiler error output: ===
sequential_parallel.c: In function ‘__pyx_pf_19sequential_parallel_58test_chunksize’:
sequential_parallel.c:17361:7: warning: variable ‘__pyx_t_3’ set but not used [-Wunused-but-set-variable]
17361 |   int __pyx_t_3;
      |       ^~~~~~~~~
sequential_parallel.c: In function ‘__pyx_pf_19sequential_parallel_68test_inner_private’:
sequential_parallel.c:19519:7: warning: variable ‘__pyx_t_4’ set but not used [-Wunused-but-set-variable]
19519 |   int __pyx_t_4;
      |       ^~~~~~~~~
====================================
outer_parallel_section (sequential_parallel)
Doctest: sequential_parallel.outer_parallel_section ... ok
parallel_exc_replace (sequential_parallel)
Doctest: sequential_parallel.parallel_exc_replace ... ok
parallel_exceptions2 (sequential_parallel)
Doctest: sequential_parallel.parallel_exceptions2 ... ok
test_chunksize (sequential_parallel)
Doctest: sequential_parallel.test_chunksize ... ok
test_clean_temps (sequential_parallel)
Doctest: sequential_parallel.test_clean_temps ... ok
test_closure_parallel_privates (sequential_parallel)
Doctest: sequential_parallel.test_closure_parallel_privates ... ok
test_closure_parallel_with_gil (sequential_parallel)
Doctest: sequential_parallel.test_closure_parallel_with_gil ... ok
test_descending_prange (sequential_parallel)
Doctest: sequential_parallel.test_descending_prange ... ok
test_else_clause (sequential_parallel)
Doctest: sequential_parallel.test_else_clause ... ok
test_inner_private (sequential_parallel)
Doctest: sequential_parallel.test_inner_private ... ok
test_nan_init (sequential_parallel)
Doctest: sequential_parallel.test_nan_init ... ok
test_nested_break_continue (sequential_parallel)
Doctest: sequential_parallel.test_nested_break_continue ... ok
test_nogil_cdef_except_clause (sequential_parallel)
Doctest: sequential_parallel.test_nogil_cdef_except_clause ... ok
test_parallel_exc_cdef (sequential_parallel)
Doctest: sequential_parallel.test_parallel_exc_cdef ... ok
test_parallel_exc_cpdef (sequential_parallel)
Doctest: sequential_parallel.test_parallel_exc_cpdef ... ok
test_parallel_exc_nogil_swallow (sequential_parallel)
Doctest: sequential_parallel.test_parallel_exc_nogil_swallow ... ok
test_parallel_exceptions (sequential_parallel)
Doctest: sequential_parallel.test_parallel_exceptions ... ok
test_parallel_exceptions_unnested (sequential_parallel)
Doctest: sequential_parallel.test_parallel_exceptions_unnested ... ok
test_parallel_with_gil_continue_unnested (sequential_parallel)
Doctest: sequential_parallel.test_parallel_with_gil_continue_unnested ... ok
test_parallel_with_gil_return (sequential_parallel)
Doctest: sequential_parallel.test_parallel_with_gil_return ... ok
test_pointer_temps (sequential_parallel)
Doctest: sequential_parallel.test_pointer_temps ... ok
test_prange (sequential_parallel)
Doctest: sequential_parallel.test_prange ... ok
test_prange_break (sequential_parallel)
Doctest: sequential_parallel.test_prange_break ... ok
test_prange_continue (sequential_parallel)
Doctest: sequential_parallel.test_prange_continue ... ok
test_prange_in_with (sequential_parallel)
Doctest: sequential_parallel.test_prange_in_with ... ok
test_prange_matches_range (sequential_parallel)
Doctest: sequential_parallel.test_prange_matches_range ... ok
test_propagation (sequential_parallel)
Doctest: sequential_parallel.test_propagation ... ok
test_pure_mode (sequential_parallel)
Doctest: sequential_parallel.test_pure_mode ... ok
test_reassign_start_stop_step (sequential_parallel)
Doctest: sequential_parallel.test_reassign_start_stop_step ... ok
test_return (sequential_parallel)
Doctest: sequential_parallel.test_return ... ok
runTest (__main__.CythonCompileTestCase)
compiling (c/cy2) breaking_loop ...
=== C/C++ compiler error output: ===
breaking_loop.c:1418:12: warning: ‘__pyx_f_13breaking_loop_func’ defined but not used [-Wunused-function]
 1418 | static int __pyx_f_13breaking_loop_func(CYTHON_UNUSED Py_ssize_t __pyx_v_n) {
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
====================================
ok
runTest (__main__.CythonCompileTestCase)
compiling (c/cy2) cimport_openmp ... ok
runTest (__main__.CythonCompileTestCase)
compiling (c/cy2) setup ... ok
runTest (__main__.CythonCompileTestCase)
compiling (c/cy2) simple_sum ... ok

======================================================================
FAIL: test_chunksize (parallel)
Doctest: parallel.test_chunksize
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.8/doctest.py", line 2204, in runTest
    raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for parallel.test_chunksize
  File "/home/celelibi/code/cython/TEST_TMP/run/c/parallel/parallel.cpython-38-x86_64-linux-gnu.so", line unknown line number, in test_chunksize

----------------------------------------------------------------------
File "/home/celelibi/code/cython/TEST_TMP/run/c/parallel/parallel.cpython-38-x86_64-linux-gnu.so", line ?, in parallel.test_chunksize
Failed example:
    test_chunksize()
Expected:
    45
    45
    45
Got:
    45
    270
    360

======================================================================
FAIL: test_prange (parallel)
Doctest: parallel.test_prange
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.8/doctest.py", line 2204, in runTest
    raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for parallel.test_prange
  File "/home/celelibi/code/cython/TEST_TMP/run/c/parallel/parallel.cpython-38-x86_64-linux-gnu.so", line unknown line number, in test_prange

----------------------------------------------------------------------
File "/home/celelibi/code/cython/TEST_TMP/run/c/parallel/parallel.cpython-38-x86_64-linux-gnu.so", line ?, in parallel.test_prange
Failed example:
    test_prange()
Expected:
    (9, 9, 45, 45)
Got:
    (9, 9, 360, 45)

----------------------------------------------------------------------
Ran 88 tests in 25.571s

FAILED (failures=2)
Times:
compile-c   :    19.37 sec  (  10,  1.937 / run) - slowest: 'c:parallel' (7.26s), 'c:sequential_parallel' (6.91s), 'c:parallel_swap_assign_T425' (2.02s), 'c:pure_parallel' (1.14s), 'c:numpy_parallel' (0.87s), 'c:setup' (0.32s), 'c:parallel_compile_float_rank' (0.23s), 'c:simple_sum' (0.21s)
cython      :     5.46 sec  (  11,  0.497 / run) - slowest: 'c:parallel' (1.72s), 'c:sequential_parallel' (1.64s), 'c:e_cython_parallel' (1.05s), 'c:parallel_compile_float_rank' (0.39s), 'c:numpy_parallel' (0.35s), 'c:parallel_swap_assign_T425' (0.17s), 'c:pure_parallel' (0.07s), 'c:cimport_openmp' (0.02s)
import      :     0.00 sec  (   5,  0.001 / run) - slowest: 'c:parallel' (0.00s), 'c:sequential_parallel' (0.00s), 'c:numpy_parallel' (0.00s), 'c:parallel_swap_assign_T425' (0.00s), 'c:pure_parallel' (0.00s)
pyimport    :     0.00 sec  (   1,  0.000 / run) - slowest: 'py:pure_parallel' (0.00s)
pyrun       :     0.00 sec  (   1,  0.001 / run) - slowest: 'py:pure_parallel' (0.00s)
run         :     0.33 sec  (   5,  0.066 / run) - slowest: 'c:parallel' (0.32s), 'c:sequential_parallel' (0.01s), 'c:numpy_parallel' (0.00s), 'c:parallel_swap_assign_T425' (0.00s), 'c:pure_parallel' (0.00s)
ALL DONE

The test failure doesn't depend on the C or C++ backend, doesn't depend on the compiler optimizations, doesn't depend on the version of python that runs runtest.py.
I know the tests passed on travis, but I would suggest not to dismiss this issue right away as it might be the symptom of a race condition.

Thanks for the output. I'm quite puzzled by it though. When I compare the .c file from tests/run/parallel.pyx (i.e. the two tests that are failing) with and without my PR the only differences are due to the extra test I added. If I revert the extra test I added then diff tells me that they're identical.
So I don't know I'm afraid... I guess the PR should be treated with caution because of what you say but I really don't understand where the differences could be coming from.


.obsidian.vimrc not working

When I map without the vimrc (just type :imap jk <Esc> in Obsidian) it works, but none of the mappings work when I put them in the .obsidian.vimrc unless I enable vim mode display which is super buggy. Im on MacOS.

Can you open the Obsidian Developer Console (Cmd+Shift+I), restart Obsidian and paste the logs you see in the Console tab when you open the app and then some note?

Uncaught (in promise) Error: ENOENT: no such file or directory, scandir '/Users/howard/OneDrive/Obsidian Vault/css-snippets'
main.ts:94 Error loading vimrc file .obsidian.vimrc from the vault root Error: ENOENT: no such file or directory, open '/Users/howard/OneDrive/Obsidian Vault/.obsidian.vimrc'
It says there is no such file .obsidian.vimrc

Can you copy the complete console from the very beginning? I want to see the initialization log of the plugin.
Which version of the plugin are you using, is it the latest 0.5.0? And which version of Obsidian?

I'm using version 0.5.0 of the plugin and v0.13.14 of Obsidian
Obsidian Developer Console
main.ts:85 Vimrc plugin: using CodeMirror 6 mode
main.ts:94 Error loading vimrc file .obsidian.vimrc from the vault root TypeError: Cannot read property 'cm' of undefined
    at VimrcPlugin.getCodeMirror (eval at <anonymous> (app.js:1), <anonymous>:530:95)
    at VimrcPlugin.readVimInit (eval at <anonymous> (app.js:1), <anonymous>:538:33)
    at eval (eval at <anonymous> (app.js:1), <anonymous>:452:70)

I couldn't recreate this to verify, but I think I know what went wrong. Can you check if 0.5.1 that I just released fixes the issue?

just checked version 0.5.1 still doesn't work, though there are no longer any errors in the console.

I'm having the same issue as well

Which editor are you guys using, the legacy or the new one?
On Fri, Dec 24, 2021, 09:58 yarinm @.***> wrote:

I'm having the same issue as well
—
Reply to this email directly, view it on GitHub
https://github.com/esm7/obsidian-vimrc-support/issues/71#issuecomment-1000709654,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACRZ2YDYXHAYY4GXHENHBP3USQR3NANCNFSM5KUUQOKQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you commented.Message ID:
@.***>

I'm trying to find more hints because I can't recreate this in any combination that I try, nor find a theoretical cause. @kg-h you originally wrote "unless I enable vim mode display". Does it mean that when you turn on "Vim mode display" in the plugin settings, your Vimrc works?!
Also, if one of you guys can attach a screenshot of the plugin settings pane and your Vimrc file (plus its full name) it can help.

@esm7 It works if I enable vim mode display, though vim mode display does not work properly as the insert mode display is still enabled when i escape to normal mode.

In the same Developer Console as previously, can you type the following when a note is open and send me the results?

app.workspace.activeLeaf.view.sourceMode.cmEditor
app.workspace.activeLeaf.view.sourceMode.cmEditor.cm
app.workspace.activeLeaf.view.sourceMode.cmEditor.cm.cm
For the last two, if you get something other than undefined, a screenshot or copy of the expanded output could be helpful.

Obsidian Developer Console
main.ts:85 Vimrc plugin: using CodeMirror 6 mode
main.ts:30 loading markdown-table-editor plugin
app.workspace.activeLeaf.view.sourceMode.cmEditor
CodeMirror {options: {…}, doc: Doc, display: Display, state: {…}, curOp: null, …}curOp: nulldisplay: Display {input: TextareaInput, scrollbarFiller: div.CodeMirror-scrollbar-filler, gutterFiller: div.CodeMirror-gutter-filler, lineDiv: div.CodeMirror-code, selectionDiv: div, …}doc: Doc {children: Array(10), size: 250, height: 5022, parent: null, first: 0, …}options: {mode: "templater", theme: "obsidian", lineWrapping: true, styleActiveLine: true, configureMouse: ƒ, …}state: {keyMaps: Array(1), overlays: Array(1), modeGen: 4, overwrite: false, delayingBlurEvent: false, …}_handlers: {beforeSelectionChange: Array(1), gutterClick: Array(1), changes: Array(2), viewportChange: Array(1), fold: Array(1), …}__proto__: Object
app.workspace.activeLeaf.view.sourceMode.cmEditor.cm
undefined
app.workspace.activeLeaf.view.sourceMode.cmEditor.cm.cm
VM143:1 Uncaught TypeError: Cannot read property 'cm' of undefined
    at <anonymous>:1:54
(anonymous) @ VM143:1

It seems like the plugin detects that you are using the new CM6 editor, but the actual editor object is the legacy one.

Do you have "Use legacy editor" turned on in your Editor settings?
Do you mind to also check the value of this.app.vault.config.legacyEditor in the Developer Console?

Yea I have use legacy editor enabled

app.vault.config.legacyEditor
undefined

I just turned off legacy editor and now it works.

I'm shooting in the dark and guessing that if you turn legacy editor back on, it will now work too. Is that right?
The code that detects the legacy editor seems to be imperfect, I'll look for another way to do it.

yea it behaves the same, works though vim display mode seems to be enabled with the blinking cursor.

Had the same issue. Legacy Editor was enabled in settings, but that didn't take any effect with this plugin. After turning legacy editor off and on again - things started working fine.
I think the reason for that is that when you get a pop-up asking if you want to keep legacy editor or not (with one of last obsidian updates), selecting the legacy editor option doesn't modify the .obsidian/app.json file properly (the legacyEditor option isn't added). But after I've disabled and re-enabled the option manually, I can see the app.json was modified with new config option being added:
-  "autoPairBrackets": false
+  "autoPairBrackets": false,
+  "legacyEditor": true

Indeed, you diagnosed the root cause correctly. I asked for a solution in the Discord dev channel and got a few suggestions, didn't have time to implement yet, hopefully next week.


Ability to expose k8s Service addresses over BGP

I have calico configured and worked very well - its a very cool add on to K8s.  Access to my pods are working directly using BGP to my router.
While pod access is cool, it would be better to use my service IPs since they are more stable than pod IPs - Is there any method to expose the service CIDR range either through BGP or possibly using a front end BIRD router?  Or any other crazy ideas someone may have?
Thanks for any thoughts.

Sorry for the long delay on this.
This is something that can't be done out of the box today, but some users have managed to make it work with other mechanisms.
I think this is something we should try to do.

@caseydavenport, would you happen to have links to examples of how others have done this?
We'd like our Service CIDR to be routable as well.
I struggle to understand what the proper routing setup for this would be.
Would you just route to all nodes?

@stealthybox I'm afraid I don't have much on hand. This article touches on it, but doesn't go into many implementation details: https://kubernetes.io/blog/2016/10/kubernetes-and-openstack-at-yahoo-japan/
A simple solution would for each node to advertise the entire service IP range. Calico won't do this by default, but some minor modifications to the BIRD configuration should do it.
The obvious next solution is to only advertise the routes from nodes that actually have pods in that service - that's a bit trickier and probably needs some more thought.

Here's another anecdote with manual route configuration in the network core:
https://medium.com/@kyralak/accessing-kubernetes-services-without-ingress-nodeport-or-loadbalancer-de6061b42d72

related issues for modifying export filters:

https://github.com/projectcalico/calico/issues/1604
https://github.com/projectcalico/calicoctl/issues/1138

does not solve adding custom, arbitrary static routes

@caseydavenport
I got this working by modifying the BIRD config templates in the calico/node container.
for /etc/calico/confd/templates/bird_aggr.cfg.template

create a template variable, $servicesubnet, for the k8s service CIDR
add $servicesubnet as a static blackhole route
create two functions to accept and reject $servicesubnet

for /etc/calico/confd/templates/bird_ipam.cfg.template

in calico_pools which serves as the BGP session export filter, call accept_servicesubnet()
in calico_ipip which serves as the kernel routing table export filter, call reject_servicesubnet()

We need to reject the service CIDR from being exported to the kernel routing table because it will interfere with kube-proxy when used in iptables mode. (I think it would also break ipvs).
This is for ipv4, for ipv6, use the bird6 templates.
I'd be happy to contribute my changes to calico node if we want to support a mechanism for exporting arbitrary BGP subnets without exporting them to the kernel.
There may be a more robust way to acceptably represent this configuration as well.

The obvious next solution is to only advertise the routes from nodes that actually have pods in that service - that's a bit trickier and probably needs some more thought.

This would be really cool.
A good way to do it would be to mange a separate set of pools that are sourced from a Services Controller on the kubernetes API.
The same controller could be responsible for ClusterIP and ExternalIP.
Maybe even use calico IPAM for services of type Loadbalancer? (although metallb is already good at this part).

By the way, if you do this, you'll want to run kube-proxy with --mode=ipvs.
kubeadm config snippet:
kubeProxy:
  config:
    mode: ipvs
    clusterCIDR: {{ your subnet here }}

When running in IPVS, the IP's actually "exist" virtually in the linux kernel, which means that they will properly respond to ICMP and reject connections to non-listening ports.
When using IPTables, the routing is more of a special case side-effect which can get you into routing loops with ICMP and hanging connections when there's nothing on the port.

@stealthybox Can you share your templates.  I’ve tried replicating what you’ve done but having no success.  I want to be able to advertise the service network (ClusterIP) via Bird/Calico for OpenShift 3.10, but hitting a wall.

@zeca-pereira This is what we have deployed.
bird_aggr.cfg.template
# Generated by confd

{{/* servicesubnet_split -- a list of subnet strings
  Implemntation Detail for exposing the k8s service subnet in this BIRD config
  details:
    https://github.com/projectcalico/calico/issues/1008#issuecomment-403242510
*/}}
{{ $servicesubnet_split := split "<IP_ADDRESS>/18" " " }}

# ------------- Static black hole addresses -------------
protocol static {

{{if ls "/"}}
{{range ls "/"}}
{{$parts := split . "-"}}
{{$cidr := join $parts "/"}}
   route {{$cidr}} blackhole;
{{end}}

   # kubernetes service subnets
{{range $servicesubnet_split}}
   route {{.}} blackhole;
{{end}}
}
{{else}}# No static routes configured.{{end}}

function accept_servicesubnet () {
{{range $servicesubnet_split}}
  if ( net = {{.}} ) then { accept; }
  if ( net ~ {{.}} ) then { reject; }
{{end}}
}
function deny_servicesubnet () {
{{range $servicesubnet_split}}
  if ( net = {{.}} ) then { reject; }
  if ( net ~ {{.}} ) then { reject; }
{{end}}
}

# Aggregation of routes on this host; export the block, nothing beneath it.
function calico_aggr ()
{
{{range ls "/"}}
{{$parts := split . "-"}}
{{$cidr := join $parts "/"}}
{{$affinity := json (getv (printf "/%s" .))}}
  {{if $affinity.state}}
      # Block {{$cidr}} is {{$affinity.state}}
    {{if eq $affinity.state "confirmed"}}
      if ( net = {{$cidr}} ) then { accept; }
      if ( net ~ {{$cidr}} ) then { reject; }
    {{end}}
  {{ else }}
      # Block {{$cidr}} is implicitly confirmed.
      if ( net = {{$cidr}} ) then { accept; }
      if ( net ~ {{$cidr}} ) then { reject; }
  {{ end }}
{{end}}
}

bird_ipam.cfg.template
# Generated by confd
filter calico_pools {
  calico_aggr();
  accept_servicesubnet();
{{range ls "/v1/ipam/v4/pool"}}{{$data := json (getv (printf "/v1/ipam/v4/pool/%s" .))}}
  if ( net ~ {{$data.cidr}} ) then {
    accept;
  }
{{end}}
  reject;
}

{{$network_key := printf "/bgp/v1/host/%s/network_v4" (getenv "NODENAME")}}{{$network := getv $network_key}}
filter calico_ipip {
  deny_servicesubnet();
{{range ls "/v1/ipam/v4/pool"}}{{$data := json (getv (printf "/v1/ipam/v4/pool/%s" .))}}
  if ( net ~ {{$data.cidr}} ) then {
{{if $data.ipip_mode}}{{if eq $data.ipip_mode "cross-subnet"}}
    if defined(bgp_next_hop) && ( bgp_next_hop ~ {{$network}} ) then
      krt_tunnel = "";                     {{/* Destination in ipPool, mode is cross sub-net, route from-host on subnet, do not use IPIP */}}
    else
      krt_tunnel = "{{$data.ipip}}";       {{/* Destination in ipPool, mode is cross sub-net, route from-host off subnet, set the tunnel (if IPIP not enabled, value will be "") */}}
    accept;
  } {{else}}
    krt_tunnel = "{{$data.ipip}}";         {{/* Destination in ipPool, mode not cross sub-net, set the tunnel (if IPIP not enabled, value will be "") */}}
    accept;
  } {{end}} {{else}}
    krt_tunnel = "{{$data.ipip}}";         {{/* Destination in ipPool, mode field is not present, set the tunnel (if IPIP not enabled, value will be "") */}}
    accept;
  } {{end}}
{{end}}
  accept;                                  {{/* Destination is not in any ipPool, accept  */}}
}

@stealthybox I can’t thank you enough for this.  It’s working flawlessly.  I’ve even tested Anycast for specific services, advertising /32’s.  I may contribute some code to Calico that tracks nodes with pods backing a service (query kube-proxy), advertising /32’s from those nodes.  I think this is the next logical step and is an efficiency improvement.  It will allow folks to leverage ToR based ECMP for Anycast addresses.  Again, thank you!

sure thing, @zeca-pereira
that took me a while to put together, so I'm glad others can make the config workable
notice servicesubnet_split is a list, so if you'd like to shard your routing of that subnet more evenly across your nodes, you can split it up in that config.
it's also possible to load that value from etcd using confd, but it's not part of any calico API object yet.
/cc @caseydavenport -- lmk if this is still something you're interested in supporting in Calico

@stealthybox it certainly is!
From a quick look at the config, it looks like you've:

Added a static route for the service subnet
Adjusted the Calico export filter to allow export of that subnet.

Is that right? I think that's a really good start. Have you thought at all how it might be exposed through the Calico configuration model? Also, ultimately I'd like to support advertising only from nodes that have a pod in a given service.

yep, that's accurate:

in calico_pools which serves as the BGP session export filter, call accept_servicesubnet()
in calico_ipip which serves as the kernel routing table export filter, call reject_servicesubnet()

As far as advertising services from their specific nodes, we might be able to create a Service controller that manages a separate set of Calico IP pools? https://github.com/projectcalico/calico/issues/1008#issuecomment-403248155
This would be added to calico-kube-controllers and basically do what kube-proxy does with IPTables/IPVS but for exposing BGP /w Calico instead
This operates on individual ClusterIP's though which is more granular than the subnet aggregation we use for Pod IP's.
If the advertisements took some time to change to other nodes, that would be okay since every Node should be capable of routing to the ClusterIP anyway, but you might want to wait some period before deleting routes since you would want to avoid a situation where a Service was not routable because no Nodes were advertising.
WDYT?

@stealthybox I think that sounds really good to me.
I think I'd like to structure the work like so:
Part 1: Start with the simple template changes, like you've done, but configured through an environment varaible (e.g. CALICO_CLUSTERIP_RANGE)
Part 2: Add support for configuring static routes to a particular node to the Calico data model through the data store.
Part 3: Write a controller which programs the static routes based on k8s ClusterIPs and ExternalIPs.
Part 1 should be dead simple, and I think a really useful increment. I'd like to think through part 2 and 3 a bit more though, but I think that can happen in parallel with implementing 1.
Does that make sense?

@caseydavenport
I'm following.
We'll need to spec the API for part 2.
I suppose I will patch part 1 here and update docs somewhere: https://github.com/projectcalico/node/tree/master/filesystem/etc/calico/confd/templates

I believe @neiljerram and @briansan are working on this for Calico v3.4.0. 🎉

Hi,
I have deployed cluster version 3.4.0 this weekend. Etcd is know V3, here is an updated version of the work of @stealthybox.
in case it could help someone until an official release.
to apply i have found that kill -hup of confd update the conf files. Path remain the same.
bird_aggr.cfg.template.v3.txt
bird_ipam.cfg.template.v3.txt

I've just found that advertising services with externalTrafficPolicy=Cluster from Route Reflector nodes (not using BGP full-mesh) puts the Route Reflectors in the data path (Note: not using ECMP)
Is this considered?
Thank you

@grandich I don't think that's expected, but we very well could have a bug there. We've had a similar issue with RRs in the past.
Is your RR peered with an eBGP peer? I could imaging we would be replacing the next hop for eBGP peerings on RRs. Probably worth opening another issue for.

thanks @caseydavenport opened #3365


Settings editor saves settings.json lines with trailing whitespace

Windows Terminal version (or Windows build number)
1.9.1942.0
Other Software
No response
Steps to reproduce
I have my settings.json tracked in a dotfiles git repo. Recently (now that settings UI is available) I've noticed that the settings.json is save with a trailing space after a name. This appears to be the case when the name is an array or object whose contents continue onto the next line (i.e. the space after the name is always added without considering whether a string value or array/object value will follow.
Expected Behavior
Lines are trimmed when saving
Actual Behavior
Extra spaces are left behind for entries which span multiple lines.

Can you give a specific example? I think I'm having a hard time trying to mentally picture what's wrong here.

Sure, the specific cases where I see this is happening on my settings.json are listed below, where an extra trailing whitespace character is added.

.actions[].command
.profiles
.profiles.defaults
.profiles.list
.profiles.schemes

For all of these cases the space is added after the name and colon, but before the value is added, which happens to be on the next line. Instead, I'd expect either to trim each string, or better to use the context to only add the space separator if the next character to be added is not a newline. I haven't taken a look at the code to see how it's handled, but it's curious that .actions is not written with the trailing space, perhaps it gets special handling?
For the case of .actions[].command, what is actually emitted is:
{
    "$schema": "https://aka.ms/terminal-profiles-schema",
    "actions":
    [
        {
            "command": "find", //mrjoel: note that string values on single line are fine, but object values later are not
            "keys": "ctrl+shift+f"
        },
        {
            "command":␣ // mrjoel: '␣' visually represents literal space character here
            {
                "action": "splitPane",
                "split": "auto",
                "splitMode": "duplicate"
            },
            "keys": "alt+shift+d"
        }
    ],

What is expected is below, note the lack of trailing space (fake depicted as '␣' to be easier to visualize in the diff).
-            "command":␣
+            "command":

these docs for jsoncpp are relevant. IIRC the flag was enableYAMLCompatibility. I could have swore we had this, even some time after #2515

@zadjii-msft Hello. Does it suggest that it's an upstream issue? This issue still exists in Windows Terminal Version: 1.19.10573.0. Renaming settings.json and let the WT recreate a default json file have trailing whitespaces too.

I'm not sure! Someone would have to dig into the codebase and make sure we're setting that whenever we're saving the settings. If we are, then yea, I'd bet it's an upstream issue.

these docs for jsoncpp are relevant. IIRC the flag was enableYAMLCompatibility. I could have swore we had this, even some time after #2515

@zadjii-msft Hello. Does it suggest that it's an upstream issue? This issue still exists in Windows Terminal Version: 1.19.10573.0. Renaming settings.json and let the WT recreate a default json file have trailing whitespaces too.

Looks like a known upstream issue at jsoncpp https://github.com/open-source-parsers/jsoncpp/pull/1154


How do we make sure we can release new versions?

Hey everyone,
So as you might've seen in the README we are currently blocked from releasing new versions because no one maintaining this project has an Apple developer subscription. They are $100 a year and no one of the maintainers has any other use for such a subscription, so it makes no sense to purchase such subscription for this reason only.
After adding that info to the README I got a few people contacting me about wanting to help (big thanks!), but between the time I added that info and now Apple changed how they handle Safari extensions. Before you could just compile your extension in Safari, get a .safariextz and use that binary to share your extension. No person dependency. Now it seems like you must publish your extension to the Safari gallery (see #99).
This makes it really hard because someone will have to own this extension in the gallery, and having a person dependency in an open-source world is never a good idea. So even though one of these fine gentlemen who contacted me during the past days would submit a new version of the extension we would be tied to their account for new versions. Not ideal.
Me and @jad talked via e-mail and he proposed crowd funding a subscription. That got me thinking we could maybe have a special account that multiple people have access to just for this purpose (if that's allowed). I think this is a good idea, and I don't think $100 would take too long to collect.
I would appreciate your opinions on this, and if people think crowd funding a subscription is a good idea I will set it up.
@guyht @jad

So even though one of these fine gentlemen who contacted me during the past days would submit a new version of the extension we would be tied to their account for new versions. Not ideal.

It's true that it's not ideal, though IIRC apps can be transferred between accounts and I think the bundle ID can stay the same (should be confirmed though).
Also, multiple people can have access to a single developer account and multiple people can publish apps through that account, so it would never be gated on one person anyway just to get a new version out.

Me and @jad talked via e-mail and he proposed crowd funding a subscription.

I don't think I ever proposed crowd funding FWIW. I have an account I pay for every year anyway, and I'm a Vimari user and I want it to work in Safari 12, so I'm fine just publishing the extension under my account. I understand the other legitimate concerns about ownership, but I just want to be clear that I'm willing to do this on my own without collecting money from anyone.

That got me thinking we could maybe have a special account that multiple people have access to just for this purpose (if that's allowed).

I think this would be fine if you wanted to try it. It's not that much different than the previous setup though, because the account is still ultimately owned by one person.
Another thing to consider is that if people contribute money, what, if any, obligations should be upheld in return. For example, one could imagine a commitment to keep the extension published and updated to support new operating system versions over the course of a year at a minimum. Maybe critical bug fixes too. Then you'd have to think about if it also includes any kind of active feature development. Whatever the decision is, that should be made clear when asking for monetary contributions.

Also, multiple people can have access to a single developer account and multiple people can publish apps through that account, so it would never be gated on one person anyway just to get a new version out.

That's even better, I wasn't aware of that. Looking at Apple's website it looks like it's $99 to have a team membership too.

I don't think I ever proposed crowd funding FWIW. I have an account I pay for every year anyway, and I'm a Vimari user and I want it to work in Safari 12, so I'm fine just publishing the extension under my account.

Sorry for putting words in your mouth, my apologies. That's how I interpreted it.

I understand the other legitimate concerns about ownership, but I just want to be clear that I'm willing to do this on my own without collecting money from anyone.

I really appreciate that, and I don't want to collect money from people just for the fun of it but sharing this responsibility would feel better. And it would also take the potential burden off of anyone owning this extension in the gallery. Being responsible on your own for these things can be stressful, and even though this project does not get a lot of bug reports or feature requests right now I think it will attract more attention once we're unblocked from releasing new versions.

Another thing to consider is that if people contribute money, what, if any, obligations should be upheld in return. For example, one could imagine a commitment to keep the extension published and updated to support new operating system versions over the course of a year at a minimum. Maybe critical bug fixes too. Then you'd have to think about if it also includes any kind of active feature development. Whatever the decision is, that should be made clear when asking for monetary contributions.

A very good point, I was just thinking about this just before writing this actually. Open Collective has useful information about this and examples on how other projects handle this. I completely agree with you. Asking for money for this should be handled carefully and with full transparency.

What I'm looking for in this issue are thoughts on starting a funding campaign for a Apple team subscription. I'm willing to write up a summary of what it would mean to get us funded, in terms of commitment towards this extension. I like what @jad mentioned above about committing to fixing critical bugs etc. I am committing to working on this extension for the upcoming year, if we are able to release new versions.
Use this post to vote for if you think we should start a crowd funding campaign. If you want to explain your vote in a comment then please do. Thank you.

ill contribute $20,
also i have a developer subscription already if you want
as for packaging it with the app store you can most likely use fastlane to do it easy, and quickly
https://fastlane.tools

Thanks for voting everyone, when writing this there's 8 👍's and to me that's enough to start this process. I've put together a document where I specify everything a potential donator would like to know, and I've setup a donation button. Please read it. If you feel like something is missing or something is wrong, let me know.

I'm going on vacation out of the country for a few days now, so I won't be able to update the README with the new status. Will update asap when I'm back!

We are funded, people! It's so cool to see people coming together for this. I had to add a few dollars to the goal because of unforeseen PayPal fees, I think I added maybe $7 to the total.
I want to say thank you but I'm not sure if that's the right word to use, because it's like we're all helping each other. I can say though that people have been very generous, and that's so cool.
I just used the money to enroll into the Apple Developer Program, and I will start looking into how to put the extension on the Safari Extension store as soon as possible. I'll create a new issue to keep you all updated on the latest news. I feel like that is part of the crowdfunding process - to be transparent about what I'm doing with the money you donated.


cancel_order fix commit 1

I rewrote the cancel_order function, as there was a bug that made it unworkable. There were If Else statements that were out of place and an Else statement that blocked the cancel_order from posting.
I also added the functionality for the open order's dictionary to be passed as well as the order_id string.

@Jamonek FYI - this should address issue #107

@Jamonek Hold the phone. There is still a bug I'm working on. Most updated commit as of now is "cancel_order fix commit 2", which I haven't sent over yet. Running into AttributeError: 'Robinhood' object has no attribute 'endpoints'.

@Jamonek @jasonleehodges Either of you guys want to have a crack at this? I changed the If order_id is str to if isinstance(order_id, str): because that wasn't working either. Now it can actually check what the type of the input is. Also cleaned up the If Else statement problems and added the ability to pass either the dictionary of an open order or the open order's id string.
I'm running into this, though:
order = self.session.get(self.endpoints['orders'] + order_id, timeout=15).json()
AttributeError: 'Robinhood' object has no attribute 'endpoints'
I don't have much API experience so your help would be appreciated here.  I tried changing self.endpoints['orders']  to self.endpoints.orders() because I saw that used in above functions but I got the same thing.
Let me know if you need me to create a pull request or if https://github.com/aamazie/Robinhood/blob/master/Robinhood/Robinhood.py is good enough.


how to continue training?

My training is interrupted, and I want to continue training. But it seems that only the adapter model weights are loaded, and the learning rate still starts from scratch. Thanks for any reply.

In the training arguments I set resume_from_checkpoint = True. But this is for huggingface. https://huggingface.co/docs/transformers/main_classes/trainer#transformers.TrainingArguments

I tried this way but got an error.
ValueError: Can't find a valid checkpoint at xxx

This is a limitation on the HF side. If the checkpoint does not contain the standard model weight file it will throw an error when loading the trainer states. Ideally, we should be able to resume training while only loading adapter weights.
If someone wants to tackle this problem on the HF side it would be very useful. One suggestion would be to have an argument that allows the model weights not to be loaded when resuming from a checkpoint.


TypeLoadException

Hi,
I'm getting exceptions when attemting to do
var credentials = new NoAuthCredentials(lokiUrl);
var llp = new LogLabelProvider();
Console.WriteLine("Creating logger config");
Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Verbose()
    .WriteTo.Console()
    .WriteTo.LokiHttp(credentials, llp)
    .CreateLogger();

Version numbers:

.NET Framework 4.6.2 (console application)
Serilog 2.10.0 (latest stable)
Serilog.Sinks.Http 7.2.0 (latest stable)
Serilog.Sinks.Loki 3.0.0 (latest stable)

I attempted to use the prerelease version 3.0.1, but then I get errors on the LogLabelProvider (copied from the readme) not implementing the interface correctly.
Looks like I have a bad combination of versions?

You can not use Serilog.Sinks.Loki 3.0.0 with Serilog.Sinks.Http > 5.x since there were major updated breaking the compatibility. v4.0.0-beta1 will be targeting 7.2.0 and therefore fix your issue.


Add about NER Annotator for Spacy

Project URL: https://github.com/tecoholic/ner-annotator

Thank you for this addition, @kurianbenoy! I'll get that merged in.

Thanks for merging so quickly :)


Fix a typo in SSL_CTX_set_session_ticket_cb.pod

"SSL" takes two esses, not three.
[skip ci]

This pull request is ready to merge

Merged to master and 1.1.1; closing.


Remove deprecated groovy workaround behavior

This was deprecated in 7.6. We are removing in 8.0 to clear way for changing the task container to be extensible.

@bot-gradle test this

@bot-gradle test and merge

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


Nexjs some issue: typeError: Cannot read properties of null (reading 'removeEventListener')

"use client"
import React, { useState } from "react";
import "react-modern-calendar-datepicker/lib/DatePicker.css";
import DatePicker from "react-modern-calendar-datepicker";
const App = () => {
const [selectedDay, setSelectedDay] = useState(null);
return (

);
};
export default App;
The code totally same copy
but ,when I selected a date,
error happened:
Unhandled Runtime Error
TypeError: Cannot read properties of null (reading 'removeEventListener')

https://github.com/Kiarash-Z/react-modern-calendar-datepicker/issues/356

https://github.com/Kiarash-Z/react-modern-calendar-datepicker/issues/204#issuecomment-757520714

same issue i am facing and the main reason is that after returning the eventListner is not set

check the comment above. you should use an alternative package similar to this one.

Ys will use another package


Linxdot – HIP19 third-party manufacturer application

Linxdot third-party manufacturer application

Welcome, application received and flagged to the HIP19 technical review committee

Rendered here:
https://github.com/helium/HIP/blob/7f56331deb02d46f411eb00d87933cb3068da27f/0019-third-party-manufacturers/linxdot.md


Add missing API docs [wip]

Summary
The documentation for some Runtime API modules is not showing up correctly
Details and comments
Fixes #
This is related to https://github.com/Qiskit/documentation/issues/238

I'll help get this green and add back Kevin and Jessie when green. Feel free to unsubscribe in the meantime.

@Eric-Arellano, I have some progress on this done now, but I can't push to this repo.  How can I get added to the contributor list?

I recommend instead creating a new PR and make sure it includes Becky's original commit so that she gets credit.

Superseded by https://github.com/Qiskit/qiskit-ibm-runtime/pull/1343