ArangoDB Foxx is significantly slower than Arangosh

My Environment

ArangoDB Version:        3.4.3
Storage Engine:             RocksDB
Deployment Mode:       Cluster
Deployment Strategy:   ArangoDB Starter
Configuration:               8 Core, 32GB Nodes * 6
Infrastructure:               AWS
Operating System:        AWS AMI Latest
Total RAM in your machine:        32GB
Disks in use:        SSD
Used Package:              SUSE or RedHat .rpm

Component, Query & Data
Affected feature:
ArangoDB Foxx
AQL query (if applicable):
I firstly wrote the query (which is a customized graph traversal) in arangosh, and here is the code:
var traversal = require("org/arangodb/graph/traversal");
function clone (obj) {
    if (obj === null || typeof obj !== 'object') {
      return obj;
    }
    var copy;
    if (Array.isArray(obj)) {
      copy = [];
      obj.forEach(function (i) {
        copy.push(clone(i));
      });
    } else if (obj instanceof Object) {
      copy = { };
      Object.keys(obj).forEach(function (k) {
        copy[k] = clone(obj[k]);
      });
    }
    return copy;
}
var shareholderFilter = function(config, vertex, path) {
    const vertexCount = config.collectedVertices.size;
    config.collectedVertices.add(vertex._key);
    if (vertexCount > config.limit) {
        return [ 'exclude', 'prune' ];
    }
    return "";
};

var countVisitor = function(config, result, vertex, path) {
    if (!result || !result.visited) {
        return;
    }
    if (result.visited.vertices) {
        result.visited.vertices.add(vertex._id);
    }
    if (result.visited.paths) {
        result.visited.paths.push(clone(path));
    }
    return;
};

var shareholderExpander = function(config, vertex, path) {
    var connected = [];
    var datasource = config.datasource;
    const vertexCount = config.collectedVertices.size;
    config.collectedVertices.add(vertex._id);
    if (vertexCount > config.limit) {
        return [];
    }
    var totalHoldPct = path.edges.map(e => e.holdPct).reduce((a,b) => a*b, 1.0);
    var holdPctThreshold = 0.02;
    if (vertexCount < 5000) {
        holdPctThreshold = 0.005;
    } else if (vertexCount > 10000) {
        holdPctThreshold = 0.05;
    }
    if (totalHoldPct < holdPctThreshold) {
        return [];
    } else {
        datasource.getInEdges(vertex).filter(edge => edge.holdPct * totalHoldPct >= holdPctThreshold).forEach(edge => connected.push({ edge: edge, vertex: {_id: edge._from} }));
    }
    return connected;
}

var config = {
  datasource: traversal.collectionDatasourceFactory(db.mio_company_company),
  strategy: "breadthfirst",
  order: "postorder",
  uniqueness: {
    vertices: 'path',
    edges: 'path'
  },
  filter: shareholderFilter,
  expander: shareholderExpander,
  visitor: countVisitor,
  visitCount: 0,
  collectedVertices: new Set(),
//   collectedEdges: new Set(),
//   limit: 50000,
//   maxDepth: 5,
  buildVertices: false
};

var result = {
    visited: {
        vertices: new Set(),
        // edges: []
        paths: []
    }
};

var traverser = new traversal.Traverser(config);

function f() {
    console.time('traverse');
    traverser.traverse(result, db._document("mio_company/4ae148aa1faca8eb0541532566ba2106"))
    console.timeEnd('traverse');
}

f();

And based on the same code, I wrap it into a foxx service:
'use strict';
const createRouter = require('@arangodb/foxx/router');
const traversal = require("org/arangodb/graph/traversal");
const router = createRouter();
const db = require('@arangodb').db;

module.context.use(router);

router.get('/hello-world', function (req, res) {
  function clone (obj) {
    if (obj === null || typeof obj !== 'object') {
      return obj;
    }
    var copy;
    if (Array.isArray(obj)) {
      copy = [];
      obj.forEach(function (i) {
        copy.push(clone(i));
      });
    } else if (obj instanceof Object) {
      copy = { };
      Object.keys(obj).forEach(function (k) {
        copy[k] = clone(obj[k]);
      });
    }
    return copy;
  }
  var shareholderFilter = function(config, vertex, path) {
    const vertexCount = config.collectedVertices.size;
    config.collectedVertices.add(vertex._key);
    if (vertexCount > config.limit) {
      return [ 'exclude', 'prune' ];
    }
    return "";
  };

  var countVisitor = function(config, result, vertex, path) {
    if (!result || !result.visited) {
      return;
    }
    if (result.visited.vertices) {
      result.visited.vertices.add(vertex._id);
    }
    if (result.visited.paths) {
      result.visited.paths.push(clone(path));
    }
    return;
  };

  var shareholderExpander = function(config, vertex, path) {
    var connected = [];
    var datasource = config.datasource;
    const vertexCount = config.collectedVertices.size;
    config.collectedVertices.add(vertex._id);
    if (vertexCount > config.limit) {
      return [];
    }
    var totalHoldPct = path.edges.map(e => e.holdPct).reduce((a,b) => a*b, 1.0);
    var holdPctThreshold = 0.02;
    if (vertexCount < 5000) {
      holdPctThreshold = 0.005;
    } else if (vertexCount > 10000) {
      holdPctThreshold = 0.05;
    }
    if (totalHoldPct < holdPctThreshold) {
      return [];
    } else {
      datasource.getInEdges(vertex).filter(edge => edge.holdPct * totalHoldPct >= holdPctThreshold).forEach(edge => connected.push({ edge: edge, vertex: {_id: edge._from} }));
    }
    return connected;
  }

  var config = {
    datasource: traversal.collectionDatasourceFactory(db.mio_company_company),
    strategy: "breadthfirst",
    order: "postorder",
    uniqueness: {
      vertices: 'path',
      edges: 'path'
    },
    filter: shareholderFilter,
    expander: shareholderExpander,
    visitor: countVisitor,
    visitCount: 0,
    collectedVertices: new Set(),
//   collectedEdges: new Set(),
//   limit: 50000,
//   maxDepth: 5,
    buildVertices: false
  };

  var result = {
    visited: {
      vertices: new Set(),
      // edges: []
      paths: []
    }
  };

  var traverser = new traversal.Traverser(config);

  function f() {
    console.time('traverse');
    traverser.traverse(result, db._document("mio_company/4ae148aa1faca8eb0541532566ba2106"))
    console.timeEnd('traverse');
  }

  const start = Date.now();
  f();

  res.send(Date.now() - start);
})
  .response(['text/plain'], 'A generic greeting.')
  .summary('Generic greeting')
  .description('Prints a generic greeting.');

AQL explain (if applicable):
Dataset:
A financial datasets with 71,187,289 nodes and 7,212,539 edge(s)
Size of your Dataset on disk:
20G on SSD * 6 nodes
Replication Factor & Number of Shards (Cluster only):
Replication Factor: 2
Number of Shards: 12
Problem:
When I execute the same code on arangosh (on the coordinator server and connect to <IP_ADDRESS>), the execution time is around 3.7s.
However, when I execute the foxx query with swagger on ArangoDB UI, the execution time returned is around 47s, which is more than 10x slower.
Expected result:
I expect the execution time of arangosh and foxx be identical (foxx should be a bit faster since no network transmission is involved)

Hi,
please note that the javascript graph traversing is deprecated, and if you care for performance you should use AQL traversals
Once you reach certain size of traversals, they may even stop working for you completely: https://stackoverflow.com/questions/53334437/arangodb-graph-traversal-fails-inspite-of-increased-heap-size

Thanks for your reply. Actually I tried AQL traversal even before the javascript version, but one critical issue prevented me from continuing using AQL: the AQL traversal doesn't support custom pruning logic , which in my case is required to reduce the traversal size.
Thus can you suggest is there any work around for that?

In the next bug-fix release v3.4.5 there will be a new AQL keyword PRUNE to stop traversals down a path as soon as some conditions are met (the matching node will be included in the result). Will that be sufficient to port your queries to AQL?
https://github.com/arangodb/arangodb/pull/8286/files

Thanks, it will be great if we have prune in the AQL Traversals. When will version 3.4.5 be released?

It should be out in 2-3 weeks.

Hi @alexyzhou,
version 3.4.5, which introduces Pruning to AQL Traversals, has just been released.
Please have a look at the documentation for further details.

@alexyzhou
Just sending a follow-up. Could you please reply to my latest message?
Your feedback for AQL Pruning would be appreciated.

Sure, actually we made our own implementation of pruning with ArangoDB edges API. We will evaluate the new AQL Pruning and let you know if it fits our case.

Hi @alexyzhou
Just sending this message to check if you had the chance to evaluate the new AQL Pruning
Best,

Hi @alexyzhou
Closing this issue for now since we have not heard back from you in a while.
In case the problem persists, please respond to the latest comments and we will reopen.


createPersistentToken() is actually asynchronous

Issue in /src/pages/uxp/reference-js/Modules/uxp/Persistent File Storage/FileSystemProvider.md
In createPersistentToken() it's said that it returns a String, very much like createSessionToken().
However createPersistentToken() is asynchronous, and it returns a Promise. In the doc it should be made clearer, with the use of await.
Besides, is it as designed that creating a session token is a synch operation and a permanent one is async?
Thanks!
Davide

I remember that at some point I wanted to fork and make a pull request, but the importing mechanism stopped me.
Let us know what would be the preferred way to contribute, e.g. just logging issues or also trying to fix typos etc. and how :-)
Thanks!


Support for running simulations in parallel

Should we rename this to something more meaningful, like "Add support for asynchronous requests"?

This has been closed since we are now able to run multiple simulations in parallel with the async methods.


Reinstate CONTRIBUTING.md

I just thought about adding a note to our contributing policy to advise users to check for duplicate issues before posting a new issue, but realised it's no longer there, as it was moved into the docs directory in 335ccdfb6020833fa843fc8fcd3de370a5e0e5b6.
On the new issue page, GitHub shows a link to your contributing policy if you have a CONTRIBUTING.md file in your project root (or, I think, in .github). So we should reintroduce it at some point. It may require duplciation of what's in docs.

Agreed. Previously discussed at https://github.com/RPi-Distro/python-gpiozero/pull/403#issuecomment-240036677


admin login form

[Enter feedback here]

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

ID: 95ecd145-51ba-c1ea-312d-69c3c8a6221f
Version Independent ID: 69b3580e-7066-6df2-decc-afe2e5f8cfc3
Content: Create a Windows Forms app with C# - Visual Studio
Content Source: docs/ide/create-csharp-winform-visual-studio.md
Product: visual-studio-windows
Technology: vs-ide-general
GitHub Login: @ornellaalt
Microsof

@thiru2911 -- thank you for your feedback.  Please clarify the nature of your task.  Meanwhile, consider these resources:

Visual Studio on Q&A
Visual Studio MSDN Forum
Stack Overflow
Reddit

@thiru2911 -- thank you for your feedback.  Please clarify the nature of your task.  Meanwhile, consider these resources:

Visual Studio on Q&A
Visual Studio MSDN Forum
Stack Overflow
Reddit


Memory leak in SkipMap::insert and SkipMap::remove

Reproduced here https://github.com/crossbeam-rs/crossbeam/pull/1126

Duplicate of #540


incorporate TEST_CASE_HEALTH_VIEW views into the other views

investigate possibility to decommission separate TEST_CASE_HEALTH_VIEW view and reuse existing last24hours, last32days, total_view etc to show heath check stability.
1st one is rather limited and doesn't provide info about test suite.

Owned by @vdelendik and will be implemented by him.

done in 1.19 version. TEST_CASE_HEALTH_VIEW removed at all, all widgets reorganized to use regular sql query wihtout any materialized views as we already have limitation by testcase id


install-config.yml.j2 template has bad quotes

fips: '{{ config.fips }}' is invalid, need to remove quotes around the curly braces

https://github.com/RedHatOfficial/ocp4-vsphere-upi-automation/pull/30

https://github.com/RedHatOfficial/ocp4-vsphere-upi-automation/pull/33


build on Linux: mismatched bound float[4]

I'm sure I'm doing something silly and rookie-ish so I apologize in advance.
I'm on Arch Linux, I've typed the git clone command as per the readme, cd minecraft-weekend and make
and I receive the following error while trying to make cglm:
(I've shortened the paths below, sorry the new lines and spacing is kinda gone)
..minecraft-weekend/lib/cglm/src/vec4.c:127:25: error: argument 1 of type 'float[4]' with mismatched bound [-Werror=array-parameter=]   127 | glmc_vec4_scale_as(vec4 v, float s, vec4 dest) {       |                    ~~~~~^ In file included from ../minecraft-weekend/lib/cglm/src/../include/cglm/call.h:17,                  from ../minecraft-weekend/lib/cglm/src/vec4.c:9: ../minecraft-weekend/lib/cglm/src/../include/cglm/call/vec4.h:102:25: note: previously declared as 'float[3]'   102 | glmc_vec4_scale_as(vec3 v, float s, vec3 dest);       |                    ~~~~~^ ../minecraft-weekend/lib/cglm/src/vec4.c:127:42: error: argument 3 of type 'float[4]' with mismatched bound [-Werror=array-parameter=]   127 | glmc_vec4_scale_as(vec4 v, float s, vec4 dest) {       |                                     ~~~~~^~~~ In file included from ../minecraft-weekend/lib/cglm/src/../include/cglm/call.h:17,                  from ../minecraft-weekend/lib/cglm/src/vec4.c:9: ../minecraft-weekend/lib/cglm/src/../include/cglm/call/vec4.h:102:42: note: previously declared as 'float[3]'   102 | glmc_vec4_scale_as(vec3 v, float s, vec3 dest);       |                                     ~~~~~^~~~ cc1: all warnings being treated as errors

go to minecraft-weekend/lib/cglm/include/cglm/call/vec4.h in line 102, and change
glmc_vec4_scale_as(vec3 v, float s, vec3 dest);
to
glmc_vec4_scale_as(vec4 v, float s, vec4 dest);


Add plugin for Sublime Text

Which simply always does import_all (which seemed to work well enough on the Brigade codebase), and in ambiguous cases just uses the first match (for now).
Uses a command line client that is called from the Sublime Text Python plugin.
Also added Command Palette and menu entries, and a readme.
With help from @shreeya for figuring out how to call import-js from Python.
Closes #67.

This is great, thanks for working on it!
I've been thinking about ways to make the command line tool a little bit more general. By returning json instead of the file contents, we could minimize the amount of data sent back, and start supporting more complex cases (like selecting from a list, passing messages, etc). Here are some examples of what I'm thinking about:
⨠ cat Button/index.jsx | import-js Button

would result in
{
  "messages": [
    "Imported 'Foo/bar.js'"
  ],
  "changes": [
    {
      "type": "add_line",
      "lineNumber": 0,
      "content": "const bar = require('Foo/bar.js');"
    }
  ]
}

Or, if there are multiple bars to import, this could be returned:
{
  "askForSelection": [
    "Foo/bar.js",
    "Bar/bar.jsx"
  ]
}

In such case, we need to prompt the user for input, then re-run the command with the selection passed in, e.g.
⨠ cat Button/index.jsx | import-js Button --select 0

I'm happy to keep working on this unless you plan on doing it yourself. I see a few steps going forward:

Use the already existing command line editor before merging this PR
Let the command-line tool return JSON
Add support for importing a word
Add support for selection lists

If it's okay with you, could you take on 1? Then I'll work on 2-4, which are more involved. When those are done, It should be possible to let the Emacs plugin use the same command-line tool, and possibly even the VIM plugin.

I honestly thing we should spend our time wisely. I don't think any of the points 1-4 are more useful than other things we could be doing, like working on Brigade features or a better Controller abstraction or playing in the snow. If you want to spend more time on this, be my guest, but let's do it in follow-up PRs so that people can start using this. :smiley:

It might be worthwhile to write a blog post about import-js though; we have quite a few integrations now (even if perhaps somewhat incomplete) that we should start spreading the word!

Sounds good. I agree about shipping this and that we have more important things to work on. Though this is a project that I always work on in my spare time, so don't expect me to be too rational about prioritizing... :)
I hope to write the blog post soon!

:-)
Thanks for merging!


mpl2: apply constraint relaxation until we find a reasonable split when using PAR

Resolve #6397
Resolve #6083
Due to the discrepancy that may exist between the weight of vertices that represent macros/std cells, PAR may fail to meet the balance constraint defined within MPL2. This may cause the output to be completely unbalanced and lead to infinite partitioning recursion.
The changes here are to apply a relaxation to the constraint until we find a reasonable split.

If the approach is ok, I'll run Secure-CI

Error: MPL 0041 used 2 times, next free message id is 45

@maliberty I will run a secure-ci before merging this PR. I don't expect changes in there, but I'll do it to ensure nothing will break.


Make use of deterministic guids

@kekekeks @danwalmsley

Closing this in favor of https://github.com/kekekeks/XamlX/pull/19


How to swap order of two sections?

https://github.com/conda-incubator/grayskull/issues/288

Workaround:
my_recipe = Recipe(load_file=fpath)

# ensure proper order for conda-forge
keys = list(my_recipe.keys())

# https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html
key_order = [
    "package",
    "source",
    "build",
    "requirements",
    "test",
    "outputs",
    "about",
    "app",
    "extra",
]
unshared_keys = np.setdiff1d(key_order, keys)

ordered_keys = copy(key_order)
for key in unshared_keys:
    ordered_keys.remove(key)

for key in ordered_keys:
    my_recipe.yaml.move_to_end(key)

Example:
https://github.com/conda-forge/staged-recipes/blob/98342ca72c3e4ad5fecb3218d77842faf6aa4535/recipes/mp-time-split/meta.yaml

@marcelotrevisani What do you think about a my_recipe.sort() method? https://github.com/conda-incubator/grayskull/issues/288#issuecomment-1151439414
Happy to open a PR, otherwise will stick with my workaround until July or later 🙂

That would be interesting, indeed :)
Sorry for my delay, I was completely off from my computer for the past 2 weeks, some personal matters


Workflow: Status does not get updated sometimes

Sometimes when there is an error and the execution has been terminated, the status still shows Running. It gets updated only after refreshing the page.

A update has been released that fixed issues with status not updating, need to see if this is still happening.

Verified this by running a long training process


WebSocket automatic pings

I’d like an API where users set an interval (say 60 seconds) and our websocket automatically pings on that frequency until it is closed or canceled.

Would it be set in the Request? If so, that'd be a weird setting for any Request that's not web sockets-related.

I was thinking it’d be configuration on the OkHttpClient.

That sounds good to me.

@swankjesse Hi, I am migrating websocket from 3.4 to 3.5, now we can send ping automatically using okhttp client.But how do i know websocket get pong from server? There is used to be a onPong method in WebsocketListener.

Automatic pings and pongs are not surfaced to the application layer.
On Thu, Dec 1, 2016 at 11:49 PM Jiawen Geng<EMAIL_ADDRESS>wrote:

@swankjesse https://github.com/swankjesse Hi, I am migrating websocket
from 3.4 to 3.5, now we can send ping automatically using okhttp client.But
how do i know websocket get pong from server? There is used to be a onPong
method in WebsocketListener.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/square/okhttp/issues/2993#issuecomment-264372792, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAEEERTxkmoENhILp6jOvft0X352NwO3ks5rD6NmgaJpZM4K3kQ9
.

Is it still possiable I can send ping and handle pong in okhttp 3.5.For now I use keep sending ping mechanism to ensure I the websocket is connected and reconnect when run into network exception or other crash.

We’ll notify you with an onFailure if that occurs.

But I tested on genymotion the onFailure not called when I entre airplane model after 1min or so.But the websocket is actually closed.

Here is my okhttp client.Do i need to set connectionTimeout to make onFailure reliable?
    private OkHttpClient client = new OkHttpClient.Builder()
            .readTimeout(0, TimeUnit.SECONDS)
            .writeTimeout(0, TimeUnit.SECONDS)
            .build();

Found another thing ,you get no exception when sending ping even if your network not available.

File separate bugs. Preferably with test cases if possible. Commenting here
won't get things done.
On Sat, Dec 3, 2016, 3:29 AM Jiawen Geng<EMAIL_ADDRESS>wrote:

Found another thing ,you get no exception when sending ping even if your
network not available.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/square/okhttp/issues/2993#issuecomment-264625798, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAEEEUNuTzuCgFWs9obDFhyIcjyR40Btks5rEShygaJpZM4K3kQ9
.


Scale problem

I use multiple application instances. If i use the scale API to reduce instances, i will instantly get 503 bad gateways.
I think the router sends the request to the deleted instance. I am using cf 238 version, please check.
gorouter_ctl.log:[2016-12-07 09:41:53+0000]
 {timestamp:1481103713.871946812,source:vcap.gorouter,message:vcap.gorouter.proxy.request-handler.status,log_level:1,data:{Host:spring-music-bong.paas.skcc.com,Path:/,RemoteAddr:<IP_ADDRESS>:49593,X-Forwarded-For:[<IP_ADDRESS>],X-Forwarded-Proto:[http],body:502 Bad Gateway: Registered endpoint failed to handle the request.,route-endpoint:{ApplicationId:9bdd97d7-6207-42ad-969e-250a47b21d69,Addr:<IP_ADDRESS>:60280,Tags:{component:route-emitter},RouteServiceUrl:},session:4.1069772}}

Hi @BongChan, I've got a few question to start debugging.

Which backend are you using for this app: DEA or Diego?
How long after scaling down does this problem persist? If you wait for 2-3 minutes, does traffic still get routed to the removed instance?
If you make many requests -- for example, if you make one request for each instance you had before scaling down -- what percentage of the tests fail?
Please upload your deployment manifest with sensitive data such as passwords and private keys redacted.

Thanks!

Hi @dsabeti  Thanks for quick reply.

Which backend are you using for this app: DEA or Diego?

I am using diego

How long after scaling down does this problem persist? If you wait for 2-3 minutes, does traffic still get routed to the removed instance?

This problem occurs very momentarily.

If you make many requests -- for example, if you make one request for each instance you had before scaling down -- what percentage of the tests fail?

I did this performance test and found it.
I sent a request of about 10 TPS to the application with the JMeter.

Please upload your deployment manifest with sensitive data such as passwords and private keys redacted.

Unfortunately I am using private paas, so you can not connect. The same is true for testing with spring music.

Below is a scenario where an error occurs.

application push
cf scale -i 3
send a lot of request with jmeter(about 10TPS)
cf scale -i 1
Some requests result in a 502 error

router logs
/var/vcap/sys/log/gorouter/gorouter_ctl.err.log
[2016-12-06 14:24:24+0000] 2016/12/06 14:24:24 http: proxy error: read tcp <IP_ADDRESS>:64547-><IP_ADDRESS>:60084: read: connection reset by peer
/var/vcap/sys/log/gorouter/gorouter_ctl.log
{Host:ams2.skcc.com,Path:/resources/images/main/process_bg_03.gif,RemoteAddr:<IP_ADDRESS>:49713,X-Forwarded-For:[<IP_ADDRESS>],X-Forwarded-Proto:[https],body:502 Bad Gateway: Registered endpoint failed to handle the request.,route-endpoint:

Hi @BongChan :
Thank you for reporting the issue. We noticed this last week on our CI as well and this is the corresponding tracker story for fixing this bug https://www.pivotaltracker.com/story/show/135303477
This was a bug about how gorouter subscribes messages from NATS (source for routing info). Nats does not guarantee order of messages received from 2 subscribers. Gorouter has 1 subscriber for registering and other for un-registering router and order for messages get messed up when there is more traffic from unregistration. We have solved this problem by merging into 1 subscription.
I am not sure which version of CF will have this fix but we will try our best to get this in ASAP.
Regards
Shash

Hi @BongChan. Since the routing team has already worked on a fix that will go out in the next release, I'm going to close this issue. Feel free to re-open it if you have any other questions or concerns, or if you see that the problem persists after upgrading to the next version of cf-release when it's released.


Add hugo.GoVersion

The information is easily obtainable.

👋🏽 Is this a good-first-issue? If so, mind if I take a stab?

@khayyamsaleem go ahead, that info should be in the buildInfo struct in common/hugo.


Content block - mixed groups: Misaligned section headers

Viewed in Chrome
The section headers for this pattern are not aligning to the grid:
As seen in Storybook:

Expected: All content should left align to the grid

Retest with the dev refactoring is finished.


fix bug with extra_text

Bug didn't interact with anything people use, just bug with target_document_tokens not adding the right text for some chunks


[tg4-stake] Contract migration to integrate unbonding of vesting tokens

Steps are:

Store new tg4-stake on mainnet (version 0.13.0: https://github.com/confio/poe-contracts/releases/download/v0.13.0/tg4_stake.wasm). Register new code_id. (done. new code_id: 14)
Create a proposal to migrate the tg4-stake (STAKING) instance (tgrade17p9rzwnnfxcjp32un9ug7yhhzgtkhvl9jfksztgw5uh69wac2pgsmsjtzp) to new code_id. Use a low quorum (25% or so) and a 51% threshold.
Send the proposal for voting / Ping validators about it.
After proposal is passed, execute it.
Confirm the new functionality (vesting tokens unbending period) is active and working.

The proposal text to upgrade the staking contract:
title: Migrate STAKING contract to code id 14
description: `Migrate 'STAKING' contract with address 'tgrade17p9rzwnnfxcjp32un9ug7yhhzgtkhvl9jfksztgw5uh69wac2pgsmsjtzp' to code id '14'"

Proposal parameters:
Quorum: 25%
Threshold: 51%
Allow end early: yes.

Proposal #1 has passed with 42 Yes votes so far, which allows triggering end early.

Executed successfully 🎉 .


pull request for e2e test at 11/07/2016 20:56:31

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

optest/docs/updated_at.md
:white_check_mark:Succeeded

Details

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Support for IEnumerable.Contains

First attempt: I've created another method call parser, called IsInGenericEnumerable. Basically the same as IsOneOf, but now you can use IEnumerable.Contains.

It's in, thanks!


Add --force flag to upload-stemcell

Fix issue #115 by adding a --force flag to the upload-stemcell command

Rebased and merged as c054b8de251ae8cbda47019c56a7e3a2ebeb1ab7. Thanks!


add multi line functionality to bold and italics functions. Also change label in pop up window.

multi line functionality for bold and italics is working as intended. no need for fix.


Use nightly tests in CI

The idea is to regularly test with the Julia nightly version (the latest version under development) to avoid surprises when a new Julia version is released

We aim to test both stable Julia and nightly Julia. However, if the nightly build fails while the stable build passes, we would like to generate a 'ticket' for the entire CI process and a 'warning' to indicate that the 'nightly' build is not successful.
Unfortunately, it seems that this feature is not currently implemented in GitHub Actions. You can refer to https://github.com/actions/runner/issues/2347 for more information.


fix(scenario.dsl): Fix dsl for $location

New $location does not have hashSearch, hashPath.
The old dsl was mixing $location / window.location so this solves the problem as well...

I see, here is another CL with docs - I converted the docs into ngdoc.
Is there any other link pointing to this doc, other than tutorial step 8 ?

dunno. grep through the docs/content/ folder

Landed as bf729d550b9589aa498957d219816e334222858b


Sync eng/common directory with azure-sdk-tools for PR 3457

Sync eng/common directory with azure-sdk-tools for PR https://github.com/Azure/azure-sdk-tools/pull/3457  See eng/common workflow

/azp run net - storage - tests

/azp run net - keyvault - tests

/azp run net - eventhub - tests

/check-enforcer override


KitronikZIPLEDs fails on Pico W due to re-used StateMachine

KitronikZIPLEDs in PicoAirQuality.py (at defb34915520a3c0597995ad0a6d7151f6d4e5d0) fails to load on the Pico W with the following error message:
Traceback (most recent call last):
  File "<stdin>", line 9, in <module>
  File "PicoAirQuality.py", line 302, in __init__
ValueError: StateMachine claimed by external resource

Specifically, the following line fails
self.ZIPLEDs = StateMachine(4, self._ZIPLEDOutput, freq=8_000_000, sideset_base=Pin(20))

It looks like StateMachine 4 is already used, perhaps for the SPI channel to the wireless module. I changed this to StateMachine 0 and it works, though the solution still seems a bit unsatisfactory with hardcoding a different state machine since that could be used in a different set of circumstances. The MicroPython PIO implementation doesn't appear to expose the SDK functions that allow searching for available PIO state machines, so perhaps nothing better can be done. With this caveat, my patch is attached as StateMachine.patch.

Hi, thank you for pointing this out. We have added a more dynamic approach to claiming the StateMachine. The updates to this code can be found here:
https://github.com/KitronikLtd/Kitronik-Pico-Smart-Air-Quality-Board-MicroPython/commit/9735764cdef6d41c7422ca5b5e585c53819a74b1#diff-e56cab3565257f477b6df1c7c304bcdf196bb03b9803a78660ff116ef2f70012R65


KAFKA-10385 - Remove no print stat when on detailed stat mode on Consumer Perf

The condition to see a detailed stats is conditionned by the time.
if (currentTimeMillis - lastReportTime >= config.reportingInterval)
if (config.showDetailedStats)
But when you finish the loop, you haven t the last stats of the performance tests. Just the previous status exists.
I propose just to remove the contition to show the final statistic result.

@abbccdda update done


auto detecting libraries problem

About this issue

A lot of libraries are not getting auto-detected although they are supported. I added the Proguard rules

-keep class .R
-keep class *.R$ {
;
}

and followed the wiki.
I'm using this library in a fragment but I guess this shouldn't make any difference when it comes to auto-detecting. BTW I'm also using kotlin but I assume this should neither make a difference.
val fragment = LibsBuilder()
                        .withFields(R.string::class.java.fields)
                        .withVersionShown(false)
                        .withLicenseShown(true)
                        .withLibraryModification("aboutlibraries", Libs.LibraryFields.LIBRARY_NAME, "_AboutLibraries")
                        .supportFragment()

                val fragmentManager = fragmentManager
                fragmentManager?.beginTransaction()?.replace(R.id.replacer_layout, fragment)?.addToBackStack(null)?.commit()

I could add the libraries manually, just curious if I'm missing something.
Details

AboutLibraries version: 6.0.5
support library version: 27.0.2
Android Studio version: 3.0.1

Checklist

[x] Searched for similar issues
[x] Checked out the sample application
[x] Read the README
[x] Checked out the CHANGELOG
[x] Read the MIGRATION GUIDE

@JohannesDev kotlin actually could make a difference. Auto detection works by checking if a class which is well known is there in the app. if yes it will show up. Obfuscation or anything else which changes the possibility to detect via reflection will break it.
The recommended solution is anyways to define the libraries manually. as it is faster.
You can then also disable auto detection in general.
It could also be that some libraries do not have auto detection enabled (so no classPath defined)

Well thanks for your quick answer. Makes a lot of sense. I will just add the libraries manually as you suggested.
Anyways thanks a lot for your awesome library.


Add a dashboard tab with frequent and recent contacts

Codecov Report

Merging #144 into master will decrease coverage by 0.42%.
The diff coverage is 32.35%.

@@             Coverage Diff              @@
##             master     #144      +/-   ##
============================================
- Coverage     65.15%   64.73%   -0.43%
- Complexity      627      631       +4
============================================
  Files           110      110
  Lines          2293     2325      +32
  Branches        240      242       +2
============================================
+ Hits           1494     1505      +11
- Misses          701      720      +19
- Partials         98      100       +2

Impacted Files
Coverage Δ
Complexity Δ

...rc/main/java/seedu/address/logic/LogicManager.java
76.47% <0.00%> (-4.78%)
4.00 <0.00> (ø)

...va/seedu/address/logic/commands/SwitchCommand.java
0.00% <ø> (ø)
0.00 <0.00> (ø)

src/main/java/seedu/address/model/Model.java
100.00% <ø> (ø)
1.00 <0.00> (ø)

...rc/main/java/seedu/address/model/journal/Date.java
100.00% <ø> (ø)
13.00 <0.00> (ø)

src/main/java/seedu/address/ui/MainWindow.java
0.00% <0.00%> (ø)
0.00 <0.00> (ø)

...rc/main/java/seedu/address/model/ModelManager.java
76.41% <42.30%> (-12.20%)
35.00 <4.00> (+4.00)
:arrow_down:

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 ffa5d0c...8306599. Read the comment docs.

This PR is ready for review. Since this part involves a lot of things about the Ui part, could @Nauw1010 review the PR and if everything seems good, merge the PR?


Added DiceRoll_Game

PR Description 📜
Please include summary related to the issue you have fixed and describe your PR in brief over here by specifying the issue number on which you were working below
Fixes #4048

Mark the task you have completed ✅

[x] I follow CONTRIBUTING GUIDELINE & CODE OF CONDUCT of this project.
[x] I have performed a self-review of my own code or work.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I have followed proper naming convention showed in CONTRIBUTING GUIDELINE
[x] I have added screenshot for website preview in assets/images
[x] I have added entries for my game in main README.md
[x] I have added README.md in my folder .
[x] I have specified the respective issue number for which I have requested the new game.

Add your screenshots(Optional) 📸

Thank you soo much for contributing to our repository 💗

Thank you @Hemav009 ,for creating the PR and contributing to our GameZone 💗
Review team will review the PR and will reach out to you soon! 😇
Make sure that you have marked all the tasks that you are done with ✅.
Thank you for your patience! 😀

@Hemav009 you are having lot's of merge conflicts please resolve that and make your PR again with latest changes !

Thank you  @Hemav009 , for your valuable time and contribution in our GameZone 💗.
It’s our GameZone, so Let’s build this GameZone altogether !!🤝
Hoping to see you soon with another PR again 😇
Wishing you all the best for your journey into Open Source🚀


Bug: OSError: ctypes.util.find_library() did not manage to locate a library called 'ole32'

Hi!
After running  computerassistant, I faced this error rigth here at the end of the logs:
Requirement already satisfied: pycparser in c:\users\sans\appdata\local\programs\python\python312\lib\site-packages (from cffi>=1.12.0->curl-cffi>=0.6.2->duckduckgo-search==5.3.0) (2.22)
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\Sans\AppData\Local\Programs\Python\Python312\Scripts\computerassistant.exe\__main__.py", line 7, in <module>
  File "C:\Users\Sans\AppData\Local\Programs\Python\Python312\Lib\site-packages\gpt_computer_assistant\start.py", line 19, in start
    from .gpt_computer_assistant import QApplication, MainWindow, sys
  File "C:\Users\Sans\AppData\Local\Programs\Python\Python312\Lib\site-packages\gpt_computer_assistant\gpt_computer_assistant.py", line 9, in <module>
    from .gui.button import *
  File "C:\Users\Sans\AppData\Local\Programs\Python\Python312\Lib\site-packages\gpt_computer_assistant\gui\button.py", line 5, in <module>
    from ..audio.record import *
  File "C:\Users\Sans\AppData\Local\Programs\Python\Python312\Lib\site-packages\gpt_computer_assistant\audio\__init__.py", line 1, in <module>
    from .record import *
  File "C:\Users\Sans\AppData\Local\Programs\Python\Python312\Lib\site-packages\gpt_computer_assistant\audio\record.py", line 15, in <module>
    import soundcard as sc
  File "C:\Users\Sans\AppData\Local\Programs\Python\Python312\Lib\site-packages\soundcard\__init__.py", line 13, in <module>
    from soundcard.mediafoundation import *
  File "C:\Users\Sans\AppData\Local\Programs\Python\Python312\Lib\site-packages\soundcard\mediafoundation.py", line 19, in <module>
    _ole32 = _ffi.dlopen('ole32')
             ^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Sans\AppData\Local\Programs\Python\Python312\Lib\site-packages\cffi\api.py", line 150, in dlopen
    lib, function_cache = _make_ffi_library(self, name, flags)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Sans\AppData\Local\Programs\Python\Python312\Lib\site-packages\cffi\api.py", line 832, in _make_ffi_library
    backendlib = _load_backend_lib(backend, libname, flags)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Sans\AppData\Local\Programs\Python\Python312\Lib\site-packages\cffi\api.py", line 827, in _load_backend_lib
    raise OSError(msg)
OSError: ctypes.util.find_library() did not manage to locate a library called 'ole32'
PS C:\Users\Sans>

How to fix that error? Do I miss something else?

Hmm. okay i will make a deep search. Thanks

Aight, happy to help

I am also getting an issue with util when installing
ModuleNotFoundError: No module named 'utils'

I am also getting an issue with util when installing ModuleNotFoundError: No module named 'utils' and after pip install utils i get this ModuleNotFoundError: No module named 'utils.db'
and i am on Python 3.12.3

Did you solve it?  I met the similar problem as yours


Can't open files normally

Environment data

VS Code version: 1.52.1
Extension version (available under the Extensions sidebar): v2020.12.424452561
OS and version: Windows 10 Pro version: 20H2
Python version (& distribution if applicable, e.g. Anaconda): 3.9.1
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): N/A
Relevant/affected Python packages and their versions: XXX
Relevant/affected Python-related VS Code extensions and their versions: XXX
Value of the python.languageServer setting: XXX

[NOTE: If you suspect that your issue is related to the Microsoft Python Language Server (python.languageServer: 'Microsoft'), please download our new language server Pylance from the VS Code marketplace to see if that fixes your issue]
Expected behaviour
Should run file when clicking the green start button or "Run Current Test File"
Actual behaviour
Instead, it just bounces to the next line in the Windows Powershell, which is empty
The line that it tries to run has an "&" before the Python path, but no errors in regards to that appear (contrary to other issues I've seen happen before)
I can get it to work normally by deleting the & and adding -i between the Python Path and the File Path
Steps to reproduce:
[NOTE: Self-contained, minimal reproducing code samples are extremely helpful and will expedite addressing your issue]

Logs

Output for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)

XXX

That's expected as Python executed your file successfully and you didn't have it print anything. Using the -i flag on Python forces it into the REPL at the end of execution which isn't normal execution. So from what we can tell everything is working appropriately.


Error while initialising plugin

Hi,
Spotify plugin installed. After running PowerToys its producing a "Error when initialising plug-ins: Spotify" and deactivates it.
Used latest release .zip file extracted as supposed to
Tryed to downgrade a version but same error.
Thougt its because of the Client-ID missing, but this options isnt even available in the options.
Using a german system language but in the option theres

set shortcut
include in global result (checkbox)
evaluation modifier (0 - 1000)

Can you look at the logs?
https://github.com/waaverecords/PowerToys-Run-Spotify/issues/1#issuecomment-1896684757

Can't find class implement IPlugin for  in C:\Program Files\PowerToys\RunPlugins\PowerToys-Run-Spotify\PowerToys-Run-Spotify.dll
Exception full name  : System.InvalidOperationException
Exception message    : Sequence contains no matching element
Exception stack trace:
at System.Linq.ThrowHelper.ThrowNoMatchException()
at System.Linq.Enumerable.First[TSource](IEnumerable1 source, Func2 predicate)
at Wox.Plugin.PluginPair.CreatePluginInstance()
Exception source     : System.Linq
Exception target site: Void ThrowNoMatchException()
Exception HResult    : -2146233079

Is your PowerToys version the same as the plugin?
They need to match.

Is your PowerToys version the same as the plugin? They need to match.

Thanks, I was so sure my PowerToys wasn't out of date that I didn't even check. Sorry about the ticket


CCL process exits upon #'ge.ng:shutdown

https://github.com/Shinmera/trivial-main-thread/issues/6

It doesn't anymore.


Update Chart kubeVersion to >=1.20.0-0

Signed-off-by: Martin Schimandl<EMAIL_ADDRESS>
Pull Request Motivation

fixes https://github.com/cert-manager/cert-manager/issues/5280
Kind

kind/cleanup
Release Note

NONE

Hey,
Nice, thank you! We forgot to change that field when we release 1.9 on Jul 22, 2022. I think we should also backport that fix to release-1.9, which I will do afterwards.
/lgtm
/approve
/ok-to-test


refactor: remove vitest/eslint conflict, review pr template

Pull Request Guidelines
Our guidelines for submitting a pull request.
Before submitting a Pull Request, please make sure you have verified the following:

[x] The commit message follows our guidelines:

A good commit message should be two things: meaningful and concise. It should not contain every single detail, describing each changed line—we can see all the changes in Git—but, at the same time, it should say enough to avoid ambiguity.
We use Microverse's commit message convention
The convention stablish that a commit message has to be in the present tense, imperative and lowercase.
Example: fix typo in README.md

[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[x] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[x] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Other... Please describe:

What is the current behavior?
Please describe the current behavior that you are modifying, or link to a relevant issue.
Conflict between vitest and eslint and PR github template not streamlined process
Issue Number: N/A
What is the new behavior?
Describe the new behavior or link to a relevant issue.

Removed conflict between vitest and eslint.
Adjust PR template to remove unnecessary comments

Does this PR introduce a breaking change?

[ ] Yes
[x] No

If this PR contains a breaking change, please describe the impact and migration path for existing applications below.
Other information
Any other information that is important to this PR.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 82.56%. Comparing base (f1731d3) to head (5e63d64).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #284   +/-   ##
=======================================
  Coverage   82.56%   82.56%
=======================================
  Files          23       23
  Lines        2265     2265
  Branches      126      126
=======================================
  Hits         1870     1870
  Misses        395      395

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Use binding in an asyncResult computation expression

First off, thanks for the great book and this repo!
I think I'm running into a bug where use-bound values in asyncResult computation expressions are disposed prematurely. Consider this snippet:
let a = async {
    use f = { new IDisposable with member x.Dispose() = printfn "Disposed" }

    do! Async.Sleep 50
    printfn "async with do! ending"
    return Ok () } |> Async.RunSynchronously

printfn ""
let b = asyncResult {
    use f = { new IDisposable with member x.Dispose() = printfn "Disposed" }

    printfn "asyncResult without do! ending" } |> Async.RunSynchronously

printfn ""
let c = asyncResult {
    use f = { new IDisposable with member x.Dispose() = printfn "Disposed" }

    do! AsyncResult.sleep 10
    printfn "asyncResult with do! ending" } |> Async.RunSynchronously

Running this prints:
async with do! ending
Disposed

asyncResult without do! ending
Disposed

Disposed
asyncResult with do! ending

Do you have idea why f in the last case gets disposed early? Cheers.

Looks like the implementation of the TryWith, TryFinally and other build upon those functions are flawed.
If you look at the implementation of TryFinally (code):
member this.TryFinally(body, compensation) =
    try this.ReturnFrom(body())
    finally compensation()

Lets replace the call to ReturnFrom with it's body, and add a type on the body parameters
member this.TryFinally(body: unit -> AsyncResult<_>, compensation) =
    try body()
    finally compensation()

Can you spot the problem?
The body function is returning an Async, it might not have completed yet. However the control flow in the TryFinally function already goes on, and as the execution of the body function already ended, the finally block is executed with the compensation function.
If you compare the internals of this Builder with the internals of the AsyncBuilder from the FSharp.Core you can see, that there the try-finally and try-with constructs are lifted into the Async world. In this version of the builder the constructs are left outside, that's why you have the difference in the behaviour.

Think it makes sense, thanks.

@mexx I changed the 2 methods like this:
member this.TryWith(body, handler) = async {
    try
        let! b = body()
        return this.ReturnFrom(b)
    with e ->
        return handler e }

member this.TryFinally(body, compensation) = async {
    try
        let! b = body()
        return this.ReturnFrom(b)
    finally
        compensation() }

The dispose works as expected now, but I'm not sure if it's really as simple as this, because the AsyncBuilder implementation of these is a lot more involved (perhaps because of doing optimizations?).

@kerams I'm not certain that the calls to this.ReturnFrom are even necessary.
It's that simple, the AsyncBuilder implementation can't use any syntax sugar, like you do now with the async.

Alright, thanks a lot!

Just curious... Is this one fixed by #10?

(Finally revisiting all these issues!)
I think this is fixed now. Closing


support conjunct expr and conjunct predicate rewrite in pipe line

select `d_month` from `dates_unique` where `d_month` not in ("January") and d_month like '%Dec%';

for #559

run starrocks_clang-format

Comment what issue this pr want to resolve and how resolve


chore: bdd-sbhg-1585305815 to 0.0.1

chore: Promote bdd-sbhg-1585305815 to version 0.0.1

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

Needs approval from an approver in each of these files:

OWNERS

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


Add a pull request template

@patrys @elwoodxblues As an unwritten rule, we provide a screenshot for UI changes, maybe worth adding it to the checklist?

@patrys Maybe we should add one more check to make sure that the database queries (if the PR introduces any) are optimized, i.e. all necessary prefetches are made.

@elwoodxblues I'm not sure where the balance is. Ideally we'd also check if all variables have meaningful names, that URL structure makes sense, that UX is good, we might end up with screens upon screens of checkboxes 😄

All of those things you've mentioned are important, but none of them influence the performance, while the number of queries does. Knowing that the author of the PR has checked that would be helpful.

I'm not saying you're wrong, just wondering which things are critical. By the way, I'm not convinced that it should be the PR author who checks all those boxes, I see them just as valuable for reviewers with different domain expertise.

The fewer the points the bigger the chance that PR author will actually check them.
If we had a tool that could determine if the queries could be optimised I would definitely put that next to the pylint and eslint. Saying that I don't think reminding people to write optimised code is something that would work plus:

We should forget about small efficiencies, say about 97% of the time:
premature optimization is the root of all evil.

Sir Tony Hoare

It doesn't mean optimization isn't important just not always easily applicable.

I wouldn't call a proper usage of prefetch_related and select_related a premature optimization. That's something that I have to always double-check when doing a review, as people tend to forget about it or they don't use tools for checking the number of queries during development. If there are tools to automate it, maybe that's the answer.

Codecov Report

Merging #1322 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1322   +/-   ##
=======================================
  Coverage   70.37%   70.37%
=======================================
  Files         117      117
  Lines        6158     6158
  Branches      786      786
=======================================
  Hits         4334     4334
  Misses       1661     1661
  Partials      163      163

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 cff324d...5e1e6c9. Read the comment docs.


Beta: 3D Field Widget Lagging with Table Widget

Describe the bug
When using the table view widget and the 3d field widget together, the 3d field widget seems to be lagging.
To Reproduce
1.Open any log file
2. Drag some poses to the 3d field widget.
3. Open the 3d field widget in a sperate window
4. In the main window, switch to "table view" and open some tables
5. If the table is rolling down too fast, the field3d widgets gets extremely laggy.
Screenshots

Version
Version: 4.0.0-beta-1
Distributor: FRC 6328
Platform: win32-x64
Build Date: 9/26/2024, 24:41:47 UTC
Electron: 32.0.2
Chromium: 128.0.6613.84
Node: 20.16.0
Aditional Context
Running on a Windows10 Laptop, with R7-8845HS CPU and 32GB Memory.
There is NO performance issue when running 3d field widget alone.

It looks like the table tab was a performance bottleneck, which prevented updates to the 3D field. I tracked down the issue and swapped a call from innerText to textContent, which should be a ~15x performance improvement.


Type Error with rehypePrettyCode in Contentlayer Configuration

I'm encountering a type error when trying to configure the rehypePrettyCode plugin in my Contentlayer configuration. The onVisitLine, onVisitHighlightedLine, and onVisitHighlightedWord functions are expected to return a value of type Transformer<any, any> or void, but they are currently returning a value of type Transformer<Root, Root> or void.
Here's the relevant part of my configuration:
rehypePlugins: [
  rehypeSlug,
  [
    rehypePrettyCode,
    {
      theme: "poimandres",
      onVisitLine(node: RehypeNode) {
        // Prevent lines from collapsing in `display: grid` mode, and allow empty
        // lines to be copy/pasted
        if (node.children.length === 0) {
          node.children = [{ type: "text", value: " " }];
        }
      },
      onVisitHighlightedLine(node: RehypeNode) {
        node.properties.className.push("line--highlighted");
      },
      onVisitHighlightedWord(node: RehypeNode) {
        node.properties.className = ["word--highlighted"];
      },
    },
    rehypeAutolinkHeadings,
    {
      properties: {
        className: ["subheading-anchor"],
        ariaLabel: "Link to section",
      },
    },
  ],
],

In addition to the above, here's my package.json:
{
  "dependencies": {
    "contentlayer": "^0.3.4",
    "rehype-pretty-code": "^0.12.0",
    "rehype-slug": "^6.0.0",
    "rehype-autolink-headings": "^7.1.0",
  }
}

expected to return a value of type Transformer<any, any> or void, but they are currently returning a value of type Transformer<Root, Root> or void.

I'm not sure I understand why that would error, if it accepts any generics then it should work?

expected to return a value of type Transformer<any, any> or void, but they are currently returning a value of type Transformer<Root, Root> or void.

I'm not sure I understand why that would error, if it accepts any generics then it should work?

Actually this code part works fine, after updating all my packages I encountered this weird error in the contentlayer.config.ts file. I can't figure out why it's not working.

It might be due to contentlayer using unified@10 while this library uses unified@11 since v0.11.0. I also experienced problems with MDX v2 due to the --shiki css variables, while MDX v3 worked.
v0.10.2 was the last version using unified@10 so that may work instead (or if it works at runtime, just ignore the error.)


Litle bug on learn-ocaml-client create-token

In the man section it says that LEARNOCAML_SERVER environment variable affects the result but when trying to use it  without --server it prompts asking for a server, even if just before one was set.

The set-options command does not set any environment variable (like LEARNOCAML_SERVER), it just writes down the configuration the configuration file.
Anyway, you are right, the client was not looking up in the configuration file for create-token, I will send a PR.


fdroid version vibration is not set to false

Just a minor line change where fdroid vibration was compared instead of being set

Oh thanks for fixing that.


Meta-programming input modules for adapters (OntoWeaver)

Development by @jdreo in https://github.com/oncodash/oncodashkb

Ontoweaver publication accepted at 2 conferences


Build DOM via JSX

Fixes #539 (JSX)
Fixes #270 (XSS audit)
Uses dom-chef to build DOM elements via JSX on the fly.
All the other pages except notifications are broken, because icons (src/libs/icons.js) are now DOM elements, not strings. I thought it would be fine for now to demonstrate this PR.
Let me know what you think ;)

Nice! But h is much lighter and it has no dependencies. https://github.com/dominictarr/h/blob/master/index.js

Oh, when you said:

A factory for that would be something like h, which appears to be pretty small.

I thought h was just an example, not the actual module you wanted to use.
In dom-chef's defence, here's what dom-chef has and h doesn't:

SVG support (all the icons in refined-github)
Full test coverage
Support. Looks like h is abandoned a while ago in favor of hyperscript, see https://github.com/dominictarr/h/issues/1#issuecomment-161162232.

Alright. Can you fix the issues? xo --fix should do most of them.

I tried this and it works! 🎉  It's great to see HTML's syntax highlighting rather than the previous JS strings.
What else do you think this is missing besides fixing the icons? If this is good for you I can pick it up from here and fix the icons. That'll require the JSX-ification of most of the components the use the icons.
For anyone wondering, this is what the generated code looks like:
const item = (
	h_1('li', {class: `list-group-item js-notification js-navigation-item unread ${type}-notification`}, [
		h_1('span', {class: "list-group-item-name css-truncate"}, [
			icon,

			h_1('a', {href: url, class: "css-truncate-target js-notification-target js-navigation-open list-group-item-link"}, [
				title
			])
		]),

		h_1('ul', {class: "notification-actions"}, [
			h_1('li', {class: "delete"}, [
				h_1('button', {'aria-label': "Mark as read", class: "btn-link delete-note tooltipped tooltipped-w js-mark-read"}, [
					check
				])
			]),

			h_1('li', {class: "mute"}, [
				h_1('button', {style: {opacity: 0, pointerEvents: 'none'}}, [
					mute
				])
			]),

			h_1('li', {class: "age"}, [
				h_1('relative-time', {datetime: date, title: dateTitle})
			]),

			h_1('li', {class: "tooltipped tooltipped-s", 'aria-label': usernames}, [
				h_1('div', {class: "avatar-stack clearfix"}, [
					avatars
				])
			])
		])
	])

What else do you think this is missing besides fixing the icons?

Aside from icons, which are imported across all modules, I don't think there's anything else.

If this is good for you I can pick it up from here and fix them.

Sure, feel free :)

I'm wondering though why it's h_1 and not h?

Still a WIP, 50% tested. Waiting for some PRs to be merged so I can JSX-ify their template strings as well.

WIP. Waiting for some PRs to be merged so I can JSX-ify their template strings as well.
Tested each piece separately, except addDeleteForkLink because I don't see it :D
Essentially the only annoyance I found with JSX is that babel discards the whitespace between elements, which is sometimes meaningful (only twice in the entire extension, so it's not that annoying)

I decided that this PR doesn't need everything to be ready but it's good enough as is:

adds JSX to the build
JSX-ifies mark-unread as proof of concept

This build and mark-unread have been tested.

Ok, let's get this all in. The rest will come later.

The import {h} from 'dom-chef'; in every file is kinda annoying.

https://github.com/sindresorhus/refined-github/pull/558/commits/084bbd9026b5e6e5bc0a0b6f00207f516b1bdd27

Remove automatic dom-chef importer. Unfortunately babel-plugin-jsx-pragmatic causes issues at runtime.

@bfred-it What issues?

@vadimdemedes Could you maybe make a plugin like https://github.com/jmm/babel-plugin-jsx-pragmatic but specifically for dom-chef, so it would just be plug-and-play?

Remove automatic dom-chef importer. Unfortunately babel-plugin-jsx-pragmatic causes issues at runtime.

@bfred-it What issues?

The generated code has runtime errors. I felt it was unnecessary to add/debug a build step to skip a line of code.

Could you maybe make a plugin like jmm/babel-plugin-jsx-pragmatic but specifically for dom-chef

Why? Why should it be specific?

The generated code has runtime errors. I felt it was unnecessary to add/debug a build step to skip a line of code.

I see. We don't have to fix it for this PR to land. Was just suggestion some future improvements.

Why? Why should it be specific?

To simplify the config and not having to specify a custom pragma, but if we do a dom-chef Babel preset, I guess the plugin could be un-opinionated.

This PR is ready to land as soon as https://github.com/sindresorhus/refined-github/pull/558#discussion_r126108501 and https://github.com/sindresorhus/refined-github/pull/558#discussion_r126109133 are resolved.

I opened an issue about the Babel preset stuff: https://github.com/vadimdemedes/dom-chef/issues/7

Sidenote: This PR brings to build time from 571ms to 1703ms.

Interesting. I just noticed Travis actually runs on the merged version of the repo, not just the branch: https://github.com/sindresorhus/refined-github/commit/b06f0b46820eba1919836712d5252b0f893d7193

Landed it manually so I could preserve the credit for both of you :)

Thanks! I was building onto that PR thinking that the merge commit would include both names when I rebased it :D

@sindresorhus build time is 700ms with nativejsx-loader. Replacement is easy:
-					loader: 'babel-loader'
+					loader: 'nativejsx-loader'

But it fails with async/await: https://github.com/vadimdemedes/dom-chef/issues/7#issuecomment-313681873


Test github action

Test github action

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


Handle paths starting with slash in rmdir -p

When comparing behavior with the rmdir shipped with the linux distro I am running I have found that rmdir -p /a/b/c acts differently compared ./toybox rmdir /a/b/c because of the way toybox handles the slashes, it removes them so when arriving at the first slash it actually attempts to rmdir nothing which is invalid.
This PR makes it correctly try to remove the first slash upon reaching there.

How about just:
--- a/toys/posix/rmdir.c
+++ b/toys/posix/rmdir.c
@@ -25,7 +25,7 @@ static void do_rmdir(char *name)
{
char *temp;

for (;;) {

do {
if (rmdir(name)) {
if (!FLAG(ignore_fail_on_non_empty) || errno != ENOTEMPTY)
perror_msg_raw(name);
@@ -39,7 +39,7 @@ static void do_rmdir(char *name)
if (!(temp = strrchr(name, '/'))) return;
*temp = 0;
} while (!temp[1]);

}

} while (*name);
}

Wow, github hasn't got the concept of cutting and pasting a patch into a comment, does it? Of course wiki markup for comments is more important than C, why wouldn't it be? Sigh...
The patch changes the for loop into a do { ) while (*name);

Verbatim text here

On Fri, Mar 19, 2021, 20:02 Rob Landley @.***> wrote:

Wow, github hasn't got the concept of cutting and pasting a patch into a
comment, does it? Of course wiki markup for comments is more important than
C, why wouldn't it be? Sigh...
The patch changes the for loop into a do { ) while (*name);
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/landley/toybox/pull/274#issuecomment-803233716, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AMVLEWHAOWTISQZ5KM4DNJLTEQF6FANCNFSM4ZPSXW2A
.

Hi,
The patch solves the problem of calling rmdir with nothing, but does not attempt to remove "/" like the rmdir I have compared to does.
Now I can agree that there isn't much point in attempting to remove "/", what do you think?

I specifically didn't want to remove / (at least not as part of a -p chain) since that doesn't make sense in unix.
Commit 855eca3eaf8e


MethodNotFoundException at net461 target

In following commit:
https://github.com/dotless/dotless/commit/58095fd90ebd0da4e7bea06bbf496fe765caf469#diff-23edb77dc293d7b20cc8efaabd553e9a
Dependency on Microsoft.Extensions.DependencyInjection for net461 was changed from 2.0.0 to 1.1.1
Why???
Well now running app after upgrade dotless from 1.6.5 to 1.6.6+ gives following exception:

System.MissingMethodException: Method not found: 'System.IServiceProvider Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions.BuildServiceProvider
(Microsoft.Extensions.DependencyInjection.IServiceCollection)'.
at dotless.Core.ContainerFactory.GetContainer(DotlessConfiguration configuration)
at dotless.Core.EngineFactory.GetEngine(ContainerFactory containerFactory)
at dotless.Core.Less.Parse(String less, DotlessConfiguration config)
at ...

This happens because return value of this method was changed in following commit https://github.com/aspnet/DependencyInjection/commit/a0467de767febbf86b7d401abe012da8434fa7d7#diff-e2d2f137092a305455ceba873ddd962a and thus downgrade from 2.0.0+ to 1.1.1 ruins compatibility in binary assembly.

Why is there a split for V1.1.1 or V2.1.1 depending on framework v4.6.1 vs 4.7.0 ?
This is causing me difficulty as we have an ASP.Net 4.6.1 project using Microsoft.Extensions.DependencyInjection which is causing conflicts.

Well, it seems the only way around this is to go to Framework v4.7.0... Very strange that it changes depending on framework version.

@calculuswhiz Indeed - I don't know why the dependency versions were split like this. I assume it was for backwards compatibility reasons, although it would have been better to fork the package or something. All versions of Microsoft.Extensions.DependencyInjection, even the latest 6.0.0-preview4 support net461 as a target so it is not for that. Regardless, I ended up multitargeting my packages/projects across the net461/net47 split until I managed to update our full stack to net472 or later.


fix: Lagrange interpolations derivative

fixes: #196

Are you going to look at the BSpline ones too?

Are you going to look at the BSpline ones too?

Yes, I have created an issue to track this https://github.com/SciML/DataInterpolations.jl/issues/203


Smoothie camera is being used when app is minimized

On android you can now check if an app is using camera in the background, a green dot appears on the top right corner, which is there even when the app is minimized.

Actually it turns off on it's own after 2-3 minutes of idleness (I think the system turns it off) but then if you come back to the app the camera doesn't start up again.
See:

This looks fixed, but when the camera is on, the following logs are printed every second. Which means some processing is being done continuously.
D/TransportRuntime.SQLiteEventStore(12601): Storing event with priority=DEFAULT, name=FIREBASE_ML_SDK for destination cct D/TransportRuntime.JobInfoScheduler(12601): Upload for context TransportContext(cct, DEFAULT, MSRodHRwczovL2ZpcmViYXNlbG9nZ2luZy5nb29nbGVhcGlzLmNvbS92MGNjL2xvZy9iYXRjaD9mb3JtYXQ9anNvbl9wcm90bzNc) is already scheduled. Returning...

Looks like this is something which occurs to a lot of people, https://github.com/FirebaseExtended/flutterfire/issues/6140
This issue is fixed and I'm keeping ab eye on if we can stop these logs


Steplibs : doesn't work with a project managed by Natural Security

Currently the LS reads the .natural file for information about steplibs ... a project with steplibs managed on the server by Natural Security looks like this ...
... the information must be cached somewhere, because I've started up NaturalONE this morning without a network connection to the server and the steplibs are still there in the library properties, so they can't possibly always come from the server ...
    <EnvironmentProperties>
        <SteplibNSV/>
        <SteplibExtensions>0;</SteplibExtensions>
        <LibrariesSteplibs/>
        <privateMode>false</privateMode>
        <Fuser>(0,0)</Fuser>
    </EnvironmentProperties>
    <NatsecRuntimeProfileLibrary>
        <NatsecLibrary>
            <NatsecLibraryName>MYLIB001</NatsecLibraryName>
            <NatsecLibraryFuser>(-1,-1)</NatsecLibraryFuser>
            <TerminalCommandChar>%</TerminalCommandChar>
            <TerminalCommandCharSwitch>true</TerminalCommandCharSwitch>
            <DecimalCharacter>.</DecimalCharacter>
            <FormatSpecify>false</FormatSpecify>
            <InputAssignCharacter>=</InputAssignCharacter>
            <InputDelimiterCharacter>,</InputDelimiterCharacter>
            <LineSize>0</LineSize>
            <ProcessingLoopLimit>99999999</ProcessingLoopLimit>
            <PageSize>0</PageSize>
            <SpacingFactor>1</SpacingFactor>
            <StructuredMode>true</StructuredMode>
            <LibraryPrivateMode>false</LibraryPrivateMode>
        </NatsecLibrary>

After a bit of hunting, I've found this information ... cached deep in the workspace metadata, and confirmed this by editing it.
ie it's in
$WORKSPACE/.metadata/.plugins/org.eclipse.core.resources/.projects/$PROJECT/.indexes/properties.index

Also have no idea what the format is but it's binary and opaque.
Since most people wont check in this folder, and your workspace doesn't even have to be the parent folder of your project ... I think it might be nice to support a separate configuration file for these circumstances. Will have a look at maybe implementing one.

We're also using Natural Security but have a .natural file which contains the steplib information (generated by NaturalONE).
It contains the NatsecLibrary (like yours) but also
<EnvironmentProperties>
    <SteplibNSV/>
    <SteplibExtensions>0;</SteplibExtensions>
    <LibrariesSteplibs>
        <LibrarySteplib>
            <LibrarySteplibName>LIBNAME</LibrarySteplibName>
            <LibrarySteplibNSV>ANOTHERLIB</LibrarySteplibNSV>
            <LibrarySteplibExtensions>3;LIBONE[-1,-1];LIBTWO[-1,-1];LIBTHREE[-1,-1];</LibrarySteplibExtensions>
        </LibrarySteplib>
        ...
    </LibrariesSteplibs>
</EnvironmentProperties>

If I remember correctly it is generated when you open the properties of the project, go to Natural and say "save new defaults" or something like that.
Could also be that it is either generated together with the ANT script or that our users have more permissions for Natural Security.

Hmm, yeah ; adding the steplibs from a container in which I'm admin, this part is populated, I've not seen it populated before.
Going to reconnect that project to the mainframe and see if it erases this section now ...

Cannot read the library profile! Error LOGONUS 2602 NAT0807 Logon to this library is not permitted

....

error: User is not authorized to use this command : GLOBALS

...
Changes all the Natsec libs but doesn't erase the ones in EnvironmentProperties at least.


Popup covered by SwingPanel

Describe the bug
A clear and concise description of what the bug is.
Affected platforms
Select one of the platforms below:

Desktop

Versions

Kotlin version*: 1.8.20
Compose Multiplatform version*: 1.5.0
OS version(s)* (required for Desktop and iOS issues): macOS Sonoma 14.0 Ubuntu 22.04 Windows 10
OS architecture (x86 or arm64): x86
JDK (for desktop issues): zulu-javafx-17.40.19

To Reproduce
Steps and/or the code snippet to reproduce the behavior:

Create a popup that will pop outside its parent
Create a SwingPanel that will be pop over by the popup created on step 1

Expected behavior
Popup overlay anything else
Screenshots
If applicable, add screenshots to help explain your problem.

Duplicate of #2926

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


[CI Problem] Figure out a way to assert certain tests aren't skipped in CI

Is there a way to verify that a PR hasn't resulted in an increased number of skipped tests?  The "Tests" link in the Jenkins report shows skipped tests, but it looks like that currently includes all tests that are run on other shards, making it very difficult to tell what tests were actually skipped.  (Example, Tests tab for PR#11313, which introduced the bug Mehrdad found, which lists 238k skipped tests, most of which were run on a different shard.)
Brainstorming on possible steps:

When running pytest_collection_modifyitems, if a test is running on another shard, remove it from items entirely instead of...Downside: If a test isn't assigned to any shard, it wouldn't show up in any report as being skipped.
When generating the "Tests" tab in the Jenkins report, only show a test as being skipped if it was skipped on all shards.
If the number of skipped tests has changed relative to the Jenkins report for the previous commit on main, highlight in the PR.
Would require additional github/Jenkins interactions, uncertain how difficult that would be.

Comments

we're working on a bot to comment a link to the docs on a PR. i think maybe we should also add in the # of added/removed/skipped tests somewhere, or perhaps see if Jenkins can know this (edited)
jenkins has some notion of test stats already, it tracks passed tests, failed tests, skipped tests (and ‘fixed tests’: those that were broken but are now passing, and ‘regressed tests’ which is the opposite), we could query for these in the bot for it + the base commit and post them on the PR
option 1 of Eric’s is the cleanest and easiest and I’ve never seen any problems with the sharding but it could silently break in the future
we’ll probably have to do something like option 2 eventually (i.e. post process the junit xml before sending to Jenkins)
would looking at just the number of tests ran (i.e. passed + failed tests) carry the same signal?
we could also run collection one time and produce a count or master list and then fail if each test isn't accounted for
there's also https://pypi.org/project/pytest-shard/
looks like they go the ‘remove from items ’ route: https://github.com/AdamGleave/pytest-shard/blob/master/pytest_shard/pytest_shard.py#L49-L53
added a graph of passed/failed tests to the main ci dashboard, the change is pretty clear
Thank you, and that definitely helps!  I think the passed+failed tests graph is the best visual.  The "skipped" tests has the advantage of being near zero, and therefore being noticed if/when it jumps much higher.  Though, I'm not sure what the number of skipped tests for other reasons (e.g. no GPU on CPU nodes) is, so maybe it would be much farther from zero than I had been imagining.
we can always download a junit XML from a recent build and check it manually
test coverage from pytest or l/gcov for C++ would also tell us about these kinds of things but coverage comes with its own bag of worms
e could also have like a lint step (not sure if it coudl run in lint) that compares the set of skipped tests to an include list of regexes or a master "skippable test list"

CC: @hpanda-naut

@gigiblender is going to look at this one


STAR-1314 Adjust Schema and CFS for CNDB mocked test

Introduces an additional getter in ColumnFamilyStore and increases
usage of its getters, so ColumnFamilyStore can be mocked in a CNDB
test.
Checks properties in Schema for null to avoid NullPointerException.
It happens during CNDB mock test, while releasing resources when
tidy is called on Schema.instance. It's unclear how the properties can
be null.
This PR replaces #444. It minimizes number of changes and keeps inconsistent usage of the affected getters.

I think code to support tests should be avoided if possible; please consider an alternative if possible.

@djatnieks Since it is unclear why it happens, it is difficult to say if it is just related to tests.


zkvm: bump version from 1.0.2 to 1.0.3

putting this in draft until I see tests are passing and I run cargo publish -x


Fix 3.1 ASP.NET shared framework containing unnecessary base sharedfx DLLs

Filing issue for Microsoft-built vs. source-built SDK diff in 3.1.109: https://github.com/dotnet/source-build/pull/1770

I got this: https://gist.github.com/dagood/5b523381aa7200fdfe5fd7e9635853f9
I scanned through and saw that the Microsoft-built SDK doesn't have a few DLLs that source-build does have:
--- /work/testing-smoke/builtCli
+++ /work/microsoft-built-dotnet-sdk-3.1.109.tar.gz
@@ -1781,17 +2487,13 @@
 ./shared/Microsoft.AspNetCore.App/3.1.9/Microsoft.Extensions.WebEncoders.dll
 ./shared/Microsoft.AspNetCore.App/3.1.9/Microsoft.JSInterop.dll
 ./shared/Microsoft.AspNetCore.App/3.1.9/Microsoft.Net.Http.Headers.dll
-./shared/Microsoft.AspNetCore.App/3.1.9/Microsoft.Win32.Registry.dll
 ./shared/Microsoft.AspNetCore.App/3.1.9/Microsoft.Win32.SystemEvents.dll
 ./shared/Microsoft.AspNetCore.App/3.1.9/System.Diagnostics.EventLog.dll
 ./shared/Microsoft.AspNetCore.App/3.1.9/System.Drawing.Common.dll
 ./shared/Microsoft.AspNetCore.App/3.1.9/System.IO.Pipelines.dll
-./shared/Microsoft.AspNetCore.App/3.1.9/System.Security.AccessControl.dll
-./shared/Microsoft.AspNetCore.App/3.1.9/System.Security.Cryptography.Cng.dll
 ./shared/Microsoft.AspNetCore.App/3.1.9/System.Security.Cryptography.Pkcs.dll
 ./shared/Microsoft.AspNetCore.App/3.1.9/System.Security.Cryptography.Xml.dll
 ./shared/Microsoft.AspNetCore.App/3.1.9/System.Security.Permissions.dll
-./shared/Microsoft.AspNetCore.App/3.1.9/System.Security.Principal.Windows.dll
 ./shared/Microsoft.AspNetCore.App/3.1.9/System.Windows.Extensions.dll

ResolvePackageFileConflicts is kicking in while building the ASP.NET Core sharedfx. In the binlog for Microsoft.AspNetCore.App.Runtime.csproj:
Encountered conflict between
  'Platform:Microsoft.Win32.Registry.dll' and
  'CopyLocal:/work/packages/restored/microsoft.win32.registry/4.7.0/runtimes/unix/lib/netcoreapp3.1/Microsoft.Win32.Registry.dll'.
  Choosing 'CopyLocal:/work/packages/restored/microsoft.win32.registry/4.7.0/runtimes/unix/lib/netcoreapp3.1/Microsoft.Win32.Registry.dll'
  because file version '4.700.20.47203' is greater than '4.700.19.56404'.
Encountered conflict between
  'Platform:System.Security.AccessControl.dll' and
  'CopyLocal:/work/packages/restored/system.security.accesscontrol/4.7.0/lib/netstandard2.0/System.Security.AccessControl.dll'.
  Choosing 'CopyLocal:/work/packages/restored/system.security.accesscontrol/4.7.0/lib/netstandard2.0/System.Security.AccessControl.dll'
  because file version '4.700.20.47203' is greater than '4.700.19.56404'.
...

4.700.20.47203 is the version we just source-built in dotnet/corefx. The ASP.NET sharedfx and base sharedfx both carry a copy.
4.700.19.56404 is the version in Microsoft.NETCore.App.Ref/3.1.0.
I think that in theory, these DLLs should be excluded from the ASP.NET Core sharedfx because they're in the base sharedfx. Not sure yet why that happens in the Microsoft build but not source-build.

I looked at a Microsoft build binlog for aspnet, and it looks like the only difference is that the Microsoft.Win32.Registry/4.7.0 it downloads (built back around 3.1.0) has the lower version of the DLL, 4.700.19.56404. The build uses Microsoft.NETCore.App.Ref/3.1.0's platform manifest, listing the old version, 4.700.19.56404. When they are an exact match, ResolvePackageFileConflicts chooses to use the Platform version and doesn't copy it into the sharedfx.
On our side, we rebuild Microsoft.Win32.Registry/4.7.0 with every single source-build, so the DLLs inside get a newer version corresponding with 3.1.9, 4.700.20.47203. The targeting pack isn't rebuilt, and it still has 4.700.19.56404 in the platform manifest. ASP.NET uses the platform manifest in the targeting pack, so it copies the DLLs from Microsoft.Win32.Registry/4.7.0 rather than using Platform's "old" DLLs.
This is yet another way that the Microsoft build reuse of old nupkgs is making a difference in source-build. My current granularity plan/proposal could help with this by testing that the file versions are the same between the old, reused Microsoft-built nupkg and the fresh bits that source-build produces. We already assume and rely on the DLLs being compatible, so making the file version the same so it's treated as part of the platform seems reasonable to me.

As far as I know, the only difference this makes is the 235 kB of extra DLLs...

@ericstj Can you look at this issue and advise if you think there will be a functional issue besides the larger file size with the difference between the source-build build and the "official" build?

There shouldn't be a difference, just an extra copy of the DLLs.  @dougbu might be able to explain why this doesn't happen in Microsoft servicing builds, perhaps ASP.NET pins the package versions to GA?

perhaps ASP.NET pins the package versions to GA?

Yes, this is exactly what our 3.1 infrastructure does. We discussed this during the stablization servicing exercise and decided that pinning wasn't necessary because dotnet/runtime would keep the assembly versions in the "special" dozen packages consistent after GA. I mean "special" in the sense the packages are in Microsoft.AspNetCore.App.Ref or …Runtime but come from dotnet/runtime.
The discrepancies will go away entirely once dotnet/runtime ships all ref/ assemblies that dotnet/aspnetcore needs in Microsoft.NETCore.App.Ref or Microsoft.Extensions.Internal.Transport because we hope never to rev those packages after GA (unlike the loose packages that are so special).

[Scrub] This appears to still be an issue and may be related to the poisoning issues that @NikolaMilosavljevic is currently looking at.


Gradle's gw function name collision with git alias gw

As in title ;)

Good point. What do we want to do about that? I feel that with the multitude of aliases and supported plugins, we will have collisions.
We have a similar discussion in #825 - I'm closing this one now. Please feel free to comment in #825.


Identity server 4 - error The incoming tabular data stream (TDS) protocol stream is incorrect. The MARS TDS header contained errors

V4.0.2
We're receiving spontaneous peaks of errors, that are only shown in application insights, such as:
Microsoft.Data.SqlClient.SqlException (0x80131904): The incoming tabular data stream (TDS) protocol stream is incorrect. The MARS TDS header contained errors.
For the following query:
SELECT [p].[Key], [p].[ClientId], [p].[ConsumedTime], [p].[CreationTime], [p].[Data], [p].[Description], [p].[Expiration], [p].[SessionId], [p].[SubjectId], [p].[Type] FROM [PersistedGrants] AS [p] WHERE [p].[Key] = @__key_0
Connection string contains:
;MultipleActiveResultSets=True;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
Any suggestions?

No idea, sorry.

@brockallen
FYI
https://github.com/dotnet/SqlClient/issues/687
Any use of SqlDataReader or SqlBulkCopy on your side?

Well, we use the EF abstraction layer -- not SqlClient directly.


Multi PubSub 'PubSubName' Abstraction

In what area(s)?

/area runtime
Ask your question here
In the current Multi PubSub implementation the PubSubName is transported via the CloudEvent envelope.
We encountered problems of abstraction in two example scenarios - Here a simplified description:
A service (A) emits a message to the topic "somethingHappend" which is subscribed by two other services (B,C)
These services are, except for the abstracted PubSub channel, completely independent of each other.
But now all services must name their PubSub component identically, otherwise the messages on the topic cannot be consumed.
This creates a service coupling "by naming conventions"
Service (A) receives messages from a PubSub subscription which is not powered by a dapr hosted service (B)
Service B must now know under which PubSubName Service A has included the PubSub.
Because he additionally has to serialize the PubSubName into the CloudEvent envelope as an extension.
I hope this describes the problem to some degree.
shouldn't the PubSubName be noted in the context of the specific pubSub subscription and then be used for further resolution when the event occurs in the context of a message?
I have implemented this as an experiment:
https://github.com/alex-doe/dapr/commit/62efa6a2b97e50554eaa3c37f1a743862be67a52
https://github.com/alex-doe/components-contrib/commit/46ef8e02227670e3dcfcaa2278805be3861e0e43

cc/ @yaron2 @mchmarny @orizohar

I may not get your specific use-case but, the topic name is only unique in the context of a specific component (e.g. comp1/orders or comp2/orders). For two services to exchange events they must be using the same, fully qualified topic. So yes, all services subscribing to the same topic must name their PubSub component identically.
We are in a process of enabling subscriptions declaratively, which may to some degree allow you to "de-couple" these subscribers. Would that help?

And this is exactly where we asked ourselves the, admittedly heretical, question whether it is necessary/correct that all services must share the same name for a pubsub component. This leads to a (technical) coupling between producer and consumer.
Maybe a more detailed description of one of our use-cases can give a better insight:
We have an external, onpremise [windows service ugh], system which emits events in Azure ServiceBus.
Now we consume these events via a dapr-enabled service in the cloud for further processing. If we emit the events onPremise we have to add the component name in the CloudEvent envelope according to the current dapr implementation.
If we now must change this component name, it is necessary to update all onpremise systems. This means that a technical implementation detail is dragged across the boundaries of an abstract pubsub component.
IMHO producer and consumer should not have a coupling.
Dapr Documentation:
https://github.com/dapr/docs/tree/master/howto/consume-topic#use-pubsub-to-consume-messages-from-topics

Pub/Sub is a very common pattern in a distributed system with many services that want to utilize decoupled, asynchronous messaging. Using Pub/Sub, you can enable scenarios where event consumers are decoupled from event producers.

MS Architecture Docs:
https://docs.microsoft.com/en-us/azure/architecture/guide/architecture-styles/event-driven

Producers and consumers are decoupled.
No point-to-point integrations. It's easy to add new consumers to the system.

Events, Data Points, and Messages by Clemens Vasters:
https://azure.microsoft.com/de-de/blog/events-data-points-and-messages-choosing-the-right-azure-messaging-service-for-your-data/

The core of the sales support application isn’t telling those two subscribers what to do and isn’t even aware of them. They are authorized consumers of events published by the source application, but the coupling is very loose, and removing these consumers doesn’t impact the source application’s functional integrity.

Please don't misunderstand, I would like to discuss if the current implementation does not break with the core idea of technological decoupling. Which, in my opinion, will make dapr a gigantic enrichment in software development.
But maybe I haven't quite understood the Dapr PubSub concept yet :-D
Here my understanding:
When starting the dapr Runtime all configured "PubSub" components are loaded.
Then for each component a subscription in the specific pubSub component implementation is ensured, and a new message callback is passed to the concrete component subscription. Because a subscription is created for each component, the name of the component could also be stored here and transferred for further routing when a new event/message occurs.
This would mean that the event producer does not need to have any knowledge about its consumers.
But maybe I understand it also completely wrong

Thanks for the additional clarity, @alex-doe. I think understand it now. Let me look into this and get back to you.

Looks like this was a side effect of the multiple pub/sub support we added in v.0.10. Fix is already in on schedule for v0.11 here


Update and secure several references

Here we work our way through all insecure http references in the repository, update the ones where the old references would lead to 404s or have otherwise been moved, and change the references to use https where possible. In each case, we've manually checked that the updated references work as expected.
For reference, the remaining insecure references are the following; we've left the ones used in tests unchanged, as well as the ones used as apt repositories (for which the fetching of the gpg key has been secured):
$ grep --exclude *.svg -r "http:" .
./.github/ISSUE_TEMPLATE.md:    -  [Craft Minimal Bug Reports](http://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports)
./continuous_integration/hdfs/Dockerfile:RUN curl -s http://archive.cloudera.com/cdh5/ubuntu/xenial/amd64/cdh/archive.key | apt-key add - && \
./continuous_integration/hdfs/Dockerfile:    echo 'deb [arch=amd64] http://archive.cloudera.com/cdh5/ubuntu/xenial/amd64/cdh xenial-cdh5 contrib' > /etc/apt/sources.list.d/cloudera.list && \
./continuous_integration/hdfs/Dockerfile:    echo 'deb-src http://archive.cloudera.com/cdh5/ubuntu/xenial/amd64/cdh xenial-cdh5 contrib' >> /etc/apt/sources.list.d/cloudera.list && \
./dask/bag/core.py:    >>> a = from_url('http://raw.githubusercontent.com/dask/dask/master/README.rst')  # doctest: +SKIP
./dask/bag/core.py:    >>> b = from_url(['http://github.com', 'http://google.com'])  # doctest: +SKIP
./dask/bag/tests/test_bag.py:    a = db.from_url(['http://google.com', 'http://github.com'])
./dask/bag/tests/test_bag.py:    b = db.from_url('http://raw.githubusercontent.com/dask/dask/master/README.rst')
./dask/bytes/tests/test_bytes_utils.py:    u = 'http://<IP_ADDRESS>:8080/test.csv'
./dask/bytes/tests/test_http.py:                requests.get('http://localhost:8999')
./dask/bytes/tests/test_http.py:    root = 'http://localhost:8999/'
./dask/bytes/tests/test_http.py:    root = 'http://localhost:8999/'
./dask/bytes/tests/test_http.py:    root = 'http://localhost:8999/'
./dask/bytes/tests/test_http.py:    root = 'http://localhost:8999/'
./dask/bytes/tests/test_http.py:    f = open_files('http://localhost:8999/doesnotexist')[0]
./dask/bytes/tests/test_http.py:    f = open_files('http://nohost/')[0]
./dask/bytes/tests/test_http.py:    root = 'http://localhost:8999/'
./dask/bytes/tests/test_http.py:    root = 'http://localhost:8999/'
Binary file ./docs/source/daskcheatsheet.pdf matches
./docs/source/debugging.rst:``http://scheduler:8787/``, ``http://scheduler:8788/``, and ``http://worker:8789/``,
./docs/source/diagnostics-distributed.rst:It is typically served at http://localhost:8787/status ,
./docs/source/futures.rst:diagnostic dashboard at http://localhost:8787 .
./docs/source/remote-data-services.rst:- **HTTP(s)**: ``http://`` or ``https://`` for reading data directly from HTTP web servers
./docs/source/remote-data-services.rst:                "endpoint_url": "http://some-region.some-s3-compatible.com",
./docs/source/remote-data-services.rst:Note that, currently, ``http://`` and ``https://`` are treated as separate protocols,
./docs/source/setup/single-distributed.rst:You can navigate to http://localhost:8787/status to see the diagnostic
./docs/source/spark.rst:.. _`complex algorithms`: http://matthewrocklin.com/blog/work/2015/06/26/Complex-Graphs
./docs/source/support.rst:    <http://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports>`_
./docs/source/use-cases.rst:.. _Celery: http://www.celeryproject.org/

I have checked a good sample of the links here, and everything seems to check out. I left one comment only. I wonder if it would be possible to regularly check all the links in the project to find defunct ones.
In any case, I am satisfied that the changes here are reasonable, but I had not realised that they are necessary. Might there be a downside to linking to HTTPS for every external resource?

A script for running through an entire git repository checking for broken links sounds like something that would be so useful that it ought to already exist; never saw such a thing though.
Necessity is in the eye of the beholder. Almost all of the references here would redirect to https on their own, and for those the only thing achieved by the changes here is that the user gets to skip a redirect (and thus a potential MITM vector, small as it may be). When I went through the exercise regardless it was mainly in the interest of pursuing "HTTPS Everywhere"; in particular figuring out if there is anything that keeps the dask subdomains from just redirecting everything to https on their own (cf. https://github.com/dask/dask.github.io/pull/2), and whether or not there should be rulesets in https://github.com/EFForg/https-everywhere for the dask (and related pydata) pages.
Regarding downsides, the main one would be the potential issues caused by any of the external references one day deciding that they no longer want to support secure requests. This tends not to be very likely as it would break all references to the site in question already relying on HTTPS being supported, and at the same time, HTTPS is slowly but steadily becoming the default across the web (with browsers opting to label plain-HTTP requests as "insecure" in near future).

Sphinx has a built-in linkcheck builder which will try to open the all external links with requests to see if they work. It can be run via make linkcheck in dask/docs.
I don't have much experience with linkcheck, but it sounds useful.


Add type hints

It looks like botocore is one of the most used Python packages according to the PyPI stats. And it lacks of PEP 484 type hints. I'm pretty sure that adding it here will evolve all the Python ecosystem, make it more usable, static code analyzers will become more smart and will help us write better code.
I see that typeshed repo already has annotations for boto package but not for boto3 or botocore. By the way it is preferable for packages to store and distribute type hints themselves, not via typeshed.
What do you think? Does adding type hints worth the effort?

@and-semakin - Thank you for your post. We are already tracking this feature request under the github issue #1725. We also have a repo(https://github.com/boto/botostubs) supporting them but that is not recommended to use yet.

I am closing this issue as a duplicate. Let's track the progress of this issue under the linked GitHub issue #1725


Add conditional, loop and other coverage tests

Provide options for all types of coverage tests
Conditional coverage or more precise multiple condition coverage
Is every possible combination in a bitwise operation (e.g. a && b) tested?
Loop coverage
Is the loop executed zero times, once and more than once? (except do{ }while(); - once and more than once)
Relational comparision coverage
E.g. if (a > b). To fully cover, the code should be tested with a equal, lower and greater than b.

Is this part of that big change you're making or is this slated for later?

later... just ideas. (and I'm still busy ;))


Modal bug

dupe of https://github.com/twbs/bootstrap/issues/23173 - fixed in https://github.com/twbs/bootstrap/pull/21743


fortran-fpm: init at 0.9.0

Description of changes
fpm is the package manager and build system for Fortran.
https://fpm.fortran-lang.org
Things done

Built on platform(s)

[x] x86_64-linux
[x] aarch64-linux
[ ] x86_64-darwin
[x] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

 I will merge this once you have done that.

@Janik-Haag Whoops, I figured everything would be squash-merged so I left it alone, but it's all set now.

No problem, I just checked the when approving and reviewed the entire PR before merging and that's when I noticed it ^^
Just waiting for ci now :D


Windows should not overlap when MONITOR_ZOOM > 1 and MONITOR_DUAL = 1

Quick fix to overlapping SDL windows when MONITOR_DUAL enabled and MONITOR_ZOOM greater than 1.

Looks good; thank you for the fix!


Doesn't work on Samsung Galaxy s5

Just tried this in a mobile app I built. The code I used is:
noSleep = new NoSleep();
function enableNoSleep() {
  noSleep.enable();
  document.removeEventListener('touchstart', enableNoSleep, false);
}

document.addEventListener('touchstart', enableNoSleep, false);

Did nothing to stop the screen from going to sleep.

Does it work if you wrap this instead in a click event handler? Which
browser (+ version) are you using?

No. I figured out why -- my mobile app is html5 and so the js doesn't work unless directly run from a browser. what i ended up doing to make it "work" is inserting a 1px 1 second silent mp4 file video html5 tag onto the page with autoplay and loop properties set. That way, it forces it to stay open :(