musl C++ support

Trying to build a Rust project that uses C++ (via gcc-rs) on one of the musl targets fails with "musl-g++ not found".  It would be neat if this combination just worked as well as C++ on other targets.

We also have this problem (well, it says musl-gcc not found), but only on Windows, and only recently. Haven't narrowed down the cause yet unfortunately.

Would you mind trying this newer version of MUSL and let me know if it works for you now?: https://github.com/rust-embedded/cross/pull/452

@brainstorm It seems that the x86_64 image can now build C++ code, but it doesn't link to the libstdc++. :(
Here's an error sample without changing this main branch:
# ..
          /cargo/git/checkouts/leveldb-sys-23b2a41b0af71d11/bbdd99a/deps/leveldb-1.22/table/format.cc:32: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const'
# ...
          /usr/local/x86_64-linux-musl/include/c++/9.2.0/bits/vector.tcc:643: undefined reference to `__cxa_begin_catch'
          /usr/local/bin/../lib/gcc/x86_64-linux-musl/9.2.0/../../../../x86_64-linux-musl/bin/ld: /usr/local/x86_64-linux-musl/include/c++/9.2.0/bits/vector.tcc:646: undefined reference to `__cxa_rethrow'
          /usr/local/bin/../lib/gcc/x86_64-linux-musl/9.2.0/../../../../x86_64-linux-musl/bin/ld: /usr/local/x86_64-linux-musl/include/c++/9.2.0/bits/vector.tcc:643: undefined reference to `__cxa_end_catch'
          /usr/local/bin/../lib/gcc/x86_64-linux-musl/9.2.0/../../../../x86_64-linux-musl/bin/ld: /usr/local/x86_64-linux-musl/include/c++/9.2.0/bits/vector.tcc:663: undefined reference to `__cxa_begin_catch'
          /usr/local/bin/../lib/gcc/x86_64-linux-musl/9.2.0/../../../../x86_64-linux-musl/bin/ld: /usr/local/x86_64-linux-musl/include/c++/9.2.0/bits/vector.tcc:669: undefined reference to `__cxa_rethrow'
          /usr/local/bin/../lib/gcc/x86_64-linux-musl/9.2.0/../../../../x86_64-linux-musl/bin/ld: /usr/local/x86_64-linux-musl/include/c++/9.2.0/bits/vector.tcc:663: undefined reference to `__cxa_end_catch'
          /usr/local/bin/../lib/gcc/x86_64-linux-musl/9.2.0/../../../../x86_64-linux-musl/bin/ld: /target/x86_64-unknown-linux-musl/debug/deps/libleveldb_sys-f89a547530e5179d.rlib(filter_block.cc.o): in function `void std::vector<unsigned long, std::allocator<unsigned long> >::_M_realloc_insert<unsigned long>(__gnu_cxx::__normal_iterator<unsigned long*, std::vector<unsigned long, std::allocator<unsigned long> > >, unsigned long&&)':
          /usr/local/x86_64-linux-musl/include/c++/9.2.0/bits/vector.tcc:485: undefined reference to `__cxa_begin_catch'
# ...
          /usr/local/x86_64-linux-musl/include/c++/9.2.0/ext/new_allocator.h:128: undefined reference to `operator delete(void*)'
          /usr/local/bin/../lib/gcc/x86_64-linux-musl/9.2.0/../../../../x86_64-linux-musl/bin/ld: /target/x86_64-unknown-linux-musl/debug/deps/libleveldb_sys-f89a547530e5179d.rlib(env_posix.cc.o): in function `__gnu_cxx::new_allocator<leveldb::(anonymous namespace)::PosixEnv::BackgroundWorkItem>::allocate(unsigned long, void const*)':
          /usr/local/x86_64-linux-musl/include/c++/9.2.0/ext/new_allocator.h:105: undefined reference to `std::__throw_bad_alloc()'
          /usr/local/bin/../lib/gcc/x86_64-linux-musl/9.2.0/../../../../x86_64-linux-musl/bin/ld: /usr/local/x86_64-linux-musl/include/c++/9.2.0/ext/new_allocator.h:114: undefined reference to `operator new(unsigned long)'
          /usr/local/bin/../lib/gcc/x86_64-linux-musl/9.2.0/../../../../x86_64-linux-musl/bin/ld: /target/x86_64-unknown-linux-musl/debug/deps/libleveldb_sys-f89a547530e5179d.rlib(env_posix.cc.o): in function `__gnu_cxx::new_allocator<leveldb::(anonymous namespace)::PosixEnv::BackgroundWorkItem*>::allocate(unsigned long, void const*)':
          /usr/local/x86_64-linux-musl/include/c++/9.2.0/ext/new_allocator.h:105: undefined reference to `std::__throw_bad_alloc()'
          /usr/local/bin/../lib/gcc/x86_64-linux-musl/9.2.0/../../../../x86_64-linux-musl/bin/ld: /usr/local/x86_64-linux-musl/include/c++/9.2.0/ext/new_allocator.h:114: undefined reference to `operator new(unsigned long)'
          /usr/local/bin/../lib/gcc/x86_64-linux-musl/9.2.0/../../../../x86_64-linux-musl/bin/ld: /target/x86_64-unknown-linux-musl/debug/deps/libleveldb_sys-f89a547530e5179d.rlib(env_posix.cc.o): in function `__gnu_cxx::new_allocator<std::_Rb_tree_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::allocate(unsigned long, void const*)':

And if we make a small tweak:
  FROM rustembedded/cross:x86_64-unknown-linux-musl

+ ENV CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C link-arg=-lstdc++"

Then we see this, the build working, but dynamic links being produced:
ana@autonoma:~/git/timberio/vector$ lddtree target/x86_64-unknown-linux-musl/debug/vector
vector => target/x86_64-unknown-linux-musl/debug/vector (interpreter => none)
    libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6
        ld-linux-x86-64.so.2 => /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1

We're looking to adopt Cross on https://vector.dev/ and this is a hangup for us.

@Hoverbear Have you tried the passthrough= Cross.toml directive? That could avoid building your own docker container, i.e:
https://github.com/brainstorm/s3-rust-htslib-bam/blob/master/Cross.toml
You can also try to pass -static to your linker if you don't want dynamic linking, i.e:
https://github.com/alexcrichton/xz2-rs/pull/63/files

@brainstorm I saw that, too! We are using that for some variable things. :) I will probably do that if I end up finding a solution to this linking issue! Thanks for letting me know about it.
I was trying the -static and -static-lib and such a bit today:

But these didn't result in success. As far as I can tell, using a musl target implies -static generally? I also tried injecting things like link-lib without much success.
I suspect in our case the problem lies in https://github.com/timberio/leveldb-sys/blob/bbdd99a6fab0a7444a8c6eb0cc86a1a5a75f7fa1/src/build.rs#L35-L53 , however I've also tried the upstream which does not use cmake and it's been encountering similar issues:
https://github.com/skade/leveldb-sys/blob/b4944d90d3f83bc43e0ce558a776824d0b44e909/src/build.rs#L35-L52

Yeah, in order for the whole build to be -static, all the deps and *-sys deps (including transitive ones) must be compiled statically (w/ musl) too, AFAIK :-S
Keep me posted, this is interesting, I wrestled with C -static w/ MUSL but not with C++ yet :)

Yup, we've been wrestling with it too!
So far we've isolated it to leveldb-sys, so I'm going to be focusing on that and trying to figure it out. I'll keep you updated!
We use https://github.com/timberio/vector/blob/master/scripts/ci-docker-images/builder-x86_64-unknown-linux-musl/Dockerfile, but we would prefer to use cross, of course. :)
If you want to chat interactively you can catch me on our vector community space https://discord.gg/phwDQpd or on Twitter (we're mutuals now!).

The musl targets now work with C++ support, although this does not include the Qemu runners with dynamically-linked libraries:
$ git clone https://github.com/cross-rs/rust-cpp-hello-word
$ cross build --target aarch64-unknown-linux-musl

Closing since this is complete for all targets but x86_64-unknown-linux-musl as of #905 and this remaining target is a duplicate of #902, and #817 will completely fix this.


Update facts.json

Short description of what this resolves:
Changes proposed in this pull request:

Added some new facts to facts.json

Fixes: #

Thank you for taking the time to contribute! This is sincerely appreciated. 😇
(Powered by GitMate.io)


Port FSTFieldPath and FSTResourcePath to C++

FIRFieldPath is next.

Question: in Objective-C, the fact that FIRFieldPath uses FSTFieldPath inside is completely invisible in the header file. @wilhuff, do we want to imitate that with pimpl?

Regarding this question:

Question: in Objective-C, the fact that FIRFieldPath uses FSTFieldPath inside is completely invisible in the header file. @wilhuff, do we want to imitate that with pimpl?

We still need to get our story straight re how we're going to ship public headers. Ideally yes, we would hide this. I wouldn't tackle FIRFieldPath in this PR anyway though.

Please run ./scripts/style.sh (that's what travis is complaining about).


Why is Unchecky missing so many entries?

I can see only 10 rows in the Unchecky hosts.
**
Seems to be missing everything else from when I downloaded in 2017:
# >> UnChecky Windows installer Adverts 2017.07.20 #<?
# https://github.com/FadeMind/hosts.extras/tree/master/UncheckyAds # https://raw.githubusercontent.com/FadeMind/hosts.extras/master/UncheckyAds/hosts
<IP_ADDRESS> cdn.appround.biz cdn.bigspeedpro.com cdn.bispd.com cdn.bisrv.com inno.bisrv.com nsis.bisrv.com cdn.download.sweetpacks.com cdn.guttastatdk.us cdn.inskinmedia.com
<IP_ADDRESS> cdn.insta.playbryte.com cdn.msdwnld.com cdn.mypcbackup.com cdn.riceateastcach.us d3oxtn1x3b8d7i.cloudfront.net installer.betterinstaller.com installer.filebulldog.com tracking.opencandy.com.s3.amazonaws.com
<IP_ADDRESS> api.recommendedsw.com cdn.goateastcach.us cdn.insta.oibundles2.com cdn.llogetfastcach.us cdn.shyapotato.us cdn.solimba.com cdn.tuto4pc.com cdn.cdndp.com cdn.dpdownload.com cdn.visualbee.net
Current UnChecky Hosts:
<IP_ADDRESS> cdn.appround.biz cdn.download.sweetpacks.com cdn.insta.playbryte.com cdn.msdwnld.com cdn.mypcbackup.com
<IP_ADDRESS> inno.bisrv.com nsis.bisrv.com installer.betterinstaller.com installer.filebulldog.com tracking.opencandy.com.s3.amazonaws.com
Have the hosts from 2017 been removed due to those servers no longer being a threat?
Thanks! :D

Duplicate https://github.com/FadeMind/hosts.extras/issues/43


Dashboard shows 500 error & 404 error

Hello there,
just trying and learning inertia.js & vue, I test this demo and, well, the other options work but the initial page throws:
500 error 404 error
Thanks!

Thanks for reporting.
Are you talking about this (see screenshot from original demo application).

If yes, then this is an intended behavior.

Yes. Thank you.
BTW, I like inertia.js and I'll try it with Svelte; perhaps I'll ask a few more questions.
Thanks again.

Thanks. But, I'm not the author of inertia.js.
Be sure to address your questions to the right repo. This repo is a yii2 community adapter for inertia. The right repo is maybe https://github.com/inertiajs


Improvement of ansible ceph integration

Is your suggestion related to a problem? Please describe.
To improve ceph integration process via opensds-installer in order to avoid troubles (e.g. #255).
Describe the solution you'd like
I would suggest step-by-step improvement like below.

step1: Add configuration checks

check if:

'devices:' in ansible/group_vars/ceph/all.yml is empty or not,

if not empty, check if the listed devices exist or not,

'monitor_interface:' in ansible/group_vars/ceph/all.yml is correct or not,

take 'monitor_interface:' from ansible fact('ansible_default_ipv4.interface')
additionaly maybe it's useful creating a loopback device like lvm backend case so that we don't need to care about additional disk devices.

step2: Make ceph version more configurable

It's not a so big modification making ceph version configurable.
Below is a combination matrix of ceph and ansible versions from: https://docs.ceph.com/ceph-ansible/master/, and I would suggest to switch to 'stable-3.1' and keep the ansible version intact at first. This would include updating 'install_ansible.sh' to detect appropriate ansible version according to ceph version.

ceph-ansible branch
required ansible
ceph version
notes

stable-3.0
ansible-2.4
jewel/luminous
we use this currently.

stable-3.1
ansible-2.4
luminous/mimic
suggested update

stable-3.2
ansible-2.6
luminous/mimic

stable-4.0
ansible-2.8
nautilus
bionic target?

step3: Refactoring

Enable to use all the ceph rbd features, as is, depending on the target ceph version.

Simply removing 'rbd default features = 1' from /etc/ceph.conf

Make sure several installation scenarios works as expected.

Build opensds + ceph all-in-one system from scratch
Build opensds + a separate ceph cluster from scratch
Integrate with an existing ceph cluster from scratch

As Himanshu pointed out at slack, there is a nit in ceph.conf handling now

Integrate with already/locally configured ceph
etc.

@thatsdone it's a good suggestion.  My friend Joseph will check it. Or are you intereted at implementing this feature?

@wisererik I have some working codes for (a part of) step 1 and step 2, and I'm creating PRs. As for step 3, I think it's better discussing details first.

Sure, we can discuss on slack, it's more efficient.

FYI. You can find my working code below.
https://github.com/thatsdone/opensds-installer/commits/refactor-ceph-ansible

Sure, it's better you submit a PR so that I can know the code changes well

After adding waiting logic for ceph stabilization, it turned out that we still get the same symptom. So,
I  looked into osdsdock side, and I noticed one potential (?) issue there.
The below is the issue I filed.
https://github.com/opensds/opensds/issues/991

Sure, it's better you submit a PR so that I can know the code changes well

I submitted a PR for this, implementing step1 and step2. Hope this PR makes sense.
Please note that I updated my original suggestion at the top, and this PR covers all the points from 1a to 2b there.
Regarding step3, I'd like to have a consensus on the priority of installation scenarios at first.

So far, Himanshu game me very useful feedbacks, and at the moment this PR has a problem when the target Ubuntu box has existing ceph packages and/or /etc/ceph.
Please note if you begin from a fresh Ubuntu 16.04 box WITHOUT any ceph packages, it actually worked including ceph-ansible stable-3.1+mimic. But, anyway in general, it's desirable to take care of existing ceph packages (mostly upgraded).
I'm working on the (new additional sub)issue and submitting another PR soon (hopefully?).

@thatsdone Thank you Please update your PR with the changes you find it relevant to fix now

@himanshuvar I submitted updated PR. https://github.com/opensds/opensds-installer/pull/273


Not working django 3x:from django.utils import six

django.template.library.InvalidTemplateLibrary: Invalid template library specified. ImportError raised when trying to load 'cruds_adminlte.templatetags.crud_tags': cannot import name 'six'
from django.utils import six Not working django 3x

Not tested myself with Django 3.x but I will, thanks for noticing.

hi,you can fix de problem installing six and changing  line 11 on templatestags/crud_tags.py line 11

pip install six
change templatestags/crud_tags.py line 11, from 'from django.utils import six' to 'import six'

the explanation of this error is:
The Django 3.0.0 release notes specify that certain private Python 2 compatibility APIs were removed. Among those was django.utils.six.

Also having the same problem. The fix by @hbrunacci worked for me.

how to overwrite from django.utils. import six if we use/install cruds-adminlte from pip?

how to overwrite from django.utils import six with import six if we use/install cruds-adminlte from pip?

I'm about to open a new branch in order to start working in Django 3.x integration, hopefully we will have a new release soon. About overwriting the import I'd say it's a good advice if you're using this package cloning the repo.
If you're using it via pip I'd say you can go to the place where pip stores the source (your env place + lib/python3.x/site-packages/) and change it there but it's not a good practice at all as it would be overwritten again if you update or rebuild the environment.

I think this is fixed in the tag 17, why dont ship it to pip?


[ BigCommerce] Error when checking out after logging in

When checking out after logging in from the nextjs storefront channel, an error occurs saying that the page cannot be found even though the login page is called during the checkout process.
The error message is as below.
[GET] /login 13:12:58:46
2022-01-11T21:12:59.112Z	450ca539-8439-479e-a89d-f6366fc8db17	ERROR	Error: Page with slug 'en-US/login' not found
at getStaticProps (/var/task/.next/server/pages/[...pages].js:91:15)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at async Object.renderToHTML (/var/task/node_modules/next/dist/server/render.js:362:20)
at async doRender (/var/task/node_modules/next/dist/server/next-server.js:1389:38)
at async /var/task/node_modules/next/dist/server/next-server.js:1484:28
at async /var/task/node_modules/next/dist/server/response-cache.js:63:36 {
page: '/[...pages]'
}
RequestId: 450ca539-8439-479e-a89d-f6366fc8db17 Error: Runtime exited with error: exit status 1
Runtime.ExitError

Hi, is there a workaround for this?

yeah
On Tue, 11 Oct 2022 at 10:55, Clear Horizon Digital <
@.***> wrote:

Hi, is there a workaround for this?
—
Reply to this email directly, view it on GitHub
https://github.com/vercel/commerce/issues/640#issuecomment-1274434551,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A3PQOO3JBNUKS472M37S6CDWCU2SNANCNFSM5LXMHGJQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

--
*Alfa Zihal **| *Designer
@.*** @.***> *| LINKS
https://keepo.io/alfa/
https://aalfajiri75.wixsite.com/alfazihal
https://www.behance.net/aalfajiri https://www.instagram.com/aalfa__/
https://twitter.com/AalfaZhl
https://www.youtube.com/channel/UCTASH1bG9_iWfmbWJglP9Bw

Hey there! Thank you for opening this issue. We have decided to take Next.js Commerce in a new direction and will be closing out current PRs and issues due to this change. Please see this PR for more details: https://github.com/vercel/commerce/pull/966


OAV Centring

GDA currently carries out OAV centring on the pin.
Acceptance Criteria:

Rotation of the pin to find the biggest width
Takes the centre at the biggest width, and the centre at the angle orthogonal to the biggest width, Combines them to make a 3D coordinate.
Translates the 3D coordinates to smargon xyz motor coordinates, and moves there.

Closing since acceptance criteria are met, will next write system tests.

I don't think we can call this done until https://github.com/DiamondLightSource/python-artemis/pull/394 is merged?


[incubator/jaeger] allow specifying priorityClassName

What this PR does / why we need it:
Adds configurable priorityClassName to jaeger agent daemonset. This is needed for environments that support priorityClassName to ensure scheduling of the jaeger agent on all nodes.
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/chart])

/ok-to-test


awk: division by zero

I'm trying to run this on any of my repos and I end up with this:
Contribution stats (by author):

        total:
          insertions:    202248 (100%)
          deletions:     72015 (100%)
          files:         10782 (100%)
awk: division by zero
 input record number 18202, file
 source line number 8

fixed in #18

Thanks, that fixed the error, but the reporting was still wrong. Apparently it was using my overridden pretty format from my git config. To repro, add this to your gitconfig:
[format]
  pretty=format:%C(yellow)%h%Creset -%C(red)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset

You may need to hard code the format you use, or maybe temporarily unset HOME so it ignores the gitconfig.


921600 baud rate is not supported

Type: Feature Request

Hi @OoB-Services !
We currently support the addition of "custom baud rates", which allow you to enter a custom list so that you can use more custom baud rates.
Could you try this and let us know if it works for you?
Steps:

Navigate to the Serial Monitor settings in VSCode

Press Add Item in the Custom Baud Rates setting, and add 921600.

Navigate to the Serial Monitor and see the updated baud rate list.

Closing this issue, since the custom baud rates are available, please let us know if you still hit any issues using 921600 as a baud rate!


iOS Builds Broken on OS X Yosemite

Hey guys!
I just updated all of Godot to 1.0devel (to check how far it got) and iOS builds don't work yet. (Also have latest export templates)
My system:
Mac Mini late 2013
XCode Version 6.1 (6A1052d)
OSX Yosemite
The error is:
clang: error: linker command failed with exit code 1 (use -v to see invocation)```

**Update**: it only seems to be an issue when running (by hitting play button) when archiving it will succeed anyway.

Assuming this has been fixed as it was a year ago.


Docker 1.12 Swarm Mode

The new swarm mode doesn't appear to expose running containers/services like Docker Swarm previous did. For that reason, it would seem that this project is not available to me. Are there any plans to account for that?

Confirming I am also seeing the same results with spinning up an ELK Stack deployment using docker-compose and using docker-gen with HAProxy.
Docker version and Docker Swarm version info:
Client:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 21:04:48 2016
 OS/Arch:      darwin/amd64
 Experimental: true

Server:
 Version:      swarm/1.2.4
 API version:  1.22
 Go version:   go1.5.4
 Git commit:   5d5f7f0
 Built:        Thu Jul 28 19:52:54 UTC 2016
 OS/Arch:      linux/amd64

Below is my docker-compose.yml:
version: '2'
services:
  haproxy:
    depends_on:
      - elasticsearch
      - redis
      - elasticsearch_master
      - kibana
      - logstash_pre_processor
      - logstash_processor
    build: ./HAProxy
    image: elk-haproxy
    # links:
    #   - elasticsearch
    #   - elasticsearch_master
    #   - kibana
    #   - logstash_pre_processor
    #   - logstash_processor
    #   - redis
    networks:
      - front
      - back
    ports:
      - "5044:5044"
      - "5601:5601"
      - "6379:6379"
      - "9090:9090"
      - "9200:9200"
      - "9300:9300"
      - "10514:10514"
      - "10514:10514/udp"
    volumes:
      - "/var/run/docker.sock:/tmp/docker.sock:ro"
    restart: always
    environment:
      - "BALANCE=roundrobin"
      - "ES_BACKEND=elasticsearch"
      - "ES_BACKEND_PORT=9200"
      - "ES_MASTER_BACKEND=elasticsearch_master"
      - "ES_MASTER_BACKEND_PORT=9300"
      - "KIBANA_BACKEND=kibana"
      - "KIBANA_BACKEND_PORT=5601"
      - "LOGSTASH_PRE_PROCESSOR_BACKEND=logstash_pre_processor"
      - "PROJECT=dockeransibleelkstack"
      - "REDIS_BACKEND=redis"
      - "REDIS_BACKEND_PORT=6379"
      - "SERVICE=haproxy"

  elasticsearch_master:
    build: ./Elasticsearch
    image: elk-elasticsearch
    command: "elasticsearch -Des.node.master=true -Des.node.data=false -Des.discovery.zen.ping.unicast.hosts=haproxy"
    restart: always
    networks:
      - back

  elasticsearch:
    # depends_on:
    #   - elasticsearch_master
    image: elk-elasticsearch
    command: "elasticsearch -Des.node.master=false -Des.discovery.zen.ping.unicast.hosts=haproxy"
    # links:
    #   - elasticsearch_master
    volumes:
      - "./.data:/usr/share/elasticsearch/data"
    restart: always
    networks:
      - back

  kibana:
    depends_on:
      - elasticsearch
    build: ./Kibana
    image: elk-kibana
    restart: always
    networks:
      - back

  logstash_pre_processor:
    build: ./Logstash_pre_processor
    image: elk-logstash-pre-processor
    restart: always
    networks:
      - back

  logstash_processor:
    depends_on:
      - elasticsearch
    build: ./Logstash_processor
    image: elk-logstash-processor
    restart: always
    networks:
      - back

  redis:
    image: mrlesmithjr/redis:latest
    restart: always
    volumes:
      - "./.data:/data"
    networks:
      - back

networks:
  front:
    driver: overlay
  back:
    driver: overlay

# networks:
#   default:
#     external:
#       name: my-net

Thoughts!
Link to my GitHub repo with the above config as well under branch swarm-cluster.
https://github.com/mrlesmithjr/docker-ansible-elkstack/tree/swarm-cluster

@sgillespie  It exposes them, but only on the swarm manager node

i'm using nginx reverse proxy, and i have 2 node of docker swarm, when i create the container with the environment VIRTUAL_HOST and the network "overlay" the docker-gen doesn't take the ip, i recieve only:
upstream pluto3.com {
server :80;
}

@giammy2290 you may find a solution in #169
I now have a bridge network created with docker-compose version 2 format, I myself changed my template to use this:

@vincentfretin yes this works for me, but if i use 2 or more docker node (swarm cluster) docker-gen doesn't work (i have set the endpoint to the docker master node api)

@giammy2290 for that reason i use socat on manager nodes and run docker-gen container attached to it not to var/run/docker.sock. It's a good idea to secure such socat endpoint. then docker-gen work regardles of where it is run.

@s4s0l Appreciate if you can please provide a socat example to make it work with multi-node swarm cluster

I'm working on it at the moment. What I've got so far is a sockat running on manager node host OS. I'm working on some docker image so this socat can be run in 'global' mode in swarm. I'll put it somewhere in github. It'll probably take me some time to do it, but it is something like (first part is in groovy but i think its reverse engeneerable):
def generateKeyPair(String cn,
                        List<String> ips, List<String> dns,
                        String keyOutFile, String certOutFile) {
        LOGGER.info("openssl: generating key $keyOutFile for ${cn} (${ips.join(",")})")
        new File(keyOutFile).getParentFile().mkdirs()
        new File(certOutFile).getParentFile().mkdirs()
        File tmp = File.createTempFile("sslcfg", "cnf");
        tmp.text = """
${OpenSslWrapper.getResource('/openssl.cnf').text}
[ v3_xxx ]
basicConstraints = critical, CA:true
keyUsage=critical, digitalSignature,keyEncipherment,keyAgreement,dataEncipherment,keyCertSign
extendedKeyUsage=critical,serverAuth,clientAuth,codeSigning
subjectAltName=${(ips.collect { "IP:$it" } + dns.collect { "DNS:$it" }).join(",")}
"""
        exec.executeForOutput("""
            req -newkey rsa:4096 -nodes -sha256 -x509 -days 365 -subj /CN=${cn}
            -extensions v3_xxx -config ${tmp.absolutePath}
            -keyout ${keyOutFile}
            -out ${certOutFile}
        """.replace("\n", ""))

    }
generateKeyPair("localhost", [], ["metadata", "localhost"] , "$path/server.key","$path/server.crt")
generateKeyPair("localhost", [], ["metadata", "localhost"] , "$path/client.key","$path/client.crt")

I'll make it more portable later, the point is generate certs and keys for the server (socat) and client (docker-gen), see http://www.dest-unreach.org/socat/doc/socat-openssltunnel.html and https://youremindmeofmymother.com/2015/08/21/socat-ssl-ssl-routinesssl3_check_cert_and_algorithmdh-key-too-small/ then:
cat server.key server.crt > server.pem
cat client.key client.crt > client.pem
#this one will take some sirious time it might be worth changing 4096 to something more realistic
openssl dhparam -out dhparams.pem 4096
cat dhparams.pem >> server.pem

The whole point is to start socat like this:
socat -d -d openssl-listen:3333,fork,reuseaddr,cert=$(pwd)/server.pem,cafile=$(pwd)/client.crt unix-connect:/var/run/docker.sock
#and then you can test it like
curl  --cacert server.crt --cert-type pem --cert client.pem https://localhost:3333/v1.26/_ping
#and finally parameters for docker-gen:
./docker-gen --config ./docker-gen.ini -tlscacert server.crt -tlscert client.crt -tlskey client.key -watch -endpoint tcp://localhost:3333

As I said I'm working on some more shareable form of it, but decided to paste it here as maybe you guys would have some comments and save me from doing something wrong;)

Ok, the most important is https://github.com/jwilder/docker-gen/pull/239 anyway. Forgot the obvious.

@lvnilesh In my fork is full working example https://github.com/s4s0l/docker-gen.
I don't like it because it pulls for changes constantly (as swarm mode events are not included in /events docker api). I also dont like docker-gen is crushing when socat endpoint is unavailable and swarm restarts it until it becomes...but i works and in some circumstances may be the only way to hack around docker.
I've closed my PR as it generally is workaround for docker-gen which itself is kid of workaround so I convinced myself that it would do harm to docker-gen codebase;) But if @jwilder thins its ok, I can prepare it once again.

Thanks @s4s0l

There is a working solution:
https://hub.docker.com/r/helder/docker-gen/


Steampipe feature to check for compliance in terraform files when terraform module based implementation is involved

Is your feature request related to a problem? Please describe.
We tried steampipe terraform checks on terraform module based implementation but rules were not taken up by Steampipe. When we provided raw .tf files with hardcoded values it worked.
Describe the solution you'd like
When we provided raw .tf files with hardcoded values it worked. So, it seems that steampipe is not taking up the rules when terraform modules are implemented.
Describe alternatives you've considered
We have been following up with the Steampipe community in Slack. And opening this issue for inclusion of the required feature.
Additional context
Download the codebase from here
For reproducing the issue at you end, please download the zipped folder from the link mentioned above:
Pre-requisites
Git, Steampipe is configured
Note: The test has been done on a Windows machine with WSL and Steampipe v0.14.4
Instructions:

Run git clone https://github.com/turbot/steampipe-mod-terraform-oci-compliance.git
Unzip the downloaded zipped folder
Move into the unzipped folder (tf-oci-mod-vcn) and change directory to test by cd test
Run export STEAMPIPE_WORKSPACE_CHDIR=../../steampipe-mod-terraform-oci-compliance (replace with whatever directory configuration at your end)
Run steampipe check all

Observations
Even though port 22 is opened to all <IP_ADDRESS>/0 (tf-oci-mod-vcn/test/test.tf line 74-84), it is still passing that rule. No alarms are there for that case. And moreover we think the rules from the test.tf file are not picked up at all.
Yes, we did change the settings to scan the terraform files using vi ~/.steampipe/config/terraform.spc and providing necessary directories to scan.
Additional Note: Please ignore the error it may show due to some issue. But ALARM is the thing we are looking for.

Hey @hrishikeshkalita , I believe that if the Terraform plugin supported scanning Terraform plan files in addition to Terraform HCL files, this would help us to properly scan more resources and modules, like some of those you linked above. We currently use the Kics parser to scan HCL files, but it looks like they also support scanning Terraform plan files, as per https://docs.kics.io/latest/platforms/#terraform_plan.
Adding this feature is not currently on our roadmap, so a suggested workaround is to use the OCI Compliance mod mod to scan your live/deployed infrastructure. If the query you're looking to run isn't included in the included benchmarks, you can add queries to that mod locally (or any local mod you have) to run as a control (more information on writing controls in Writing Controls.
Also, if you're interested in contributing any of the features mentioned above to the Terraform plugin, we'd appreciate any PRs and are happy to help if you have any questions.


Analytics 10.8.0

Analytics 10.8.0

It seems I have some issues with this change, still investigating, but maybe someone can assist or has the same?

Hi @Gertjancom, this hasn't been tagged for release yet. Could you confirm that you dependency rule on Firebase is pointing to a release version (rather than a branch like master)?

I was indeed pointing to just master, corrected that and all is good now. Thanks a lot for that comment :)


Readme.md doesn't include instructions on how to build and test the repo

As a new contributor to fuels-rs, the readme should include instructions on how to locally build and run all the tests. Currently, the only steps I could find were buried in the ci.yaml.
The only exception to this documentation is if testing is as simple as running cargo test. However, this repo requires a lot of setup to download forc and build all the pre-reqs before tests can run.

If it's possible to build the projects using forc as a library as a build/setup step for the e2e tests, that seems like the most developer/ergonomic solution as it would allow developers to only need the standard cargo commands.

If it's possible to build the projects using forc as a library during the build.rs/setup step for the e2e tests, that seems like the most developer/ergonomic solution as it would allow developers to only need the standard cargo commands.

While I agree it would be the most ergonomic solution, IIRC didn't we have that but then removed because of a cyclic dependency issue?

Currently, forc is a part of the sway repo, so yeah it seems like this could cause some circular issues with the test harness: https://github.com/FuelLabs/sway/blob/master/test/src/sdk-harness/Cargo.toml

If we make the forc lib a dev dependency of fuels-rs then we won't have a circle since dev dependencies are not acquired by sway when it states its dependency on 'fuels'.
The only thing that remains is the principle of depending on forc whilst developing fuels-rs, which we kind of already do since you can't actually run the tests without running forc beforehand.

This is true as long as forc is only required as a dev-dep and seems worth trying out. I don't have enough context in the SDK to know what parts of the internal test harness may be publicly reused in other places though.

closed with https://github.com/FuelLabs/fuels-rs/pull/838


Usage

We need instructions on how to use our library.
This is the first draft of a Usage file.

Should I make an issue requiringusage.md file and examples folder from the 8/21 meeting? This PR can link to it

I think that would be a good idea :-)
On Wed, Aug 21, 2024, 3:38 PM Kabir Dubey @.***> wrote:

Should I make an issue requiringusage.md file and examples folder from
the 8/21 meeting? This PR can link to it
—
Reply to this email directly, view it on GitHub
https://github.com/QCHackers/tqec/pull/297#issuecomment-2303210681, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKAXTBB5KUKBPPF5KPHLOLZSUJHFAVCNFSM6AAAAABM4NS7E2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMBTGIYTANRYGE
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

A few notes on that issue:

The workflow is schematized in the image in #299. From that, we are only missing clear notebooks / documentation to let the user understand how to navigate forward in this workflow.
Currently, all the notebooks using plaquettes are broken. This is due to the fact that we removed hand-written detectors in plaquette definitions in a previous commit and do not have yet an efficient way of re-including them automatically without changing slightly the notebooks code.
Having command lines that can export things would be nice. For example, tqec_find_observable -i computation.dae --out-dir observables/ that would populate the observables directory with images representing all the observables found by the tool.

@nelimee We are trying to show a simple example of going from a .dae file to a stim circuit.
I tried to implement the following:
block_graph = BlockGraph.from_dae_file("./tests/resources/simple_exp.dae")
circuit = block_graph.to_circuit(LinearFunction(2, 0))
stimcirq_circuit = cirq_circuit_to_stim_circuit(
    transform_to_stimcirq_compatible(circuit)
)
with tempfile.TemporaryDirectory() as temp_dir:
    output_file = Path(temp_dir) / "output.stim"
    stimcirq_circuit.to_stim(output_file)
    assert output_file.exists()

on my branch for #298.
simple_exp.dae contains a truncated part of clean_exportable_cnot.skp of two blocks and a pipe at the origin.
This fails at the stimcirq conversion. Do you have any idea what is going on?

@nelimee We are trying to show a simple example of going from a .dae file to a stim circuit.
I tried to implement the following:
block_graph = BlockGraph.from_dae_file("./tests/resources/simple_exp.dae")
circuit = block_graph.to_circuit(LinearFunction(2, 0))
stimcirq_circuit = cirq_circuit_to_stim_circuit(
    transform_to_stimcirq_compatible(circuit)
)
with tempfile.TemporaryDirectory() as temp_dir:
    output_file = Path(temp_dir) / "output.stim"
    stimcirq_circuit.to_stim(output_file)
    assert output_file.exists()

on my branch for #298.
simple_exp.dae contains a truncated part of clean_exportable_cnot.skp of two blocks and a pipe at the origin.
This fails at the stimcirq conversion. Do you have any idea what is going on?

Could you provide me the error encountered as well ?

 Thanks for letting me know.

closed in favor of #321 see #325


6654 different add time series widget

Resolves #6654

Had to refactor the internals a little bit to meet the new requirements. Now not only does the modal create widgets, but might also update or destroy some too (only time-series at the moment though).
Any existing time-series widget will be pre-selected in the modal window.
Renamed the "none" option from "no-option" to "none" for consistency, hence there appear to be more changes here than there really is. ;)

@javierarce can you review (since you reviewed the last PR)?
cc @urbanphes @xavijam

:+1: LGTM. The only thing that I don't like is the name of the method createUpdateOrOtherwise… but after reviewing the code and reading the description I'm not sure what alternative would be better.

Yep, me neither, forgot to mention that I didn't come up with a better name… I'm all ears for a better name. :kissing_heart:

createUpdateOrSimilar? :joy:


Update README

Description
Fix : Diagram not displaying on main README
issue: https://github.com/terraform-ibm-modules/terraform-ibm-client-to-site-vpn/issues/35
Types of changes in this PR
Changes that affect the core Terraform module or submodules

[ ] Bug fix
[ ] New feature
[ ] Dependency update

Changes that don't affect the core Terraform module or submodules

[ ] Examples or tests (addition or updates of examples or tests)
[x] Documentation update
[ ] CI-related update (pipeline, etc.)
[ ] Other

Release required?
Identify the type of release. For information about the changes in a semantic versioning release, see Release versioning.

[ ] No release
[ ] Patch release (x.x.X)
[ ] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content
If a release is required, replace this text with information that users need to know about the release. Write the release notes to help users understand the changes, and include information about how to update from the previous version.
Your notes help the merger write the commit message for the PR that is published in the release notes for the module.
Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

Merge actions for mergers

Use a relevant conventional commit message that is based on the PR contents and any release notes provided by the PR author. The commit message determines whether a new version of the module is needed, and if so, which semver increment to use (major, minor, or patch).
Merge by using "Squash and merge".

/run pipeline

@Khuzaima05 Where did the diagram come from? Do we have the source for it?

@Khuzaima05 Where did the diagram come from? Do we have the source for it?

@ocofaigh I got it from internal module i.e https://github.ibm.com/GoldenEye/client-to-site-vpn-module/blob/master/docs/client-to-site-vpn-topology.png

OK seems there is no source internally either. We can go with this for now and revisit if needed

:tada: This PR is included in version 1.4.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


We've get REDIS_REPLY_STATUS and reply->str 'OK'. What is that?

We use hiredis 0.11.0 and redis 2.8.8.
Our application met the error of REDIS_REPLY_STATUS. After that time it continue to do wrong and log that error util we restart.
We found REDIS_REPLY_STATUS has reply->str 'OK'. What does mean?
Now we stop its continuous wrong doing by adding code to setup a new connection.
But we want to know the way to avoid REDIS_REPLY_STATUS,  its cause and
that 'OK' is really okay.

It means that the command replied with a status message of "OK". Which is the documented response for a lot of commands and is no bug or error or wrong doing.
<IP_ADDRESS>:6379> SET foo bar
OK

Please. check this issue again.
Our application have code as like following.
Every time, we get 'REDIS_REPLY_ARRAY' when our application go well. About once a month it happen that REDIS_REPLY_STATUS and reply->str 'OK' then our application go into malfunction.
if (reply->type == REDIS_REPLY_ARRAY) {
// Normal execution logic
} else {
if ( reply->type == REDIS_REPLY_ERROR ) {
// Error Treatments
} else if (reply -> type != REDIS_REPLY_ARRAY ) {
//  HERE! We get REDIS_REPLY_STATUS and reply->str 'OK'
}
}
}

hiredis only parses what it receives from Redis. If you get a REDIS_REPLY_STATUS, it received this status.

Check your code again. Which commands are you sending in which order?
Do you re-use the connection object from another thread? hiredis is not thread-safe. Such usage can thus lead to wrong results
If none of the above works out, check the received commands on Redis directly (either using MONITOR or by capturing the network requests directly)


Enhance Carousel: Link Blog Posts and Add Navigation Controls

Is your feature request related to a problem? Please describe.
There are a few UI/UX inconsistencies and improvements needed for the carousel on the blog page:

Lack of Links: The carousel images do not link to the corresponding blog posts, limiting user interaction.
No Manual Controls: The carousel lacks manual controls (e.g., next and previous buttons) to navigate through the images, reducing accessibility and user control.

Describe the solution you'd like

Add Links to Carousel Images: Each image in the carousel should link to the corresponding blog post to improve user engagement.
Add Manual Controls: Implement next and previous buttons to allow users to manually navigate through the carousel images.

Describe alternatives you've considered

Caption with "Read More" Links: Adding a caption with a "Read More" link below each carousel image, but this might clutter the design.
Automatic Scrolling with Indicators: Implementing automatic scrolling with indicators, but manual controls provide better user experience.

Additional context
Adding links to the blog posts in the carousel images will improve user engagement by making it easier for users to access the content. Manual controls will enhance the user experience by providing more control over the navigation of the carousel.
Current Carousel

I’d Like to Work on This Issue
I would like to work on this issue. Please assign it to me and, if possible, add labels of GSSoC and Hacktoberfest.
Plan

Add Links to Carousel Images:

Modify the carousel component to include links to the corresponding blog posts for each image.

Add Manual Controls:

Implement next and previous buttons to allow users to manually navigate through the carousel images.

Test the Changes:

Ensure that the links work correctly and that the manual controls function as expected.
Test the changes on different screen sizes to ensure responsiveness and usability.

Timeline
I plan to complete this in the next 1-2 days.

@ANSHIKA-26  the issue is still not resolved, Can you assign it to me , Will be very happy to work on it


export to terraform local zip or ansible local zip is not working

Hi,
Export to terraform local zip, ansible local zip or resource manager is not working.
Validation is successful no errors or warnings. When i click on export to terraform local file nothing happens. same with ansible local zip. Export to resource manager fails with error: "Export to Resource Manager Failed (INTERNAL SERVER ERROR)"
Can i debug somehow problem?
Kind regards

@xperiazn if you look at the Docker logs it should show you the error. If you paste it in a comment I'd appreciate it.

Only error in in docker log is this:
Same error is for ansible local zip and terraform local zip
INFO: Processing OKE Cluster Information Covidcluster
ERROR: 'image'
Traceback (most recent call last):
File "/okit/okitweb/okitWebDesigner.py", line 333, in generate
generator.generate()
File "/okit/visualiser/generators/okitGenerator.py", line 197, in generate
self.renderOkeCluster(oke)
File "/okit/visualiser/generators/okitGenerator.py", line 1395, in renderOkeCluster
jinja2_pool["node_source_details"]["image"] = self.generateJinja2Variable('node_pool_{0:02d}_image'.format(pool_number), pool["node_source_details"]["image"], standardisedName)
KeyError: 'image'

@xperiazn do you still have this issue.

Closed due to no response to previous message. If this is still an issue please reopen.


MouseEvent factory is missing pageX and pageY

This issue was originally filed by @marcojakob

I need to create a MouseEvent with pageX and pageY properties. There is no way to set them on a created MouseEvent because they are final and MouseEvent factory does not have them.
http://api.dartlang.org/docs/releases/latest/dart_html/MouseEvent.html
Would it be possible to add pageX and pageY to the factory constructor?

For reference: https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent


Improve instruction on including angular.png in webpack demo

Instruction to create the necessary folder and download.  Current version only says "download" (not where) and only appears if you hover over the image, so it is not clear.

Included at #3283 since it changes a few things as well.


feat(ast_codegen): introduce the #[span] hint.

closes #3904

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#4012  👈
#4011
#4009
#4008
#4007
#4006
#4001
#3954
#4000
#3998
#3995
#3994
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @rzvxa and the rest of your teammates on  Graphite

We can merge the whole stack, with uncertainties in a separate issue.

We can merge the whole stack, with uncertainties in a separate issue.

I've fixed the down stack formatting issue, About the uncertainties; Are you talking about the conversations I've opened here #4007, If that's the case I have to say I agree.
The actual generated code - you can say the majority of the changes - would be unaffected and if we want to change anything it would be in the codegen + some attribute changes in the AST(which is limited to a few lines).


Have a guideline for code reviews (and code writing).

It would be good to have a guideline for what parts of code should be reviewed (clear expectations for the reviewer), and also the writer. Sometime back I had suggested this in other contexts. For example, one could expect that every function (at least if not private) should have docstrings, and examples of how to use this. In this guideline we should point out things that the docstring should always have and the reviewer should check for this.

In general, I think we should try to follow DM team conventions for code review, to the extent that is possible, espeically these points.
With regard to docstrings, here is an example function and docstring (I think from you, @rbiswas4) that we could use as a starting point.  It renders like this in python:
>>> print desc.twinkles.readPhoSimInstanceCatalog.__doc__

    read the phoSimInstanceCatalog and return the contents

    Parameters
    ----------
    fname : mandatory, string
        filename of the phosim instance catalog
    names : a list of column names matching the number of columns

    Returns
    -------
    A `pandas.DataFrame` with the phosim Instance Catalog with metadata
    accessed as a dictionary through the meta attribute of the return.

>>>

This appears to be based on numpy docstring style and seems perfectly reasonable to me.

Does this docstring get parsed by sphinx well? It'd be good to get in the habit of writing docstrings that got turned into nice API documentation using readthedocs or LSSTthedocs or just plain sphinx.


enable git tests on windows

Hello. There is a load of test failures on Windows, so I propose a easy path forward to improve Windows support by hooking up https://appveyor.com (free for open source projects, similar to travis-ci but Windows builds)
appveyor currently runs go 1.6.2 but you can have it run go 1.7.
the reason I am suggesting appveyor is that travis-ci lacks proper windows support currently (https://github.com/travis-ci/travis-ci/issues/2104)
Project owner @kardianos would need to create an appveyor project for govendor.

FAIL
FAIL	github.com/kardianos/govendor/context	18.726s
?   	github.com/kardianos/govendor/help	[no test files]
?   	github.com/kardianos/govendor/internal/gt	[no test files]
ok  	github.com/kardianos/govendor/internal/pathos	0.323s
--- FAIL: TestHasPrefixDirTrue (0.00s)
	prefix_test.go:34: /foo should have / as prefix
	prefix_test.go:34: /foo/bar should have /foo as prefix
	prefix_test.go:34: foo/bar should have foo as prefix
FAIL
FAIL	github.com/kardianos/govendor/internal/vfilepath	0.390s
?   	github.com/kardianos/govendor/internal/vos	[no test files]
ok  	github.com/kardianos/govendor/migrate	0.792s
ok  	github.com/kardianos/govendor/pkgspec	0.128s
?   	github.com/kardianos/govendor/prompt	[no test files]
--- FAIL: TestSimple (0.07s)
	run_test.go:62: () Got
--- FAIL: TestDuplicatePackage (0.12s)
	run_test.go:62: (co1 pre list) Got
--- FAIL: TestEllipsisSimple (0.10s)
	run_test.go:62: () Got
--- FAIL: TestEllipsisRootEmpty (0.08s)
	run_test.go:62: () Got
--- FAIL: TestTreeRootEmpty (0.09s)
	run_test.go:62: () Got
FAIL
FAIL	github.com/kardianos/govendor/run	0.901s
ok  	github.com/kardianos/govendor/vcs	0.195s
?   	github.com/kardianos/govendor/vendor/github.com/Bowery/prompt	[no test files]
ok  	github.com/kardianos/govendor/vendor/github.com/dchest/safefile	0.642s
ok  	github.com/kardianos/govendor/vendor/github.com/google/shlex	0.173s
?   	github.com/kardianos/govendor/vendor/github.com/pkg/errors	[no test files]
?   	github.com/kardianos/govendor/vendor/golang.org/x/tools/go/vcs	[no test files]
ok  	github.com/kardianos/govendor/vendorfile	0.221s

I've started this, thanks for the push and the help.

appveyor confirms your fix worked. Now it is just fighting windows / appveyor env to get things to come out clean. The git tests are giving me issues.

Yea, I was looking a bit into the git tests but couldnt come up with a full fix.
Part of the problem is that windows dont allow : (colon) in file paths, and paths like C:\\Users\\vm\\AppData\\Local\\Temp\\vendor_853913546\\.cache\\govendor\\<IP_ADDRESS>:50984\\remote\\co2 is created by the govendor git tests.
This patch works around that:
diff --git a/context/fetch.go b/context/fetch.go
index c07c168..c4c15f2 100644
--- a/context/fetch.go
+++ b/context/fetch.go
@@ -88,7 +88,7 @@ func (f *fetcher) op(op *Operation) ([]*Operation, error) {
                }

                vcsCmd = updateVcsCmd(rr.VCS)
-               repoRoot = rr.Root
+               repoRoot = strings.Replace(rr.Root, ":", "_", -1)
                repoRootDir = filepath.Join(f.CacheRoot, repoRoot)

                err = vcsCmd.Create(repoRootDir, rr.Repo)

Using TestUpdateOrigin as example:
without the above patch:

   --- FAIL: TestUpdateOrigin (2.25s)
        gopath.go:181: C:/Users/vm/dev/go/src/github.com/kardianos/govendor/context/remote_test.go:129
        gopath.go:182: Failed to fetch package "co2/pk1": failed to create repo "git://localhost:50980/remote/co3/.git" in "C:\\Users\\vm\\AppData\\Local\\Temp\\vendor_177091159\\.cache\\govendor\\<IP_ADDRESS>:50979\\remote\\co3" exit status 128
        gopath.go:181: C:/Users/vm/AppData/Local/scoop/apps/go/1.7.0/src/runtime/asm_amd64.s:479
        gopath.go:182: remove C:\Users\vm\AppData\Local\Temp\vendor_177091159\src\remote: The process cannot access the file because it is being used by another process.
base-path "C:\\Users\\vm\\AppData\\Local\\Temp\\vendor_853913546\\src", serve "C:\\Users\\vm\\AppData\\Local\\Temp\\vendor_853913546\\src\\remote"
# cd .; git clone git://localhost:50985/remote/co2/.git C:\Users\vm\AppData\Local\Temp\vendor_853913546\.cache\govendor\<IP_ADDRESS>:50984\remote\co2

fatal: could not create leading directories of 'C:\Users\vm\AppData\Local\Temp\vendor_853913546\.cache\govendor\<IP_ADDRESS>:50984\remote\co2': Invalid argument

With the patch applied, another git issue pops up:
--- FAIL: TestUpdateOrigin (2.68s)
        gopath.go:181: C:/Users/hoh129/dev/go/src/github.com/kardianos/govendor/context/remote_test.go:129
        gopath.go:182: Failed to fetch package "co2/pk1": failed to create repo "git://localhost:51120/remote/co3/.git" in "C:\\Users\\hoh129\\AppData\\Local\\Temp\\vendor_689317295\\.cache\\govendor\\<IP_ADDRESS>_51119\\remote\\co3" exit status 128
        gopath.go:181: C:/Users/hoh129/AppData/Local/scoop/apps/go/1.7.0/src/runtime/asm_amd64.s:479
        gopath.go:182: remove C:\Users\hoh129\AppData\Local\Temp\vendor_689317295\src\remote: The process cannot access the file because it is being used by another process.
base-path "C:\\Users\\hoh129\\AppData\\Local\\Temp\\vendor_551106882\\src", serve "C:\\Users\\hoh129\\AppData\\Local\\Temp\\vendor_551106882\\src\\remote"
# cd .; git clone git://localhost:51126/remote/co2/.git C:\Users\hoh129\AppData\Local\Temp\vendor_551106882\.cache\govendor\<IP_ADDRESS>_51125\remote\co2

Cloning into 'C:\Users\hoh129\AppData\Local\Temp\vendor_551106882\.cache\govendor\<IP_ADDRESS>_51125\remote\co2'...
fatal: remote error: no such repository: /remote/co2/.git

The "The process cannot access the file because it is being used by another process." might be some code path forgot to "defer filehandle.Close()". I've seen go code break on that on Windows before, where it ran fine both on Linux and Mac.

No, i think that is from just needing to CD into another directory before removing.

Possible, however after execution file handles are holding the created folders. Using SysInternals Handle to see who's holding references to the path, it points at git.exe:
govendor git-win-fix * $ handle "C:\Users\vm\AppData\Local\Temp\vendor_490737723\"

Nthandle v4.1 - Handle viewer
Copyright (C) 1997-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

git.exe            pid: 6324   type: File             C: C:\Users\vm\AppData\Local\Temp\vendor_490737723\src\remote
git.exe            pid: 9420   type: File             C: C:\Users\vm\AppData\Local\Temp\vendor_490737723\src\remote
git.exe            pid: 8180   type: File             C: C:\Users\vm\AppData\Local\Temp\vendor_490737723\src\remote
git-daemon.exe     pid: 5572   type: File             C: C:\Users\vm\AppData\Local\Temp\vendor_490737723\src\remote

Point taken. I'll need to ensure the git daemon is stopped prior to cleaning up.

Not sure this is relevant, but git.exe is from https://git-for-windows.github.io/, version 2.9.3.windows.2 (latest as of this writing)

Encountered a variety of issues. For now I'm turning the build green so the other tests will show correctly and just skipping the git tests on windows.

:+1:
PS, you can find a appveyor build status badge for the README in appveyor project overview -> Settings -> Badges under "Sample markdown code"

Already in master :)

Nice :)

@kardianos i've spent some time trying to track down the issues; most of the failures i'm encountering now are related to the file lock issue. i'm not sold on the fix though, fwiw. i was just bored and since i dev on windows (sometimes) i figured i'd give it a shot.
https://github.com/kcrawley/govendor/tree/windows_fix

Thanks @kcrawley ! I'll look at it more in a bit, maybe we can resolve this. Appreciate effort and notes.


OOM error: Reduced batch size to 32/64 yet getting batch_size=128 in hparams

I have tried both by reducing batch_size default to 64(line 201) on nmt.py as well as passing flag batch_size=64 . In both cases, I am still getting batch_size=128 in my hparams file. What am I doing wrong?

Have you tried changing it through --batch_size command line argument? It worked for me. I could see "batch_size": 64 , in hparams.
python -m nmt.nmt
--src=vi --tgt=en
--vocab_prefix=/tmp/nmt_data/vocab
--train_prefix=/tmp/nmt_data/train
--dev_prefix=/tmp/nmt_data/tst2012
--test_prefix=/tmp/nmt_data/tst2013
--out_dir=/tmp/nmt_model
--num_train_steps=12000
--steps_per_stats=100
--num_layers=2
--num_units=128
--dropout=0.2
--metrics=bleu
--batch_size=64

Oh yes. The issue is resolved. You need to either mention a new out_dir or erase the previous model contents of the ouy_dir before running a fresh new batch.


Which PolicyName should be used in the Constants.swift file for the IoTSampleSwift?

Here’s the link to the example in the repo: https://github.com/awslabs/aws-sdk-ios-samples/tree/master/IoT-Sample/Swift
I am unable to figure out which policy to use. I tried AWSIoTFullAccess but I get
{"message":"Policy not found”}

as a response.
Could anyone clarify which one should be used?

Same question

I figured this one out. You need to create a policy in the IoT dashboard and provide that policy’s name in the code.


Added reentrancy flag

Critical Changes
Changes

Added a flag to prevent creation of duplicate Affiliation when the record type of a primary affiliated account is changed.

Issues Closed
New Metadata
Deleted Metadata
Testing Notes

@skosgi1 Can you edit the Issues Closed section to say this Fixes #781? Tying the PR back to the original Github issue will mean that the issue gets automatically closed once we merge this PR.

@skosgi1 Can you edit the Issues Closed section to say this Fixes #781? Tying the PR back to the original Github issue will mean that the issue gets automatically closed once we merge this PR.

Future reference: https://help.github.com/en/articles/closing-issues-using-keywords

@robertbwatson Thanks for the suggestions. I have updated the code accordingly.

I will say this PR could still use some formatting love with some of the legacy stuff but I don't want to hold anything up as they're not blatantly bad, just my nit pickiness :)

@juliesnow Just pinging you here to let you know you have release notes to review on this one.

@juliesnow Do we want to let users know in the release notes about the issue uncovered in testing? (see : https://salesforce.quip.com/s3imAOxbOlgv)
For example, "We've added a flag to prevent duplicate Affiliations from being created on the Contact record when the record type of a primary affiliated account is changed. If the Account's record type is changed to one that already has an Account listed in a Contact record's Primary Affiliation field, this Account will replace the existing one."

@juliesnow Do we want to let users know in the release notes about the issue uncovered in testing? (see : https://salesforce.quip.com/s3imAOxbOlgv)
For example, "We've added a flag to prevent duplicate Affiliations from being created on the Contact record when the record type of a primary affiliated account is changed. If the Account's record type is changed to one that already has an Account listed in a Contact record's Primary Affiliation field, this Account will replace the existing one."

@dgamboni @juliesnow My only feedback here is that this is how it has always worked. So we need to make sure we're clear that we didn't add this functionality - if the Account's record type is changed to one that already has an Account listed in a Contact record's Primary Affiliation field, it has always done this.

@juliesnow Do we want to let users know in the release notes about the issue uncovered in testing? (see : https://salesforce.quip.com/s3imAOxbOlgv)
For example, "We've added a flag to prevent duplicate Affiliations from being created on the Contact record when the record type of a primary affiliated account is changed. If the Account's record type is changed to one that already has an Account listed in a Contact record's Primary Affiliation field, this Account will replace the existing one."

@dgamboni @juliesnow My only feedback here is that this is how it has always worked. So we need to make sure we're clear that we didn't add this functionality - if the Account's record type is changed to one that already has an Account listed in a Contact record's Primary Affiliation field, it has always done this.

Good point, @robertbwatson! Mostly I would hate for a Customer to change a Record Type on an Account and suddenly have a lot of Primary Affiliations get updated without the Customer being aware that could happen. However, since this already exists, perhaps Release Notes isn't the best place to call this out, then, but just the docs?


OpenGVLab/InternVL2-8B model support

Model description
I am not sure these new models from OpenGVLab are supported here.
OpenGVLab/InternVL2-8B
After executing docker run, I got following error,
2024-08-22 05:51:08.649 | INFO     | text_generation_server.utils.import_utils:<module>:75 - Detected system cuda
Traceback (most recent call last):

  File "/opt/conda/bin/text-generation-server", line 8, in <module>
    sys.exit(app())

  File "/opt/conda/lib/python3.10/site-packages/text_generation_server/cli.py", line 118, in serve
    server.serve(

  File "/opt/conda/lib/python3.10/site-packages/text_generation_server/server.py", line 297, in serve
    asyncio.run(

  File "/opt/conda/lib/python3.10/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)

  File "/opt/conda/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
    return future.result()

  File "/opt/conda/lib/python3.10/site-packages/text_generation_server/server.py", line 231, in serve_inner
    model = get_model(

  File "/opt/conda/lib/python3.10/site-packages/text_generation_server/models/__init__.py", line 1117, in get_model
    raise ValueError(f"Unsupported model type {model_type}")

ValueError: Unsupported model type internvl_chat
 rank=0
2024-08-22T05:51:12.673589Z ERROR text_generation_launcher: Shard 0 failed to start
2024-08-22T05:51:12.673618Z  INFO text_generation_launcher: Shutting down shards
Error: ShardCannotStart

Please add support, these are the best performing open-source models.
Open source status

[X] The model implementation is available
[X] The model weights are available

Provide useful links for the implementation
No response

Hi @dhandhalyabhavik 👋
Thank yo for the request. At the moment we're quite constrained on bandwidth so we can't unfortunately satisfy all requests.  But for example if many other people also need this model in TGI (e.g. by adding the 👍 emoji to the issue) we know better how to prioritize.
Also if you have time & passion feel free to open a PR. I'll try to give you guidance on how to proceed with implementing the model.

Hi @ErikKaum, I'm also interested in using this InternVL2 model.
I do have time & passion to implementing the model. Would you please give me guidance on how to proceed?

Hi @leonyufeng 👋
Glad to hear!
Basically on the python side the models are implemented in the text-generation-server under the models directory, this is most likely where the implementation of the mode itself would go.
The additionally you'd need to update the configs in the routing layer such that the added model type is recongnized.
This is of course very high level, but it should help to point you in the right direction and especially help you find previous model implementations. Which serve as a good guide.
Additional resources:

Developing with nix. The fastest and most hasslefree way of developing TGI is using nix, if you're not familiar don't worry -- you can develop without nix, no issue, it just makes things nicer and faster.
TGI internal architecture might be helpful: https://huggingface.co/docs/text-generation-inference/architecture

Does this help you get started?


Fix resetting positions and convergence calculation

Fixes resetting convergence calculations for the following use case:

draw first image to canvas
begin convergence with start()
wait for convergence or call stop()
draw second image to canvas
call reset() followed by start()

Without this change the previous convergence value would persist after reset and cause subsequent attempts to find a face in new images to fail.

Thanks for the PR and sorry for the late reply!


Promote single-file timeout to env variable

https://github.com/sissbruecker/linkding/blob/5d8fdebb7c4918c3face9478543ccf86b2db47ef/bookmarks/services/singlefile.py#L27
Can you please promote single-file timeout value to an environment variable? I run linkding on a raspberry pi and sometimes taking a snapshot is sloooow.
For example:
time single-file https://www.hightidestoredtla.shop/products/bullet-ballpoint-pen-light?variant=38
087018184895

real    1m31.228s
user    0m13.667s
sys     0m11.835s

In my case I'd like to set a maybe 2 or 3 minute timeout.

Sounds like a good idea 👍. Since you already know how it's done, care to make a contribution?

Weird you want me to help and not just complain? :) Sent a PR. Had to figure out how you're using settings and a quick hot-patch way to test.


Validation should return multiple errors instead of throwing a single one

Hello,
In many cases like for forms, we need to display all the errors at the same time and not one by one. So I think you should support returning all errors instead of throwing the first occured error.

Can you explain a bit more, preferably with a code example, what exactly you mean? Is it about the transformation and validation pipeline? Do you know how other libraries, e.g. Zod, handle this?

I think he's talking about displaying all errors when a form contains several incorrect fields.
e.g. a form that contains username and password fields which are invalid, the parse function should return that username AND password are invalid and not only username

Valibot already does that. I use it myself in my own form library Modular Forms.

Hey, sorry for jumping in here but seems relevant. I'm currently playing around with valibot support for vee-validate (for Vue.js) and encountered a similar question.
Given a schema like this:
 const schema = string([email(), minLength(8)]);
 const result = await safeParseAsync(schema, 'hello@');

console.log(result.error.issues.map(issue => issue.message)); // [ 'Invalid email' ]

At the moment only the leading validator error is being generated, in this case, email error is the only one. Is that a design choice for valibot at the moment? Both yup and zod allow this by adding a configuration like abort or a similarly named option to the parse method.
Personally, I don't have an opinion here, but when working with forms, some devs expect to be able to show multiple error messages per field.

@logaretm here I am not quite sure myself yet. But technically it is possible. For now, just create an issue with different suggestions for the API. Then we look together further.

I reopened the issue @fabian-hiller @logaretm and yes, that's what I meant

@fabian-hiller What do you think of something like this:
Adding PipeExecutionOpts interface that will be added as an optional additional argument to all schemas .parse methods and parse functions. Something similar to this:
/**
 * Configures how a pipe should be executed.
 */
export interface PipeExecutionOptions {
  abortEarly?: boolean;
}

And then the API would look something like this:
const schema = string([email(), minLength(8)]);

// Should throw a ValiError with two issues instead of one
parse(schema, 'hello@', { abortEarly: false })

I got a quick PoC working with tests for a few schemas, if this is a good direction I would be happy to continue and PR it.

@logaretm thanks a lot for your research! I had completely different thoughts before and find your approach, where this behavior can be controlled via the parse method, better. Do you have alternative name ideas to abortEarly?

@fabian-hiller Thanks. I don't really like true boolean defaults so I tried to think of the opposites but they aren't any better.
Here are a few alternative names:
If the default is true: aborts, bails, exitEarly, exits, skip or any of the previous with ___onFirstError.
If the default is false: accumulate? Not sure really.

Does Zod or any other schema library have this functionality? Does anyone know what it is named there?
Thanks for your ideas, there are interesting names there. The name basically has to describe that per primitive value, if the option is set, more than one issue can be thrown or that not after the first error the pipeline is aborted.
Here are ideas I came up with: abortPipe, abortFirstError, firstErrorOnly, onlyFirstError, entirePipe, noAbort, forcePipe.
Although I haven't decided yet, I find e.g. forcePipe an exciting name as an alternative, as this automatically makes it clear to the developer that the pipe is always fully executed, which might lead to unexpected behavior in some cases.

Does Zod or any other schema library have this functionality? Does anyone know what it is named there?
Thanks for your ideas, there are interesting names there. The name basically has to describe that per primitive value, if the option is set, more than one issue can be thrown or that not after the first error the pipeline is aborted.
Here are ideas I came up with: abortPipe, abortFirstError, firstErrorOnly, onlyFirstError, entirePipe, noAbort, forcePipe.
Although I haven't decided yet, I find e.g. forcePipe an exciting name as an alternative, as this automatically makes it clear to the developer that the pipe is always fully executed, which might lead to unexpected behavior in some cases.

Zod doesn't abort early by default but in superRefine function, we can return z.NEVER that indicates we want to abort early.

In Yup it is called abortEarly. In zod, AFAIK this is the default behavior like @Yovach mentioned.
forcePipe Sounds good to me as well. Happy to proceed with it.

Thank you very much for the info. Should it also become the default behavior at Valibot. 🤔

I think it is a matter of expectations. Do you think people using Valibot will expect this more than the other way around?
In forms or client-side use-case, I believe it is more common to display just 1 error for the user. But from a parsing/validation standpoint, like using it on a server. Then a complete pipe run may be desirable, but I'm not sure. Feels like an arbitrary decision.
What I can say is, this isn't a breaking change even if you change your mind. issues is always an array and whether it has one or multiple errors, developers will access it in the same way.

I find it more natural and also more useful if the library throws the first error of a schema. The first error is probably sufficient for most use cases. However, if we return all errors, only the first error can still be shown to the user in the end. Therefore, it seems to me that in practice it doesn't matter which way we choose. It probably only matters that the library is technically capable of outputting more than one error per schema function.

The ability to have all the errors at the same time is mandatory in my opinion. In a lot of cases we want to display all the form errors at the same time so the end user will not have to resubmit multiple times until the form is valid.

Thank you for your feedback. I will later examine a possible implementation based on @logaretm code.

and thank you for your work and time @fabian-hiller

Later I will share the changes with you and publish a new version.

I have now decided to collect all issues by default. This behavior can be controlled via abortEarly and abortPipeEarly if needed. Thank you all for contributing to this feature! More about this here: https://valibot.dev/guides/parse-data/#abort-early

That's awesome, releasing the vee-validate integration soon once I work on the docs.

Great! Feel free to add vee-validate to our ecosystem page then: https://valibot.dev/guides/ecosystem/

Thank you for this feature @fabian-hiller but couldn't understand why does v.parse() not throw an error for all the fields here. I added { abortPipeEarly: false, abortEarly: false }, but still it throws an error only for Role field
export const UserDetailsSchema = v.object({
  id: v.number(),
  principalGuid: v.string(),
  displayName: v.string(),
  emailAddress: v.string(),
})

const EditorSchema = v.object({
  roles: v.pipe(
    v.array(v.number()),
    v.minLength(1, () => i18n.t('admin.manage_users.validations.roles_required')),
  ),
  categories: v.pipe(
    v.array(v.number()),
    v.minLength(1, () => i18n.t('admin.manage_users.validations.shut_categories_required')),
  ),
  sites: v.pipe(
    v.array(v.number()),
    v.minLength(1, () => i18n.t('admin.manage_users.validations.sites_required')),
  ),
})

const ApproverSchema = v.pipe(
  v.object({
    roles: v.pipe(
      v.array(v.number()),
      v.minLength(1, () => i18n.t('admin.manage_users.validations.roles_required')),
    ),
    sites: v.optional(
      v.pipe(
        v.array(v.number()),
        v.minLength(1, () => i18n.t('admin.manage_users.validations.sites_required')),
      ),
    ),
  }),
  v.forward(
    v.partialCheck(
      [['roles']],
      (input) => {
        return input.roles.includes(1)
      },
      () => i18n.t('admin.manage_users.validations.approver_sites_required'),
    ),
    ['sites'],
  ),
)

const OthersSchema = v.object({
  roles: v.pipe(
    v.array(v.number()),
    v.minLength(1, () => i18n.t('admin.manage_users.validations.roles_required')),
  ),
})

export const UserSchema = v.pipe(
  v.object({
    userDetails: UserDetailsSchema,
    editor: v.nullable(EditorSchema),
    approver: v.nullable(ApproverSchema),
    others: v.nullable(OthersSchema),
  }),
  v.forward(
    v.partialCheck(
      [['userDetails']],
      (input) => {
        return input.userDetails.principalGuid !== ''
      },
      () => i18n.t('admin.manage_users.validations.user_details_required'),
    ),
    ['userDetails'],
  ),
  v.forward(
    v.partialCheck(
      [['editor'], ['approver'], ['others']],
      (input) => {
        console.log(input.editor)
        console.log(input.approver)
        console.log(input.others)
        return input.editor !== null || input.approver !== null || input.others !== null
      },
      () => i18n.t('admin.manage_users.validations.access_type_required'),
    ),
    ['editor'],
  ),
)

const validate = v.parse(
                  UserSchema,
                  {
                    userDetails: {
                      id: 0,
                      principalGuid: '123',
                      displayName: '123',
                      emailAddress: '123',
                    },
                    editor: {
                      roles: [],
                      sites: [],
                      categories: [],
                    },
                    approver: null,
                    others: null,
                  },
                  { abortPipeEarly: false, abortEarly: false },
                )
                console.log(validate)

Can you simplify your schema and reduce it to the minimum to reproduce your problem? Feel free to use our playground for testing: https://valibot.dev/playground/


Newtoki

please add newtoki (https://newtoki333.com) as a source please im begging 😭 ive been wanting this for ages

#177 😔


Any reason not to submit this into Terraform?

Cool project! Any way to get this merged into Terraform itself so a separate binary isn't necessary?

Honestly I have not thought about it at all.
Now that providers are being cut out of the main terraform repository and every provider gets its own repository it makes a lot of sense to try to get a repo under the Terraform Providers GitHub organization. I will look into that when the migration is over.
Also I believe with the new structure installing a third-party provider might get easier so you don't have to install the binary manually.


Support unary ops ops for DataFrame.

What do these changes do?
Support unary operations on DataFrame.
This pr is not finished yet, post it here for early feedback.

Related issue number
#433

Thank you for your contribution, can you open an issue about this for tracking?

Revised title/description, and add support for DataFrameAddConstant.
@NJUPole Just FYI: @chineking has assigned #425 to me as a warm-up task. This pr currently only includes the proof-of-concept implementation (but it does work and can give the correct result). Any comment and review on the design, code structure, and implementation details will be appreciated!

I have addressed these request changes in review, revised the patch and only kept the unary parts, and add corresponding test cases as well.
I think now it is ready for a final review.

Great job, @NJUPole could you please take some time for a review?

Thanks for the detailed review, now the CI is green!

Welcome aboard, I am about to merge this PR.


Display pixel values in the Hover display

Another (hopefully) easy addition with a big impact - in the Texture Viewer, right now the pixel value is only displayed as part of the 'Right click' part of the status display. While that's useful, I find more utility if the pixel values were part of the "Hover" display as well, especially when examining depth or stencil buffers. That makes it much easier to determine how the values vary over an area. If screen space in that status bar is an issue, of the values currently displayed in the texture viewer's status bar the uv coordinates are the information i use the least, and the pixel values are the information I use the most.

I'm not entirely sure what you mean - how would this be different from simply holding down the right mouse button while moving the cursor over the pixel values that you want to browse/scan?
At the moment the scheme is that the text pixel values only update when you are holding the right mouse button, which lets you both scan over an area but also let go of right mouse to get a precise pixel. You can also use the arrow keys which isn't too obvious, but that lets you hone in on a precise pixel if you do need that (which is the opposite of what you want, but useful to know about!).

I've tried holding the right-mouse button down, and I find that the pixel values don't update nearly as often as the pixel coordinate values do - that is, the pixel values are frequently frozen at some outdated value, while the pixel coordinate values are updated as expected. It can be upwards of a second between pixel value updates, during which the mouse has moved well away from the pixel whose value is displayed. The speed at which the mouse moves does not affect the update rate of the pixel values - moving the mouse slowly does not improve the pixel value display. If the display is frozen at the time the right-button is released, then an incorrect value is displayed in the status bar. Perhaps this should be considered as a bug report instead?

I had forgotten about that right-drag feature, please disregard this enhancement request. Thanks!

Yes that sounds like a bug, please file a new issue with more repro details since the update rate is fine for me:


Fix github-token value typo.

The terminology is PAT (Personal Access Token) and the secret is configured as such.

for posterity: the idea was to call it TAP_TOKEN as it's scoped for the pantsbuild/homebrew-tap repo, and to avoid squatting on a very generic token name. was mis-named in the secrets.


[Bug]: FileNotFoundError in "001_getting_started" tutorial

Describe the bug
Error occurs in Padim model fitting process
start training
engine = Engine(task=TaskType.SEGMENTATION)
engine.fit(model=model, datamodule=datamodule)
Dataset
MVTec
Model
PADiM
Steps to reproduce the behavior
Follow tutorial code in "001_getting_started.ipynb"
OS information
OS information:

OS: Ubuntu 20.04.5
Python version: 2.1.2
Anomalib version: [e.g. 0.3.6]
PyTorch version: 3.10
CUDA/cuDNN version: 12.0
GPU models and configuration: NVIDIA TITAN X
Any other relevant information: Nothing

Expected behavior
Estimate multi-variate gaussian distribution of MVTec AD dataset using pre-trained model
Screenshots
No response
Pip/GitHub
GitHub
What version/branch did you use?
main
Configuration YAML
No config in tutorial

Logs
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
Cell In[8], line 3
      1 # start training
      2 engine = Engine(task=TaskType.SEGMENTATION)
----> 3 engine.fit(model=model, datamodule=datamodule)

File ~/.local/lib/python3.10/site-packages/anomalib/engine/engine.py:533, in Engine.fit(self, model, train_dataloaders, val_dataloaders, datamodule, ckpt_path)
    524     ckpt_path = Path(ckpt_path).resolve()
    526 self._setup_workspace(
    527     model=model,
    528     train_dataloaders=train_dataloaders,
   (...)
    531     versioned_dir=True,
    532 )
--> 533 self._setup_trainer(model)
    534 self._setup_dataset_task(train_dataloaders, val_dataloaders, datamodule)
    535 self._setup_transform(model, datamodule=datamodule, ckpt_path=ckpt_path)

File ~/.local/lib/python3.10/site-packages/anomalib/engine/engine.py:324, in Engine._setup_trainer(self, model)
    321     self._cache.update(model)
    323 # Setup anomalib callbacks to be used with the trainer
--> 324 self._setup_anomalib_callbacks()
    326 # Temporarily set devices to 1 to avoid issues with multiple processes
    327 self._cache.args["devices"] = 1

File ~/.local/lib/python3.10/site-packages/anomalib/engine/engine.py:415, in Engine._setup_anomalib_callbacks(self)
    412 has_checkpoint_callback = any(isinstance(c, ModelCheckpoint) for c in self._cache.args["callbacks"])
    413 if has_checkpoint_callback is False:
    414     _callbacks.append(
--> 415         ModelCheckpoint(
    416             dirpath=self._cache.args["default_root_dir"] / "weights" / "lightning",
    417             filename="model",
    418             auto_insert_metric_name=False,
    419         ),
    420     )
    422 # Add the post-processor callbacks.
    423 _callbacks.append(_PostProcessorCallback())

File ~/.local/lib/python3.10/site-packages/lightning/pytorch/callbacks/model_checkpoint.py:253, in ModelCheckpoint.__init__(self, dirpath, filename, monitor, verbose, save_last, save_top_k, save_weights_only, mode, auto_insert_metric_name, every_n_train_steps, train_time_interval, every_n_epochs, save_on_train_epoch_end, enable_version_counter)
    251 self.dirpath: Optional[_PATH]
    252 self.__init_monitor_mode(mode)
--> 253 self.__init_ckpt_dir(dirpath, filename)
    254 self.__init_triggers(every_n_train_steps, every_n_epochs, train_time_interval)
    255 self.__validate_init_configuration()

File ~/.local/lib/python3.10/site-packages/lightning/pytorch/callbacks/model_checkpoint.py:475, in ModelCheckpoint.__init_ckpt_dir(self, dirpath, filename)
    472 self._fs = get_filesystem(dirpath if dirpath else "")
    474 if dirpath and _is_local_file_protocol(dirpath if dirpath else ""):
--> 475     dirpath = os.path.realpath(os.path.expanduser(dirpath))
    477 self.dirpath = dirpath
    478 self.filename = filename

File /opt/conda/lib/python3.10/posixpath.py:396, in realpath(filename, strict)
    393     """Return the canonical path of the specified filename, eliminating any
    394 symbolic links encountered in the path."""
    395     filename = os.fspath(filename)
--> 396     path, ok = _joinrealpath(filename[:0], filename, strict, {})
    397     return abspath(path)

File /opt/conda/lib/python3.10/posixpath.py:456, in _joinrealpath(path, rest, strict, seen)
    454         return join(newpath, rest), False
    455 seen[newpath] = None # not resolved symlink
--> 456 path, ok = _joinrealpath(path, os.readlink(newpath), strict, seen)
    457 if not ok:
    458     return join(path, rest), False

FileNotFoundError: [Errno 2] No such file or directory: '/home/sunghyun.baek/home/workspace/AD/anomalib-main/results/Padim/MVTec/bottle/latest'

Code of Conduct

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

I run all the cells of the notebook in the corresponding order

You must run all the cells of the notebook in the corresponding order

I run all the cells of the notebook in the corresponding order

Have you run these?
  datamodule = MVTec(num_workers=0)
  datamodule.prepare_data()  # Downloads the dataset if it's not in the specified `root` directory
  datamodule.setup()  # Create train/val/test/prediction sets.

  i, data = next(enumerate(datamodule.val_dataloader()))
  print(data.keys())

This code will download MVTec dataset.

@cjy513203427 The data loading code you mentioned runs fine, but when I run ‘engine.fit(model=model, datamodule=datamodule)’ afterwards, I get the same error
The error message seems to be about a folder called 'anomalib-main/results/Padim/MVTec/bottle/latest', does anyone know why I am getting this error?

hmm yes it's about receiving the model checkpoint directories..
Did you try to start from a freshly installed anaconda environment?
I'm not even sure how os.path.realpath() can fail because it is not supposed to. maybe you have some unexpected symlink?

It was a symlink problem in my setting.

It was a symlink problem in my setting.


Add async to change password dialog (merge after error handling)

This PR addresses #21756, #21757, and #21760 and is a follow up to the error handling PR #21627
This is to be merged after the previous PR

Is there any reason not to do this one first? It's a lot more targeted so seems simpler to just take of first so we can properly review the other one. Especially since this is addressing some seemingly important issues you discovered.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

17 of 47 (36.17%)  changed or added relevant lines in 4 files are covered.
2 unchanged lines in 2 files lost coverage.
Overall coverage increased (+0.009%) to 42.024%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/sql/workbench/api/common/sqlExtHost.protocol.ts
1
2
50.0%

src/sql/workbench/services/connection/browser/connectionManagementService.ts
11
18
61.11%

src/sql/workbench/services/connection/browser/passwordChangeDialog.ts
3
25
12.0%

Files with Coverage Reduction
New Missed Lines
%

extensions/notebook/src/dialog/configurePython/configurePathPage.ts
1
57.02%

src/sql/workbench/services/connection/browser/connectionManagementService.ts
1
69.94%

Totals

Change from base Build<PHONE_NUMBER>:
0.009%

Covered Lines:
28648

Relevant Lines:
63314

💛  - Coveralls

@Charles-Gagnon This adds in numerous changes that requires having the error handler first (which is already part of that PR) so that one would have to be merged in first or that one closed, so that this one can go first.

Aren't these issues with the existing dialog though? I'm a bit confused on why these two PRs have to be so tightly integrated - it seems like the issues you linked above should be something that can be fixed with the existing code. Then if the error handling PR needs to make further changes to the place where this dialog is shown that's fine (and expected since it'll be called from the extension instead of core code)
Even if you take just a couple smaller fixes to the dialog itself or something that'd be good - the more concise the other PR is the better given the large amount of changes it has already.

@Charles-Gagnon It turns out all of these issues are only introduced with the Error Handler, and not part of the current password dialog. With the connection explorer not having the dialog implemented. And the current query editor has the password change dialog working fine.

Ok, then let's mark this as a draft and do it as a follow up once the other PR is merged in.

Seems like we're introducing regressions in main first and then fixing it - we should avoid pushing regressions in main.
Can we target this PR on the branch from PR https://github.com/microsoft/azuredatastudio/pull/21627 so it can be easily reviewed standalone?


Bootstrap basic dev/production Docker config

Part one of getting a deployable, functional web app that can process requests.

[x] "Hello World" endpoint running in a docker container.

[x] Use air in development (running inside the container)  to watch the source files.

[ ] Use docker-compose to configure the container and volume mounts for local development.

https://docs.docker.com/compose/production/

[ ] Use air with the debugger attach.

Seem interesting/tricky:

I usually use Air inside of a docker container with my code. You can set up the air config to use delve, and set up the delve server with a port and other useful bits (like not starting until you attach a debugger). From there, you just use the Go debugger attach config and make sure the path mappings are correct between your workspace and the path in the container.

Theoretically you don't need a docker container, I just work on more complex apps that require containerization for dev. You'd just set up your air config to launch a delve process and attach to that delve port. Practical example here: https://github.com/SpecterOps/BloodHound/blob/main/.air.debug.toml

Yours doesn't need to be that complex, but you'll want a similar delve config. From there, I'd recommend running air as a standalone process from your terminal and then use an attach in VS Code. The example delve options are set to wait for debugger to connect, allowing you to debug startup code, but can be removed if you want it to start up before you attach. Keep in mind, no matter how you do it, I don't think there's any way to have the debugger automatically reattach to a running process, so you'll need to reattach manually anytime the live reload goes off

[ ] Configure delve/air together

https://dev.to/andreidascalu/setup-go-with-vscode-in-docker-for-debugging-24ch

One problem as specified by the reddit comment above: When air restarts the process, then the current debug session is quit.
I'm ot sure there is a way around this.  I wonder if there's anything to have the built binary change "out from under" delve. That wouldn't work.
Otherwise, we add some sort of plugin that handles the debug start/stop on save, but that's ide dependent and likely to cause issues.
You now you're not debugging, so that's atleast good.
I'm curious why there is not a "restart" true flag?

I made a comment on this thread requesting a "restart": true config for the go vscode debugger. I'm not sure it'll go anywhere. If there's interest from the go maintainers, I'll look at implementing it myself.
For a resolution regarding the debugging flow, we either:

let air do its thing and have to restart the debugger when changes are made (easier) or more specifically, when changes are made and the developer want to use their debug ui.
Run the process in the container with dlv without utilizing air.

We'd build the project locally, and then execute a script in the container to stop/start the dlv process (detaching any running debugger as a result) and then we'd still be manually reattaching a debugger. The launch + debug process in VSCode that is usually used is just not going to cut it for launching the process within the container.

Going to sleep on it.

Ended up using docker's newer "watch" capabilities instead of bind mounts. This felt just a tad slower than bind mounts, but seems to be the docker recommended way of local development. I might change this in the future, but for now it keeps the setup very simple