Ct 355/migrate simple seed

Adapts new tests and migrates existing simple seed tests to the new test framework. See core PR 5060.
Description
Some minor adjustments/omissions were needed because of Snowflake's spec. See in-line comments.
Checklist

[X] I have signed the CLA
[X] I have run this code in development and it appears to resolve the stated issue
[X] This PR includes tests, or tests are not required/relevant for this PR
[X] I have updated the CHANGELOG.md and added information about my change to the "dbt-snowflake next" section.

We will not be putting these tests in the adapter zone so this PR is unneeded.


ucloud bugfix

这个 PR 实现什么功能/修复什么问题:

修复变更配置未更新实例规格等问题
修复parameter global settings params错误

是否需要 backport 到之前的 release 分支:

release/2.10.0
release/2.11.0

/area region
/cc @yousong @ioito

/cc @yousong @ioito

Codecov Report

Merging #1801 into master will increase coverage by 0.03%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           master   #1801      +/-   ##
=========================================
+ Coverage    7.59%   7.63%   +0.03%
=========================================
  Files         412     412
  Lines       63481   63332     -149
=========================================
+ Hits         4824    4838      +14
+ Misses      58245   58084     -161
+ Partials      412     410       -2

Flag
Coverage Δ

#aFlag
7.63% <0%> (+0.03%)
:arrow_up:

Impacted Files
Coverage Δ

pkg/util/seclib2/seclib.go
91.48% <ø> (ø)
:arrow_up:

pkg/util/ucloud/storagecache.go
0% <0%> (ø)
:arrow_up:

pkg/util/ucloud/disk.go
0% <0%> (ø)
:arrow_up:

pkg/compute/models/skus.go
1.52% <0%> (+0.08%)
:arrow_up:

pkg/util/ucloud/instance.go
0% <0%> (ø)
:arrow_up:

pkg/compute/guestdrivers/managedvirtual.go
0% <0%> (ø)
:arrow_up:

pkg/cloudcommon/db/fetch.go
0% <0%> (ø)
:arrow_up:

pkg/compute/models/cloudsync.go
0% <0%> (ø)
:arrow_up:

pkg/cloudcommon/db/virtualresource.go
0% <0%> (ø)
:arrow_up:

pkg/appsrv/response.go
66.15% <0%> (ø)
:arrow_up:

... and 7 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9732019...3a962c5. Read the comment docs.

/lgtm
/approve


Julia registry release for > 0.1.1 ?

Hi there,
I absolutely love this package!
At the moment the julia registry version is 0.1.1 which is missing some nice features I see in later versions. Is there a plan for updating the registry version?
Obviously, I can install direct from this gh repo, but I enjoy dev work with Pluto and this makes that a bit more painful. Also users while potentially miss this.

Thank you for the note. I have created a PR on JuliaRegistries to update the GitHub repository URL: https://github.com/JuliaRegistries/General/pull/118922. After it is approved, I can release 0.1.7 to the registry.

https://github.com/JuliaRegistries/General/pull/120149


Refactors entries panel by moving code to separate functions

There shouldn't be any functional changes.

While working on adding the ability to sort by number of entries in each directory (same as in ncdu).

I have noticed that the render method for the entries panel starts to get too big to work with. So, I want to make it more readable by moving code to separate methods.
Good idea to make clippy fail the checks. Also, good catch that it has caused visual changes - I will fix that.

While working on adding the ability to sort by number of entries in each directory (same as in ncdu).

Ah, great! I hope implementing this can be similar to how the aggregation aggregates the size of the folder itself.
That will be a very nice feature to have, and it is certainly nice to learn a thing or two from ncdu.

Ah, great! I hope implementing this can be similar to how the aggregation aggregates the size of the folder itself.

Yes, it is done exactly the same way.

Thanks, looks good!


Update issue templates

Templates for to be used and will be referenced by CONTRIBUTING.md

Looks good. Just fix Feature_Request where it says Algorithm Twice. Seems a bit confusing.
Other than that, great work. I really like how it looks, and was a good addition to the repo 👍


DOOM 3 Demo

Project link: https://dhewm3.org/
Project license: GPLv3
Does it work on 64-bit only Linux: YES
Is source code available?: YES
Is source code stored in Git?: YES

https://github.com/dhewm/dhewm3

List of Steam AppIds of supported games:

https://steamdb.info/app/9100/

Additional information
https://dhewm3.org/#using-the-doom3-demo-gamedata

Steam is not allowing me to download the demo to test this, probably because I own the game. Do you not own this game currently?

I do not own regular Doom 3. I requested demo via Steam console:
app_license_request 9100
app_install 9100

Ok, are you able to make a pull request with the changes necessary to make the demo work?

Ok, are you able to make a pull request with the changes necessary to make the demo work?

Unfortunately I am completely dumb in case of coding. I can give some information regarding demo versions;

Quake 2, Quake 3 and Quake 3: Team Arena's demo versions are visible on the store of full versions of these games. They can also be found in Steam game search page;
https://store.steampowered.com/search/?sort_by=Name_ASC&term=quake&ignore_preferences=1&category1=10

Doom 3 and ETQW's demo versions are hidden but available. Users need to launch Steam with -console argument; request app license and install the game via Steam console manually. After that, Luxtorpeda can do its job.

As I said, steam is not letting me download the demos. I've tried all the options that I can find, including the console, clicking the demo button in the store, and using steamdb. Other demos work fine, so it seems to be specific to these for some reason.
If you can send me any steps as to how you are able to get the demo working with the engine, I can work on replicating it.

As I said, steam is not letting me download the demos. I've tried all the options that I can find, including the console, clicking the demo button in the store, and using steamdb. Other demos work fine, so it seems to be specific to these for some reason.

In that case, I would speculate that we are using different regional packages of same games and/or bundles; US ve EU/ROW which might have package conflict with demos of the games already owned. Pure speculation though.
Can you at least download ETQW demos via Steam console?

Enemy Territory: QUAKE Wars Demo 2.0 (10050)
Enemy Territory: QUAKE Wars Demo (10010)

I have the etqw demo, yes. So if you're able to get some commands that I could use as a starting point i could look at these, otherwise would need to wait for a pull request.


BC RC1 new dialog when trying to connect to an external web service

With the new BC RC1 I got this dialog when try to connect to an external web service using HttpClient, in previous versions that does not happen.

If I choose "Allow Always" I get the next message:

Is there any way to avoid the first dialog or if that it is not possible how get the Insert permission in the TableDta "NAV App Setting".
Regards.

Hi! We are aware of this problem. We have added features that require a license update. The license update is in progress.

It seems that this new licens we have too wait for more than a week to get this fixed, which seems a very long time, and the release not very good perpared.

pull an updated NAV 2018 license that contains the object.

Haha, then we can enjoy our weekends looking at a loading browser... I can't believe how slow a site could be. ;-)

Thanks, and the new licens is working, rember a new thing in extension manger, too configure


Why cluster slower than single?

My Environment

ArangoDB Version:        3.4.1
Storage Engine:             RocksDB
Deployment Mode:       Single Server & Cluster
Deployment Strategy:   ArangoDB Starter
Cluster_Configuration :     arangodb --server.storage-engine=rocksdb --starter.data-dir=./data --starter.join a,b,c
Single_Configuration:     arangodb --starter.mode=single
Infrastructure:           own
Operating System:       Centos 6.8
Total RAM in your machine:   64GB * 3 / 64GB
Total Core in your machine: 16Core * 3 / 16Core
Disks in use:        all SSD
Used Package:        centos rpm

Component, Query & Data
Affected feature:

Query performance
AQL query (if applicable):
run same query at single mode & cluster mode :
//recommend user s
WITH Album, User
//get album played by user
FOR album,edge in 1 OUTBOUND "User/28723958" PLAY_ALL
    SORT edge.play_ratio DESC
    LIMIT 5
    //find the achor who publish this album
     FOR achor in 1 INBOUND album PUBLISH
        For other_album in 1 OUTBOUND achor PUBLISH
            SORT other_album.album_score * edge.play_ratio DESC
            LIMIT 10
            RETURN other_album._key

AQL explain (if applicable):
single mode:
Query String:
 WITH Album, User
 FOR album,edge in 1 OUTBOUND "User/79468182" PLAY_ALL
     SORT edge.play_ratio DESC
     LIMIT 5
      FOR anchor in 1 INBOUND album PUBLISH
         For other_album in 1 OUTBOUND anchor PUBLISH
             SORT other_album.album_score * edge.play_ratio DESC
             LIMIT 10
             RETURN other_album._key

Execution plan:
 Id   NodeType          Est.   Comment
  1   SingletonNode        1   * ROOT
  2   TraversalNode        1     - FOR album  /* vertex */, edge  /* edge */ IN 1..1  /* min..maxPathDepth */ OUTBOUND 'User/79468182' /* startnode */  PLAY_ALL
  3   CalculationNode      1       - LET #6 = edge.`play_ratio`   /* attribute expression */
  4   SortNode             1       - SORT #6 DESC
  5   LimitNode            1       - LIMIT 0, 5
  6   TraversalNode        1       - FOR anchor  /* vertex */ IN 1..1  /* min..maxPathDepth */ INBOUND album /* startnode */  PUBLISH
  7   TraversalNode        1         - FOR other_album  /* vertex */ IN 1..1  /* min..maxPathDepth */ OUTBOUND anchor /* startnode */  PUBLISH
  8   CalculationNode      1           - LET #12 = (other_album.`album_score` * edge.`play_ratio`)   /* simple expression */
  9   SortNode             1           - SORT #12 DESC
 10   LimitNode            1           - LIMIT 0, 10
 11   CalculationNode      1           - LET #14 = other_album.`_key`   /* attribute expression */
 12   ReturnNode           1           - RETURN #14

Indexes used:
 By   Type   Collection   Unique   Sparse   Selectivity   Fields        Ranges
  2   edge   PLAY_ALL     false    false            n/a   [ `_from` ]   base OUTBOUND
  6   edge   PUBLISH      false    false            n/a   [ `_to` ]     base INBOUND
  7   edge   PUBLISH      false    false            n/a   [ `_from` ]   base OUTBOUND

Traversals on graphs:
 Id   Depth   Vertex collections   Edge collections   Options                                   Filter conditions
  2   1..1                         PLAY_ALL           uniqueVertices: none, uniqueEdges: path
  6   1..1                         PUBLISH            uniqueVertices: none, uniqueEdges: path
  7   1..1                         PUBLISH            uniqueVertices: none, uniqueEdges: path

Optimization rules applied:
 none

cluster mode:
Query String:
 WITH Album, User
 FOR album,edge in 1 OUTBOUND "User/79468182" PLAY_ALL
     SORT edge.play_ratio DESC
     LIMIT 5
      FOR anchor in 1 INBOUND album PUBLISH
         For other_album in 1 OUTBOUND anchor PUBLISH
             SORT other_album.album_score * edge.play_ratio DESC
             LIMIT 10
             RETURN other_album._key

Execution plan:
 Id   NodeType          Site  Est.   Comment
  1   SingletonNode     COOR     1   * ROOT
  2   TraversalNode     COOR    10     - FOR album  /* vertex */, edge  /* edge */ IN 1..1  /* min..maxPathDepth */ OUTBOUND 'User/79468182' /* startnode */  PLAY_ALL
  3   CalculationNode   COOR    10       - LET #6 = edge.`play_ratio`   /* attribute expression */
  4   SortNode          COOR    10       - SORT #6 DESC
  5   LimitNode         COOR     5       - LIMIT 0, 5
  6   TraversalNode     COOR     1       - FOR anchor  /* vertex */ IN 1..1  /* min..maxPathDepth */ INBOUND album /* startnode */  PUBLISH
  7   TraversalNode     COOR    10         - FOR other_album  /* vertex */ IN 1..1  /* min..maxPathDepth */ OUTBOUND anchor /* startnode */  PUBLISH
  8   CalculationNode   COOR    10           - LET #12 = (other_album.`album_score` * edge.`play_ratio`)   /* simple expression */
  9   SortNode          COOR    10           - SORT #12 DESC
 11   CalculationNode   COOR    10           - LET #14 = other_album.`_key`   /* attribute expression */
 10   LimitNode         COOR    10           - LIMIT 0, 10
 12   ReturnNode        COOR    10           - RETURN #14

Indexes used:
 By   Type   Collection   Unique   Sparse   Selectivity   Fields        Ranges
  2   edge   PLAY_ALL     false    false            n/a   [ `_from` ]   base OUTBOUND
  6   edge   PUBLISH      false    false            n/a   [ `_to` ]     base INBOUND
  7   edge   PUBLISH      false    false            n/a   [ `_from` ]   base OUTBOUND

Traversals on graphs:
 Id   Depth   Vertex collections   Edge collections   Options                                   Filter conditions
  2   1..1                         PLAY_ALL           uniqueVertices: none, uniqueEdges: path
  6   1..1                         PUBLISH            uniqueVertices: none, uniqueEdges: path
  7   1..1                         PUBLISH            uniqueVertices: none, uniqueEdges: path

Optimization rules applied:
 Id   RuleName
  1   move-calculations-up
  2   move-calculations-up-2
  3   move-calculations-down

AQL profile:
single mode:
Query String:
 WITH Album, User
 FOR album,edge in 1 OUTBOUND "User/79468182" PLAY_ALL
     SORT edge.play_ratio DESC
     LIMIT 5
      FOR anchor in 1 INBOUND album PUBLISH
         For other_album in 1 OUTBOUND anchor PUBLISH
             SORT other_album.album_score * edge.play_ratio DESC
             LIMIT 10
             RETURN other_album._key

Execution plan:
 Id   NodeType          Calls   Items   Runtime [s]   Comment
  1   SingletonNode         1       1       0.00000   * ROOT
  2   TraversalNode         1      26       0.00078     - FOR album  /* vertex */, edge  /* edge */ IN 1..1  /* min..maxPathDepth */ OUTBOUND 'User/79468182' /* startnode */  PLAY_ALL
  3   CalculationNode       1      26       0.00001       - LET #6 = edge.`play_ratio`   /* attribute expression */
  4   SortNode              1       5       0.00004       - SORT #6 DESC
  5   LimitNode             1       5       0.00000       - LIMIT 0, 5
  6   TraversalNode         1       5       0.00022       - FOR anchor  /* vertex */ IN 1..1  /* min..maxPathDepth */ INBOUND album /* startnode */  PUBLISH
  7   TraversalNode         1      81       0.00133         - FOR other_album  /* vertex */ IN 1..1  /* min..maxPathDepth */ OUTBOUND anchor /* startnode */  PUBLISH
  8   CalculationNode       1      81       0.00007           - LET #12 = (other_album.`album_score` * edge.`play_ratio`)   /* simple expression */
  9   SortNode              1      10       0.00006           - SORT #12 DESC
 10   LimitNode             1      10       0.00000           - LIMIT 0, 10
 11   CalculationNode       1      10       0.00000           - LET #14 = other_album.`_key`   /* attribute expression */
 12   ReturnNode            1      10       0.00000           - RETURN #14

Indexes used:
 By   Type   Collection   Unique   Sparse   Selectivity   Fields        Ranges
  2   edge   PLAY_ALL     false    false            n/a   [ `_from` ]   base OUTBOUND
  6   edge   PUBLISH      false    false            n/a   [ `_to` ]     base INBOUND
  7   edge   PUBLISH      false    false            n/a   [ `_from` ]   base OUTBOUND

Traversals on graphs:
 Id   Depth   Vertex collections   Edge collections   Options                                   Filter conditions
  2   1..1                         PLAY_ALL           uniqueVertices: none, uniqueEdges: path
  6   1..1                         PUBLISH            uniqueVertices: none, uniqueEdges: path
  7   1..1                         PUBLISH            uniqueVertices: none, uniqueEdges: path

Optimization rules applied:
 none

Query Statistics:
 Writes Exec   Writes Ign   Scan Full   Scan Index   Filtered   Exec Time [s]
           0            0           0          112          0         0.00291

Query Profile:
 Query Stage           Duration [s]
 initializing               0.00000
 parsing                    0.00005
 optimizing ast             0.00000
 loading collections        0.00000
 instantiating plan         0.00004
 optimizing plan            0.00011
 executing                  0.00251
 finalizing                 0.00017

cluster mode:
Query String:
 WITH Album, User
 FOR album,edge in 1 OUTBOUND "User/79468182" PLAY_ALL
     SORT edge.play_ratio DESC
     LIMIT 5
      FOR anchor in 1 INBOUND album PUBLISH
         For other_album in 1 OUTBOUND anchor PUBLISH
             SORT other_album.album_score * edge.play_ratio DESC
             LIMIT 10
             RETURN other_album._key

Execution plan:
 Id   NodeType          Site  Calls   Items   Runtime [s]   Comment
  1   SingletonNode     COOR      1       1       0.00000   * ROOT
  2   TraversalNode     COOR      1      26       0.01061     - FOR album  /* vertex */, edge  /* edge */ IN 1..1  /* min..maxPathDepth */ OUTBOUND 'User/79468182' /* startnode */  PLAY_ALL
  3   CalculationNode   COOR      1      26       0.00001       - LET #6 = edge.`play_ratio`   /* attribute expression */
  4   SortNode          COOR      1       5       0.00003       - SORT #6 DESC
  5   LimitNode         COOR      1       5       0.00000       - LIMIT 0, 5
  6   TraversalNode     COOR      1       5       0.00342       - FOR anchor  /* vertex */ IN 1..1  /* min..maxPathDepth */ INBOUND album /* startnode */  PUBLISH
  7   TraversalNode     COOR      1      81       0.02846         - FOR other_album  /* vertex */ IN 1..1  /* min..maxPathDepth */ OUTBOUND anchor /* startnode */  PUBLISH
  8   CalculationNode   COOR      1      81       0.00006           - LET #12 = (other_album.`album_score` * edge.`play_ratio`)   /* simple expression */
  9   SortNode          COOR      1      10       0.00003           - SORT #12 DESC
 11   CalculationNode   COOR      1      10       0.00000           - LET #14 = other_album.`_key`   /* attribute expression */
 10   LimitNode         COOR      1      10       0.00000           - LIMIT 0, 10
 12   ReturnNode        COOR      1      10       0.00000           - RETURN #14

Indexes used:
 By   Type   Collection   Unique   Sparse   Selectivity   Fields        Ranges
  2   edge   PLAY_ALL     false    false            n/a   [ `_from` ]   base OUTBOUND
  6   edge   PUBLISH      false    false            n/a   [ `_to` ]     base INBOUND
  7   edge   PUBLISH      false    false            n/a   [ `_from` ]   base OUTBOUND

Traversals on graphs:
 Id   Depth   Vertex collections   Edge collections   Options                                   Filter conditions
  2   1..1                         PLAY_ALL           uniqueVertices: none, uniqueEdges: path
  6   1..1                         PUBLISH            uniqueVertices: none, uniqueEdges: path
  7   1..1                         PUBLISH            uniqueVertices: none, uniqueEdges: path

Optimization rules applied:
 Id   RuleName
  1   move-calculations-up
  2   move-calculations-up-2
  3   move-calculations-down

Query Statistics:
 Writes Exec   Writes Ign   Scan Full   Scan Index   Filtered   Exec Time [s]
           0            0           0          112          0         0.04936

Query Profile:
 Query Stage           Duration [s]
 initializing               0.00000
 parsing                    0.00006
 optimizing ast             0.00000
 loading collections        0.00000
 instantiating plan         0.00004
 optimizing plan            0.00448
 executing                  0.04263
 finalizing                 0.00214

Dataset:

Count of Album : 4,639,820 docs
Count of User : 159,908,468 docs
Count of PUBLISH : 4,302,392 edges
Count of PLAY_ALL : 207,995,738 edges

There are still some other edge collections in arangodb.
Size of your Dataset on disk:

cluster : ~360GB
single : ~220GB

Replication Factor & Number of Shards (Cluster only):

Name
Type
Status
Shards
Shard Keys
Replication factor

Album
document
loaded
3
"_key"
1

User
document
loaded
3
"_key"
1

PLAY_ALL
edge
loaded
3
"_from"
1

PUBLISH
edge
loaded
3
"_from"
1

Steps to reproduce

deploy arangodb with cluster mode at host a,b,c
deploy arangodb with cluster mode at host d
import data into both arangodb mode by arangoimport
run the same query above on both arangodb mode

Problem:
cluster mode run amost 10x slowwer than single mode.
After I use arangodb-java-driver and wrote some code to do benchmark, I got the following result：

single mode: 2643 query / per sec
cluster mode: 283 query / per sec

My benchmark conf:
cluster mode :
arangodb.hosts = a,b,c
arangodb.user = "root"
arangodb.connections.max = 200
arangodb.loadBalancingStrategy = ROUND_ROBIN

single mode :
arangodb.hosts = d
arangodb.user = "root"
arangodb.connections.max = 200
arangodb.loadBalancingStrategy = ROUND_ROBIN

Not only is the complex query cluster mode slower than a single machine, it is also true for a single document.

single mode: 88409 query / per sec
cluster mode: 51488 query / per sec

When monitoring system resources, I found that the network, memory, and disk did not reach the bottleneck.
In cluster mode, the coordinate used 7cores but the dbserver only used 2cores at each machine, but the stand-alone mode can use all the cpu.
Expected result:
I want the cluster mode to be able to run at least faster than the stand-alone mode, otherwise the default performance of the cluster is unacceptable.
I really hope that you can point out the shortcomings of my use, or can help me find out the reasons for the poor performance of the cluster mode, thank you very much.

Hi @Toudsour ,
the phenomenon you are experiencing is caused by network I/O during the processing of a complex query ('complex' as seen from a database perspective). If you execute a query which has to iterate over data which resides on different machines, then network latency is inevitable. Rule of thumb is, the more complex a query against distributed data gets the more impact network latency has. The only thing you can do is to reduce the network hops (from one server to the other) to a minimum and process as much locally on each machine as possible.
JOIN operations among various collections and, in your case, graph operations are such complex queries. In addition, graph data is special, as vertices & edges needed for your traversal should reside on, best case, the same machine. The problem and solution for your graph problem is described here on our SmartGraph page .
For one set of uses cases where you need JOINs against distributed data you could use SatelliteColelctions.
Hope this helps,
Jan

Hi @Toudsour,
has the latest message been helpful?
Do you have any further questions regarding cluster performance?
You can also have a look at the AQL Optimization in a cluster section in the documentation.

@MrPieces @maxkernbach
Thank you very much for your advice.
But I am still confused that the disk IO and network bandwidth have not reached the bottleneck under my supervision.
In addition, it is mentioned above that even if you query a single document, the cluster mode is still more than a single instance.
Even so, I am very grateful for your suggestions, I will try the features of the enterprise version and  have a look at the AQL Optimization in a cluster section

ArangoDB 3.4 is EOLed.
With ArangoDB 3.5 we introduced optimisations for single document operations in AQL queries in the cluester.
Please note that  ArangoDB 3.7 is available.


Register 0.2.1

@JuliaRegistrator register
Ensuring that exact Complex types work.

Registration pull request created: JuliaRegistries/General/96098
Tip: Release Notes
Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text
"Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the
release that TagBot creates. i.e.
@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.2.1 -m "<description of version>" dc07dba9b344cf2f549c2d158b3d05a20550ec39
git push origin v0.2.1


Default value showing undefined

I have followed steps to add new propertied to helloworld webpart. But default value not updating showing as undefined

Also receiving below error

So changes to manifest.json (where the default values are stored) don't automatically get picked up by the background build.
Try stopping your gulp serve (ctrl-c)
then start gulp serve again
refresh your page

In sharepoint, delete the existing webpart and add new one. The value is reflected. Thank you


errors building on linux

CMake Error at /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message):   Could NOT find Freetype (missing: FREETYPE_LIBRARY FREETYPE_INCLUDE_DIRS) Call Stack (most recent call first):   /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:393 (_FPHSA_FAILURE_MESSAGE)   /usr/share/cmake-3.16/Modules/FindFreetype.cmake:157 (find_package_handle_standard_args)   Dependencies/imgui/CMakeLists.txt:15 (find_package)
xD
help pls
gcc/g++ installed
how do i manage to fix all the issues with finding packages?

Install freetype.


Update cloudkill.js

effect rolls damage at end of turn but should be start of turn.

Doh! Thank you!


git clone with username and password

git clone<EMAIL_ADDRESS>above command not works for me

Configure git properly in your machine

Where did you got this url<EMAIL_ADDRESS>First of all the url is wrong.


Remove GPE pass implementation.

With the previous CL to disable convention tensorflow. This machinery is no longer used. It can be revived at a later point.

@swift-ci please test tensorflow


fourty should be forty

@tonny008 Thanks for notifying. We can use either way. As we have a global approach so we should take it either way. Fourty or Forty


[Roadmap]: Integrating AgentEval

Describe the issue

[!TIP]
Want to get involved?
We'd love it if you did! Please get in contact with the people assigned to this issue, or leave a comment. See general contributing advice here too.

Background:
AutoGen aims to simplify the development of LLM-powered multi-agent systems for various applications, ultimately making end users' lives easier by assisting with their tasks. Next, we all yearn to understand how our developed systems perform, their utility for users, and, perhaps most crucially, how we can enhance them. Directly evaluating multi-agent systems poses challenges as current approaches predominantly rely on success metrics – essentially, whether the agent accomplishes tasks. However, comprehending user interaction with a system involves far more than success alone. Take math problems, for instance; it's not merely about the agent solving the problem. Equally significant is its ability to convey solutions based on various criteria, including completeness, conciseness, and the clarity of the provided explanation. Furthermore, success isn't always clearly defined for every task.
Rapid advances in LLMs and multi-agent systems have brought forth many emerging capabilities that we're keen on translating into tangible utilities for end users. We introduce the first version of AgentEval framework - a tool crafted to empower developers in swiftly gauging the utility of LLM-powered applications designed to help end users accomplish the desired task.
Here is the blogpost for short description.
Here  is a first paper on AgentEval for more details.
The goal of this issue is to integrate AgentEval into the AutoGen library (and further to AutoGenStudio) .
Roadmap involves:
1.  Improvement to AgentEval schema [Black parts is tested, and blue part is ongoing work]: @siqingh

2. Usage of AgentEval:
Complete Offline mode: @jluey1 @SeunRomiluyi
That is how it used now, namely a system designer provides the following triple <the task description, successful task execution, failed task execution> and gets as an output the list, where criterion is e.g.:
[
  {
      "name": "Problem Interpretation",
      "description": "Ability to correctly interpret the problem.",
      "accepted_values": ["completely off", "slightly relevant", "relevant", "mostly accurate", "completely accurate"]
    },
]

Then, the system designer can ask AgentEval to quantify input datapoints, where input datapoints are logs of agents interactions (currently we mostly use AutoGen logs).
Online mode: @lalo @chinganc
Here, we envision to use AgentEval can be used as a part of Optimizer/Manager/Controller. Figure below provides an example of AgentEval can we used at each step of pipeline execution)

Function Signatures:
def generate_criteria:
    llm_config (dict or bool): llm inference configuration
    task (Task): the task to evaluate
    additional_instructions (str): additional instructions for the criteria agent
    max_round (int): The maximum number of rounds to run the conversation.
    use_subcritic (bool): Whether to use the subcritic agent to generate subcriteria.
return  list[Criterion]

def quantify_criteria:
    llm_config (dict or bool): llm inference configuration.
    criteria ([Criterion]): A list of criteria for evaluating the utility of a given task.
    task (Task): The task to evaluate.
    test_case (str): The test case to evaluate.
    ground_truth (str): The ground truth for the test case.
return A dictionary where the keys are the criteria and the values are the assessed performance based on accepted values for each criteria.

class Criterion:
    name (str): name of the criterion
    description (str): description of the criterion
    accepted_values (list[str]): list of possible values for the criterion (could this also be a range of values?)
    sub_criteria: list[Criterion] // list of sub criteria

class Task:
    name (str): Name of the task to be evaluated
    description (str): description of the task
    successful_response (str): chat message example of a successful response
    failed_response (str): chat message example of a failed response

Update 1:  PR  #2156
Contributor: @jluey1
Update 2: RR #2526
Contributor: @lalo

How is the latest development progress of the verifier agent?

How is the latest development progress of the verifier agent?

Hi Yichi, right now I am finalizing the work to integrate AgentEval into Autogen Studio. I do not have an eta on when I will get to the VerifierAgent work.

not planned for 0.4 unless there is significant interest


Run partprobe after expanding the persistent partition

We recently added back this file: https://github.com/kairos-io/packages/blob/main/packages/bundles/kairos-overlay-files/files/system/oem/11_persistent.yaml
to automatically expand the persistent partition on rpi4. It turns out that the partition doesn't look the right size until we reboot.
The partition appear the right size if the user manually runs partprobe (without rebooting). We could add a command to the overlay file to run partprobe after expanding.

kairos@localhost:~$ lsblk /dev/sda5
NAME MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda5   8:5    1 100.1G  0 part /var/lib/wicked
                               /var/lib/snapd
                               /var/lib/rancher
                               /var/lib/longhorn
                               /var/lib/kubelet
                               /var/lib/dbus
                               /var/lib/containerd
                               /var/lib/cni
                               /etc/ssl/certs
                               /var/lib/ca-certificates
                               /etc/zfs
                               /etc/systemd
                               /etc/sysconfig
                               /etc/ssh
                               /var/snap
                               /etc/runlevels
                               /etc/rancher
                               /etc/modprobe.d
                               /var/log
                               /usr/libexec
                               /etc/kubernetes
                               /etc/iscsi
                               /etc/cni
                               /snap
                               /root
                               /opt
                               /home
                               /usr/local

kairos@localhost:~$ df -h /dev/disk/by-label/COS_PERSISTENT
Filesystem                         Size  Used Avail Use% Mounted on
/dev/disk/by-label/COS_PERSISTENT   55M   11M   41M  21% /opt

kairos@localhost:~$ sudo partprobe
Warning: Not all of the space available to /dev/sda appears to be used, you can fix the GPT to use all of the space (an extra 2014 blocks) or continue with the current setting?
kairos@localhost:~$ df -h /dev/disk/by-label/COS_PERSISTENT
Filesystem                         Size  Used Avail Use% Mounted on
/dev/disk/by-label/COS_PERSISTENT   55M   11M   41M  21% /opt

It takes a bit of time to expand it, maybe because it was an online  resize but it did it ok. Running it several times does not fail.

https://github.com/mudler/yip/pull/105


Translatable fields don't work in view

Hey,
I noticed that my translated fields are shown correct on the nova-settings page, but the fields on my homepage are shown as json string.
On my homepage I use:
{!! nova_get_setting('contact_email') !!}
Output:
{"en":"email<EMAIL_ADDRESS>On nova-settings:

I used the "HasTranslations" class in my own Settings-Model:

I changed the nova_get_setting function in the helpers.php File as following:

After this "small" change, everything works perfect now. So did I do something wrong or is this a bug? I works for me now, but I want to know, If I messed something up or found a bug.

Hmm, you should cast the contact_email to array using the cast functionality in this package. Then when accessing the value, you should access the corresponding locale key.
So basically, you would have:
NovaSettings::addSettingsFields([
  Text::make('Contact email', 'contact_email'),
], ['contact_email' => 'array'], 'Common');

// ...

$email = nova_get_setting('contact_email')[$locale];

That's the easiest way to handle it right now.


Remove more cluster.runs.

[!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

#1564  👈 (View in Graphite)
#1562
#1561
main

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

Merge activity

Dec 11, 12:23 PM EST: A user started a stack merge that includes this pull request via Graphite.


Update README.md

Minor syntax corrections in doc

@bhavasridharan you'll need to DCO-sign your commit. I believe you can do the following:
$ git commit --amend -S
$ git push origin patch-1 -f


Suggestions

Hi
this is not really an issue post, but I didnt find any contact information. I was wondering what you think about the suggestions below. If you like any of them I might send you a pull request. Brilliant repo, thanks.

Add auth tables by default (create_users_table/create_password_resets_table). Now they have to be recreated in order to relate tables to a user?
Instead of downloading a zip, it would be cool if the export button actually put the migrations directly in database folder.
Option to migrate directly from GUI
What about the rest of the design process? It would be awesome if it could also spit out Models with corresponding hasMany() etc...

Hello, thanks for the feedback & suggestions, really appreciate it. Any pull request is welcome.
About no. 2, I actually tried this. But there was a file permission issue when migrations were created, that's why I decided to make a zip.
I'll try out others as soon as possible, but currently not working on any laravel related projects.

Cool, I will soon have some time to test some of the ideas out to. But what was the file permission issue?

Migration files were created as a root user with a 444 permission, soI had to use sudo to update or remove those files.

I have a very simple query that how to specify the foreign key because by default checkbox of foreign is disabled.


Md branch3122299

Hi Nick,
I fixed the issues reported by parsing. Could you please run the parsing report again on this branch?
Thanks,
Manika

Ref. previous PR (closed): #3332


Impersonation setting in yaml config doesn't get set on startup

In uaa.yaml we would like to use...
oauth:
client:
redirect_uri:
- "http://impersonate/"
autoapprove:
- oauth.approvals
- openid
...which I believe should work, but impersonation fails on startup until we run...
sudo /usr/local/bin/uaac target http:///uaa
sudo /usr/local/bin/uaac token client get login -s
sudo /usr/local/bin/uaac client update login --redirect_uri "http://impersonate/"
sudo /usr/local/bin/uaac client update login --autoapprove oauth.approvals,openid
.which is a pain when the service has to be auto started as we should not need a bash script to get a servlet properly setup. Are we missing something? Is there a better way to do this? Or is this really a feature/bug?
Thanks,
David Berkman
<EMAIL_ADDRESS>

Seems like a bug. We will look into it

Looks like a misconfiguration in your example. You would specify oauth.clients and then the client ID.
oauth:
  clients:
    cf:
      id: cf
      authorized-grant-types: implicit
      scope: cloud_controller.read,cloud_controller.write,openid,password.write
      authorities: uaa.none
      resource-ids: none
      redirect-uri: https://uaa.cloudfoundry.com/redirect/cf


Metadata completeness metrics/dashboard, surveillance information

We need to provide better reporting on the completion rate of fields uploaded to Majora.

surveillance information is now integrated into the weekly report, dropping the threat level

Dashboards are not a Majora problem, in retrospect


Add flag to skip CA certificates

What this PR does / why we need it:
This adds a flag to control the deck behavior added in https://github.com/Kong/deck/pull/617
Special notes for your reviewer:

~At present, deck doesn't provide an option to skip these in file parsing (i.e. generating the target config), so it and this draft strip the certificates out after the fact. We should add an option to the file.RenderConfig to handle this instead so that the controller doesn't duplicate logic.~ https://github.com/Kong/deck/pull/622 changes this and the draft has been updated to remove the duplicated logic.
This currently uses an unreleased deck tag.

PR Readiness Checklist:
Complete these before marking the PR as ready to review:

[ ] the CHANGELOG.md release notes have been updated to reflect any significant (and particularly user-facing) changes introduced by this PR

Manual testing since this a flag that doesn't really work well with our normal test environment (basically all disable X flags are like this):
logs logs logs ====
...
creating ca-certificate cce8c384-721f-4f58-85dd-50834e3e733a
time="2022-03-18T18:44:52Z" level=info msg="successfully synced configuration to kong."

11:45:01-0700 esenin $ curl -ks https://localhost:8999/ca_certificates | jq
{
  "data": [
    {
      "cert_digest": "e60e48c8a64f9bfeb0402bbf6da22417c98cd8263c7bdaf84bb510d59b2c3c89",
      "id": "cce8c384-721f-4f58-85dd-50834e3e733a",
      "created_at":<PHONE_NUMBER>,
      "cert": "-----BEGIN CERTIFICATE-----\nMIIDazCCAlOgAwIBAgIUQyMJLbNDvnpT5pKY24PADnJi3i0wDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\nGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMjAzMTgxODE0NDVaFw0zMjAz\nMTUxODE0NDVaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw\nHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB\nAQUAA4IBDwAwggEKAoIBAQDXHKNUZYbMkYbuqGPEBmFh9+QuLLtNFmRfuZgFPD3Q\nI8Aw0zPjJgOZXMRwRyzM/7DAqG99lyzigBadZ0dbVoPP86+4xFRccDl8Oat0KoAm\nPAyMLb2fMpBkVJ0PVq0iaXjtlpwrO/cf1Co0pQ9wARkBhAFjRC/YYOZQJGrmay3s\nQudmLp8l6CQmyeNEa1awXKpupANMd/EOsbcYH1PsMk5fr9vCdhHQVAkZZA9HLTy6\nDAte9O9pzpaE4S7SYN80KfuYu89rY4gxla5COKlCsm9u1yr2TOnOSyDzhqGWQi6r\n6bkfcjFr3qEM4N1xD1EvtFEc4L/4GXv2DoQG3wflE4eRAgMBAAGjUzBRMB0GA1Ud\nDgQWBBRLFscPBGM/5vo4t9XriwuAPXCPvDAfBgNVHSMEGDAWgBRLFscPBGM/5vo4\nT9XriwuAPXCPvDAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQAP\nRprnkC4vpPsPq3/NmRpO/88U04/mUm9xwbocGBRnbySeh4tf39txV/XwI5D4HJC8\nO4dguiwTOkMZ2WWRkS3mxxdPPphBSKSxHMts/F2cyXO+nNns8PrXZ8gaOswyguuV\nVAvRQ/fJW9MTkY++M6nl9ATAgUcb1JB7pmdCxATm+7TRIiDcAKxbwGW1V49KGLsh\nMtXJVWMvD5scJQAK2kqlX42EVL4U+F65W6XwAnlsNODhYG8CSRYPN6zXtEtmw5k0\n0tJiho2M1w/040zNcKHONhCY33BEqomPx2ODwb5K89XJuJdvZecsJl8g3GX4U0Pu\nES2z8EsGaMmuNEwJkks/\n-----END CERTIFICATE-----\n",
      "tags": [
        "managed-by-ingress-controller"
      ]
    }
  ],
  "next": null
}

11:45:03-0700 esenin $ kubectl get deployments.apps aaa-kong -oyaml | grep -A1 DISABLE_CA

11:45:27-0700 esenin $ kubectl edit deployments.apps aaa-kong
deployment.apps/aaa-kong edited

11:45:53-0700 esenin $ kubectl get deployments.apps aaa-kong -oyaml | grep -A1 DISABLE_CA
        - name: CONTROLLER_DISABLE_CA_CERTIFICATES
          value: "true"

11:47:11-0700 esenin $ curl -ks https://localhost:8999/ca_certificates | jq
{
  "next": null,
  "data": [
    {
      "id": "cce8c384-721f-4f58-85dd-50834e3e733a",
      "cert": "-----BEGIN CERTIFICATE-----\nMIIDazCCAlOgAwIBAgIUQyMJLbNDvnpT5pKY24PADnJi3i0wDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\nGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMjAzMTgxODE0NDVaFw0zMjAz\nMTUxODE0NDVaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw\nHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB\nAQUAA4IBDwAwggEKAoIBAQDXHKNUZYbMkYbuqGPEBmFh9+QuLLtNFmRfuZgFPD3Q\nI8Aw0zPjJgOZXMRwRyzM/7DAqG99lyzigBadZ0dbVoPP86+4xFRccDl8Oat0KoAm\nPAyMLb2fMpBkVJ0PVq0iaXjtlpwrO/cf1Co0pQ9wARkBhAFjRC/YYOZQJGrmay3s\nQudmLp8l6CQmyeNEa1awXKpupANMd/EOsbcYH1PsMk5fr9vCdhHQVAkZZA9HLTy6\nDAte9O9pzpaE4S7SYN80KfuYu89rY4gxla5COKlCsm9u1yr2TOnOSyDzhqGWQi6r\n6bkfcjFr3qEM4N1xD1EvtFEc4L/4GXv2DoQG3wflE4eRAgMBAAGjUzBRMB0GA1Ud\nDgQWBBRLFscPBGM/5vo4t9XriwuAPXCPvDAfBgNVHSMEGDAWgBRLFscPBGM/5vo4\nT9XriwuAPXCPvDAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQAP\nRprnkC4vpPsPq3/NmRpO/88U04/mUm9xwbocGBRnbySeh4tf39txV/XwI5D4HJC8\nO4dguiwTOkMZ2WWRkS3mxxdPPphBSKSxHMts/F2cyXO+nNns8PrXZ8gaOswyguuV\nVAvRQ/fJW9MTkY++M6nl9ATAgUcb1JB7pmdCxATm+7TRIiDcAKxbwGW1V49KGLsh\nMtXJVWMvD5scJQAK2kqlX42EVL4U+F65W6XwAnlsNODhYG8CSRYPN6zXtEtmw5k0\n0tJiho2M1w/040zNcKHONhCY33BEqomPx2ODwb5K89XJuJdvZecsJl8g3GX4U0Pu\nES2z8EsGaMmuNEwJkks/\n-----END CERTIFICATE-----\n",
      "cert_digest": "e60e48c8a64f9bfeb0402bbf6da22417c98cd8263c7bdaf84bb510d59b2c3c89",
      "tags": [
        "managed-by-ingress-controller"
      ],
      "created_at":<PHONE_NUMBER>
    }
  ]
}

Oh no! That's not what we wanted at all! A caveat about this is that it's making the controller blind to certificates, so if you'd already created one it'll sit around in the DB. Flipping tthe flag will not remove existing certificates, but they won't come back if you delete and restart to force a fresh sync:
12:07:32-0700 esenin $ curl -ksX DELETE https://localhost:8999/ca_certificates/cce8c384-721f-4f58-85dd-50834e3e733a

12:07:50-0700 esenin $ curl -ks https://localhost:8999/ca_certificates | jq
{
  "data": [],
  "next": null
}

12:07:55-0700 esenin $ kubectl rollout restart deployment aaa-kong
deployment.apps/aaa-kong restarted

12:09:29-0700 esenin $ curl -ks https://localhost:8999/ca_certificates | jq
{
  "data": [],
  "next": null
}

Blocked on the release of decK providing this feature.


Bugfix: Update util.py

Bug

Description
No return for json.
Release Notes
Below, please enter user-facing release notes as one or more bullet points.
If your change is not user-visible, write NO RELEASE NOTES instead, with no bullet points.
------------- BEGIN RELEASE NOTES ------------------
NO RELEASE NOTES
------------- END RELEASE NOTES --------------------

Many thanks for your contribution, @TachikakaMin! Could you please address @vanpelt's feedback?

@dmitryduev @vanpelt  sorry for late reply, since it has been a long time, I don't remember the reason exactly.
def default(self, obj: Any) -> Any:
        if is_numpy_array(obj):
            return obj.tolist()
        elif np and isinstance(obj, np.generic):
            obj = obj.item()
        return json.JSONEncoder.default(self, obj)

json.JSONEncoder.default(self, obj) is an raise Error function. So why is there obj = obj.item()?


Added more customization to date picker

I added some more customization to the library

Any news?!

Do you have any plans to check this request?


zone display page showing all 90000 records without separting them by page causing powerdns-admin to crash.

Hello !
I'm migrating my old pdns/poweradmin servers to a new pdns/powedns-admin.
I migrated all my 900 domains by creating the new zones as slaves on the new server directly in the powerdns database and doing a AXFR from my old master server.
Everything works perfectly except one of the biggest zones i migrated.
I have around 90k records on that zone.
At first when i clicked on the manage button of the zone i had a 502 Bad Gateway error on nginx and the following error in the logs:
[webserver] bae0ee9c-0794-4d84-b01d-1f7ead4c56bf Result for "/api/v1/servers/localhost/zones/xxxx.net": 200, body length: 12339962
Sep 29 15:00:38 pdns2 pdns_server[781]: [webserver] bae0ee9c-0794-4d84-b01d-1f7ead4c56bf <IP_ADDRESS>:46398 "GET /api/v1/servers/localhost/zones/xxxx.net HTTP/1.1"<PHONE_NUMBER>3
Sep 29 15:01:06 pdns2 gunicorn[1119]: [2021-09-29 15:01:06 -0400] [1119] [CRITICAL] WORKER TIMEOUT (pid:1138)
After increasing the timeout to 120 for gunicorn in /gunicorn/config.py the zone page is loading and i can see the records. But instead of separating them by 15 records by page as defined in the default_record_table_size it tries to load the full 90k records in one page. Because of that i'm not able to make any modification to this zone without the GUI crashing again.
For this specific zone i also tried to delete the zone and import it with a bind zone file but at the end had the same result.
Is there any kind of limitation on the numbers of records in a single zone ?
Any kind of help would be greatly appreciated.
Thanks !

Hello,
There is no coded limit about # of records, it is probably a limitation on the Javascript code used to display the tables and do pagination.
We can look further if you still have the issue.
Regards

I'm having the same problem with a zone I AXFR'd in
grep ' IN A ' zonename.com |wc -l
135
grep ' IN PTR zonename.com |wc -l
1306
but when I try to view the zone in powerdns-admin it times out, is there a debug statement or log setting to help troubleshoot this?


how compute the meanshape s0 ?

hi,thanks for your work.
I am confused about s0. how compute the meanshape s0 ?can you share the code about it.Dose it related to the face box?
hope your reply

Hi,
I used the method described in Appendix A of this old paper.
Unfortunately this was a while ago and  I no longer have the code.
Best regards,
Marek

hi,thanks for your answers.
I have another problem. now,I have trained a model just using the stage1,and I found that if use the public data with its face boxes provided,the result is good.but if use same picture and opencv face detector,the result is bad.  I doubt that the result is sensitive to the face detector if just using the stage1. can you give some suggesions ?

What settings are you using for data augmentation, are they the default ones? If so, it should work fine and I would suspect a bug.


Fix codespaces not building

Problem
When attempting to create a codespace from this repository's main branch, the codespace fails to complete building.
Steps To Reproduce

Open Visual Studio Code (attempted through GitHub UI as well)
Run command Codespaces: Create New Codespace...
Select trunk-io/pluginsusing the official GitHub Repositories extension
Wait for Setting up remote connection: Building codespace... to enter into a recovery container

Expected Result
A codespace to be built and usable.
Actual Result
Setting up remote connection: Building codespace... spins indefinitely.
Suggested Solution
The .devcontainer.json file contains the configuration for any built codespaces, so the issue is most likely in this file. The image key seems to be using an outdated image of "mcr.microsoft.com/devcontainers/typescript-node:0-18" based on its documentation, so replacing it with a newer image might fix the issue. It is important that semantic versioning is still used along with the same Node and Debian versions so as to not introduce more issues.
The issue might also be related to the keys git-lfs or onCreateCommand.

After experimenting with a forked copy of this repository, I have concluded that the actual issue is with the onCreateCommand key in .devcontainer.json. Primarily because trunk install takes 7-8 minutes to finish and that seems to result in the build process timing out.
I believe there are three possible solutions to this problem which all involve modifying the lifecycle script:

Use postCreateCommand instead so that npm ci && trunk install can run after the codespace has been built. This will still result in just as long of a wait, but at least there won't be a timeout into a recovery container and the user can cancel the installation if desired.
Use updateContentCommand with codespace prebuilds, which will result in a GitHub Action workflow running on every push to main to pre-install this project's extensions and dependencies in an image. This means that a user who wants to create a new codespace won't have to wait for any extension or dependency installation. However, it will cost GitHub Action minutes and codespace usage/storage for your organization.
Only use npm ci which will mean that trunk will lazily install only what is used by the user. This has the benefit of being quick like the previous option, while not costing your organization anything but can lead to a frustrating experience for users.

I believe the second option, codespace prebuilds, is ideal because it provides the best experience for users with fast load times. In fact, it would be faster than not even including npm ci && trunk install because it would also pre-install extensions. However, this will require a repository admin to configure the prebuild for this repository.
Depending on what solution is decided upon, I can create a pull request when given the go-ahead.

Hi @andreilgeorgescu, apologies for the delayed response-  I appreciate your deep dive on this topic. We are going to take a look at the options you proposed and decide on an appropriate course of action.

Hi @andreilgeorgescu, we are going with option 3) for now and will update you about what we land on.

Thanks for the detailed description and options. This should be resolved as of https://github.com/trunk-io/plugins/pull/533, although we may revisit in the future to improve the experience


no defines for linux in config.h

https://github.com/erincatto/Box2D/blob/master/Box2D/glfw/config.h
there is no defines for linux in config.h that is why we cannot build this in linux.there is always error
i think this should be added
if defined(linux)
define _GLFW_X11
define _GLFW_GLX
endif

Old issue. I've updated glfw and changed the build system to premake.


fix: interfaces and types, husky, remove yarn, more types on examples

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

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


Question: Does libaco only have the implementation of shared stack mode?

只有共享栈的实现么？

Does libaco only have the implementation of shared stack mode?

libaco also support standalone-stack coroutine.
As the documentation described, if a shared stack has only one user coroutine, then we could call this coroutine a standalone-stack coroutine.
There is also a demonstration of a standalone-stack coroutine in the test_aco_tutorial_2.c.
I hope this answer is helpful for you :D

Yes I see. Thank you!
Can I build libaco with gcc 4.4.6？
The complier report error like this "错误：隐式声明函数‘_Static_assert’".

Since the _Static_assert keyword only been supported in gcc4.6 and newer (AFAIK), you may need to use newer compiler toolchain to build libaco.
But as a hack with older gcc (before gcc4.6), you could try the build command below (since all the _Static_assert check during compiling time in libaco is always true on nearly all common platforms):
$ EXTRA_CFLAGS='-D_Static_assert(...)=' bash make.sh

I build libaco successfully follow your advice.
I want to fork libaco and import the features of Tencent's libco (hook I/O functions and do event process).
Thank you very much.

I want to fork libaco and import the features of Tencent's libco (hook I/O functions and do event process).

It is a very cool and nice idea :D
I'm now developing a golang-like C coroutine scheduler based libaco and would probably be released in several days. These two projects we are developing have something in common. Looking forward to your excellent project!


Icon button does not work anymore

Hi @Idnan,
Happy to see you are doing some new commits on this fantastic extension, I use it daily since 2016 !

https://github.com/tsugliani/like-on-git/

It seems since today's update, I had to restore my chrome plugin settings (token etc), and the button [thumb icon] does not save automatically anymore.
The keybind does: Ctrl + shift + l
Also one of the main issues I have from my current use, that is duplicate links, it would be fantastic if you could fix #10 (sometimes I need to cleanup by hand, and I would love like an icon feedback, like "yellow or something" saying already "saved" :)
Continue the great work 👍

@tsugliani thanks. I am working on #10. I will release the change in the next few days.

@tsugliani Thank you, I also did not work. I did not know about this shortcut key, so now I can save links again.
@Idnan  maybe need to add information about it in README.md?

Same problem here! Keyboard shortcut works but icon doesn't. I guess the latest release broke the icon button.

Hi @Idnan
Any news for the "icon button" issue ? (doesn't work on macOS or Windows, haven't tried Linux), only the shortcut does (Ctrl + shift + l), it would really simplify it's usage for many people :)
Thanks in advance !


[WIP] Excalidraw as an API / NPM package

[ ]  Expose excalidraw as an API
[ ] Create a umd build in npm packge
[ ] create es/lib folders in npm package

Fixes https://github.com/excalidraw/excalidraw/issues/1196

From our discussion over at https://github.com/excalidraw/excalidraw/pull/1493#pullrequestreview-403012598, I realized I haven't formed a good mental model of how this one would work (as I didn't really give this PR more than a cursory glance).
Now it makes me think if this is a good way to go because we'll not only need to keep in mind CSS namespacing, but pretty much everything.
For example, once there were talks about mocking Math.random() to hack around one issue --- no longer necessary, and that hack would only be done in a given event loop tick, but I mention this to illustrate a point that from now on we'd need to design Excalidraw in a way to ensure it plays well as an embedded system. I don't have any experience with this, but it feels like it could pose serious issues down the line.
/cc @vjeux @lipis

closing this as these changes are made in excalidraw-embed

@ad1992 I think excalidraw-embed isn't a public repo? 🤔

@MichaelDeBoey not anymore, but it's not ready yet, so there's not much to see (it's basically a fork at this point).


:bug: remove cgo in boringcrypto build

There's no need to use cgo with go 1.19 GOEXPERIMENT=boringcrypto, hence this should be a simple fix for #1898.
Container built in this CI run can be run without issues:
ghcr.io/external-secrets/external-secrets:v0.7.2-10.g32c75c9e-ubi-boringssl@sha256:7a0d22eb5180ec75cfb00206ec33392ee10792cc68e1de5c104a250506866a1b

fixes #1898

/approve


Add website field to organization

Short description

This PR adds a new field website to the model Organization and makes a logo mandatory for each organization.
Proposed changes

Add a field website where address of homepage etc can be given.
Set blank=False (by letting the default valid) for icon and website to reject saves without icon or website.
But null=True so existing organizations without icon/website don't cause any problem.
Adjust test.

Side effects

In my opinion this feature does not bring that much progress on trustability of page/organization if the website field is allowed to be empty and nowadays (almost) every organization has a website, blog or something. So I set not only the logo but also the website mandatory (for new saves and creations) but this is of course open to discussion.

Resolved issues

Fixes: #2325

Pull Request Review Guidelines

Any ideas when this will be merged/deployed? Thanks :)

Any ideas when this will be merged/deployed? Thanks :)

Depends on how urgent it is :wink:
If required, I guess we can merge & deploy this in the next days.

Any ideas when this will be merged/deployed? Thanks :)

Depends on how urgent it is wink If required, I guess we can merge & deploy this in the next days.

I'd say not really urgent as it is a new feature. However, it still blocks the complete feature which would be ready otherwise. So soonish would be nice but definitely no stress or hurry needed.

@timoludwig thank you for suggestion and explanation! I applied them 🙂

@MizukiTemma One final request: could you add a release note for this change?

Except for the missing release notes the code looks good to me.

The release note was added in the mean time :smiley:

It also seems to behave as advertised, only the migration doesn't work when there are existing organisations without a logo (as is the case with the previous test data from develop).

Yes, this is definitely a valid concern, but I don't see a better solution to be honest. We can only require database constraints for all objects in a table, we cannot exclude the existing organizations from it.

How about having some 1×1 px or placeholder image that is set as default for those? Or would that circumvent the intention by giving the organisations another state where no immediate action is required?

Hmm, it's hard to set a placeholder image as default, since we would have to add physical file handling as part of the migration file, which works (since it's just python code), but it kind of contradicts the principle that migrations should only alter the database scheme and contents, not the file system. So I opted for this caveat that we have to set an image for all existing organizations before we can install this update.

@timoludwig should we then start to tell the service team that all the organisations now should have a logo? This will take a while.

@timoludwig should we then start to tell the service team that all the organisations now should have a logo? This will take a while.

No, I think we can do this via the command line and set an existing image in the production database for all of them, e.g. this one:
from integreat_cms.cms.models import *
default_icon = MediaFile.objects.get(file="global/2022/07/Alltag-Zusammenleben.png")
Organization.objects.all().update(icon=default_icon)

We just have to do this step for all prod environments separately (integreat, malte, obdach)...
Then after the update is done, we can tell the service team they should add icon + website for all organizations (thus it will be less work for them since they can add icon and website in one step).

@timoludwig @PeterNerlich Thank you! I'll then merge this PR.

@timoludwig @PeterNerlich Thank you! I'll then merge this PR.

Sounds good, I updated all default icons of existing organization objects on integreat-test and malte-test, so we can verify that the planned approach works with the test package installation.


Post To Twitter from  Wordpress error

Hello, I hadnt blogged in forever but i sent one and i got an error with an empty log file. And when I tried to manually send the post via the bridgy site it has been stuck in processing for 24 hours.
here is the twitter page
https://brid.gy/twitter/digiSal
siteurl is digisal.com

Hi, sorry for the trouble! Looks like the root cause here is the mf2 markup on your site. You have h-entry on your body, which tells Bridgy that everything on the page is part of your post, including the webmentions in the left sidebar. Their profile pictures are marked up with u-photo, and one of them (https://pbs.twimg.com/profile_images/3622692489/2a37bbc95e0ec9452570851033b0811b.jpeg) 404s. Usually Bridgy wouldn't care, but the markup says it's part of your post, so Bridgy refused to send it to Twitter incomplete.
The fix is to move h-entry further down in your HTML to enclose just your post content, not the whole page.
I'll look at the "stuck in processing" one though, Bridgy should definitely handle that better!

Hmm not sure how to move that h-entry since I am on wordpress and i am using the indieweb plugin and their wiki says to place it in a sidebar
https://indieweb.org/Getting_Started_on_WordPress#:~:text=on the wiki.-,Online Identity using h-card,-[edit]
when i remove it from the sidebar and then try to validate the site on indiewebify.me it complainss that there is no h-entry. any other ideas?
maybe its that 404 thats killing it but that profile pic is coming from a webmention twitter reply i believe. will look into it.

This is out of scope of Bridgy itself, but @dshanske and the #wordpress channel on https://indieweb.org/discuss may be able to help!


CPU performance

I have tried many ways to show GIF in my project. but i cant find a way that have both good cpu performance and memory usage. I tried this, it's a microsoft uwp sample use Win2D show GIF, because it use GPU to render image so it have  good cpu performance but it have memory leak. XamlAnimatedGif is a good project, but it use CPU to render image, when show many GIFs at a same time, there will be a performance issue especially on ARM device.  Do you have interest or plan to let XamlAnimatedGif make better use of the GPU?

The Win2D sample looks interesting, I'll have a look.

Do you have interest or plan to let XamlAnimatedGif make better use of the GPU?

Interest, yes, but not plan at this point. I don't know anything about GPU programming...

Closing in favor of #88


Spaces?

I don't know if this is a bug or a quirk of domains names but spaces in the domain part of a URL seem to be allowed.
$url = 'http://www. some . random. com/path/file.html';
$pslManager = new Pdp\PublicSuffixListManager();
$parser = new Pdp\Parser($pslManager->getList());
$url = $parser->parseUrl($url);
echo $url->host->registerableDomain;

This echos " random. com", with the spaces.
Any thoughts?

That is wild. It's certainly not intentional. It has to be a side-effect of never considering that case, never testing for it, and thereby allowing a very strange bug through.
What made you think to try adding spaces?

php-domain-parser makes use of [parse_url](http://php.net/parse_url) which, believe it or not, accepts spaces in domain names. I wonder if there's a good reason for that that I don't know of, or if it falls under quirk or bug. Check this out:
$ php -a
Interactive shell

php > $url = "http://www. some . random. com/path/file.html";
php > var_dump(parse_url($url));
array(3) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(23) "www. some . random. com"
  ["path"]=>
  string(15) "/path/file.html"
}

Since php-domain-parser is based in large part around parse_url (pdp_parse_url is simply a UTF-8 friendly version of parse_url), I'm not going to alter the behavior of parse_url any more than I already have. I've opened #48 to address documenting that behavior.


Bot hangs sometimes when network connection is lost

Sometimes when a Disconnected event occurs or when a exception occurs at startup connecting to discordapp.com, the bot is unable to recover and left in a hung state. Logic needs to be added to allow the bot to attempt to restart to correct the issue.

Fixed by 04d475c832dd5b19d967b89c00c88d610dd4245f


Music videos on Spotify

Checklist

[X] I have filled out the template to the best of my ability.
[X] This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
[X] This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.
Service “Switch to video” that will switch currently playing song into video
Describe the solution you'd like
https://support.spotify.com/uk/article/music-videos/
Describe alternatives you've considered

Additional context

Not sure what you are looking for here.  I am not familiar with Spotify Video support.  I don’t think there’s anything in the Spotify Web API that supports that functionality.
Can you be more specific as to what you need?

Spotify recently added a support for switching into video mode when some music is playing.
I was thinking it might me good idea to have this possibility directly from the Integration (turn this mode on/off).
Exaplme use case: I got an automation that turns on my TV when I arrive home -> initiate Spotify app on it and starts playing favorite music Playlist -> and now it will switch to this 'vidro' mode for even better experience.

Thanks for the explanation on how the "Switch to Video" functionality works.
Unfortunately, there is no equivalent Spotify Web API endpoint to perform such a function.  It appears the "Switch to Video" functionality is proprietary to the Spotify mobile / desktop / web application interface, meaning that I cannot replicate it with the SpotifyPlus integration.  The SpotifyPlus integration uses the Spotify Web API to control the Spotify player, and since the Spotify Web API does not support the function neither can I.
I wish I had better news, as it looks like a really cool feature and definitely adds some "Wow!" factor.

Yeah, thanks a lot T Lucas for explanation.
Then we have no choice but to wait and see if and when the functionality will be exposed to the API.


Switch test data to more complex providers

Context
When testing locally and on review environments, having good data makes things easier to test. This PR switches the setup_local_dev_data task to providers with
both full time and part time courses and courses accredited by other providers. These providers are actually related to each other, which will help test org relationships and permission setups.
Changes proposed in this pull request
This PR switches the setup_local_dev_data task to use providers 1JA (Blackfriars Teaching School Alliance) and 24J (Keele and North Staffordshire Teacher Education) when generating applications and users.
These providers are also mentioned in real-world examples we've received from user research.
Guidance to review
Looking at the code and the review app should probably be enough.
Link to Trello card
No Trello card.
Things to check

[x] This code doesn't rely on migrations in the same Pull Request
[x] If this code includes a migration adding or changing columns, it also backfills existing records for consistency
[x] API release notes have been updated if necessary
[x] New environment variables have been added to the Azure config

Closing to re-open and force re-provision of review app.


Sourcing Candidates

I like this section in theory, but feel like ours could be punchier and specifically relevant to the Josephine brand.
Specifically, how do we go about building an internal team that reflects the demographics of the communities we are serving? Is that important to us? What type of team backgrounds reflect Josephine values (e.g. combination of private and non-profit sectors? combination of health and food and tech backgrounds?)
This section can help future employees understand why they've joined such a bomb team and how they can contribute to growing it right :)

Had duplicate issue, migrating my thoughts here.
[Here is the sourcing candidates doc with minimal changes] (https://github.com/josephine/handbook/blob/master/Operations Documents/Sourcing Candidates.md)
I think we can improve by rewriting our diversity and inclusion approach from the perspective of being representative of the community we serve
Also we currently use Streak instead of Workable, haven't checked out Workable but worth a peep.

Building a great team starts with attracting great candidates, and there are three channels we can use to attract candidates: referrals, outbound recruiting, and inbound interest. We should keep all three channels open, but be thoughtful about the biases that result from each channel so that we can make them work for our team-building goals and values.

^ Sure.

Referrals from people who already work at Josephine are one of the best signals we can get about whether or not a candidate will be successful at Josephine. Josephine employees understand Josephine’s needs and what it’s like to work at Josephine, and their relationship with the candidate means they know a lot more than we can learn during an interview process.

In order to get good referrals, everyone needs to know which positions are open, know how to start the recruiting process, have time to search their network, and feel aligned with the company incentives. Open positions should be posted on josephine.com/jobs and also in the #hiring channel so that everyone sees who we’re trying to hire. We’ll host a company lunch with food on the second Tuesday of every month where we talk about which positions are open and go through everyone’s online networks looking for and thinking about candidates. Employees will do initial outreach to interesting connection, which will give us a good space to talk about how we start the recruiting process.
I like the idea of a once-a-month company lunch (or some meeting... but catering lunch is a better use of time and more fun) to focus on hiring together. This could mean searching our own networks, or going on the offensive on (for technical hires) sites like Angellist, Rails Jobs, or any of the sites from my friend Evadora's diversity list.
Agree that the copy above is long, but don't see a real reason to edit anything out.

All of our job openings and descriptions will be posted on josephine.com, and some will be posted on other sites where we can advertise our open positions. Careful thought should be given to where we post job openings, as traditional boards have homogeneous audiences. We will also have people reading about Josephine through our blog and social media, developers working with our tools and participating in our community, and a broad audience hearing about Josephine through news or using the product.

Inbound applications give us the highest number of candidates that are outside of our personal networks, but also have the lowest initial filter because no one at Josephine is making any judgment about the candidate before they enter our pipeline. Because of the light filter, it can be tempting to dismiss these candidates, but an inbound application is a strong signal that the candidates believe in what we’re doing at Josephine. This means that a smaller percentage of candidates from a broader pool will progress through our interview funnel.
As an initial filter, inbound applications have the lowest quality check because no one at Josephine is making any judgment about the candidate before they enter our pipeline. However, an inbound application is a strong signal that the candidates believes in what we’re doing at Josephine. This means that a smaller percentage will progress through our interview funnel, but that we still need to treat these candidates with respect.
Yep. Pretty verbose – not sure if there's value to editing this out but it's essentially saying where inbound can be good and where it can be bad.

Every inbound application should receive a response from the Josephine team within 3 days so that they feel heard and like they were able to reach us personally.

I've been bad at the 3 business days thing recently, but once I get a handle on the process (and canned responses etc) then cool.

Note: We use Workable to manage candidates, but when you "Disqualify" a candidate on Workable, it does not send the candidate an email or let them know that they have been disqualified. You should always send the candidate an email before you Disqualify them.

Can delete this.

Totally agree with Matt here. I think a big part of what the sourcing leads article is missing (totally because Clef and Josephine are very different companies) is the fact that our leads have to fulfill both needs at Josephine HQ also needs among the broader Josephine community (our cooks and customers). Probably a good place to reiterate that we want our hires to mirror our community as well.

I really like these questions:

Specifically, how do we go about building an internal team that reflects the demographics of the communities we are serving? Is that important to us? What type of team backgrounds reflect Josephine values (e.g. combination of private and non-profit sectors? combination of health and food and tech backgrounds?)

and  I think we need to articulate why it's important to us as team, but also, what impact that has on being able to serve our communities. More than diversity for diversity's sake (and there are a lot of arguments for these!), diversity as part of Josephine.

I don't have much else to add. In agreement with everyone! Maybe add something about sourcing candidates from our various community partners (either people who previously worked for/with them, or people our partners know & love)?

We know that our ability to serve a community hinges in part on our ability to be representative of it - not just as a company, but as individuals with unique perspectives.
Channels we prefer - our own cook community, partnering organizations, local food and labor justice non-profits, and job groups/communities with the specific aim of creating representative applicant pools (There are a slew of these for diverse communities & companies taking diversity seriously)

latest updates for review [here] (https://github.com/josephine/handbook/blob/master/Operations Documents/Sourcing Candidates.md)

Also great, no more comments. Much improved.

Nothing to add.


Alternative to Blob files

Is Blob storage the only location from where the APGW can download the custom error pages? Or are there alternatives like external storage services, web services, etc.?

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

ID: 8876a502-81db-4ef1-9e22-ebff4a63cabe
Version Independent ID: c9676383-40c2-44fc-2d26-ef571466712f
Content: Create Azure Application Gateway custom error pages
Content Source: articles/application-gateway/custom-error.md
Service: application-gateway
GitHub Login: @vhorne
Microsoft Alias: victorh

@cstainie At this time, only Azure blob storage is supported. If you would like us to expand this functionality, please leave your feedback here at Azure Networking's feedback.azure.com page.
We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


Update azure-storage-java to point customers to 12.0.0 instead of 12.0.0-preview.2

The Readme.md at https://github.com/azure/azure-storage-java points people to “v12.0.0-Preview2” and says "GA will be soon".
This is the landing page customers currently see when they go to docs.microsoft.com -> Azure -> Java -> Storage (you can go to this page https://docs.microsoft.com/en-us/azure/java/?view=azure-java-stable and then type Storage in the search box, it will also take you to https://github.com/azure/azure-storage-java)

The azure-storage-java readme needs to be updated (/cc @rickle-msft @amishra-dev)
the docs.microsoft.com site needs to be updated to point users to a more relevant landing page  - such as https://github.com/Azure/azure-sdk-for-java/blob/azure-storage-blob_12.0.0/sdk/storage/azure-storage-blob/README.md (/cc @kaerm)

both are done


Error messages on update/upgrade

mcnesium@mcobst:~$ brew update
Already up-to-date.
mcnesium@mcobst:~$ brew upgrade brew-cask
Error: caskroom/cask/brew-cask 0.56.0 already installed
mcnesium@mcobst:~$

It's hard to expose the severeness of that red underlined "Error:" in markdown but I kind of feel like this is not really an error, right? Shouldn't this be more like an "Info:" label?

Unless your command starts with brew cask, it isn’t ours. You want homebrew, not homebrew-cask.


get_execution_details fails in Github Actions

Hey Data Engineering!
I've been trying to set up my version of data library on AWS s3 for a project I am working on. I see there are some new changes to data library and one of them is causing archive function when called from the latest release in Actions.
When something like this below run for development database for example:
./devdb.sh library_archive_version dob_geocode_results 20230709

It throws an error like below. This is after I added git installation to the Actions runner but still the error persists. I wonder if the new module added was tested with some of the existing data products and what adjustments if any you have to make to work with the new improvements.
❱ 73 │   │   git_user = try_func(subprocess.run(["git", "config", "user.name │
│   74 │   │   return {                                                        │
│   75 │   │   │   "type": "manual",                                           │
│   76 │   │   │   "user": git_user,                                           │
│                                                                              │
│ /usr/lib/python3.10/subprocess.py:501 in run                                 │
│                                                                              │
│    498 │   │   kwargs['stdout'] = PIPE                                       │
│    499 │   │   kwargs['stderr'] = PIPE                                       │
│    500 │                                                                     │
│ ❱  501 │   with Popen(*popenargs, **kwargs) as process:                      │
│    502 │   │   try:                                                          │
│    503 │   │   │   stdout, stderr = process.communicate(input, timeout=timeo │
│    504 │   │   except TimeoutExpired as exc:                                 │
│                                                                              │
│ /usr/lib/python3.10/subprocess.py:969 in __init__                            │
│                                                                              │
│    966 │   │   │   │   │   self.stderr = io.TextIOWrapper(self.stderr,       │
│    967 │   │   │   │   │   │   │   encoding=encoding, errors=errors)         │
│    968 │   │   │                                                             │
│ ❱  969 │   │   │   self._execute_child(args, executable, preexec_fn, close_f │
│    970 │   │   │   │   │   │   │   │   pass_fds, cwd, env,                   │
│    971 │   │   │   │   │   │   │   │   startupinfo, creationflags, shell,    │
│    972 │   │   │   │   │   │   │   │   p2cread, p2cwrite,                    │
│                                                                              │
│ /usr/lib/python3.10/subprocess.py:1845 in _execute_child                     │
│                                                                              │
│   1842 │   │   │   │   │   │   err_filename = orig_executable                │
│   1843 │   │   │   │   │   if errno_num != 0:                                │
│   1844 │   │   │   │   │   │   err_msg = os.strerror(errno_num)              │
│ ❱ 1845 │   │   │   │   │   raise child_exception_type(errno_num, err_msg, er │
│   1846 │   │   │   │   raise child_exception_type(err_msg)                   │
╰──────────────────────────────────────────────────────────────────────────────╯
FileNotFoundError: [Errno 2] No such file or directory: 'git'

I also did find at least one instance of the scheduled run in the now archived DevDB main branch see here. If you go to the geocode step and then to the Archive to Data Library step you would see the same error there and the geocoded data probably failed to push to s3 there.
Just want to flag this for your attention and will let you know if I somehow find the answer for this.
Thanks!
All the best.
Te

Hi Te! Thanks for flagging.
A couple notes for fixing

this is specifically for using docker command with published data library image to invoke library archive command
biggest issue is the misuse (my misuse) of a try...except wrapper - which just wraps the "decode" call at the end of the subprocess call as written. If this is fixed, jobs will succeed (albeit with maybe incorrect execution details)
as mentioned above, this is specifically when using docker command, not the published github action. Inside docker container in CI, both CI variable and git command are unavailable. Need to think a bit about use cases of someone calling data library via docker command line call and how this should be handled. These failing jobs for devdb ideally are identified as CI jobs with links to github, but then they need to be explicitly passed in to docker somehow. Blanking this morning, off the top of my head, whether the published action could just be used at the end of a job rather than this docker command

Are you also specifically having issues using the published action? At least in the data library repo, those seem to be working fine on our end. Either way, if we fix the try...except issue you'll be able to run. Other than that, if you're using docker from the command line you could pass the CI variable in with your call to docker to run it right now I believe

@fvankrieken  Thanks for the explanation that makes sense to me.Upon closer look it is true devdb is using it as a docker image not the CI.  But in my case, I should be able to use your suggestions to use it as an action and sidestep this now. I will keep my eyes on the PR and if it made it into the release (docker and CI) and can test to let you know.

Gonna close this. Docker calls do work now even if execution details might be inaccurate if env variables aren't passed. But if you invoke with -e CI=$CI the execution details will be accurate at least in that regard. Longer term should maybe move away from using git cli to get a username (or let users specify somehow), but it made sense in our dev environment with dev containers (and "vscode" user rather than the actual user's username).


arm64 support

Hi
I like your project. I have few containers running arm64 based machines. Can you add arm64 support please?

Hi @abhishekakt1,
as long as there is no multi-arch build, you can simply clone the repository and build an image on your arm64 machine:
git clone https://github.com/jareware/docker-volume-backup.git
cd docker-volume-backup
docker build -t docker-volume-backup .

Does this work?


refactor: non-blocking signal for client reset and use error buffered channel for reset

This pull request adds a non-blocking signal for client reset and updates the use of the error channel for reset to be buffered.

Since this is an optimization task which is not really required as of now, this can be reviewed later if really required as it reduces the readability of the code.


memory reclamation

hi! doing some investigations on the mimalloc performance, i ran into some issues where mimalloc is rather aggressively retaining memory instead of releasing it back to the OS.
consider these two test cases of producer/consumer (1M of 1kb objects allocated, then deallocated) from (a) separate threads and (b) the same thread.
the performance characteristics are rather different from glibc's: the mimalloc retains a lot of memory, while glibc returns almost all memory to the OS.
in the multi-threaded test, i'm experiencing the following:

glibc seems to have some thread-local pools, but when consumer is done (but not joined), about half the memory is returned to the OS. the other half is returned when the producer thread is joined
with mimalloc no memory is returned to the OS when after free or joining the threads. about 50% is released when calling mi_collect(true).

similar behaviour seems to happen in the single-threaded test, though in this case glibc releases all memory immediately.
i've seen this in a real-world program where memory tends to pile up. and while it can be reused in the process, it's not available for other processes. this makes me wonder if the heuristics for 'collection' passes could potentially be tweaked to reclaim memory more aggressively?
#include <thread>

#include <boost/thread/concurrent_queues/sync_queue.hpp>
#include <boost/thread/barrier.hpp>

int multi_threaded_test()
{
    boost::concurrent::sync_queue<void*> sq;
    boost::barrier producer_done(2), consumer_done(2), consumer_joined(2);

    std::thread producer([&] {
        for(int i = 0; i != 1'000'000; ++i) {
            void *mem = malloc(1024);
            sq.push(mem);
        }

        fprintf(stderr, "producer done\n");
        producer_done.wait();

        fprintf(stderr, "waiting for consumer\n");
        consumer_done.wait();

        std::this_thread::sleep_for(std::chrono::seconds(8));
        fprintf(stderr, "producer destroyed\n");
    });

    producer_done.wait();
    std::this_thread::sleep_for(std::chrono::seconds(5));

    fprintf(stderr, "spawning consumer\n");
    std::thread consumer([&] {
        for(int i = 0; i != 1'000'000; ++i) {
            void *mem = sq.pull();
            free(mem);
        }
        fprintf(stderr, "consumer done\n");
        consumer_done.wait();
        std::this_thread::sleep_for(std::chrono::seconds(16));
        fprintf(stderr, "consumer destroyed\n");
        consumer_joined.wait();
    });

    consumer_joined.wait();
    fprintf(stderr, "joining consumer\n");
    consumer.join();
    std::this_thread::sleep_for(std::chrono::seconds(5));
    fprintf(stderr, "joining producer\n");
    producer.join();
    std::this_thread::sleep_for(std::chrono::seconds(5));
    fprintf(stderr, "collecting\n");
    mi_collect(true);
    std::this_thread::sleep_for(std::chrono::seconds(5));
    return 0;
}

int single_threaded_test()
{
    boost::concurrent::sync_queue<void*> sq;

    for(int i = 0; i != 1'000'000; ++i) {
        void *mem = malloc(1024);
        sq.push(mem);
    }

    fprintf(stderr, "freeing\n");
    for(int i = 0; i != 1'000'000; ++i) {
        void *mem = sq.pull();
        free(mem);
    }
    fprintf(stderr, "done\n");
    std::this_thread::sleep_for(std::chrono::seconds(5));

    fprintf(stderr, "collecting\n");
    mi_collect(true);
    std::this_thread::sleep_for(std::chrono::seconds(5));
    return 0;
}

int main()
{
    return multi_threaded_test();
//    return single_threaded_test();
}

Thanks for taking time to post a test program as well. There is currently some work going on to address your specific issue (currently in the dev-slice branch so best to test with this). First though, note that all memory can still be reused by other programs -- it just might be swapped to disk which is bad for performance but otherwise ok. Second, how much memory is returned to the OS is often quite dependent on workloads -- on many benchmarks mimalloc tends to use less memory than other allocators (as there may be no optimal strategy that performance well).
Anyway, your test brings out the worst in mimalloc :-)  Mimalloc essentially uses segments (large chucks of 4 or 8MiB) that are "owned" by a specific thread. Only the owner can allocate in such segments. Other threads can free in it (as in your test, and the xmalloc-test in the benchmark suite) but that memory will not yet be released -- just marked. Only when the owner is active allocating it will actually free the remotely marked frees.
Now, in your test the owner sleeps or waits so it never gets to release any of the remote frees and thus no OS memory is returned. This is also a problem in general for mimalloc if there is a thread that allocates a lot but then is infinitely blocked or never frees/allocates again. If a thread terminates, the OS memory is returned though as its segments become abandoned and can be claimed by other threads.
I am still thinking of ways to do this better. I think best is if a thread sometimes abandons segments even if it is not terminated -- for example if it is full and other threads free in it. This would naturally migrate segments to different owners who are most active. However, in your example it still would not work as the main producer is blocked (and thus cannot even abandon its segments) -- it would need to be done incrementally while it is allocating but that would impact performance again... tricky. It would be great if we can find a good solution though that would at least take the edge of the worst case... tbc

I am facing a similar issue with mi_malloc. I  am using microsoft parallel patterns library(ppl). I submit millions of tasks to ppl, it picks up a thread from windows thread pool and runs the task. In each task I allocate memory using mi_ malloc and then free but since the memory is cached on the thread, whenever windows reuses thread for incoming task the thread already has the memory allocated and that improves performance for me. But the at the end when all off my tasks are done, I would like a way to release all the memory that is cached. Would there be any solution to this anytime soon? I am trying to convince my team to use mi_malloc but unless we have solution to this problem it is hard to use this library.

I'm also noticing this issue and have even noticed it with the default allocator prior to mimalloc.
Before, I would deal with it by calling malloc_trim at certain times however after dynamically overriding to mimalloc, malloc_trim no longer has an effect.
It seems like the mi_collect call serves a similar purpose. For the users of the dynamic override method, who can't use the "mi_" calls, can you override malloc_trim as well?
Please let me know if you'd rather me make a separate ticket.

I think that our applications are hitting this type of situation as well and v2.0.3 is noticeably worse than v1.6.7 in terms of overall memory usage. The overhead compared to the default allocator is approximately +65% for v1.6.7 and +80% for v2.0.3.
Sorry I can't reduce the application into a test case that would pinpoint the exact allocation patterns that causes the issue. Overall I am talking about heavily multithreaded applications with a broad diversity of allocation sizes and longevity of threads. I believe that a lot of the issue has to do with the long lived threads in thread pools that end up hogging the memory that was allocated for their biggest job and never releasing it to the system (but I might be wrong). Even though it ends up being unused memory that could potentially be easily swapped, it is still an issue for systems that don't have any swap space or where there is a job monitor killing jobs using excessive memory.
Altogether the total memory usage is in the order of 70Gb per job with the default allocator (115Gb with mimalloc v1.6.7 and 125GB with mimalloc 2.0.3). Each job can have in the order of 50 threads at any given time.

@come-raczy; yikes, that is not good. I will re-investigate this issue. Some background: usually (and perhaps especially) on large service we see the opposite where mimalloc does really well and often uses less memory. So, there is some particular situation where this starts happening -- that initial post is a bit old and we made improvements but as you say, it may still have to do something with threads holding on to memory that should be decommitted. I am especially supposed to see v2.0.3 doing worse here as it should be the opposite :-(.  50 threads is not out of place,  many services here use 1200+ threads and do fine. Both v1 and v2 use a delay before decommitting memory pages (as it is expensive to do) -- I wonder if we get trouble if a thread releases a lot of memory and than immediately blocks; there will be no opportunity to decommit all that memory -- this can perhaps happen in a thread pool implementation. I will need to study this a bit more and see what we can do.
ps. In the meantime; if it is not too difficult or too much work for you to run tests, could you try:

use MIMALLOC_RESET_DELAY=1. (or even 0). This will be slower but it will be interesting to see how it affects the space behavior.
use MIMALLOC_EAGER_COMMIT=0; again, just to see how it affects memory behavior.
use MIMALLOC_RESET_DECOMMITS=1; this may only show an effect with 1.7.3 though

@daanx I have collected the data at two reliable checkpoints within the application, the first one about 5 minutes after starting, the second one 10 minutes later.
default allocator                 50Gb   70Gb
v1.6.7 defaults                   97Gb  113Gb
v1.7.3 defaults                   90Gb  106Gb
v2.0.3 defaults                  107Gb  122Gb
v2.0.3 MIMALLOC_RESET_DELAY=1    104Gb  119Gb
v2.0.3 MIMALLOC_EAGER_COMMIT=0    89Gb  106Gb
v2.0.3 MIMALLOC_RESET_DECOMMITS=1 89Gb  106Gb

MIMALLOC_RESET_DECOMMITS=1 didn't seem to make much difference on v1.7.3.
I believe that before the first checkpoint there are large chunks of memory that don't get returned to the OS. I am not a developer on the application so I can't provide a lot of detail on the memory allocation patterns but there is probably a mixture of large mallocs, memory mapping and many small allocations. I wouldn't be surprised if the allocations and deallocations happen on different threads.
This runs on CentOs 7. Everything is compiled with gcc-9.2.
Let me know if there is any additional info that you would need.


Add TeachOpenCADD contribution guide

Description
Add a more detailed contribution guide for TeachOpenCADD.
https://projects.volkamerlab.org/teachopencadd/contribute.html
Use conda-forge documentation as template?
Todos

[x] Submitting new talktorials
[x] Updating talktorials
[x] Maintaining talktorials
[x] As part of the above: Add a step-by-step guide on how to checkout a PR branch and get the notebook running!
[x] Remove deprecated<EMAIL_ADDRESS>email address
[x] Remove http://contribute.volkamerlab.org/ reference as not really used and not quite sure who is linked to this address any more (happy to add back if needed @AndreaVolkamer)

Status

[x] Ready to go

Hi @AndreaVolkamer,
I am merging this contributor guide to be added to our website: https://projects.volkamerlab.org/teachopencadd/contribute.html
Could you and the DL Edition team please read through this and raise an issue (or even better create a PR) if changes/additions are needed? Thanks!

Hi @AndreaVolkamer, as described in this PR's description, this PR also got rid of the<EMAIL_ADDRESS>email address. If you have a new address in the future, we can refer to it in our contribution guide, I think.


README.md: Add PATH to the shell profile for Linuxbrew

Modify either ~/.bash_profile or ~/.profile as appropriate.

Something is awry with your Linuxbrew installation. You should see…
$ brew --prefix
/home/linuxbrew/.linuxbrew
$ brew --repo
/home/linuxbrew/.linuxbrew/Homebrew
$ brew --cellar
/home/linuxbrew/.linuxbrew/Cellar

The symlinks that you're seeing in /home/linuxbrew/.linuxbrew/Homebrew/bin should be in /home/linuxbrew/.linuxbrew/bin.

and do consider that both files may even exist on same system:

In that case, both file should be modified.

Thanks for your reviews, all.


problem after installed sdk in window

hi everyone!
i got a probleme after installed .net sdk in windows
someone can help me?
It was not possible to find any installed .NET Core SDKs
Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
https://aka.ms/dotnet-download

I'm sorry to hear you're running into some problems. Have you open a new command prompt/terminal window after installing? Can you let us know what is your operating system and what does dotnet --info returns?


Interceptor was not called with Feign in spring boot 3.1.4

Greetings.
I faced with next issue :
I use spring boot 3.1.4 with feign
 <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-openfeign</artifactId>
  <version>4.0.4</version>

I have multiply feign clients. These clients work by https .
So I created bean Feign.Builder something like this
pseudocode:
@Bean
public Feign.Builder feignBuilder() {
	HostnameVerifier hostnameVerifier = (hostname, session) -> true;
	return Feign.builder()
			.client(new Client.Default(createSocketFactory(), hostnameVerifier));
}

Next moment is interceptor. I have interceptor
public class FooConfiguration {

	@Bean
	public RequestInterceptor fooInterceptor( {
		... pseudocode
                return interceptor;
	}

}

finally feign client is
@FeignClient(name = "foo-client", url = "${foo-client.url}", configuration = FooConfiguration.class)
public interface FooFeignClient {

    @PostMapping("/foo")
    Dto findFoo(@RequestBody FooDto fooDto);
}

Problem is interceptor does not work and interceptor was not called. It seems like configuration is not applied when I use client with SSL.
P.S.
Also, I tested it WITHOUT SSL -when I DONT USE Feign.Builder feignBuilder() it works correctly and Interceptor was triggered in SPRING BOOT 3.1.4.
Also I tested it WITH SSL when I USE Feign.Builder feignBuilder() it works correctly and Interceptor was triggered in SPRING BOOT 2.7
Interceptor does not work via feign configuration in spring boot 3.1.4 with SSL.

This has also been duplicated on Stack Overflow: https://stackoverflow.com/questions/77267400/feign-configuration-is-not-applied-in-spring-boot-3-1-4

Hello, @hryharenkaandrei. Please provide a minimal, complete, verifiable example that reproduces the issue, as a link to a GH repo with an executable app or tests.

If you would like us to look at this issue, please provide the requested information. If the information is not provided within the next 7 days this issue will be closed.

Closing due to lack of requested feedback. If you would like us to look at this issue, please provide the requested information and we will re-open the issue.

Beware when you have multiple clients not to name them the same name, it must be unique. If you don't then the custom configuration might not apply properly.