Page not loading, "Oops... Something went wrong"

I appear to be having the same issue (or similar) as the OP (agreenfield1) did here.
Ambar is running on http://<IP_ADDRESS>:80

http://<IP_ADDRESS>:80/_cat/indices
Just returns a blank page
website console errors
Failed to load resource: the server responded with a status of 502 (Bad Gateway)
     _/api/_
Failed to start. Error: SyntaxError: Unexpected token < in JSON at position 0
     _app.5800ae896ed146f4e02a.js:3_
SyntaxError: Unexpected token < in JSON at position 0
     _app.5800ae896ed146f4e02a.js:3_
Failed to load resource: the server responded with a status of 502 (Bad Gateway)
     _/api/users/check_
js:6 Failed to auth. Error: [object Response]
     _app.5800ae896ed146f4e02a_

docker logs ambar_webapi_1
2017/06/21 02:11:12 Waiting for host:
2017/06/21 02:11:12 Waiting for host: <IP_ADDRESS>:9200
2017/06/21 02:11:12 Connected to unix:///var/run/docker.sock
2017/06/21 02:32:25 Waiting for host:
2017/06/21 02:32:25 Waiting for host: <IP_ADDRESS>:9200
2017/06/21 02:32:25 Connected to unix:///var/run/docker.sock
2017/06/21 02:37:25 Timeout after 5m0s waiting on dependencies to become available: [unix:///var/run/docker.sock http://<IP_ADDRESS>:9200]
2017/06/21 02:37:25 Waiting for host:
2017/06/21 02:37:25 Waiting for host: <IP_ADDRESS>:9200
2017/06/21 02:37:25 Connected to unix:///var/run/docker.sock

docker logs ambar_es_1
[2017-06-21T02:50:42,752][INFO ][o.e.n.Node               ] [] initializing ...
[2017-06-21T02:50:42,855][INFO ][o.e.e.NodeEnvironment    ] [Co7MJEJ] using [1] data paths, mounts [[/ (/dev/mapper/pve-vm--210--disk--1)]], net usable_space [7.1gb], net total_space [58.9gb], spins? [possibly], types [ext4]
[2017-06-21T02:50:42,855][INFO ][o.e.e.NodeEnvironment    ] [Co7MJEJ] heap size [989.8mb], compressed ordinary object pointers [true]
[2017-06-21T02:50:42,857][INFO ][o.e.n.Node               ] node name [Co7MJEJ] derived from node ID [Co7MJEJKRxu9qhWVmwm8OQ]; set [node.name] to override
[2017-06-21T02:50:42,857][INFO ][o.e.n.Node               ] version[5.3.2], pid[1], build[3068195/2017-04-24T16:15:59.481Z], OS[Linux/4.4.62-1-pve/amd64], JVM[Oracle Corporation/OpenJDK 64-Bit Server VM/1.8.0_121/25.121-b13]
[2017-06-21T02:50:46,938][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded module [aggs-matrix-stats]
[2017-06-21T02:50:46,940][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded module [ingest-common]
[2017-06-21T02:50:46,940][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded module [lang-expression]
[2017-06-21T02:50:46,940][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded module [lang-groovy]
[2017-06-21T02:50:46,940][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded module [lang-mustache]
[2017-06-21T02:50:46,940][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded module [lang-painless]
[2017-06-21T02:50:46,941][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded module [percolator]
[2017-06-21T02:50:46,941][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded module [reindex]
[2017-06-21T02:50:46,941][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded module [transport-netty3]
[2017-06-21T02:50:46,941][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded module [transport-netty4]
[2017-06-21T02:50:46,954][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded plugin [analysis-morphology]
[2017-06-21T02:50:46,954][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded plugin [analysis-smartcn]
[2017-06-21T02:50:46,955][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded plugin [analysis-stempel]
[2017-06-21T02:50:53,487][INFO ][o.e.n.Node               ] initialized
[2017-06-21T02:50:53,497][INFO ][o.e.n.Node               ] [Co7MJEJ] starting ...
[2017-06-21T02:50:53,741][WARN ][i.n.u.i.MacAddressUtil   ] Failed to find a usable hardware address from the network interfaces; using random bytes: f8:d1:3f:ba:9a:40:6b:8e
[2017-06-21T02:50:53,935][INFO ][o.e.t.TransportService   ] [Co7MJEJ] publish_address {<IP_ADDRESS>:9300}, bound_addresses {[::]:9300}
[2017-06-21T02:50:53,946][INFO ][o.e.b.BootstrapChecks    ] [Co7MJEJ] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
ERROR: bootstrap checks failed
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2017-06-21T02:50:53,982][INFO ][o.e.n.Node               ] [Co7MJEJ] stopping ...
[2017-06-21T02:50:54,789][INFO ][o.e.n.Node               ] [Co7MJEJ] stopped
[2017-06-21T02:50:54,789][INFO ][o.e.n.Node               ] [Co7MJEJ] closing ...
[2017-06-21T02:50:54,805][INFO ][o.e.n.Node               ] [Co7MJEJ] closed

File: config.json
{
    "dataPath": "/opt/ambar",
    "dropbox": {
        "clientId": "",
        "redirectUri": ""
    },
    "es": {
        "containerSize": "2g",
        "heapSize": "1g"
    },
    "ocr": {
        "pdfMaxPageCount": 5000,
        "pdfSymbolsPerPageThreshold": 100
    },
    "dockerComposeTemplate": "https://static.ambar.cloud/docker-compose.template.yml",
    "db": {
        "cacheSizeGb": 2
    },
    "fe": {
        "external": {
            "host": "<IP_ADDRESS>",
            "port": "80",
            "protocol": "http"
        }
    },
    "dockerRepo": "ambar",
    "api": {
        "auth": "basic",
        "external": {
            "host": "<IP_ADDRESS>",
            "port": "80",
            "protocol": "http"
        },
        "defaultLangAnalyzer": "ambar_en",
        "analyticsToken": "cda4b0bb11a1f32aed7564b08c455992",
        "mode": "ce",
        "crawlerCount": 1,
        "cacheSize": "1g",
        "pipelineCount": 1,
        "showFilePreview": "false"
    }
}

File: docker-compose.yml
version: "2"
networks:
  internal_network:
services:
  webapi:
    restart: always
    networks:
      - internal_network
    image: ambar/ambar-webapi:latest
    expose:
      - "8080"
    environment:
      - db=mongodb://db:27017/ambar_data
      - fe=http://<IP_ADDRESS>:80
      - api=http://webapi:8080
      - es=http://<IP_ADDRESS>:9200
      - redis=webapi-cache
      - rabbit=amqp://rabbit
      - mode=ce
      - pipelineCount=1
      - crawlerCount=1
      - dropboxClientId=
      - dropboxRedirectUri=
      - defaultLangAnalyzer=ambar_en
      - analyticsToken=cda4b0bb11a1f32aed7564b08c455992
      - auth=basic
      - ocrPdfMaxPageCount=5000
      - ocrPdfSymbolsPerPageThreshold=100
      - showFilePreview=false
    depends_on:
      - db
      - es
      - webapi-cache
      - proxy
      - rabbit
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
  webapi-cache:
    restart: always
    image: redis:alpine
    networks:
      - internal_network
    expose:
      - "6379"
    ports:
      - "6379:6379"
    mem_limit: 1g
  proxy:
    image: ambar/ambar-proxy:latest
    networks:
      - internal_network
    restart: always
    environment:
      - API_EXT_PORT=80
      - FE_EXT_PORT=80
    expose:
      - 80

    ports:
      - "80:80"

  frontend:
    image: ambar/ambar-frontend:latest
    networks:
      - internal_network
    depends_on:
      - webapi
    expose:
      - "80"
    restart: always
    environment:
      - api=http://<IP_ADDRESS>:80
  db:
    restart: always
    image: ambar/ambar-mongodb:latest
    networks:
      - internal_network
    environment:
      - cacheSizeGB=2
    volumes:
      - /opt/ambar/db:/data/db
    expose:
      - "27017"
    ports:
      - "27017:27017"
  es:
    image: ambar/ambar-es:latest
    networks:
      - internal_network
    restart: always
    expose:
      - "9200"
    ports:
      - "9200:9200"
    environment:
      - cluster.name=ambar-es
      - bootstrap.memory_lock=true
      - xpack.security.enabled=false
      - security.manager.enabled=false
      - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    mem_limit: 2g
    cap_add:
      - IPC_LOCK
    volumes:
      - /opt/ambar/es:/usr/share/elasticsearch/data
  rabbit:
    image: ambar/ambar-rabbit:latest
    networks:
      - internal_network
    hostname: rabbit
    expose:
      - "15672"
      - "5672"
    ports:
      - "15672:15672"
      - "5672:5672"
    volumes:
      - /opt/ambar/rabbit:/var/lib/rabbitmq

Thanks for looking into this, I must say that I'm the same guy who posted this issue. So just a reminder, I'm running this (Ubuntu 16.04 with 4Gb ram and 60Gb Drive) as an lxc container on proxmox.

Hello,
The problem is max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144].
Run sysctl -w vm.max_map_count=262144 before starting Ambar.
Also you can add this into your /etc/sysctl.conf file.

Thanks for that info, I found out that on Proxmox (running LXC containers) this setting needs to be done at the host level (when I did it within the ubuntu container it said read-only).
I'm glad that is resolved but still having trouble starting ambar. Now when I check the docker logs ambar_es_1 it tells me...
[2017-07-05T20:38:10,859][INFO ][o.e.n.Node               ] [] initializing ...
[2017-07-05T20:38:11,004][INFO ][o.e.e.NodeEnvironment    ] [Co7MJEJ] using [1] data paths, mounts [[/ (/dev/mapper/pve-vm--210--disk--1)]], net usable_space [3.3gb], net total_space [62.8gb], spins? [possibly], types [ext4]
[2017-07-05T20:38:11,004][INFO ][o.e.e.NodeEnvironment    ] [Co7MJEJ] heap size [989.8mb], compressed ordinary object pointers [true]
[2017-07-05T20:38:11,035][INFO ][o.e.n.Node               ] node name [Co7MJEJ] derived from node ID [Co7MJEJKRxu9qhWVmwm8OQ]; set [node.name] to override
[2017-07-05T20:38:11,035][INFO ][o.e.n.Node               ] version[5.3.2], pid[1], build[3068195/2017-04-24T16:15:59.481Z], OS[Linux/4.4.62-1-pve/amd64], JVM[Oracle Corporation/OpenJDK 64-Bit Server VM/1.8.0_121/25.121-b13]
[2017-07-05T20:38:13,658][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded module [aggs-matrix-stats]
[2017-07-05T20:38:13,658][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded module [ingest-common]
[2017-07-05T20:38:13,659][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded module [lang-expression]
[2017-07-05T20:38:13,659][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded module [lang-groovy]
[2017-07-05T20:38:13,659][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded module [lang-mustache]
[2017-07-05T20:38:13,659][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded module [lang-painless]
[2017-07-05T20:38:13,659][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded module [percolator]
[2017-07-05T20:38:13,659][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded module [reindex]
[2017-07-05T20:38:13,660][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded module [transport-netty3]
[2017-07-05T20:38:13,660][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded module [transport-netty4]
[2017-07-05T20:38:13,661][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded plugin [analysis-morphology]
[2017-07-05T20:38:13,661][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded plugin [analysis-smartcn]
[2017-07-05T20:38:13,661][INFO ][o.e.p.PluginsService     ] [Co7MJEJ] loaded plugin [analysis-stempel]
[2017-07-05T20:38:15,984][INFO ][o.e.n.Node               ] initialized
[2017-07-05T20:38:15,985][INFO ][o.e.n.Node               ] [Co7MJEJ] starting ...
[2017-07-05T20:38:16,146][WARN ][i.n.u.i.MacAddressUtil   ] Failed to find a usable hardware address from the network interfaces; using random bytes: 4d:24:43:a8:ba:ff:45:d6
[2017-07-05T20:38:16,209][INFO ][o.e.t.TransportService   ] [Co7MJEJ] publish_address {<IP_ADDRESS>:9300}, bound_addresses {<IP_ADDRESS>:9300}
[2017-07-05T20:38:16,216][INFO ][o.e.b.BootstrapChecks    ] [Co7MJEJ] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
[2017-07-05T20:38:19,259][INFO ][o.e.c.s.ClusterService   ] [Co7MJEJ] new_master {Co7MJEJ}{Co7MJEJKRxu9qhWVmwm8OQ}{VCd0INS7SG-SW7fkEhvRuw}{<IP_ADDRESS>}{<IP_ADDRESS>:9300}, reason: zen-disco-elected-as-master ([0] nodes joined)
[2017-07-05T20:38:19,299][INFO ][o.e.h.n.Netty4HttpServerTransport] [Co7MJEJ] publish_address {<IP_ADDRESS>:9200}, bound_addresses {<IP_ADDRESS>:9200}
[2017-07-05T20:38:19,308][INFO ][o.e.n.Node               ] [Co7MJEJ] started
[2017-07-05T20:38:19,768][INFO ][o.e.g.GatewayService     ] [Co7MJEJ] recovered [2] indices into cluster_state
[2017-07-05T20:38:20,568][INFO ][o.e.c.r.a.AllocationService] [Co7MJEJ] Cluster health status changed from [RED] to [YELLOW] (reason: [shards started [[ambar_log_record_data][4]] ...]).
[2017-07-05T20:38:49,314][WARN ][o.e.c.r.a.DiskThresholdMonitor] [Co7MJEJ] high disk watermark [90%] exceeded on [Co7MJEJKRxu9qhWVmwm8OQ][Co7MJEJ][/usr/share/elasticsearch/data/nodes/0] free: 3.3gb[5.3%], shards will be relocated away from this node
[2017-07-05T20:38:49,315][INFO ][o.e.c.r.a.DiskThresholdMonitor] [Co7MJEJ] rerouting shards: [high disk watermark exceeded on one or more nodes]

On the front end chrome dev tools tells me it's still having trouble connecting to the /api/

@tscibilia  I don't see any problems in logs, update to latest version and try again

@tscibilia any news?

No response for 2 weeks

Sorry about not responding, I gave up on it. however, I just noticed there was a new web api commit today v1.2.0
So I did ./ambar.py uninstall and then reinstalled everything. Now it works!
I literally have no idea why, but it does work now.


Fix strikethrough toggle button bug

strikethrough button can't remove strike after activate

You should just switch semantic to false.
Your fix is not a fix, sorry.


As a CIF user, I want to sort the projects by milestone due date, so that I can see which project needs attention next

Description:
Missing piece from #469, we need to be able to sort by next requirement due date

note: the search filed is not applicable here
Acceptance Criteria:
Given I am a CIF administrator
When I am on the projects lists page
Then I can sort the projects by next requirement due date
Development Checklist:

[x] The table header should use a SortableHeader in combination with a SortOnlyFilter
[x] a computed column project_next_milestone_due_date returning the next milestone due date for a project
[x] project_next_milestone_due_date is configured with sortable: true in postgraphile.tags.json5
[ ] Meets the DOD

Definition of Ready (Note: If any of these points are not applicable, mark N/A)

[ ] User story is included
[ ] User role and type are identified
[ ] Acceptance criteria are included
[ ] Wireframes are included (if required)
[ ] Design / Solution is accepted by Product Owner
[ ] Dependencies are identified (technical, business, regulatory/policy)
[ ] Story has been estimated (under 13 pts)

·Definition of Done (Note: If any of these points are not applicable, mark N/A)

[ ] Acceptance criteria are tested by the CI pipeline
[ ] UI meets accessibility requirements
[ ] Configuration changes are documented, documentation and designs are updated
[ ] Passes code peer-review
[ ] Passes QA of Acceptance Criteria with verification in Dev and Test
[ ] Ticket is ready to be merged to main branch
[ ] Can be demoed in Sprint Review
[ ] Bugs or future work cards are identified and created
[ ] Reviewed and approved by Product Owner

Notes:

Hey team! Please add your planning poker estimate with ZenHub @BCerki @dleard @gurjmatharu @matthieu-foucault @mikevespi @Sepehr-Sobhani

@LindsayMacfarlane we just need a priority tag on this one

Thanks @pbastia - I gave this one a high priority; however, if we are crunched for time to meet our release goals this can always wait until just after our first release.

Note: if we complete this ticket, we can wrap up the Milestone EPIC :)

Hi @sam-warren - just checking in on the status of this ticket. Do you need any support?

@LindsayMacfarlane It is ready for review :)

Thank you @sam-warren - just double checking based on the acceptance criteria - should I also be seeing a filter?

@LindsayMacfarlane filtering dates is much more complicated than a single field (date ranges? selecting inside or outside the range? ...) and provides little value in terms of usability, so our tables don't support it at this time. The original screenshot in the ticket is erroneous, and this card is only about the sorting

Thanks for that clarification @pbastia!


attempting to create a project with a name that already exists results in "unknown error"

As an anchor I want to see an error message on the landing page so that when I am creating a new project I am alerted of a name that is already in use by another team
Given I am creating a new project from the landing page
When I type a project name that exists
Then I should see an error message that alerts me to try another project name
Notes: Please implement error message as per designs
Error messages should read: Not again. That name already exists, try a different one.

In the logs, it show:
2016-12-05T19:42:59.47-0800 [APP/PROC/WEB/0]OUT   Detail: Key (name)=(foo) already exists.

DONE!


Feature Request - Headtracking Data in OSD

Hi there,
I think I already read about this but in the facebook group noone could help about this:
I would love to be able to see the headtracking data in the OSD of the goggle to be able to judge better about my lost posure.
If thats already out somewhere please let me know and ignore this.
Thanks for all your work!

I thought this was worth adding.
The gyroscope data is part of the Goggle OSD, hidden by default, you can enable it in the OSD menu, and it even supports different display modes, such as graph, numeric.


RUN-2609: Assert on IDL calls

https://linear.app/replay/issue/RUN-2609/automatic-idl-instrumentation

rebased off of master, and added rudimentary asserts to the V8SetReturnValue overloads in v8_set_return_value.h

Closing this for now, since it keeps sitting in my personal PR list.


docker for mac error when following readme

I get the following error when following the readme and running the docker image:
[2019-06-26 22:23:52.492]  - 6  WARN [main-SendThread(localhost:2181)] --- ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
	at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
	at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
	at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
	at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1141)

Full log:
➜  Kafdrop git:(master) docker run -p 9000:9000 -e ZOOKEEPER_CONNECT=localhost:2181,localhost:2181 kafdrop
[2019-06-26 22:23:43.305]  - 6  INFO [main] --- KafDrop: Starting KafDrop on 8a20e8425578 with PID 6 (/kafdrop-2.0.6/kafdrop-2.0.6.jar started by root in /)
[2019-06-26 22:23:43.311]  - 6  INFO [main] --- KafDrop: No active profile set, falling back to default profiles: default
[2019-06-26 22:23:43.426]  - 6  INFO [main] --- AnnotationConfigEmbeddedWebApplicationContext: Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@574caa3f: startup date [Wed Jun 26 22:23:43 UTC 2019]; root of context hierarchy
[2019-06-26 22:23:47.170]  - 6  INFO [main] --- TomcatEmbeddedServletContainer: Tomcat initialized with port(s): 9000 (http)
[2019-06-26 22:23:47.204]  - 6  INFO [main] --- StandardService: Starting service Tomcat
[2019-06-26 22:23:47.206]  - 6  INFO [main] --- StandardEngine: Starting Servlet Engine: Apache Tomcat/8.0.36
[2019-06-26 22:23:47.397]  - 6  INFO [localhost-startStop-1] --- [/]: Initializing Spring embedded WebApplicationContext
[2019-06-26 22:23:47.398]  - 6  INFO [localhost-startStop-1] --- ContextLoader: Root WebApplicationContext: initialization completed in 3977 ms
[2019-06-26 22:23:48.089]  - 6  INFO [localhost-startStop-1] --- ServletRegistrationBean: Mapping servlet: 'dispatcherServlet' to [/]
[2019-06-26 22:23:48.100]  - 6  INFO [localhost-startStop-1] --- FilterRegistrationBean: Mapping filter: 'characterEncodingFilter' to: [/*]
[2019-06-26 22:23:48.100]  - 6  INFO [localhost-startStop-1] --- FilterRegistrationBean: Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
[2019-06-26 22:23:48.101]  - 6  INFO [localhost-startStop-1] --- FilterRegistrationBean: Mapping filter: 'httpPutFormContentFilter' to: [/*]
[2019-06-26 22:23:48.101]  - 6  INFO [localhost-startStop-1] --- FilterRegistrationBean: Mapping filter: 'requestContextFilter' to: [/*]
[2019-06-26 22:23:48.101]  - 6  INFO [localhost-startStop-1] --- FilterRegistrationBean: Mapping filter: 'webRequestLoggingFilter' to: [/*]
[2019-06-26 22:23:48.101]  - 6  INFO [localhost-startStop-1] --- FilterRegistrationBean: Mapping filter: 'corsFilter' to: [/*]
[2019-06-26 22:23:48.102]  - 6  INFO [localhost-startStop-1] --- FilterRegistrationBean: Mapping filter: 'applicationContextIdFilter' to: [/*]
[2019-06-26 22:23:48.466]  - 6  WARN [main] --- CuratorZookeeperClient: session timeout [5000] is less than connection timeout [15000]
[2019-06-26 22:23:48.547]  - 6  INFO [main] --- CuratorFrameworkImpl: Starting
[2019-06-26 22:23:48.570]  - 6  INFO [main] --- ZooKeeper: Client environment:zookeeper.version=3.4.8--1, built on 02/06/2016 03:18 GMT
[2019-06-26 22:23:48.571]  - 6  INFO [main] --- ZooKeeper: Client environment:host.name=8a20e8425578
[2019-06-26 22:23:48.571]  - 6  INFO [main] --- ZooKeeper: Client environment:java.version=1.8.0_111
[2019-06-26 22:23:48.571]  - 6  INFO [main] --- ZooKeeper: Client environment:java.vendor=Oracle Corporation
[2019-06-26 22:23:48.571]  - 6  INFO [main] --- ZooKeeper: Client environment:java.home=/usr/lib/jvm/java-8-openjdk-amd64/jre
[2019-06-26 22:23:48.571]  - 6  INFO [main] --- ZooKeeper: Client environment:java.class.path=/kafdrop-2.0.6/kafdrop-2.0.6.jar
[2019-06-26 22:23:48.571]  - 6  INFO [main] --- ZooKeeper: Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib
[2019-06-26 22:23:48.571]  - 6  INFO [main] --- ZooKeeper: Client environment:java.io.tmpdir=/tmp
[2019-06-26 22:23:48.572]  - 6  INFO [main] --- ZooKeeper: Client environment:java.compiler=<NA>
[2019-06-26 22:23:48.572]  - 6  INFO [main] --- ZooKeeper: Client environment:os.name=Linux
[2019-06-26 22:23:48.572]  - 6  INFO [main] --- ZooKeeper: Client environment:os.arch=amd64
[2019-06-26 22:23:48.572]  - 6  INFO [main] --- ZooKeeper: Client environment:os.version=4.9.125-linuxkit
[2019-06-26 22:23:48.573]  - 6  INFO [main] --- ZooKeeper: Client environment:user.name=root
[2019-06-26 22:23:48.573]  - 6  INFO [main] --- ZooKeeper: Client environment:user.home=/root
[2019-06-26 22:23:48.573]  - 6  INFO [main] --- ZooKeeper: Client environment:user.dir=/
[2019-06-26 22:23:48.575]  - 6  INFO [main] --- ZooKeeper: Initiating client connection, connectString=localhost:2181,localhost:2181 sessionTimeout=5000 watcher=org.apache.curator.ConnectionState@175c2241
[2019-06-26 22:23:48.628]  - 6  INFO [main-SendThread(localhost:2181)] --- ClientCnxn: Opening socket connection to server localhost/<IP_ADDRESS>:2181. Will not attempt to authenticate using SASL (unknown error)
[2019-06-26 22:23:48.868]  - 6  WARN [main-SendThread(localhost:2181)] --- ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
	at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
	at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
	at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
	at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1141)

solved by using the following run command instead of what is in readme:
docker run -p 9000:9000 -e ZOOKEEPER_CONNECT=docker.for.mac.localhost:2181 kafdrop


Add convert_diffusers_to_pipeline script

Add a script to convert the .safetensors given by convert_pixart_to_diffusers.py to a pipeline folder that contains all the components required to be used with the diffusers library.

Nice one. Approved.


Changing the download and light mode buttons [GSSoC'23]

Please describe the problem
The light mode button and download button does no go good with the existing design. I think they can be made better.
Describe the solution you'd like
I have designed multiple buttons and with the project mentors feedback I can design more buttons. Some examples are :

Screenshot
Please attach any relevant screenshot(s).
Please assign me this issue under GSSoC'23

Please assign me this issue under GSSoC'23

the UI for light/dark mode has changed.

OK @AshutoshDash1999 .


Engine and Demo Crash w/ Logitech Audio Device

I have two audio devices - surround sound setup and Logitech G430 headset.  In both 4.15 and 4.17 versions, trying to play in editor or launch the 4.15 demo build with my default audio device set as the Logitech G430 headset causes a crash.  Playing in editor or launching the demo project and picking a map works fine with my surround sound.
Drivers for the headset are up to date, I've tried disabling Logitech Gaming Software and forcing end task for Realtek HD audio manager, but nothing seems to resolve this issue.
This is a really great plugin and I've had a lot of fun playing around with modifying the spectrum analyzer.  I'm just sort of at a loss as to how to troubleshoot and/or resolve this issue.  The crash report doesn't give any information as to what's causing it and I've tried other audio devices (HDMI monitor speakers) and none of those cause a crash.  Any insight would be super appreciated.  Thanks for your time!

Did you ever get any further with this @butt3rs ?


Compile error

Compiled with problems:
×
ERROR in<EMAIL_ADDRESS>[tsl] ERROR in C:\GitHub\powerbi-client-react-master\demo\node_modules@types\node\ts4.8\test.d.ts(680,34)
TS1005: '?' expected.
ERROR in<EMAIL_ADDRESS>[tsl] ERROR in C:\GitHub\powerbi-client-react-master\demo\node_modules@types\node\ts4.8\test.d.ts(681,17)
TS1005: ':' expected.
ERROR in<EMAIL_ADDRESS>[tsl] ERROR in C:\GitHub\powerbi-client-react-master\demo\node_modules@types\node\ts4.8\test.d.ts(682,17)
TS1005: ',' expected.
ERROR in<EMAIL_ADDRESS>[tsl] ERROR in C:\GitHub\powerbi-client-react-master\demo\node_modules@types\node\ts4.8\test.d.ts(685,34)
TS1005: '?' expected.
...
I got the above errors after running "npm run demo". Are there really that syntax errors in test.d.ts? How to fix this problem?

Hello @nahcyrret , Please Upgrade the demo package.json to latest typescript and ts-loader versions.
"ts-loader": "^9.4.2",
"typescript": "^4.8.4",

Feel free to reach out if you have any other queries.

I still got the errors after updating the versions.

I still got the errors after updating the versions as shown.

I still got the errors after updating the versions as shown.

These are also the same version issues and should be fixed. Try reinstalling the node-modules. If still facing the same issue, please provide more context to repro the issue.

I just installed the Latest LTS Version: 18.15.0 (includes npm 9.5.0) from
https://nodejs.org/en/download


support type key for CodeBuild environment variables

what

[BREAKING CHANGE] modify environment_variables variable to support the 'type' key
Unless we change the type of the environment_variables variable to any and default 'type' to 'PLAINTEXT' this will be a breaking change, but a fairly easy one to deal with

why

Adding the 'type' key allows sourcing env vars from SSM Parameter Store and Secrets Manager

references

Closes #51

/test all


VisTextField doesn't stop input processing

I have two input processors: Scene2d Stage and my own input processor registered respectively. The problem is, when I type something in VisTextField, my own input processor fires keyDown too which is unwanted behaviour.

Does that happen with normal TextField? If so then this is a libGDX issue.

No, only with VisTextField.

Ok then, will take a look.

Also, could you post SSCCE, please?

I cannot reproduce with this:
public class TestIssue50 {

	public static void main (String[] args) {
		LwjglApplicationConfiguration c = new LwjglApplicationConfiguration();
		c.width = 1280;
		c.height = 720;
		new LwjglApplication(new TestIssue50Application(), c);
	}

}

class TestIssue50Application extends ApplicationAdapter {
	private Stage stage;

	@Override
	public void create () {
		VisUI.load();
		stage = new Stage(new ScreenViewport());
		Table table = new Table();
		table.setFillParent(true);
		table.add(getNewVisTextField()).row();
		table.add(getNewGdxTextField()).row();
		stage.addActor(table);
		Gdx.input.setInputProcessor(new InputMultiplexer(stage, new TestInputProcessor()));
	}

	private VisTextField getNewVisTextField () {
		return new VisTextField("VisTextField");
	}

	private TextField getNewGdxTextField () {
		TextFieldStyle style = new TextFieldStyle(VisUI.getSkin().get(TextFieldStyle.class));
		return new TextField("GdxTextField", style);
	}

	@Override
	public void resize (int width, int height) {
		stage.getViewport().update(width, height, true);
	}

	@Override
	public void render () {
		Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
		stage.act(Gdx.graphics.getDeltaTime());
		stage.draw();
	}

	@Override
	public void dispose () {
		VisUI.dispose();
		stage.dispose();
	}

	class TestInputProcessor extends InputAdapter {

		@Override
		public boolean keyDown (int keycode) {
			System.out.println("PROCESSED, KEYCODE:" + keycode);
			return false;
		}

	}

}

I've just tried to experiment a bit and I found out that I can get the behaviour I described only if VisTextField is an actor inside a Node in a Tree (or VisTree, doesn't matter). libgdx TextField doesn't have this issue in the same conditons though.

Please provide a SSCCE.

public class TestIssue50 {

    public static void main (String[] args) {
        LwjglApplicationConfiguration c = new LwjglApplicationConfiguration();
        c.width = 1280;
        c.height = 720;
        new LwjglApplication(new TestIssue50Application(), c);
    }

}

class TestIssue50Application extends ApplicationAdapter {
    private Stage stage;

    @Override
    public void create () {
        VisUI.load();
        stage = new Stage(new ScreenViewport());
        Table table = new Table();
        table.setFillParent(true);
        VisTree tree = new VisTree();
        table.add(tree);
        tree.add(new Node(getNewVisTextField()));
        tree.add(new Node(getNewGdxTextField()));
        stage.addActor(table);
        Gdx.input.setInputProcessor(new InputMultiplexer(stage, new TestInputProcessor()));
    }

    private VisTextField getNewVisTextField () {
        return new VisTextField("VisTextField");
    }

    private TextField getNewGdxTextField () {
        TextFieldStyle style = new TextFieldStyle(VisUI.getSkin().get(TextFieldStyle.class));
        return new TextField("GdxTextField", style);
    }

    @Override
    public void resize (int width, int height) {
        stage.getViewport().update(width, height, true);
    }

    @Override
    public void render () {
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        stage.act(Gdx.graphics.getDeltaTime());
        stage.draw();
    }

    @Override
    public void dispose () {
        VisUI.dispose();
        stage.dispose();
    }

    class TestInputProcessor extends InputAdapter {

        @Override
        public boolean keyDown (int keycode) {
            System.out.println("PROCESSED, KEYCODE:" + keycode);
            return false;
        }

    }

}

Which VisUI version do you use?

0.9.1

I got another interesting behaviour. When I use VisTextField after clicking on some button my game starts getting input again but only keyDown events, not keyUp. When I use TextField I just can't get any key events anymore. Btw it's not Tree issue, it is so everywhere.

Should work now.

That's not how it works, focusLost and focusGained are listener methods called by FocusManager.
You never manually call them.
To take focus you need to call FocusManager.getFocus(stage) or stage.setKeyboardFocus(null) (but the second way would left focus border still visible on widget)

Makes sense now, thanks!


Enable EditorPlugin added by modules and GDExtensions

Before this PR, plugins coming from modules/GDExtensions were never enabled so the virtual method _enable_plugin was never called. This can be confusing behavior for users implementing EditorPlugin coming from addons/scripting. I assume GDExtension plugins are considered always enabled, so I expect the _enable_plugin to be called exactly once when they are initially added.
MRP: https://github.com/raulsntos/GDExtensionEditorPluginCpp

To me the main question is: Why do we need separate methods to enable / disable plugins from extensions in the first place? The normal add_editor_plugin() / remove_editor_plugin() already has a way to enforce enabling the plugin using its p_config_changed parameter (I think this is what Raul mentioned earlier.)
I see in the code that for some reason GDExtension-based EditorPlugins are handled differently now, but I think it would be better conceptually, if plugins defined by GDExtensions would be handled the same way as plugins defined in modules.
So maybe we should just refactor this and expose the normal add_editor_plugin() / remove_editor_plugin() over the GDExtension / Godot API.

@kisg:
In Godot itself, editor plugins are typically registered via EditorPlugins::add_by_type<T>(), which doesn't allow you to set anything for the p_config_changed parameter. It's the same API on the GDExtension side.
There's a handful of cases where editor plugins are registered by directly calling EditorNode::get_singleton()->add_editor_plugin(): I count 7 instances, versus the 66 instances of the other.
It seems those 7 cases are doing that because EditorPlugins::add_by_type<T>() only works before EditorNode is constructed, so in the cases where the plugin is added after, they need to call EditorNode::add_editor_plugin() directly.
Perhaps we change EditorPlugins::add_by_type<T>() to work even after EditorNode has been created, so we could standardize on it everywhere?

@dsnopek
After looking at the code in more detail, my suggestion would be to turn the EditorPlugins class into a GDCLASS and expose it early to GDExtensions. The class would be exposed as ABSTRACT, with only a couple of static methods. Its purpose would be twofold:

Collect plugin registration requests while the EditorNode singleton is not yet available
Directly add plugins/remove plugins if the EditorNode singleton has been already initialized.

At the same time we should make EditorNode::add/remove_editor_plugin private (and make EditorPlugins a friend)
API wise, we can keep the add_by_type<> method but extend it to work like this (pseudocode):
if (!EditorNode::get_singleton()) {
   // Execute current logic with adding the class to a deferred creation list
} else {
  EditorNode::get_singleton()->add_editor_plugin(memnew(T), true); // We request the plugin to be enabled
}

We can also have the add_editor_plugin() and remove_editor_plugin() method pairs in 2 variants:

The ones similar to the current extension plugin registration

void EditorPlugins::add_editor_plugin_by_name(StringName name, bool enable);
void EditorPlugins::remove_editor_plugin_by_name(StringName name);

The ones similar to the current in-engine plugin registration

void EditorPlugins::add_editor_plugin(EditorPlugin* plugin, bool enable);
void EditorPlugins::remove_editor_plugin(EditorPlugin* plugin);

All of these methods can be used prior to the creation of EditorNode or after it.
One final method that is only exposed to EditorNode:
void EditorPlugins::add_registered_editor_plugins(EditorNode* node);

This would be called by EditorNode during its construction.  It will call the node->add_editor_plugin(..., true) for each pre-registered plugin.
The advantages of this refactoring:

A single place to add/remove editor plugins, which is decoupled from EditorNode.
Can be used at any time (early and late registration of editor plugins).
Exposed to GDExtensions as a standard abstract class, no special handling required. The bindings for it will be automatically generated.
No need for special handling in the GDExtension API.

@kisg:

Exposed to GDExtensions as a standard abstract class, no special handling required. The bindings for it will be automatically generated.

I don't think we want this, though. This would make this class and its methods available to script, which we specifically didn't want to do, which is why we added functions to gdextension_interface.h.
In any case, I think this is becoming a tangent. The main point of this PR is to call enable_plugin() on editor plugins registered in modules and GDExtensions, which previously was only done for editor plugins registered by scripts.
I do see your point that we could use the 2nd argument of EditorNode::add_editor_plugin() in the implementation though. I'll add some code review about that in a moment.
However, your proposal mostly concerns cleaning up how EditorPlugins::add_by_type() is implemented, which isn't directly related to this PR, and so we should move discussion of that to a new issue or PR. That said, I think we could solve the core problem (that there are a few cases where we calling EditorNode::add_editor_plugin() directly rather than using EditorPlugins::add_by_type()) in simpler way than proposed. But let's discuss that on the new issue/PR :-)

Thanks!


bug: "Special" highlight group is not being set

I noticed a weird behavior where certain things, like curly braces in lua, have this bright cyan color that isn't actually specified anywhere in the config.  This group isn't being set to anything by the setup function. I'm working on a fix at the moment, PR should be ready soon.

Yes @ficcdaf the problem is not about setting the special highlight color but to fix the curly bracket colors to be consistent with other bracket colors for consistency with other languages too and with treesitter.
Thank you for pointing out this wierd behaviour the problem was that apparently in lua curly braces are treated specially by Tree-sitter due to the @constructor.lua group, which is linked to the Special highlight group rather than directly to @punctuation.bracket. This is likely the reason why curly brackets are not inheriting the @punctuation.bracket color settings I've defined in treesitter.lua file.

I thus fixed it in #aed411aa985e62846c0cdda952aaf8318bf69f02 in recent commit, Thank you for pointing it out, but the special highlight not required for now, whenever something will behave wierdly we will try to normalize it and thus Darkvoid will remain minimal and consitent everytime.


ghz-web convert timeunit error

I believe there is a minor mistake in the function createChartData, it caused the time below 1ms always be displayed as 0, instead of x ns.
if (testValue > 1000000) {
unit = 'ms'
divr = 1000000
testValue = testValue / divr
}
if (testValue > 1000) {             ######### it should be<PHONE_NUMBER>   #########
unit = 's'
divr =<PHONE_NUMBER>
}

Hello, thanks for reporting this. It should be addressed in 0.54.0. Feel free to reopen if there are issues.


Feature request: Allow recycling of col_type

I tried to set a single value for col_type to text for an Excel sheet with multiple columns. I got this error message:
Error: Need one name and type for each column
Since there is no way to extract the number of columns before reading the file it would be great if col_type could recycle its arguments when the list is shorter than the number of columns, as read.table, read_table, and fread all do.

@rickdonnelly There is actually a way to extract the number of columns in an Excel sheet before reading it in. While I agree that it would be nice to have a recycling feature, this is the workaround I've been using:
library(tools)
format <- file_ext(file)
functionName <- paste("readxl", format, "sheets", sep="_")
sheetNames <- .Call(functionName, PACKAGE="readxl", file)
sheetIndex <- which(sheetNames == sheet)
functionName <- paste("readxl", format, "col_names", sep="_")
n <- .Call(functionName, PACKAGE = 'readxl', file, sheetIndex, skip) %>% length()
colTypes <- rep("text", n)
dat <- read_excel(file, col_types=colTypes, sheet=sheet, skip=skip)

You can obviously replace "text" in the colTypes assignment with one of the other values that is accepted by read_excel.
Hope this helps!

readxl/R/RcppExports.R contains a number of helper functions that are not exported. Some of these could be useful for reading in excel sheets with unknown characteristics ahead of time (e.g. for linux users with no access to excel):
xls_col_names and xlsx_col_names as @theRanalyst suggests in his workaround
but there are also:
xls_col_types and xlsx_col_types which I assume predict the column types of a worksheet
xlsx_dim for getting the dimesions of the tabular data
countRows
and a few others.  @hadley, is there a plan to export any of these helper functions in the future?

Covered by #198


feat: npm publish

🚀 Major Changes

updating to publish to the npm package registry instead of Github

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


Adding removeFooter and removeHeader to section

Also added nonNull precondition check.  Dependency was pulled in from DataBinding Guava dependency, let me know if that's a problem :-)

fixes https://github.com/Genius/groupie/issues/4

#17


⚠ Bofrost.de has degraded performance

In ed2de23, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1273 ms

Resolved: Bofrost.de performance has improved in 0d86ef3.


Scope of the CHANGELOG

PR #60 spawned some discussion about what to include in the CHANGELOG.md. For example, we could choose to include anything that changes in the repo, or only the subset that affects users, for example if there are breaking changes, or a new feature, or something else that will be reflected in the semver.

@john-romein Do you think the CHANGELOG is helpful?

CHANCELOG.md should include the changes that affects users (such as API changes or change in behavior), but not minor implementation changes.

Thank you @john-romein. We will keep the changelog as you described.


Set zoom level on camera used for qr scanning #473

Hi, this request from: https://github.com/juliuscanute/qr_code_scanner/issues/473
Can you help with this.
Kind Regards,
Thien

I am also looking for this feature, I hope it gets implemented.

This is possible with version 3.0.0-beta.4. Please see https://github.com/juliansteenbakker/mobile_scanner/blob/master/example/lib/barcode_scanner_zoom.dart


Scala Console's :javap functionality

When giving courses I switched to the Ammonite REPL because of the syntax-highlighting and other nice features. The one thing I'm missing is the possibility to show the Java bytecode for classes that were created during the session as I can do with the Scala Console's :javap.
scala> class Foo
defined class Foo
scala> :javap -c Foo
Compiled from "<console>"
public class Foo {
  public Foo();
    Code:
       0: aload_0
       1: invokespecial #9                  // Method java/lang/Object."<init>":()V
       4: return
}

As suggested by @lihaoyi and @jrudolph , this could be an approach:

lihaoyi 11:22
if i were planning the project
it'd go something like
expose a getClassFile[MyClass] function in the REPL
Write/find/steal a bytecode pretty-printer
Combine with a helper function called javap[MyClass] and profit

lihaoyi 11:24
number 1. shouldn't be too hard because you can just ask for the bytes of a class via getResourceAsStream
number 2. I have no clue, worse come to worst you write your own

jrudolph 11:29
number 2. => e.g. http://asm.ow2.org/asm50/javadoc/user/org/objectweb/asm/util/Textifier.html

getResourceAsStream won't work for classes defined in the REPL itself because ammonite's SpecialClassLoader doesn't implement it. I guess it would make sense to use SpecialClassLoader.newFileDict directly to access bytecode for those classes.

Yeah, it wouldn't work directly, but fixing SpecialClassLoader to do the right thing wouldn't be too hard. Of course we could also go to newFileDict directly =)
Only the minimal changes to expose the classfile bytes should live in ammonite-repl, everything else should probably live in a separate package called ammonite-scalac or something

Closed in deference to #286


Add support for k8s 1.21

Add support for k8s 1.21 and set minimal k8s supported version to 1.16

read per commit basis
@brb PTAL at test/provision/k8s_install.sh changes.

test-me-please

test-upstream-k8s

test-missed-k8s

@qmonnet should be good now. Thanks

test-me-please

test-missed-k8s

@aanm
For

pkg/k8s/synced/crd.go
@christarazi can you take a look at this one?

Please apply the following patches to remove unneeded references and code like so:
git am 0001-k8s-Remove-references-to-1.14.patch.txt 0002-Revert-k8s-Add-capability-flag-for-watching-metav1.P.patch.txt

0002-Revert-k8s-Add-capability-flag-for-watching-metav1.P.patch.txt
0001-k8s-Remove-references-to-1.14.patch.txt

test-me-please

test-missed-k8s

test-1.20-4.19

test-backport-1.10

test-1.21-4.9


livedb-mongo 0.2.x loads livedb 0.3.0 via dependency

The dependency on livedb prior to the 0.3.0 release was ">0.2.7". That means that a dependency on livedb-mongo 0.2.* will install livdb 0.3.0 (since it's greater than 0.2.7), which is incompatible with the last 0.2.x livedb-mongo.
Seems like a solution would be another 0.2.x release of livedb-mongo that depended on livedb <0.3.0.
I realize this won't be a problem for long, but it is currently breaking the Derby.js new project generator, which specifies livedb-mongo 0.2.x, which is in turn installing livedb 0.3.0.

livedb is just a dev dependency now.


Errors highlighting 2

preparations for introducing errors popup, fixed upon review and updated

Please, use meaningful names for commit titles.

You didn't rename bg variable to background which I mentioned to you in the previous pull request.

Name CellMapper and BaseCellMapper which inherits from it seems illogical to me. Need to find a better name, for example, CellMapper -> BaseCellMapper, BaseCellMapper -> BaseDomCellMapper, BaseViewCellMapper.

I am not sure about extracting CellMapper. Code reduced duplication, but the architecture got more complicated. Think about how we can achieve the same goal with delegation instead of inheritance.

I accept these changes, but I expect that you will do something about the comments which I wrote here.


fix issue where prim links in the changelog require a full name

Should probably just use Primitive::from_format_name


kernel: Add ROUND2_UP() and ROUND2_DOWN() macros

Changed to ROUND2_UP and ROUND2_DOWN() (the ALIGN_xx names were already in use in sub-modules).
Add new macros ROUND2_UP() and ROUND2_DOWN() that are similar to ROUND_UP() and ROUND_DOWN().
The significant difference between them is that unlike the ROUND_xx() macros, the ROUND2_xx() macros are restricted to alignments that are a power of two. (The ROUND_xx() macros used to be this way, but changed to allow arbitrary integer rounding mid 2023).
Whenever the alignment is both a power of two and a constant, then there ought to be no difference in the generated code when comparing ROUND2_xx() to ROUND_xx(). However, when the alignment is both a power of two and a variable, then the ROUND2_xx() macros can be expected to generate better performing code than the generic ROUND_xx() macros.
Fixes #66454

Replaces the previously proposed ALIGN_xx() macros with ROUND2_UP() and ROUND2_DOWN() as ALIGN_UP() and ALIGN_DOWN() were already in use in other modules.
A type parameter has been added to the macro instead of forcing the math to cast values to an "unsigned long". This allows extra flexibility as the macro can now be used on 64-bit integer types on 32-bit architectures.

Suggestion:

Providing the type as an argument is nice, but this doesn't work for
pointer types. Might be nicer to always cast to uintptr_t internally
and use the provided type for the final result.

_ As for allowing 64-bit values on 32-bit architectures, you could do:

#define ALIGN2_UP(type, val, align) \
    (sizeof(value) == 64 ? ALIGN2_64_UP(type, value, align) \
                         : ALIGN2_32_UP(type, value, align))

This way, the internal cast could be unsigned int in the 32-bit case and
unsigned long long in the 64-bit case.

Pushing this further, the type could be substituted with
__typeof__(value) without the need to provide it explicitly, making
this macro even more useful and avoiding some mistakes:

#define ALIGN2_UP(val, align) \
    ((__typeof__(value)) \
     (sizeof(value) == 64 ? TYPED_ALIGN2_UP(unsigned long long, value, align) \
                          : TYPED_ALIGN2_UP(unsigned int, value, align)))

Oh, and those sizeof(value) == 64 above should be sizeof(value) == 8.

@npitre - I really like your approach for keying off sizeof(value) -- very cool. I think I shall try that. :)

@npitre - I encountered something that I was not expecting when trying out your proposal.

error: invalid application of 'sizeof' to incomplete type 'char[]'

This stems from kernel_tls.h (see the 2nd commit) the variables of type char[] that we are trying to align. We could force a typecast, or use the proposed TYPED_xxx() macro, but ultimately I think that it just simplest and most straight-forward to put the onus of specifying the desired type onto the caller via ROUND2_xx(type, x, align).

Well... here I have some tangential questions.
This code:
static inline size_t z_tls_data_size(void)
{
        size_t tdata_size = ROUND2_UP(size_t, __tdata_size, __tdata_align);
        size_t tbss_size = ROUND2_UP(size_t, __tbss_size, __tbss_align);

        return tdata_size + tbss_size;
}

Here __tdata_size is generated by the linker. It is even used within the
linker script as is to define __tdata_end. Why would the C code decide
to create a size that is not representative of the actual binary? To me,
applying a round-up here looks just wrong. It should either be removed, or
a pretty good explanation in the preceding comment for its presence be added.
If an alignment is actually needed, it should be applied to the linker
section directly in the linker script instead.
That being said ... here __tdata_size and __tbss_align are sort of an
abuse of the C language given that the linker may only create label adresses.
So, to communicate numerical value from the linker for consumption by C code,
we create fake arrays to which the linker assigns a fake address. This is
therefore a rather exceptional and
somewhat hackish case for which it would be wrong to tailor generic infrastructure for. In other words, ROUND2_UP()
should not bend backward to accommodate this case. Rather, you should have
something like:
        size_t tdata_size = (uintptr_t)__tdata_size; /* from the linker */

This way, you convert up front the fake address into what it should be
interpreted as i.e. an integer value. And the intermediate uintptr_t type
is necessary to avoid compiler warnings in case the width of size_t is
smaller than a pointer.
Whether or not you need to round it up afterwards is a different matter,
but it is no longer a type issue.

Did I break something? 😬

@andyross - You raised some good points. I've done a search through the git history and found that since that commit last summer, only a couple of the ROUND_UP/ROUND_DOWN additions appear to use non-power-of-two alignments. I am looking at renaming those instances to ROUND_STD_UP/DOWN, and reverting ROUND_UP/DOWN back to powers-of-two. Admittedly, I am not the most fond of the ROUND_STD_UP/DOWN naming, and am open to better ones.
@npitre - I've been playing more with you auto-size selection idea. Unfortunately, the macro expansion is observed to cause compiler warnings with pointers on 32-bit platforms due to a casting of 32-bit pointers to unsigned long long (mismatched sizes). Even though that branch gets optimized away by the compiler, the warning is still present.

@npitre - I've been playing more with you auto-size selection idea.
Unfortunately, the macro expansion is observed to cause compiler warnings
with pointers on 32-bit platforms due to a casting of 32-bit pointers to
unsigned long long (mismatched sizes).

OK then. Here's the universal version:
#define ALIGN_DOWN(value, align) ({ \
        union { unsigned long long ll; __typeof__(value) x; } __v; \
        union { unsigned long long ll; __typeof__(value) x; } __a; \
        __v.x = (value); \
        __a.x = (__typeof__(value))((unsigned long long)(align) - 1); \
        __v.ll &= ~__a.ll; \
        __v.x; })

Works as well for both 32- and 64-bit types, on 32- and 64-bit architectures,
with pointers and integers, and either big or littl;e endian.
Here's the assembly I get for big endian ARM32 compilations:
void *foo(void *p)
{
        return ALIGN_DOWN(p, 16);
}

foo:
        bic     r0, r0, #15
        bx      lr

int bar(int x, int y)
{
        return ALIGN_DOWN(x, y);
}

bar:
        rsb     r1, r1, #0
        and     r0, r0, r1
        bx      lr

unsigned long long baz(unsigned long long x, int y)
{
        return ALIGN_DOWN(x, y);
}

baz:
        rsbs    r3, r2, #0
        asr     r2, r2, #31
        rsc     r2, r2, #0
        and     r0, r0, r2
        and     r1, r1, r3
        bx      lr

unsigned long long burp(unsigned long long x)
{
        return ALIGN_DOWN(x, 64);
}

burp:
        bic     r1, r1, #63
        bx      lr

You can't hardly get better than that.

This being said, I still think it is wrong to perform any alignment at all
in z_tls_data_size() per my earlier tangential comment.

@npitre - Dang that is clever!

@npitre - Dang that is clever!

Not quite perfect yet though. This would be better:
#define ALIGN_DOWN(value, align) ({ \
        union { unsigned long long ll; __typeof__(value) x; } __v; \
        union { unsigned long long ll; __typeof__(value) x; } __a; \
        __v.x = (value); \
        __a.x = (__typeof__(value))((uintptr_t)(align) - 1); \
        __v.ll &= ~__a.ll; \
        __v.x; })

This one actually won't give warnings on pointers with variable alignment.
The only caveat is that you can't use an alignment bigger than what an
uintptr_t can represent which should be quite reasonable.
For the "up" version, simply insert __v.ll += ~__a.ll; before the mask
operation.

I mean __v.ll += __a.ll; of course.  ;-)

@npitre - The union method is great for run time, but not so good for many legacy use cases where ROUND_UP/ROUND_DOWN used in variable definitions.

Re-vamped. This has been trimmed down to just what is needed to satisfy the original issue--no expansion of scope to include ROUND_UP()/ROUND_DOWN() changes.
The __tdata_size and __tbss_size are now rounded up to the next alignment when the image is built instead of (repeatedly) performing those calculations at runtime.

You should cast __tdata_siz to uintptr_t first, then to size_t.
Otherwise you'll get warnings if pointer width is different from size_t width.

Rounding macros can be reworked later if we still have a good reason for that.


how does the code run?

Hello, the author, as a beginner would like to ask, how does the code run?

The following error occurred when compiling in ROS
Copyright (c) 2020, Jung, Hong-ryul
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.


KDE Neon 20.04 is not supported because it is not derived from a supported Debian or Ubuntu release

Expected behavior
deb-get should output all available commands or execute any command.
Actual behavior
Error:
[!] ERROR! KDE Neon Focal is not supported because it is not derived from a supported Debian or Ubuntu release.
Steps to reproduce

install deb-get:

sudo apt install curl
curl -sL https://raw.githubusercontent.com/wimpysworld/deb-get/main/deb-get | sudo -E bash -s install deb-get

try to run deb-get with any command:

deb-get update

System information
Run the following a paste the output below:
/etc/os-release
NAME="KDE neon"
VERSION="5.25"
ID=neon
ID_LIKE="ubuntu debian"
PRETTY_NAME="KDE neon User - 5.25"
VARIANT="User Edition"
VARIANT_ID=user
VERSION_ID="20.04"
HOME_URL="https://neon.kde.org/"
SUPPORT_URL="https://neon.kde.org/"
BUG_REPORT_URL="https://bugs.kde.org/"
LOGO=start-here-kde-neon
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

/etc/lsb-release
DISTRIB_ID=neon
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="KDE neon User - Plasma 5.25"

deb-get version
deb-get 0.3.3

Suggested fix:
    # Fallback to ID_LIKE if ID was not 'ubuntu' or 'debian'
    # ID "ubuntu debian is a exclusive ID from KDE Neon 20.04."
    if [ "${UPSTREAM_ID}" != "ubuntu debian" ] &&[ "${UPSTREAM_ID}" != "debian" ] && [ "${UPSTREAM_ID}" != "ubuntu" ]; then
        UPSTREAM_ID_LIKE="$(grep "^ID_LIKE=" /etc/os-release | cut -d'=' -f2 | sed s/\"//g | cut -d' ' -f1)"
        UPSTREAM_ID="${UPSTREAM_ID_LIKE}"
    fi

The version at main branch is different from version .deb at releases page.
For some reason, the apt gets the .deb version instead the "deb-get" file at main branch.
Version .deb 0.3.4 will fix the issue. closing.

This is the intended behavior. Please wait until the next release.


The json schema of Product is wrong

I can't copy and load the json schema of product

Product json schema is fine now.


undefined is not a function (near '...React.createClass...')

I commented out everything inside the propTypes object in index.js, DefaultTabBar.js, and ScrollableTabBar.js and get the error in the subject. Any way to fix this?
React 16.0.0-beta.5
React Native 0.49
Using Expo 22.0.0

just update to version 0.8.0 with yarn add<EMAIL_ADDRESS>


Don't manage zabbix home directory

Some distributions set home directories to 0700, breaking the web service.

tks

My colleague is highly amused that you merged this one hour before he was due to leave the company. :grinning:


System settings

Before this PR all settings had to be manually configured, and then compiled into your build of helios.
After this PR the settings can be adjusted in a dashboard without having to recompile helios.

This PR is scheduled for the 0.3 release.


Error sending message to Synology Chat

I am experiencing an issue with sending a message to Synology Chat using the provided webhook. When I attempt to send a message, I receive the following error:
"Error sending message to Synology Chat: HTTPSConnectionPool(host='<IP_ADDRESS>', port=5001): Max retries exceeded with url: /webapi/entry.cgi?api=SYNO.Chat.External&method=chatbot&version=2&token=%22TK0NOzhlYGw5qVv0Z4qV1MZvyMheKEAo2iftHrSwqUlZ99ZNBqqbCwUN9WLft3DO%22 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)')))"
I have attempted to set the "verify" parameter to "False" in my code, but this has not resolved the issue. Instead, I received an InsecureRequestWarning with the following message:
"InsecureRequestWarning: Unverified HTTPS request is being made to host '<IP_ADDRESS>'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings"
Although I received a warning that an unverified HTTPS request was being made, the HTTP request came back with a status code of 200.
I am still not able to receive any messages back from the chatbot. Can you please provide assistance in resolving this issue?

I worked this around by using the synology DDNS host name instead of IP.
First I deleted the bot from synology chat, then log off and log into synology chat again using my synology DDNS address, instead of ip. Re-create a bot, now INCOMING_WEBHOOK_URL generated by Synology chat will contain your DDNS address. Update setting.py with new webhood URL and Token, it works perfectly.


Feature/paxos

Coverage decreased (-1.0%) to 98.622% when pulling dc58a13942df60400865b69ed7321349eed1388c on feature/paxos into 57ba5942b46199ecbbdcb331d0ffd7b06fef62b2 on master.


How to install the dragnet package?

I've got the following error.
Collecting pytest>=4.0.0 (from -r requirements.txt (line 5))
Using cached pytest-7.4.2-py3-none-any.whl.metadata (7.9 kB)
Collecting pytest-cov>=2.6.0 (from -r requirements.txt (line 6))
Using cached pytest_cov-4.1.0-py3-none-any.whl.metadata (26 kB)
Collecting scikit-learn<0.21.0,>=0.15.2 (from -r requirements.txt (line 7))
Using cached scikit-learn-0.20.4.tar.gz (11.7 MB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... error
error: subprocess-exited-with-error
× Preparing metadata (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [24 lines of output]
:12: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
Partial import of sklearn during the build process.
Traceback (most recent call last):
File "", line 153, in get_numpy_status
ModuleNotFoundError: No module named 'numpy'
Traceback (most recent call last):
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\pip_vendor\pyproject_hooks_in_process_in_process.py", line 353, in
main()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\pip_vendor\pyproject_hooks_in_process_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\pip_vendor\pyproject_hooks_in_process_in_process.py", line 149, in prepare_metadata_for_build_wheel
return hook(metadata_directory, config_settings)
File "C:\Users\Administrator\AppData\Local\Temp\pip-build-env-6v8axpi2\overlay\Lib\site-packages\setuptools\build_meta.py", line 396, in prepare_metadata_for_build_wheel
self.run_setup()
File "C:\Users\Administrator\AppData\Local\Temp\pip-build-env-6v8axpi2\overlay\Lib\site-packages\setuptools\build_meta.py", line 507, in run_setup
super(_BuildMetaLegacyBackend, self).run_setup(setup_script=setup_script)
File "C:\Users\Administrator\AppData\Local\Temp\pip-build-env-6v8axpi2\overlay\Lib\site-packages\setuptools\build_meta.py", line 341, in run_setup
exec(code, locals())
File "", line 250, in
File "", line 238, in setup_package
ImportError: Numerical Python (NumPy) is not installed.
scikit-learn requires NumPy >= 1.8.2.
Installation instructions are available on the scikit-learn website: http://scikit-learn.org/stable/install.html
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
WARNING: There was an error checking the latest version of pip.

I am having the exact same issue and haven't been able to find a solution.


Rules should consider infix functions

For example argument-list-wrapping & wrapping.
Expected Behavior
val code =
    """
    val x = every {
        foo.bar(baz)
    } returns bar
    """.trimIndent()
val formattedCode =
    """
    val x = every {
        foo.bar(
            baz
        )
    } returns bar
    """.trimIndent()
argumentListWrappingRuleAssertThat(code)
    .withEditorConfigOverride(MAX_LINE_LENGTH_PROPERTY to 10)
    .isFormattedAs(formattedCode)

Current Behavior
The example above fails. Below works though.
val code =
    """
    val x = every {
        foo.bar(baz)
    }.returns(bar)
    """.trimIndent()
val formattedCode =
    """
    val x = every {
        foo.bar(
            baz
        )
    }.returns(bar)
    """.trimIndent()
argumentListWrappingRuleAssertThat(code)
    .withEditorConfigOverride(MAX_LINE_LENGTH_PROPERTY to 14)
    .isFormattedAs(formattedCode)

Additional information

Current version of ktlint: 1.1.0 (tested on master as well)

This seems to be a regression bug from the 0.50.0 release. It works with 0.49.0:
$ ktlint-0.49.0 --relative -F --stdin
21:19:07.409 [main] INFO com.pinterest.ktlint.cli.internal.KtlintCommandLine - Enable default patterns [**/*.kt, **/*.kts]
    val x = every {
        foo.bar(baz)
    } returns bar

val x =
    every {
        foo.bar(
            baz,
        )
    } returns bar
<stdin>:1:1: Exceeded max line length (10) (standard:max-line-length)
<stdin>:1:5: Property name should use the screaming snake case notation when the value can not be changed (standard:property-naming)
<stdin>:1:6: Property name should use the screaming snake case notation when the value can not be changed (standard:property-naming)
<stdin>:1:9: Exceeded max line length (10) (standard:max-line-length)
<stdin>:2:1: Exceeded max line length (10) (standard:max-line-length)
<stdin>:2:18: Exceeded max line length (10) (standard:max-line-length)

It turns out that this is not a regression bug, but was a consicious decision to handle binary expressions for which at least one of the operands was a call expression having an argument list. As a rather simplistic measure the argument list wrapping was ignored whenever it was part of a binary expression. It resolved incorrect formatting of examples below:
Example:
// $MAX_LINE_LENGTH_MARKER         $EOL_CHAR
val foo1 = foobar(foo * bar) + "foo"
val foo2 = foobar("foo", foo * bar) + "foo"
val foo3 = foobar("fooo", foo * bar) + "foo"

If the argument-list-wrapping would not be ignored when inside a binary expression, the code above would be formatted as:
// Max line length marker:         #
val foo1 = foobar(foo * bar) + "foo"
val foo2 = foobar(
  "foo",
  foo * bar
) + "foo"
val foo3 = foobar(
  "fooo",
  foo * bar
) + "foo"

Although disguised, your example is also a BINARY EXPRESSION:

The alternative in which the argument is wrapped, is a DOT QUALIFIED EXPRESSION:

The binary-expression-wrapping rule is now smarter.
It no longer has a rule dependency on the value-argument-wrapping rule. Instead, if a binary expression is used as value argument, and it causes the max line length to be exceeded, then it wraps the value argument.
            // $MAX_LINE_LENGTH_MARKER    $EOL_CHAR
            val foobar1 = Foo(1 * 2 * 3 * 4)
            val foobar2 = Foo(bar(1 * 2 * 3))
            val foobar3 = Foo(bar("bar" + "bazzzzzzzzzzz"))
            val foobar4 = Foo(bar("bar" + "bazzzzzzzzzzzz"))

is formatted as
            // $MAX_LINE_LENGTH_MARKER    $EOL_CHAR
            val foobar1 = Foo(
                1 * 2 * 3 * 4
            )
            val foobar2 = Foo(
                bar(1 * 2 * 3)
            )
            val foobar3 = Foo(
                bar(
                    "bar" + "bazzzzzzzzzzz"
                )
            )
            val foobar4 = Foo(
                bar(
                    "bar" +
                        "bazzzzzzzzzzzz"
                )
            )

If the left hand side of the binary expression is call expression with a lambda argument, then wrapping the lambda argument has priority over wrapping the other arguments of the call expression.
            // $MAX_LINE_LENGTH_MARKER       $EOL_CHAR
            fun foo() {
                require(bar != "barrrrrrrr") { "some longgggggggggggggggggg message" }
            }

is formatted as
            // $MAX_LINE_LENGTH_MARKER       $EOL_CHAR
            fun foo() {
                require(bar != "barrrrrrrr") {
                    "some longgggggggggggggggggg message"
                }
            }

If the binary expression contains an elvis operator, and does not fit on a single line, than the expression is wrapped before the elvis operator.
            // $MAX_LINE_LENGTH_MARKER                            $EOL_CHAR
            val foo = foobar ?: throw UnsupportedOperationException("foobar")

is formatted as
            // $MAX_LINE_LENGTH_MARKER                            $EOL_CHAR
            val foo =
                foobar
                    ?: throw UnsupportedOperationException(
                        "foobar"
                    )

Shouldn't it be wrapped after the elvis operator?
Other operators are wrapped after as well (e.g. +, &&).

Shouldn't it be wrapped after the elvis operator?
Other operators are wrapped after as well (e.g. +, &&).

Reason for wrapping before the "elvis" is the alignment with chained methods:
foo
    .map { doSomething() }
   ?.let { somethingElse() }
   ?: otherwise()

Also the "elvis" can more or less be associated with the "else" keyword which is also aligned at beginning of line.


Default case sensitivity differs in Exasol from default dbt adapters - tests including metadata fail

The default case in Exasol is capital letters - as one can see from the changes that needed to be made to the seed files in the basic tests. Only if CSV header contains capital letter headers do the basic tests succeed.

Currently, I am seeing two options:
a) we have to maintain those tests specifically for dbt-exasol in order to
b) we manage to change case in seed and metadata to be all lower case? From the tests defined in dbt-core I assume that lower case is the standard for identifiers in dbt?
Any ideas? @jups23 @Fredehagelund92 @sti0 @ilikutle @dataders

this has been solved through pr #48 - quote-seed-column was change to default to true - and has been overriden to be False again in dbt-exasol. this way the default for seeds is case insensitive column headers.


Japanese Corpus readers do not return properly formatted (word, tag) tuples

There are still problems with how POS Tagging works for these corpora. This afternoon, I loaded up JEITA, and called jeita.tagged_words(). The problem is that the second half of each tuple in JEITA doesn't contain a tag that is easy to test against a POS-tagger. The second half of each tuple contains both orthographic information (each word in the corpus has a spelling for each syllabary in Japanese) and the tag information, so a word tagged as a noun won't have the same tag as another word tagged as a noun. This leads to quite a few problems when testing a tagger against the corpus.
Open up one of the .chasen files and you'll see what I mean. Here's line 6 of a0010.chasen in the jeita.zip file.
出る  デル  出る  動詞-自立   一段  基本形
There's four ( or maybe five) elements here. The first three are ways of writing the word /deru/, and the last is the tag (verb, transitive, group 1, plain form.)
So I wrote this loop:
for sent in tagged_sents:
for(word, tag) in sent:
print(word)
print(tag)
And here's some sample output:
出る
デル  出る  動詞-自立   一段  基本形
As you can see, the tag includes two forms of orthography, which throws things off.
(Also, as a side note, it would be really great if we could have a "simple" pos tag version of these files, which didn't include some of the additional categories like "plain form" or which group (ichidan/godan) the verb belonged too, since I don't think a lot of parsers care too much about which is which, but doing this would probably take help from a Japanese fluent individual.)
I can check again with KNBC, the other Japanese corpus included in NLTK, but it does even funkier things with tags last I checked.

Actually, 動詞-自立 一段 基本形 tag is not unlike the hierarchical POS tags from other languages, you can break them up or collapse them, e.g. see page 22 on the NTU-MC
And the two orthographic forms are actually good because it's additional information. Possibly the NLTK API needs some more work to split them up but the information in the corpus is good and we shouldn't remove them.

I would still hold its an error to include orthographic information as part of a POS tag.

Agreed that the API should been better.  Maybe namedtuple on the tag would be a better interface:
for word, tag in sent:
    print tag.form1() # デル
    print tag.form2() # 出る
    print tag.coarse_pos() # 動詞-自立
    print tag.fine_pos() # 動詞-自立 一段 基本形

That looks much better to me.

I agree with @brendanpatrickmurphy that it's confusing from an NLTK perspective to mix orthographic information in with the POS tag.
It seems like the word form flexibility is similar to some corpora which provide lemmas. How is this handled in other NLTK corpora? The corpus readers I'm familiar with include:

SemCor: semcor.tagged_chunks(tag='pos') vs. semcor.tagged_chunks(tag='sense'). The latter returns a WordNet Lemma object as the tag.
CHILDESCorpusReader: words(), tagged_words(), etc. have a boolean stem argument.

So it might make sense to have arguments indicating the type of POS and/or word-form desired: e.g., tagged_words(form='form1', pos='fine').

A possibly better naming scheme would be:
for word, tag in sent:
print tag.pronunciation # デル
print tag.lemma # 出る
print tag.pos # 動詞-自立
print tag.paradigm # 一段  (or conjugation type)
print.tag.inflection # 基本形 (or conjugation form)
Note that only inflecting words have paradigm/inflection
https://osdn.net/projects/chasen-legacy/docs/chasen-2.4.0-manual-en.pdf/en/1/chasen-2.4.0-manual-en.pdf.pdf


🔔🤖ℹ GCP Region Changes

This thread automatically documents changes to Google Cloud regions.
🤖 The Google Compute Engine API is fetched daily via GitHub Action.
🔔 Subscribe to this issue if you want to be informed about new or deleted Google Cloud regions and Google Compute Engine machines types in Google Cloud regions.

New year new issue: https://github.com/Cyclenerd/google-cloud-pricing-cost-calculator/issues/132


rbac settings authentication issues

Gateway Version: 2311
Extension Version that's been used if it applies
To Reproduce
Steps to reproduce the behavior:

Go to '..server connections   then click add and connect to this server'
Click on 'settings then role based access control - click apply   do not click away for at least 10 mins (seriously -until you see the green notification - do not click refresh during this time )....'
once you see that it has been applied, add a non privileged user to the local group "Windows Admin Center readers" on the server which has been created as part of the rbac process' using ad it just needs to be a domain user - the default for Mac gateway users is also domain users
4.copy the wac gateway address and logon to the gateway with the non privileged account - this works and will leave a view of the only server being the way gateway server
add the server where the rbac config has been deployed and try to authenticate - you will get "your credentials didn't work" error. and possibly some web socket errors showing up in the console from the alarm bell icon in the top rh corner

Expected behavior
it should lcomplete and add the server to the console but it didn't - the credentials were checked using the eye revealer and were correct multiple times.
I connected with admin credentials from the gateway to the rbac server and added the non privileged user to the remote management group - following that the above procedure worked and the credentials were accepted.
tried to connect to the rbac server as non privileged user (from a client machine using the Wac url) and now the error is "exception - operation blocked by rbac settings"
if I change the "manage as" credential directly on the WAC gateway itself then the non privileged user connects through to the rbac configured server as a limited access user as expected

Hi! Thank you for bringing it this issue! We are investigating the RBAC currently.


add dependabot config script

Inspired by https://github.com/kubeflow/pipelines/issues/4682  I created a script that will create a config file for depandabot so that it knows what directories to scan. It will scan the repository for files named *ockerfile*, package*.json, *requirements.txt and go.*.  It is setup for dockerfiles, npm packages, pip dependencies and gomod at the moment. It is trivial to further customize what folders are selected if further customization is needed. It also parses the closest OWNERS file for a given dependency listing file, and assigns the relevant approvers and adds the relevant reviewers to the PRs it creates.
This is a sibling PR to https://github.com/kubeflow/pipelines/pull/5015, https://github.com/kubeflow/kubeflow/pull/5542, https://github.com/kubeflow/kfserving/pull/1309, https://github.com/kubeflow/arena/pull/403, https://github.com/kubeflow/testing/pull/855, https://github.com/kubeflow/fairing/pull/550, https://github.com/kubeflow/kfp-tekton/pull/432, https://github.com/kubeflow/katib/pull/1420, https://github.com/kubeflow/tf-operator/pull/1224, https://github.com/kubeflow/kfp-tekton-backend/pull/28, https://github.com/kubeflow/mpi-operator/pull/319, https://github.com/kubeflow/pytorch-operator/pull/315, https://github.com/kubeflow/metadata/pull/255, https://github.com/kubeflow/xgboost-operator/pull/107, https://github.com/kubeflow/fate-operator/pull/26, https://github.com/kubeflow/mxnet-operator/pull/87, https://github.com/kubeflow/website/pull/2459, https://github.com/kubeflow/kfctl/pull/479, https://github.com/kubeflow/examples/pull/843, https://github.com/kubeflow/code-intelligence/pull/198, https://github.com/kubeflow/gcp-blueprints/pull/192, https://github.com/kubeflow/common/pull/107 and https://github.com/kubeflow/blog/pull/64
As it stands now, there will be about 1 PRs that will be created with this configuration.
For reference, the PRs that will be created can be found here: https://github.com/DavidSpek/internal-acls/pulls

/assign @Bobgy

/assign @Bobgy

I am holding the PR to have some control over when it gets merged so that the optional test infra doesn't get overloaded if all the repo's were to merge this at the same time.
/hold

I am holding the PR to have some control over when it gets merged so that the optional test infra doesn't get overloaded if all the repo's were to merge this at the same time.
/hold


Refactoring file structure

Description
I have reviewed the frontend file structure and found as it is currently organized is confusing and almost hostile to read with cold eyes.  Since we have some down time with the backend and AuthO still being worked on, I opted to use time to structure the code to be more friendly and make more sense if you're coming into the project cold (ideally allowing faster ramp up for new teams every 5 weeks).
The current issue is file sizes are large and a lot of the folders have a large number of files dumped into them.  This makes sorting through any given file a slog (not to mention give bugs more places to hide).  Additionally, a large number of files dumped into a folder means you often have to read through a lot of files to understand what everything is doing and restricts file abstraction (10 files x 3 abstractions each = nightmare so instead file sizes have gotten large to work around this issue).
I have started work to create no more than 2 nested levels deep inside the components/ folder to allow components room to grow.  Additionally, I find the folder structure makes finding specifically what you want more intuitive.
This PR represents approximately 50% of the file structures converted.  This is a good (working) break point before I continue with the heavier structure reworks.
Type of change

[x] Bug fix (non-breaking change which fixes an issue)

Change status

[x] Complete, tested, ready to review and merge

How Has This Been Tested?
Component structure was manually tested locally.
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] My code has been reviewed by at least one peer
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] There are no merge conflicts

@ajb85 @GannonDetroit Glad we got the deploy issue figured out. I built it locally and also deployed, this is good to be merged and doesn't appear to have any merge conflicts with master any more (I did a dry-run locally).
🚢 This one is good to merge!


Added https://www.nuget.org/packages/garnet-server link under the GH Release docs

Since we release the server now, we should add it to our GH release docs.
Added https://www.nuget.org/packages/garnet-server link under the "Get Nuget Binaries" under the Github release docs.

Consider adding the nuget badge fir the tool to the readme

Consider adding the nuget badge fir the tool to the readme

Replace the existing line for nuget in the beginning of README.md with this:
[![](https://img.shields.io/nuget/dt/microsoft.garnet.svg?label=nuget%20library&color=007edf&logo=nuget)](https://www.nuget.org/packages/microsoft.garnet)
[![](https://img.shields.io/nuget/dt/garnet-server.svg?label=dotnet%20tool&color=007edf&logo=nuget)](https://www.nuget.org/packages/garnet-server)


Part should start on the "right" page

The expectation for parts (=Header) is that they start on the odd page.
Example:
= Part 1
blabla
= Part 2
blabla

Currently we have page 1 with Part1 and page 2 with Part 2. This is not how a book is organized. Part 2 should be one page 3 and page 2 should be empty, similar to how DocBook XLST does it.

@fap- something for you?

This is already possible. You just need to set the attribute media=prepress. Then, all the traditional printing rules get applied. You can set the attribute either in the document header or via the API / CLI.

See https://github.com/asciidoctor/asciidoctor-pdf/blob/master/docs/theming-guide.adoc#publishing-mode for details. If there is information you think is missing, please let us know.

Thanks for the info. It works perfectly.
I just have one more question. How do I mark Parts and Chapters as nonfacing ones?

Just add the following line above the title.
[%nonfacing]
That adds an option to the section node that tells Asciidoctor PDF to skip
this behavior.

Thanks @mojavelinux
Sounds that this is one of the "book style was not considered during the initial design of the pdf generator" issues. I think for book style you want only the = Header 1 on a right hand side page.
What do you think?

@vogella I'm not sure what you mean. It's now implemented in the same way as other typesetting tools. You have facing pages by default when media=prepress and a way to disable that behavior for select parts and chapters.

@mojavelinux I compared with my old DocBook output and learned ;-) that DocBook behaves exactly like this. Thanks in this case, this is than fixed.
@jnerlich or I will send you a PR for adding the explicit mentioning of [%nonfacing] to
https://github.com/asciidoctor/asciidoctor-pdf/blob/master/docs/theming-guide.adoc#publishing-mode
As far as we can see, it is not yet included there.

Yes! That would be fantastic!

https://github.com/asciidoctor/asciidoctor-pdf/pull/660
Let me know if this is OK for you.

That's great.

Can this issue be closed?

Yes. Sorry for leaving it open.


 Nachet microscope images or Docker images? Because we actually need to work on the design of both.

What kind of images? Nachet microscope images or Docker images? Because we actually need to work on the design of both.

Don't you read issue description?

Wil be done via this issue: https://github.com/ai-cfia/dev-rel-docs/issues/124


Python 2 compatibility

If you aren't going to support python2, this line
https://github.com/legnaleurc/wcpan.telegram/blob/master/wcpan/telegram/util.py#L61
can be rewritten using dict comprehention, and become more readable in my opinion.

Yes I don't care Python 2 at all.
I'll do that if I have enough bandwidth.


Debugging a CWL job on GCP

Hi again,
I'm seeing some odd behaviour with running a CWL pipeline on GCP and wondering if anyone has suggestions for debugging this.
Basically during the get_parallel_regions_jointvc step in the workflow, the job seems to "hang" forever - in the background a single GCP instance is created and gets deleted after almost exactly 10 minutes. It goes on forever like this creating and deleting instances. There's nothing logged by bcbio when this happens. Oddly, I see the GCP pipelines API itself issuing a delete request to the compute API, rather than the instance shutting itself down after completing the work (I'm not sure if this is just normal behaviour or not).
The pipeline disables SSH so there doesn't appear to be a way to get a log from the workload itself. There are no logs in the working dir in the bucket for this step either.
The template looks like this:
# Variant calling with GATK pipeline - WES
---
details:
  - analysis: variant2
    genome_build: GRCh37
    metadata:
      batch: KC_ANZRAG_WES_GATK_batch
    algorithm:
      aligner: bwa
      recalibrate: false
      variantcaller: gatk-haplotype
      jointcaller: gatk-haplotype-joint
      tools_off: fastqc
      # for targetted projects, set the region
      variant_regions: S03723314_Padded_noCHR.bed

This particular run has only 20 samples as I'm gradually ramping up to control our GCP spend. The same job with only one sample finished without error.
Cheers,
Kieran

So after digging into this a bit, it looks like the current release of Cromwell is quite naive in how localization is done on GCP. It creates a genomics pipeline "Action" for each file which results in gigantic pipeline jobs that seem to trip up the pipeline worker.
This appears to be fixed in the develop branch: https://github.com/broadinstitute/cromwell/pull/5091. Now to work out how to build Cromwell...

Kieran;
Thanks for the detailed report and for following up with the solution. One of the positives of using CWL is that all of these details about the run get moved to Cromwell, but the downside is that we have less visibility into debugging from the bcbio side so don't have a lot of insight when things fail. Sorry to not really be able to help much with this but hopefully the development version runs cleanly for you.

Thanks Brad. I was able to build the latest Cromwell and it does handle this much better.
I am immediately running into another issue though :frowning_face:
I think the root cause here is that the reference data is duplicated for each sample in the batch so it's doing way more localization than expected and ends up running out of disk space on the worker machine. I'm not sure which tool to "blame" here but I'm assuming this is also on the Cromwell side.

Kieran;
Glad that fixed the original issue. There was a new Cromwell v45 release earlier today that is getting pushed through on the conda package so you should at least have this going forward without needing a custom development build.
Unfortunately that is another issue that's Cromwell specific and would be worth asking about in their issue tracker. Ideally we'd be able to cache the same file present multiple times and not re-download it into separate contexts. I'm not that familiar with how the underlying Cromwell logic works so would need to defer to what that team thinks. Thanks again for working through these issues.


VSIXInstaller.NoApplicableSKUsException: One or more extensions are for Visual Studio Code

Dafny version
3.0.4
Code to produce this issue
No response
Command to run and resulting output
No response
What happened?
Hi, I couldn't install Dafny extension in VScode successfully.
The error is
 VSIXInstaller.NoApplicableSKUsException: One or more extensions are for Visual Studio Code. Try installing them in Visual Studio Code.    at VSIXInstaller.ExtensionService.GetInstallableDataImpl(IInstallableExtension extension, String extensionPackParentName, Boolean isRepairSupported, IStateData stateData, IEnumerable1& skuData)
at VSIXInstaller.ExtensionService.GetInstallableData(String vsixPath, String extensionPackParentName, Boolean isRepairSupported, IStateData stateData, IEnumerable1& skuData)    at VSIXInstaller.ExtensionPackService.IsExtensionPack(IStateData stateData, Boolean isRepairSupported)    at VSIXInstaller.ExtensionPackService.ExpandExtensionPackToInstall(IStateData stateData, Boolean isRepairSupported)    at VSIXInstaller.App.Initialize(Boolean isRepairSupported)    at VSIXInstaller.App.Initialize()    at System.Threading.Tasks.Task1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
The info about vscode is below:
Version: 1.75.1 (user setup)
Commit: 441438abd1ac652551dbe4d408dfcec8a499b8bf
Date: 2023-02-08T21:32:34.589Z
Electron: 19.1.9
Chromium: 102.0.5005.194
Node.js: 16.14.2
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.22621
Sandboxed: No
`
Is there version confilct?
What type of operating system are you experiencing the problem on?
Windows

Can you describe the steps you took in install the extension?

Yes, I opened VSCode, and then clicked extension buttons on the left, then I input Dafny, and then I clicked "install" button.
But it failed.

Can you try
code --verbose --install-extension dafny-lang.ide-vscode

?

Sure. It seems not found. Weird.

This looks like a VS code issue to me, but the full log might offer more insights.

Hi, it is solved. It's a network issue. I just switched to another network. It is solved.
Thanks


v0.5 - String Change List

These are the tasks to address for v0.5:

~Change '_new' to be non-allocating, return struct~
~Ensure '_push' works with 0-initialized string structs~
~Change return types to be params instead of inner members~
~Add '_copy' and '_move' functions~
~Change '_new_from_str' to '_from_str'~
~Change all '_mutable' to '_mut'~
~Review need for '_end_mutable'~
~Review '_append' functions. Change to '_cat'?~
~Consider consolidation of 'string' source files (string, string_utils)~
~Move comparison and~ hash functions to string files
~Create private header for non-public API functions~
~Review naming in 'string_utils'. Add underscores to improve readability.~
Review testing practices, rebuild tests if using old test strategy

Can the cgs_string_new_from_str function just be cgs_string_from? It is the most likely instance of creating a string from something else.
struct cgs_string s1 = cgs_string_new(0);
assert(cgs_string_from("Hello String", &s1) != NULL);

Empty strings are a problem. Ideally, the call to '_new' would create an empty string. Currently the data members of new strings are NULL which could lead to some bad results from comparisons that expect an empty string. Need to come up with a solution to this.
Can we allocate a string in a source file?

I'm keeping 'end_mut' for now for symmetry with 'begin_mut'. I may revisit this later.

The 'prepend' and 'append' sets of functions are awkward.

the 'str' versions for adding C-strings to the beginning and end of a cgs_string will stay, they may get re-visited when considering what to do with the string utils code
the 'cgs_string' versions will change
I'm changing 'append' to the more familiar 'cat'
why have a prepend when it's really just a backwards 'cat'?

If I come upon a situation in the future where I suddenly NEED a prepend then I'll bring it back.

The string_utils decisions will be postponed till a later patch.

Comparison functions are now in the string header. Hash functions can stay with the hash table file for now as its the only place they'll be needed for the time being.

Tests will be upgraded as part of library-wide fix
string utils will be re-considered

This action item is complete.


Completing with ycmd and company is very slow

Completing C code with with ycmd and company is very slow. I tried to illustrate it with a gif:

I started typing directly after the completion for call appeared however it took a long time before the typed letters actually became visible. If I disable ycmd-mode I do not have this issue.
I'm using spacemacs.

If I disable ycmd-mode I do not have this issue.

Do you mean that when ycmd-mode is disabled completion works perfectly and with good performance? Or that completion doesn't work at all but editing is fast?
What value do you have for ycmd-force-semantic-completion?

I mean that completion works (but ycmd is not completing, but other sources are) and the performance is good.
I have ycmd-force-semantic-completion set to t as is recommended by spacemacs. Without it I don't get any completions from ycmd it seems.

ycmd-force-semantic-completion is probably the issue. For large enough C++ projects, ycmd's delay to get true semantic completion can be substantial, so that's probably what you're running into. What a lot of people (including myself) do is set ycmd-force-semantic-completion to nil and create a new function for doing semantic completion when we want. You can, of course, make this behavior dependeny on major-mode, etc.
See e.g. the discussion in #183.

But it is happening for every file in my case. See the example where the file is 10 lines and input already hangs during completion.

It might help if you post any config files that you think are incident: .ycm_extra_conf.py, any emacs configuration, etc. This kind of completion works just fine on many systems, including spacemacs system (like mine).

The problem is not the file size, rather ycmd is returning completion for the whole namespace you are including, so basically everything from your includes. Also ycmd uses fuzzy matching for candidates, so it returns candidates not only which start with call like in your case but also candidates that contain c, a, l, l non-contiguously.
Usually you want semantic completion after a semantic trigger like . or ->, but I know that for C this not always the case because there are a lot of global function one wants to call and there is no namespaces.
I also think the spacemacs recommendation to set ycmd-force-semantic-completion to t is not optimal.
As @abingham pointed out it's better to have a function and binding to complete with forced semantic completion and leaving identifier based completion for the "as-you-type` case.

See the example gif I posted. I only included stdlib and stdio, that should be doable right? My elisp config for ycmd is:
(setq ycmd-server-command '("python3" "/home/USER/ycmd/ycmd"))
(setq ycmd-force-semantic-completion t)
(setq-default company-ycmd-insert-arguments
              nil)
(setq-default company-clang-insert-arguments
              nil))

I have not added a custom .ycm_extra_conf.py, the server also starts with the message 2017-10-31 13:14:22,767 - DEBUG - Global extra conf not loaded or no function YcmCorePreload.
I would not really mind that completion takes a bit longer (it is annoying though), but what does really bother me is that typing is blocked while it is completing.

I would not really mind that completion takes a bit longer (it is annoying though), but what does really bother me is that typing is blocked while it is completing.

@libre-man you can set company-ycmd-request-sync-timeout to 0 in order to have async only completion requests in company-ycmd

When setting company-ycmd-request-sync-timeout to 0 smaller files work a lot better. However when opening a small project (that does include larger projects such as libcheck) the lag in typing reappears: .
You can see that the push appears very quickly, that is not because I typed it really fast but because of the mentioned lag.
About the config, I haven't changed anything about spacemacs in that regard, but I can't find a file named .ycm_extra_conf.py anywhere on my computer using locate.

Could you please post a small example so we are able to reproduce it?

Sure, I'll try to do that later tonight.

Related, but I suppose still relevant in this thread; I put the following in my init file:
(set-variable 'ycmd-force-semantic-completion nil)
(setq company-ycmd-request-sync-timeout 0)
Is there anything else I can do to make the text editing more seamless and smooth?
I'm really not a big fan of feeling like I'm typing on a remote server based in China.


pip install jishaku requires a non existing version of discord

Summary
When running pip install jishaku i get following error:
Collecting discord.py>=1.3.0a2084 (from jishaku)   Could not find a version that satisfies the requirement discord.py>=1.3.0a2084 (from jishaku) (from versions: 0.1.0, 0.2.0, 0.2.1, 0.3.0, 0.3.1, 0.4.0, 0.4.1, 0.5.0, 0.5.1, 0.6.0, 0.6.1, 0.6.2, 0.6.3, 0.7.0, 0.8.0, 0.9.0, 0.9.1, 0.9.2, 0.10.0, 0.11.0, 0.12.0, 0.13.0, 0.14.0, 0.14.1, 0.14.2, 0.14.3, 0.15.0, 0.15.1, 0.16.0, 0.16.1, 0.16.2, 0.16.3, 0.16.4, 0.16.5, 0.16.6, 0.16.7, 0.16.8, 0.16.9, 0.16.10, 0.16.11, 0.16.12, 1.0.0, 1.0.1, 1.1.0, 1.1.1, 1.2.0, 1.2.1, 1.2.2, 1.2.3) No matching distribution found for discord.py>=1.3.0a2084 (from jishaku)
Reproduction steps
run pip install jishaku in command prompt
Expected results
Jishaku installs
Actual results
Error saying that discord version was not found
Checklist

[x ] I have updated discord.py and jishaku to the latest available versions and have confirmed that this issue is still present
[x ] I have searched the open issues for duplicates
[ x] I have shown the entire traceback, if possible
[ x] I have removed my token from display, if visible

System information

No jishaku and discord.py 1.3.0a

My bad, I forgot that I had put the requirements bump on stash. It was supposed to wait until 1.3.0 released.

v1.16.1 has been pushed by CI so this issue should now be fixed. Rerun the install and see if it fixes it on your machine.

Fixed
Thanks


This PR refines the Regression interface to be similar to the Classifer one.

Implement uniform optional arg interface.
All of the algorithms that now use this to have one argument (optionally specified) for all of the possible fine tuning details.

I'm not certain if the Regression capabilities need to have support for the various Data encodings founding in Classify. Probably best to extract that into a separate layer.


Use tuples instead of arrays as activation function return types

This is a tiny optimization.
The formatter was automatically run and changed some lines, I expect you don't mind.

Hi @hugoabonizio
Thanks for the PR, @ArtLinkov will take a look.

Thanks @hugoabonizio, tuple is a good idea.