bug(ci): java binding test on main frequent timeout

Describe the bug
https://buildkite.com/risingwavelabs/main/builds/3955#0187b6cc-0f49-46ed-8f37-a65515eb5a06

Seems like java binding test frequently time out.
Additionally this error is received:Cannot kill container: XYZ: Container XYZ is not running

Seems strange that container is not running?

To Reproduce
No response
Expected behavior
No timeout, should not see that error message either.
I don't think we can just increase timeout to fix it, seems like there may be some underlying issue...
Additional context
No response

Does it depend on risingwave_connector? If so, we should build_depends on build-other as well.
Can we enable some logs in the test binary? I did not spot anything suspicious in the cluster logs.

Hmm actually could just be increase timeout, there was some latency in using docker compose and starting dependencies steps ~1min:
Current (time out 1min):

Previous (no timeout 10s):

Otherwise it would have been under the 5 min required.


Add Support for Windows - [Feature]

Describe the feature
Add support for Windows. The program and the CMake file should be designed to work on Linux and Windows.

This is not easy for me to implement.


Enable simple getters/setters by default.

Right now, even simple getters trigger the "Enable unsafe getters" warning:
class …{
  _isActive:boolean = false;

  get isActive():boolean {
    return this._isActive;
  }
}

I understand that for complicated getters/setters, side effects are hard to track; however, simple getters (like the example) are a common pattern for exposing a read-only variable.  Is it reasonable to make support for getters that don't contain function calls enabled by default?
Of course, if you get a property from another object and the other object's getter contains a side effect, that might be hard for Flow to track.  (I imagine that's why support is currently in the state it is.)  However, if Flow is also checking the source getter, it would report the potential side-effect there.

I'd even be OK with something like experimental.enable_simple_getters=true.  It just makes me cringe that I'm enabling an unsafe flag for something that should be both common and harmless.

This is intentional. Getters/setters are unsafe because we treat them as regular object get/sets when they are used instead of function calls.


maintainers.csv: update companies

As pointed out in https://github.com/cncf/foundation/pull/909, @ThatsMrTalbot's company has changed.

/lgtm
/approve


Update are_circuits_dynamic behavior

Summary
In this comment, I recommended changing are_circuits_dynamic() behavior to return False if the input circuit is a string, so it doesn't block static circuits in QASM format. However, that would cause the existing backend.run to call circuit-runner instead of qasm3-runner if the input is QASM. I'm not sure that's supported by circuit-runner, but it's best not to make the change.
Details and comments
Fixes #

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

3 of 3 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 83.632%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
6244

Relevant Lines:
7466

💛  - Coveralls


[resoto][chore] Remove plugins that are now InfraApps

Code of Conduct
By submitting this pull request, I agree to follow the code of conduct.

Several of our how-to guides (e.g., https://resoto.com/docs/how-to-guides/cleanup/clean-up-expired-resources) use plugins. We should update these prior to removing these plugins.
There's also a plugins section we can just remove (https://resoto.com/docs/reference/components/plugins), but we should make sure there are appropriate places to redirect each of these -- perhaps to the top-level module pages until we have documentation of the apps? 🤔  Or, do we just rename the plugins section to "Infrastructure Apps"?

@TheCatLady the other concern is that plugins are not 1:1 compatible with Infra Apps. There is an infra app that's performing the same task, but the configuration has to be migrated by the users. That's why we'll keep the plugins until 3.7.

@TheCatLady the other concern is that plugins are not 1:1 compatible with Infra Apps. For each plugin there is an infra app that's performing the same task, but the configuration has to be migrated by the users. That's why we'll keep the plugins until 3.7.

Sounds good. Prior to merging this, we should update the edge-versioned docs. Then, when 3.7 is released, we should update the 3.X docs.

Since this PR will not be merged in the next couple of days, I will close it.
We can reopen it, once the time has come.


Errors and failures should be logged

Is this a bug report or feature request?

Feature Request

What should the feature do: Some of the Crossplane controllers do not log anything at all when there are errors or failures.  We do a good job of capturing errors in status conditions on CRDs, but there is sometimes zero logging to help troubleshoot an issue.  We should take a pass through the controllers and log when any errors or failures happen.
What is use case behind this feature: It greatly helps troubleshooting and helping out our users when they can simply share the crossplane pod logs that will show all failures that occurred.  Currently, we have to help them find the correct object to look up status conditions on and often this is a chain of objects, e.g. bucket claim -> concrete bucket -> provider object.  This requires a lot of back and forth with the user and it's not intuitive for them to figure out on their own.
See the following Slack conversation for a great example of this:
https://crossplane.slack.com/archives/CEF5N8X08/p1551900157039900
I understand avoiding log bloat, but especially in the early phases of a project we need more consolidated logging of errors to streamline troubleshooting with our users and to allow them to self-service debug as well.  We can always dial back logging later on as the project gets more stable.

I think it's really important to remember that most users of Crossplane won't necessarily have access to the pod logs to debug what is happening. I'm all for making it easier to figure out what Crossplane is doing, but let's not forget that we have several tools in our toolbox here, including:

Info level logging (core audience: cluster operators)
Debug logging (core audience: Crossplane developers)
The Synced conditioned status (core audience: Crossplane users)
Kubernetes events (core audience: Crossplane users)
Timeseries (e.g. Prometheus) data (core audience: cluster operators)

Just looking at their MySQLInstance instance won't give them enough information to know that the real underlying error is probably going to actually be on the CloudSQLInstance object instead. Furthermore, the concrete object is currently in a different namespace than the claim, which makes it even harder to figure out.

This is an important case to consider, but I would argue the solution is to ensure people who create a MySQLInstance can easily discover and view the CloudSQLInstance that satisfies that claim. Not only to view the status of the underlying managed resource, but to determine what shape of managed resource was provisioned to satsify your claim.

I agree having the required information in events and status of resources should be enough for users. We should better focus on providing some kind of tooling which pieces things together.
A trace command in cli looks could help here.

Relates to https://github.com/crossplaneio/crossplane/pull/858


Feature Requests for Premium

Hi Volkan,
Not sure where to put this request so putting it here. It would be great to consider adding these features to the premium solution.

Add diagramming NuGet from some open source with these samples:
a. Organizational chart from Contacts. (Have to add ParentContactId field). Printable and PDF.
b. Show a basic business process. Printable and PDF. I plan to used for user documentation in app.
Show how to add Detail page to a master page where the detail page is a form and not a grid (like New Meetings with attendees). Also, the detail form is not a popup like in the orders example. For example, Master page shows New Order header information, then the user picks an inventory item from a self-referencing drop-down or tree (preferred). After picking, it shows the New OrderLine as a form and not a grid like in New Meetings. After the user completes the first OrderLine, they can add another OrderLine (#2), etc. (which is another instance of OrderLine form). When saving, the Order and OrderLines are saved as a transaction and the OrderLine's OrderId field is populated.

Thanks for the considerations.
Scott

Moved to Premium GitHub. Sorry...Scott


Issue #13: allowed concatenate custom values

The EmojiName type can now take any string value, which increases DX by not having to create hard-to-read constructs to concatenate anything that isn't an emoji.
By the way, the string & {} construction allows to leave autocompletion working.

@andrrms is not responding. I sent another DM now, but if we are being left in silence, I'll take over.

Thank you so much for your contribution.
@KnorpelSenf and I discussed few things about this plugin, so, we won't be releasing a new version if you are planning to re-write the plugin soon. It is mostly because of #16 actually, where we realised that we weren't using official names for emoji, instead we were using what Emojipedia named them. So, in that pull request the updated list contains some breaking name changes, because we corrected some. So, now we have two options:

Merge both #16 and this PQ, and release a MINOR version. So even if the users update the plugin, instead of empty strings for emoji with corrected names, there'll at least be its old name.
Wait for your re-write PQ (if you are able to work on it), so, if you want to, you can have some breaking changes there; so when we release a MAJOR version with that, the corrected names won't be an issue.

I'm in favour of 2. So, for now, we'll just merge this and keep the plugin up-to-date. Let us know about the reworked plugin plans. Thanks again.

Great! I'll be working on reworking the plugin in a few days. You won't have to wait long.
In general, I only want to fix the structure of the plugin. There will be no significant changes to the plugin's functionality. If there is something you want to change or add, please let me know, I will be very interested to work on it.


Class RibbonLoadBalanceClient must either be declared abstract or implement abstract method choose(String, Request)

Hey! Did you figure out the cause of this issue?


Credhub --version hangs when unable to communicate with the server

Sometimes it is necessary to determine the local CLI version before connecting to the server.
Feature proposal: credhub --version currently waits for the backend connection before reporting the CLI version. It would be better if the local version would be displayed instantly regardless of the ability to connect to the API backend.

@jhvhs This was addressed in 1.5.3. Can you give it a shot and close the issue if you feel your request has been addressed?

Closed due to lack of response.


[docker] Change base image to python:3.8-slim

The official Python images offer varying degrees of version specificity.
By changing to python:3.8-slim the build process will use the latest
available 3.8 version, which at this commit was 3.8.6, instead of
being locked to Python 3.8.1.
Signed-off-by: Avi Miller<EMAIL_ADDRESS>

Thanks. I've re-enabled arm64 and changed to python3.9 https://github.com/delfick/photons/commit/bfa29b1d7d33664096f4562e50b576d73aea8d2a
I thought I'd be clever and make it create an image with a different tag, but didn't realise the tag is from source and not from the git tag used to build, so 0.7.8 docker image is now pushed with python3.9
Either way, either different base image fixed it or the problem the other day was temporary :)


Assign feed item's categories to post.

Assign feed item's categories to post.
Changed htmlparser2 to node-feedparser

Awesome work. The only thing I would suggest is maybe comment the code a little bit more? Especially the categories stuff, since there's a lot of different variables with similar names.

Merged on devel.

Why is there an if here?
https://github.com/delgermurun/Telescope/blob/post-by-feed-fix/packages/telescope-post-by-feed/lib/server/fetch_feeds.js#L33
Shouldn't we want to add feed categories even if the item has no RSS categories? Or maybe I don't understand that part?

Oh ok never mind, I get it. I think I would just do itemCategories.concat(feedCategories), it's ok if itemCategories is empty.

Let me know what you think of my changes: https://github.com/TelescopeJS/Telescope/commit/7be7276980909a2d7b5770c9086ce12094fcd67c :)

@SachaG nice refactor :+1: I forgot about duplicating :)


2.2.3 请求静态文件 499，添加proxy_ignore_client_abort  on;依然报499

Question

@xuelangos 请按照 Bug report 格式提问。
### Ⅰ. Issue Description

### Ⅱ. Describe what happened

### Ⅲ. Describe what you expected to happen

### Ⅳ. How to reproduce it (as minimally and precisely as possible)

1.
2.
3.

### Ⅴ. Anything else we need to know?

1. If applicable, add nginx  [debug log doc](http://nginx.org/en/docs/debugging_log.html).
2.
3.

### Ⅵ. Environment:

- Tengine version (use `sbin/nginx -V`):
- OS (e.g. from /etc/os-release):
- Kernel (e.g. `uname -a`):
- Others:


Removed old xxx_static.h header references from VS2010 project

Removed reference to the old ..._static.h files from the .vcxproj of the VS2012 solution.
VS does not seem to complain when a reference .h is missing (only when you click on the file in the Solution Explorer to open it), but I figured it would be better if they are removed.
Note that I updated the project with VS2015, which also updated the .vcxproj.filters files to add some stuff (maybe they were out of sync?). I think the .vcxproj.filters files are not used by msbuild, so it should not impact the command line build.

Removed old xxx_static.h header references

That's a good point !

Note that I updated the project with VS2015, which also updated the .vcxproj.filters files to add some stuff (maybe they were out of sync?).

The objective is to have project files compatible from VS2010 to VS2015 (through automatic upgrade process). It seems also necessary for appveyor tests, which check compatibility with all these compilers.
Let's see if it still works as intended...

I could check that Visual projects can still be opened and upgraded using Visual 2012.
Appveyor tests seem to work fine too.
So it looks fine from my perspective


WhatsApp Notifications not working on Windows 11

#For some reason, whenever somebody sends me a whatsapp notification, it doesn't show up in the notification center in Windows 11. And when I check notification settings in the Settings app, station isn't even an option in the list. Leads me to believe this is a issue with station.
Best wishes,
Gold-Nice

Same here, I get a notification for WhatsApp in the Notification sidebar, but no badge in the taksbar. Can this be fixed, please?
Thanks in advance, Marcel

#177


PostgreSQL create function

Hi guys!
When I create function in PostgreSQL I see follow window:

But PostgreSQL has only CREATE FUNCTION statement. So I propose next behaviour: instead "Type" include point "Language" and show installed languages in drop-down list. Selected language insert after LANGUAGE keyword in head of function instead keyword "SQL".
And I think that empty filed "Name" with non-empty require is more right then autonaming.

Good point.

I'm sorry. But when I created this issue I didn't know that PostgreSQL 11 include "CREATE PROCEDURE" statement: https://www.cybertec-postgresql.com/en/tech-preview-postgresql-11-create-procedure/
So, There is need to check of server version PostgreSQL and if it 11+ then add point "Type" with "CREATE PROCEDURE" statement when choice of type is "PROCEDURE"
I'm sorry.


v2 Qualification Test Updates

Overview
IN WORK:
qual tests
Notes:

In the case of NA values for GroupID the data pipeline breaks down at the Transform_Rate step, which has a stop clause for that situation. I have incorporated logic in the Input_Rate step to filter out cases of NA GroupID and informing the user how many cases there were when processing the yaml

sounds good, @andersonjake1988. Can you make sure this branch is up to date with dev so that we are testing the most recent versions of the functions, and any edits to the codebase won't lead to conflicts when we try to get this merged in?

NOTES:

not sure if there is a reason, but I noticed the yamls for kri's and cou's 6, 7, and 12 have a nMinDenominator of 3 when everything else has 30.

These qual tests all pass, and are appropriate, but since each file contains more than one test, the qualification report does not render properly. Since tests are run in an imap, there isn't a way to separate the test files, but I want to be able to account for each individual test. I know there some tweaks i need to make to the Qualification.Rmd, but see screenshot below for what i'm talking about - 24 tests and 311 tests pass... @jwildfire

These qual tests all pass, and are appropriate, but since each file contains more than one test, the qualification report does not render properly. Since tests are run in an imap, there isn't a way to separate the test files, but I want to be able to account for each individual test. I know there are some tweaks i need to make to the Qualification.Rmd, but see screenshot below for what i'm talking about - 24 tests and 311 tests pass... @jwildfire

Agreed. We'll want these split out into multiple line items in the report.

qualification report is fixed! will merge in shortly :)

QualificationWorkflow.Rmd still needs a bit of work. hoping to be able to get it done quickly


How to add new available language?

I want to use other languages,but it only show English in my Sandbox.
How to add available language options in my sandbox?Thanks.

I have read the following answer from Microsoft on Yammer:

We have enabled multi languages for the countries where is required e.g. Switzerland has Italian, French, German and English. For all non-English country versions we have added English as an option. For the Fall release we are also enabling the capability of being able to load additional languages through an extension.

Yes, we are developing language pack through an extension now.
But does anyone know how can we switch language to our target language in D365 BC?
Or is there anything else we should do or pack in to extension besides translation file?
Thanks,

Are you talking about the .txt or the .xliff translation file?

It is currently not possible to enable a new language in BC. We are working on a solution that will ship together with W1 being made available.


can't login in

🐛 Bug Report
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior.
Expected behavior
A clear and concise description of what you expected to happen.
Extension Output
Paste here the LeetCode extension log from output channel.
Guidance: Press Ctrl+Shift+U, and toggle the channel to LeetCode.
Your Environment

os:  linux
extension settings:
nodejs version:v10.15.3
vscode version:1.3.1
extension version:

login: pass: - Signing in leetcode.com
[ERROR] Error: tunneling socket could not be established, cause=write EPROTO<PHONE_NUMBER>83328:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:252:

Please check: https://github.com/jdneo/vscode-leetcode/wiki/Troubleshooting

Can't login VS code leetcode.com, the leetcode plugin version is 0.15.7. I can use the user name and password login leetcode.com in Chrome.


Create migration guide from Legacy to new Layout for Ansible Projects

We need also create a migration guide doc as we did for Helm/Go for Ansible projects.

c/c @asmacdo @fabianvf


Server weight zero

What does this PR do?
Currently, a server with a  weight of 0 continue to receive calls: it's because if a server have a weight of 0 the real weight is 1.
These PR change this behavior:

a server with a weight of 0 will have a real weight of 0.
if a server have a weight of 0, the server will be removed from the available servers.

Motivation
Fixes #1294
More

[x] Added/updated tests

Additional Notes
Related to https://github.com/vulcand/oxy/pull/121, https://github.com/containous/oxy/pull/18, #1780

@ldez @timoreimann  if 0 weight is semantically equal with 1 weight, how could we isolate or make a server unreachable 🧐A potential 0-weight use case is for canary release in which sometimes we want to do a 0% canary release or rollback.

Looking forward to this one too!

AllowMinWeightZero in toml might need to be renamed to allowMinWeightZero for consistency with other params (https://github.com/containous/traefik/pull/3132)


Dev/brih/feature/public preview sql db

This PR contains final updates for SQL DB public preview:

updates database backup page name to more general description
add PREVIEW text to SQL DB migration text
bump version to 1.0.6 for next release
fix bug to update source / target table mapping UX
fix bug to prevent invalid username or password being edited and passed onto the migration
update readme to include SQL DB migration scenario

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
4 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.01%) to 42.442%

Files with Coverage Reduction
New Missed Lines
%

extensions/notebook/src/jupyter/serverInstance.ts
4
75.5%

Totals

Change from base Build<PHONE_NUMBER>:
-0.01%

Covered Lines:
29239

Relevant Lines:
64081

💛  - Coveralls


[android_intent_plus] issues from Flutter repository

Todo

[x] https://github.com/flutter/flutter/issues/71518 solved by us
[x] https://github.com/flutter/flutter/issues/65533 solved by us
[x] ~~https://github.com/flutter/flutter/issues/57431~~ missing info
[x] https://github.com/flutter/flutter/issues/54362
[x] ~~https://github.com/flutter/flutter/issues/52531~~ already solved
[x] ~~https://github.com/flutter/flutter/issues/45185~~ unrelated
[x] ~~https://github.com/flutter/flutter/issues/43194~~ already solved in another package
[x] ~~https://github.com/flutter/flutter/issues/38701~~ already solved
[x] ~~https://github.com/flutter/flutter/issues/34296~~ cannot be solved

Check all issues for this plugin

Looking into flutter/flutter#71518

Looking into flutter/flutter#65533

Looking into flutter/flutter#65533

https://github.com/flutter/flutter/issues/57431 is missing information (no example data)
flutter/flutter#54362 could be solved by us
https://github.com/flutter/flutter/issues/52531 seems already resolved
flutter/flutter#45185 seems unrelated
flutter/flutter#43194 solved in another package
flutter/flutter#38701 already supported
https://github.com/flutter/flutter/issues/34296 doesn't seem valid

So from the rest of the list, only flutter/flutter#54362  seems solvable

https://github.com/flutter/flutter/issues/57431 is missing information (no example data)
flutter/flutter#54362 could be solved by us
https://github.com/flutter/flutter/issues/52531 seems already resolved
flutter/flutter#45185 seems unrelated
flutter/flutter#43194 solved in another package
flutter/flutter#38701 already supported
https://github.com/flutter/flutter/issues/34296 doesn't seem valid

So from the rest of the list, only flutter/flutter#54362  seems solvable

The problem with Intent Plugin: Type Mismatch between Dart's List vs Java String[] flutter/flutter#54362 is we are using the bundle.putStringArrayList method instead of bundle.putStringArray to pass the email addresses or other array arguments.
So since both methods may have different use cases, I am thinking to introduce a new field in the AndroidIntent class called arrayArguments or something like that in addition to the current arguments field we have, so that we can pass array arguments to be put into the bundle using the bundle.putStringArray method.
What do you think @miquelbeltran @mhadaily?

it seems a good solution, what do you think @miquelbeltran

Yay, all issues from the original Flutter repository are fixed. Awesome!


Ll uarte

Alternative PR instead of #186.

Is this still being discussed and how could I help getting this or #186 merged?


chore: remove repetitive word

Thanks!
@bors r+

:pushpin: Commit b540813a90aa2a47afc824e91be99d92dea689a5 has been approved by ehuss
It is now in the queue for this repository.

:hourglass: Testing commit b540813a90aa2a47afc824e91be99d92dea689a5 with merge 7065f0ef4aa267a7455e1c478b5ccacb7baea59c...

:sunny: Test successful - checks-actions
Approved by: ehuss
Pushing 7065f0ef4aa267a7455e1c478b5ccacb7baea59c to master...


Wrong information about possibility to test this scenario with free subscription - limit for vcore in region (max 4) is denying cluster creation

Following steps with MPN subscription or free subscription there is a validation message which say:
"There are not enough cores available to support the selected number of nodes. Please adjust the number of worker nodes selected or pick a different region."
Even when specifying minimum configuration:
head nodes (x2): 2 cores
zookeeper node (x3): 1 core
worker node (x1): 2 cores
It is not possible to pass this step to create HDinsight cluster for hadoop.
Based on information here:
https://docs.microsoft.com/en-us/answers/questions/206236/unable-to-create-hdinsight-cluster-using-microsoft.html
It is not possible to use MPN/Free subscription to test HDinsight.
(see comment PRADEEPCHEEKATLA-MSFT answered · Dec 22 2020 at 9:39 AM)
Grzegorz

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

ID: ff7f7847-e8d8-8eee-86f9-68bd847ad06a
Version Independent ID: 0b929a2c-9f76-6c07-56fb-2a41055d26f6
Content: Tutorial: Extract, transform, and load data by using Azure HDInsight
Content Source: articles/storage/blobs/data-lake-storage-tutorial-extract-transform-load-hive.md
Service: storage
Sub-service: data-lake-storage-gen2
GitHub Login: @normesta
Microsoft Alias: normesta

Thanks for reporting this. I have assigned the issue to the content author to investigate further and update the document as appropriate.

Thanks @gkoperczak001! This looks like an issue with successfully completing the steps of a separate article. This specific article points that one, but I don't believe this specific article contains the problematic step. The doc issue likely best belongs in that article for the appropriate author to track - (https://docs.microsoft.com/en-us/azure/hdinsight/hadoop/apache-hadoop-linux-create-cluster-get-started-portal). That said, I've passed this information onto the author of that article for review.  Thank you again.
#please-close

I think you'd need to work with support via the Azure portal to raise the compute quota on the subscription. Its pretty easy, but I don't have access to a trial account to test it.
The doc explains it pretty well here: https://docs.microsoft.com/en-us/azure/hdinsight/quota-increase-request

As far as i understand (from mentioned community response) we cant increase such limits in trial/mpn subscriptions. But i could be wrong.
Grzegorz

Wiadomość napisana przez Jason Howell @.***> w dniu 08.07.2021, o godz. 01:59:

I think you'd need to work with support via the Azure portal to raise the compute quota on the subscription. Its pretty easy, but I don't have access to a trial account to test it.
The doc explains it pretty well here: https://docs.microsoft.com/en-us/azure/hdinsight/quota-increase-request
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.


#4 Start implementing conda support

Closes #4 on merge

Thanks for putting this environment together!  I have not been maintaining this repository, and it was being used for some prototyping. This repo has a great NeRF implementation: https://github.com/google-research/multinerf


Fine tuning kosmos-2

Hi @pengzhiliang.  I only have question answer pairs but not bounding boxes. I was wondering that I should use <grounding> or not. I mean should I use <grounding> Question: Are there any <phrase>cats</phrase> in the image?  Answer: label or Question: Are there any <phrase>cats</phrase> in the image?  Answer: label. I am using Kosmos2ForConditionalGeneration.
and another question: is it rational to use Kosmos2ForConditionalGeneration for fine tuning or not?

Thanks for your attention and answer. @pengzhiliang


Merge Release 4.10.1 into Master

Can you resolve the conflicts?

Sorry, didn't notice there is conflict. The conflict is fixed in release-4.10.1-dup and will be merged to master at #896. Closing this one since both release-4.10.1 and master is readonly.


Show the % of Utilization for Child Prefixes

Issue type
[X] Feature request
[ ] Bug report
[ ] Documentation

Environment

Python version:  3.5.2
NetBox version: 2.1.4

Description
IP Space -> Prefixes shows the % of Utilization for every Prefix.
I really like this feature, please add this also for every Prefix with Child Prefixes.
So that the % of Utilization for every Child Prefix would be displayed in the Child Prefixes Listing.

That would indeed be a nice feature to have


Improved Error Messaging

Currently we do not display errors well for the user. For example, if you are using a chain that Uniswap does not support, the TokenSwap agent will not show a proper error to the user.

this has been done in #196


Optimise tail-recursive calls

In jaq 1.0, tail-recursive calls are not optimised, unlike in jq 1.6 (and 1.7).
This issue serves to propose a solution how to optimise tail-recursive calls in jaq.
First, let me give a few examples where jaq is slower than jq due to missing tail-recursive call optimisation (TCO):

jq -n 'def from: ., (.+1 | from); 0 | from'
jq -n 'def upto($max): select(. < $max) | ., (.+1 | upto($max)); 0 | upto(100000)' (gets slower in jq over time)
jq -n 'def upto($max): def rec: select(. < $max) | ., (.+1 | rec); rec; 0 | upto(100000)' (much faster version of the above)
jq -n 'def pyramid($max): def rec: select(. < $max) | (., (.+1 | rec), .); rec; 0 | pyramid(100000)'
jq -n 'def repeat(f): def rec: f, rec; rec; limit(100000; repeat(1,2))'
jq -n 'def tree($d): def rec: select(. < $d) | (., (.+1 | (rec, rec))); rec; 0 | tree(18)' (almost as fast in jaq as in jq)

Let me now give a hand-waving definition of what a tail-recursive call actually is.
When we have a definition def rec($x1, ..., $xn): tr, then tail-recursive filters are those that match tr, which is any of the following expressions:

tr, tr
f | tr
if f then tr else tr end
try f catch tr
f // tr
rec(...) (call to rec)

The instances of rec(...) in tr are the tail-recursive calls to rec. In other words, any subterm of f can not contain TCs.
Looking at it differently, a call to a function rec is tail-recursive if its outputs are returned unchanged by its parent call.
This does not consider nested (recursive) filter definitions, but it should hopefully be enough to get the gist of it.
How can we now implement TCO? I propose the following plan of attack, which consists of modifying jaq-interpret as follows:

Modify the Call variant of Filter to include a field tail_rec: bool.
In LIR/MIR generation, identify all tail-recursive calls and set their tail_rec to true. Doing such a change might be also a good time to revisit LIR/MIR generation in general, which is a bit messy right now.
When entering a recursive function, set up a stack of ValRs that initially just contains the right-hand side of the filter definition. This could take inspiration from results::recurse.
Whenever we hit a TC, this should throw an Error variant such as TailRec { id: usize, input: Val, args: Vec<Val> }. This error bubbles up, and when it reaches the recursive function call that matches its id, it should be caught and the execution of the recursive function with the given input and arguments should be added to the stack. (Care should be taken not to grow the stack when its elements return only a single output.)
Instead of passing the arguments as Vec<Val>, we could also pass them as Vec<dyn Iterator<Item = ValR>>. This way, we could avoid to save the last bound variables in the context when calling the TC, and we would not need to save a context with the original variable bindings removed. This method could be also used for general (non-TC) filter calls, because the values bound to the variables in a call are independent of each other, and the current way of calling f($x; $y) as f(x; y) via x as $x | y as $y | f does not reflect that. This new way might also be used to avoid recalculating input values. However, it would probably involve some more clever multi-cartesian product, which however might also be used for other multi-cartesian products (e.g. in objects).

Keeping the id inside the TailRec is necessary because we could have TCs to different recursive functions! For example:
jq -n 'def alternate: def rec: if . then 0, (false | rec) else 1, alternate end; true | rec; alternate'

Here, rec can call both itself as well as its parent filter alternate. Both calls, however, are TCs, so we have to pass some ID to identify which function was called, so that the call is added to the right stack.
(By the way, jq seems to suffer from slowdown for this example, which should not be the case in jaq if this proposal is correctly implemented.)
There is still an open question, namely: How to deal with nested filters where calls are sometimes TCs, sometimes not, depending on the context in which they are executed? For example:
jq -n 'def foo: def rec: ., foo, rec; (rec | .+1), rec; 0 | foo'

Here, in foo, we call rec twice; 1) in a non-TC (rec | .+1), 2) as TC (rec). Depending on how we call it, we have to deal with rec's call to foo differently; in case 1), the call to foo is not TC, whereas in 2), the call to foo is TC. If, however, we generate multiple recursive function definitions, we could get some pretty nasty blowups, where we could get an exponential number of function definitions for a given number of nested definitions.
It is therefore probably easier to just keep making a single function definition, and make TCs only if all call-sites allow for it.
That is, in the example above, the call to foo in rec would be never TC.
Summing it up: The hardest part of implementing this is the identification of TCs in LIR/MIR. The actual execution should be relatively straightforward.

This is very cool! A naïve and very from-far-away-ish question I have about the strategy is: have you considered transforming the AST to achieve TCO? What I understand from your writeup (namely the last three bullet points) is that you want use internal state at runtime to optimize away stack growth.
What I mean by transforming the AST is not implementing TCO at runtime at all, and instead rewriting the tail-recursive definitions into equivalent iterative definitions (after the hard part of identifying them). This would require the usual macro-related considerations such as gensyms and the like. For reference, here's a crate I found which rewrites rust functions using a trampoline approach: https://github.com/alecdotninja/tailcall.
As for the open question about those hybrid definitions, I'd guess the answer would be: those are not fully into-iterative-rewritable tail-recursive definitions, so nothing could be done about them.
Disclaimer: I have no clue as to how this could be implemented, at all.

This is very cool! A naïve and very from-far-away-ish question I have about the strategy is: have you considered transforming the AST to achieve TCO? What I understand from your writeup (namely the last three bullet points) is that you want use internal state at runtime to optimize away stack growth.

Thanks for the feedback!
Indeed, the approach I described above would be to transform the AST to achieve TCO, but in a different way than you mean; see below.

What I mean by transforming the AST is not implementing TCO at runtime at all, and instead rewriting the tail-recursive definitions into equivalent iterative definitions (after the hard part of identifying them). This would require the usual macro-related considerations such as gensyms and the like. For reference, here's a crate I found which rewrites rust functions using a trampoline approach: https://github.com/alecdotninja/tailcall.

That is a tempting idea, but I think that this will unfortunately not work.
Consider the following jq program:
jq -n 'def f: if . > 0 then ., (.-1 | f) else empty end; 10 | f'

Here, f is tail-recursive, and the output will be 10, 9, ..., 1.
In jaq, this gets compiled down to something like:
fn foo(n: usize) -> Box<dyn Iterator<Item = usize>> {
    if n > 0 {
        Box::new(std::iter::once(n).chain(foo(n - 1)))
    } else {
        Box::new(std::iter::empty())
    }
}

fn main() {
    for i in foo(10) {
        println!("{i}");
    }
}

If we look at foo, we can see that it is clearly not tail-recursive, because in the n > 0 case, the call to foo is not tail-recursive. And we cannot easily change that. So using a trampoline à la tailcall cannot be employed here or in other similar situations.
You propose "rewriting the tail-recursive definitions into equivalent iterative definitions (after the hard part of identifying them)". The problem is: What is an equivalent iterative definition for f in jq/jaq?
Let's consider the following example from jq:
def repeat(exp):
     def _repeat:
         exp, _repeat;
     _repeat;

How would you transform repeat(exp) into an equivalent iterative definition (without using recursion)?
I think that no such definition exists, but if you happen to prove me wrong, I would be happy. :)

To give you an idea of how I think that tail-recursion should be treated, I modified the foo example above (playground).
In a nutshell, foo should be transformed to something like:
fn foo1(n: usize) -> Box<dyn Iterator<Item = Result<Val, Error>>> {
    if n > 0 {
        use std::iter::once;
        Box::new(once(Ok(n)).chain(once(Err(n - 1))))
    } else {
        Box::new(std::iter::empty())
    }
}

To call it, we use:
Stack(vec![Box::new(once(Err(10)))], |n| Some(foo1(n)))

That is, we replace jq-tail-recursive calls to once(Err(x)) with the input argument x, and we catch these Errs in Stack, replacing them by the outputs of foo1(x).

Thank you for the in-depth explanation and examples!
I believe my mistake was bunching all possible tail-recursive forms as transformable into something like recurse expressions, which do the heavy lifting. So for your example it'd be:
def f: recurse(.-1; . > 0); 10 | f

And for the non-stream-generating forms to transform into... some other native iterative form 😅
I see now how that'd be attacking the problem without generality, and you'd probably end up with a set of specific supported cases and a whole lot of unsupported ones.
Interestingly, according to wikipedia the Chicken Scheme compiler transforms calls into something of a checked form which inspects the call stack at runtime, deciding whether they're in tail-calls and preventing the stack overflow through GC.
Quite the unexpected rabbit hole, this TCO thing. Reminds me of JIT compilation voodoo, though that's another different rabbit hole.

There is now a work-in-progress PR (#126).


chore: move build system to poetry from setup.py

addressing #33

[x] ensure new system works with our GitHub Actions
[x] document the poetry steps and local dev process in the README.md

Tested with Release action - https://github.com/cloud-custodian/tfparse/actions/runs/3236059837

@sontek give this a try and let me know if you run in to any issues on the Mac

Works great for me on m1

nice!


Add .yaml as an alternative extension.

According to YAML.org, the preferred extension for YAML files is .yaml. Of course, a lot of (most?) YAML files around the web have .yml extensions.
This simply adds the .yaml extension to the list of allowed config files as an alternative.

Sorry for being so slow on this.
I'd be happy to add this functionality, but I'd like to see a test for it aswell. In essence just copy this test and change appropriately for yaml.

If you're going to close the PR add the functionality yourself, you are the repo creator after all.

Don't wait for someone else to code such a simple task for you.
This is your package, and you described exactly how to do the simple task.

That's just it. It's not "for me". I have no interest in this functionality. But someone else does, and more might, so I'm willing to accept it.

The point of making this an open source repo is for people to post ideas and bugs, and for you to fix them, as well as anyone else that is able to contribute.
This is not an excuse to not make new features and not fix bugs.
If that's how you feel then you should probably just drop the package all together and wait for someone else that has the right mentality to fork it and pick it up.

These packages are not our dayjob. They are not even our part time jobs. If you feel so negatively about this package, you may fork it anytime and try to do better. Or you may contribute tho the package itself. But please refrain from downtalking the amazing work that @noseglid has done. He's been nothing but patient with my PRs and explained at great length how to improve them. This PR is just like that. If you feel like the PR deserves more attention, then feel free to take it over and finish it. Git makes this super easy. Open source developers are neither a free workforce nor do they owe anything to anyone. It's a free for all in its purest form.

If you all tell each other to do it, I guess I'll do it then.
I couldn't find out how to commit to this PR, so I did it seperately


fix($injector): workaround for MS Edge class detection

Fix for MS Edge class detection

@petebacondarwin can you take a look at this? Did some small so we do not have to keep track of what browser supports what ES6 feature

One question, otherwise LGTM


Basic check for qdrant existence

Currently, there is no check for whether the qdrant service is running when running the server. This PR adds a simple check to prevent the server from running without an active service at the specified qdrant port and address.

@apepkuss @alabulei1 Please review this PR and let me know if anything needs changing.

I don't understand? Why is the build failing?

Try the following two commands to see if there's any error/warning in your code:
cargo +nightly fmt --all -- --check
cargo +nightly clippy --target wasm32-wasi -- -D warnings

@apepkuss Fixed them! I had no idea we were using clippy.

@suryyyansh Please resolve the conflicts. Thanks!

@apepkuss Please review the changes.


Fix style of rule flyout

Types of changes

[X] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[ ] The code follows the code style and conventions of this project.
[ ] The change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] All new and existing tests passed.

Description of the change

Before

After

Motivation for the change

Fix #603

@darrenchuang,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


fix(learn): progress bar label alignment

Checklist:

[x] I have read and followed the contribution guidelines.
[x] I have read and followed the how to open a pull request guide.
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes #48909

This is a simple fix for the alignment of the progress bar value label. The solution proposed by maintainers during issue discussion.

that solution is outdated, in the latest comment, we have decided to go with "Lato" font

that solution is outdated, in the latest comment, we have decided to go with "Lato" font

You're right, it was my mistake, switched from margin to font change.

The text is more readable. Thanks for the clean up.
A few notes:

Lato is a sans serif font, so the back up should also be a sans serif: --font-family-primary: 'Lato',  sans-serif;
To make the variable naming more descriptive, the names can be changed to --font-family-sans-serif, --font-family-monospace
Other than that: LGMT

The text is more readable. Thanks for the clean up. A few notes:

Lato is a sans serif font, so the back up should also be a sans serif: --font-family-primary: 'Lato',  sans-serif;
To make the variable naming more descriptive, the names can be changed to --font-family-sans-serif, --font-family-monospace
Other than that: LGMT

Thanks for reviewing! Font fallback and variable names changed according to your comments.


DeepSpace Interface[BUG]

I tried this example as in tutorial page https://www.deepspeed.ai/tutorials/inference-tutorial/.  Only the one for T5 does not work, other examples for examples one for GPT-neo 125M does work nicely and give a 2+x speedup, and it makes a bit of eerors but this is a a small model:
 # create the model
 import transformers
 from transformers.models.t5.modeling_t5 import T5Block
 from transformers import pipeline
 import deepspeed
 import torch

 import os
 local_rank = int(os.getenv('LOCAL_RANK', '0'))
 world_size = int(os.getenv('WORLD_SIZE', '1'))

 pipe = pipeline("text2text-generation", model="google/t5-v1_1-small", device=local_rank)
 # Initialize the DeepSpeed-Inference engine
 pipe.model = deepspeed.init_inference(
     pipe.model,
     mp_size=world_size,
     dtype=torch.float,
     injection_policy={T5Block: ('SelfAttention.o', 'EncDecAttention.o', 'DenseReluDense.wo')}
 )
output = pipe('Input String')

But then i get error:
TypeError: empty() received an invalid combination of arguments - got (Parameter, device=int, dtype=NoneType), but expected one of:
 * (tuple of ints size, *, tuple of names names, torch.memory_format memory_format, torch.dtype dtype, torch.layout layout, torch.device device, bool pin_memory, bool requires_grad)
 * (tuple of ints size, *, torch.memory_format memory_format, Tensor out, torch.dtype dtype, torch.layout layout, torch.device device, bool pin_memory, bool requires_grad)

Hi @Oxi84,
Can you please confirm if you are using the master branch? If not, can I ask which DeepSpeed version you are using?
Thanks,
Reza

@Oxi84, could you please try this PR and see if the issue is fixed?
Thanks.

Hello, thanks for answer, what do you by master branch?
I have just installed using:
pip install deepspeed.
Regards

I checked version is: 0.7.0
It does not for for T5 on rtx 3060 as well, cuda 11.3

@Oxi84, please check out the the branch on this PR  and install it deepspeed from source using pip install -e . and if it fixes the issue it will be merged into the newer version of DeepSpeed that you can use noramlly by doing pip install deepspeed.
Thanks,
Reza

I will try to find how to do it. Because I am  using it in jypiter notebook

Is this correct?
!pip install --quiet git+https://github.com/microsoft/DeepSpeed.git

@Oxi84 that will install the master branch. If you want to install the PR branch that @RezaYazdaniAminabadi linked to, do this:
!pip install --quiet git+https://github.com/microsoft/DeepSpeed@ds-inference/fix-wo-policy

After doing this i get the error:
/opt/conda/lib/python3.7/site-packages/deepspeed/module_inject/replace_module.py in _replace(child, name, conv_linear_layer)
659                         new_bias.data.copy_(child.bias.data)
660                 else:

--> 661                     new_bias.data.copy_(child.bias.data)
662                 return LinearAllreduce(data, child.bias if child.bias is None else
663                             torch.nn.parameter.Parameter(new_bias.to(torch.cuda.current_device())), mp_group)
AttributeError: 'NoneType' object has no attribute 'data

For T5-large it is around 20% faster. This code does in 0.65 seconds while  via pytorch it is around 0.8 seconds

Please re-open if #2247 doesn't address your issue


Brad fixup gradle8 ci build paths

CI gfxreconstruct build queued with queue ID 243712.

CI gfxreconstruct build # 4691 running.

CI gfxreconstruct build # 4691 passed.

CI gfxreconstruct build queued with queue ID 243770.

CI gfxreconstruct build queued with queue ID 243784.

CI gfxreconstruct build queued with queue ID 243785.

CI gfxreconstruct build # 4693 running.

CI gfxreconstruct build # 4693 passed.


Impossible to start up correctly on macOS since 1.11

Since the update, I have not been able to start vs code up on macOS, on either stable or insider builds. I had no insider build installed at all until I downloaded it to see if it would work, but it has the same symptoms.
Opening the editor from the dock, finder, or via open from a terminal with clean environment (/bin/sh) results in this:

Almost nothing functions at all; the window can be resized, but not dragged; it can be closed, but not with keyboard shortcuts. The menu options seem to mostly work, or at least the ones that don't do things directly to the window contents. The inspector from the Toggle Developer Tools in the Help menu also works, though not any of the keyboard shortcuts. Can't use Cmd+A to select text, for example.
However, the interesting part is that opening it with the code command line does work, at least some of the time. Sometimes, it will work, but the keyboard will be completely non-functional, and the shortcuts that do work are incorrect for my keyboard layout (but valid qwerty). Opening it from my fully functional shell (with all profile scripts) by invoking the Contents/MacOS/Electron binary also works; it doesn't on the bare shell mentioned earlier.
During the update from 1.10 to 1.11, I clicked on the editor icon only about 3 seconds or so after it closed, so I wonder if that could cause some kind of corruption. However, removing and re-downloading the editor, or even deleting everything under ~/Library/Application Support/Code does not help.

random user here ...
What version of Mac OS?  I'm having no trouble on El Capitan (on 2008 Mac Pro), and I've also run it cleanly on my Sierra (MacBook Air) laptop.
In addition to ~/Library/Application Support/Code, have you verified nothing is in ./vscode?

It's on 10.12.4. I have also emptied ~/.vscode, and that also didn't help.
I also tried running vs code under instruments tracking file opens, but it seems to evaluate its javascript, or at least it gets to require multiple javascript files. Still no idea what could be going wrong since the only files it opens that are not in the app bundle are either system libraries or the user config files I have already deleted.

I tried diffing the env output on both the terminal that fails and the terminal that works; the only differences I can find that are not envvars meant for other processes seem to be in the LC_ALL, LANG and PATH vars; but resetting them doesn't seem to prevent the vscode bundle from functioning.

What I just tried on my current issue (https://github.com/Microsoft/vscode/issues/24373) is I logged in with different (new) User id to see if that changed it -- it didn't, but it did narrow the problem for me. (I found mine, it was Zoom level).
I have no other suggestions for you other than trying a unique user.  Sorry.

@Kovensky What shell are you using? This could be #23639.

Looks like it is that same bug; didn't find it when I tried searching for "blank" probably because it was closed 😅
I use zsh as my main shell.

Hm... could this possibly be affected by me not having a global node install, but local installs managed by nodenv with shims?

The latest Insiders VS Code, released a few minutes ago, does boot again when run from the Dock.


Can opentitan/ibex work with general purpose debugger like Seggar J-link and then with Eclipse and VC code?

Hi All
As there is plugin for Seggar J-link with Eclipse and can upload the ELF and debug with Eclipse.
I am curious if there is this kind of option for opentitan/ibex and if yes how. If no, what is the direction to make it happen?
Nicolas

Hi @nicolast0604
OpenTitan has JTAG which could be connected to the Seggar J-link. To do this with the FPGA you'd need an FPGA build that exposes the JTAG pins to an external header than the probe could then be plugged into.
OpenOCD can be used to connect to the RISC-V debug module over JTAG and provide a remote target that GDB can connect to. Eclipse or other IDEs can use this to implement interactive debug and ELF uploading (see OpenOCD and GDB details here: https://docs.opentitan.org/doc/ug/getting_started_fpga/ near the bottom of the page).
This would potentially just work once the appropriate JTAG pins are exposed on the FPGA. Someone with access to a Seggar J-Link and a CW310 board would need to try it and see.


autoencoder implementatio

@menayemeskele Could you please fill the above template with relevant information?
Please refer to this doc   for building and training the neural networks.
Thank you!


Added support for glossaries / glossaries-extra

Changes
Recently I stumbled about pytask and pytask-latex and found it very useful. Unfortunately I missed support for glossaries in dependency scanning, since I use the package extensively.
I changed the regex and the scan method to recognize \glsxtrresourcefile and \GlsXtrLoadResources and search for .glstex and .bib files with the specified names (.bib is for use with bib2gls).
Todo

[ ] Reference issues which can be closed due to this PR with "Closes #x".
[ ] Review whether the documentation needs to be updated.
[ ] Document PR in docs/changes.rst.

Hi @axtimhaus, this is a wonderful PR! Thanks for the effort you put in writing the code and especially the test cases. I really appreciate it.
Is this PR already complete? I am not experienced with the two Latex packages that is why I am asking. If it is, I would just add some final touches, we would merge it and release a new version, so you can use it asap.

Unfortunately in pytask-latex you are using latexmk, which seems to not support bib2gls. So currently I have problems within the compilation chain, but I'm working on it.
For now, I don't know if it is more senseful to add the .glstex or the .bib as dependency or both, and which if both are present.


Is the redirect slow for anyone else?

I use chalet as a server catalog. I have fixed ports set up for most services. I hit localhost:2000/server-name to get redirected to the port.
It takes 3-4 seconds to redirect sometimes, I'm wondering why it should take any time at all, what happens other than the redirect? Is there anything to configure to make it redirect without checks?
Thanks

Would you be able to post an example server configuration that you’re calling?

Sure, one example that has a front-end is datasette.
{
  "cwd": "<my code folder, unrelated to datasette>",
  "cmd": "datasette ~/Library/Application\\ Support/Google/Chrome/Default/History --nolock -p 7826",
  "env": {
    "PATH": "<lots of PATH>",
    "PORT": 7826
  }
}

it takes a good 3-4 seconds to redirect to it.

Out of curiosity, how many server configurations do you have?

not even 20

It seems possible that the issue might be specifically with the service you are running: https://github.com/simonw/datasette/issues/316#issuecomment-398101670
I tried executing the same thing on a brand new Chrome History file and it loaded up instantaneously.
Let me know if you can somehow create a backup of your history file and test with a new one from scratch to see what the timings are.

I just tried with another service that has a fixed port + frontend
The first time it took 5 seconds (in the logs, there's the same 5 second wait between resolve and redirect). Then subsequent calls did not have this delay.
With the chromehistory service - it takes 5 seconds each time.
Opening the address directly does not have any delay, it's blazing fast.


Fix tests pytorch v0.3.0

Sorry, one more fix. This won't run on travis, but I've verified that it runs locally. I'll cancel tests after linting.

Cancelling since github is having branch issues


[Sluggable] Fix query when identifier is a embedded value holder

We use a value holder class as one of our entities identifiers and this generates a problem when finding the unique value of a slug. The ORM class generates a SQL statement to find al Similar slugs. But then it try's to generate a named variable with a . inside of it and that is not allowed by doctrine.
SELECT rec.slug FROM CoreDomain\Category\Category rec WHERE rec.slug LIKE :slug AND rec.id.uuid <> :id.uuid

class Category
{
    /**
     * @var CategoryId
     *
     * @ORM\Embedded(class="CoreDomain\Category\CategoryId", columnPrefix=false)
     */
    private $id;
}

/**
 * @ORM\Embeddable
 */
final class CategoryId
{
    /**
     * @var UuidInterface
     *
     * @ORM\Id
     * @ORM\Column(type="uuid")
     */
    private $uuid;
}

thanks ;)


Question on editing complex polygons

@rbrundritt : we've been playing around with implementing poly editing in angular-maps. Pretty straight forward, but we noticed that for complex polys, only the first ring seems to be editable. Is that by design or is that a bug?
Also, we had a complex poly where one of the inner rings had less than 3 points (result of data optimization algorithm). While this does not break the rendering of the poly, it does break the editing for the entire poly. Definitely a data error on our part, but I thought I point it out so you can perhaps consider making it more robust.

Has the dev team look into this. This is a fairly large work item and since this is the only request for this, it will be considered low priority for now, so may take some time for the team to get to this.


add support for docker-libnetwork based triggers

This issue tracks addition of support for management-function based on recently announced libnetwork APIs

closed by #61


Split lib files and documentation by components: core, systems, module system

Issue
It's unclear which things belong together in lib, and which groups of people maintain what.
Documentation is of varying quality and structure.
Proposal
Move files such that the following directories contain the following sublibraries:

lib/core/: attrsets, lists, strings, etc.
lib/module-system/ options, modules, types
lib/systems/: systems

Maybe generators is also organizationally separate?
Notify maintainers
Based on CODEOWNERS (which would be simplified by this proposal)
/lib                        @infinisil
/lib/systems                @alyssais @ericson2314 @amjoseph-nixpkgs
/lib/generators.nix         @infinisil @Profpatsch
/lib/cli.nix                @infinisil @Profpatsch
/lib/debug.nix              @infinisil @Profpatsch
/lib/asserts.nix            @infinisil @Profpatsch
/lib/path.*                 @infinisil @fricklerhandwerk
/lib/fileset                @infinisil
/doc/functions/fileset.section.md @infinisil
Can't believe I haven't ever added myself to the module system code owners.

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
output here

Priorities
Add a :+1: reaction to issues you find important.

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/2023-11-28-nixpkgs-architecture-team-meeting-46/36171/1


code review

I am sure my base code could be improved so I welcome suggestions and fixes to:

make code more elegant
improve functionality
improve quality control
optimise code for performance
improve documentation

As this is the first time I am having my code reviewed, I would also appreciate feedback even on small but basic mistakes. I am hoping the project will offer an opportunity to learn best practices from others

Hi Anna,
Here are a few comments, mostly of a cosmetic nature, after a first pass through your code.
Variable/function names: you've got a mix of styles and it would be nice to make those consistent. There are arguments for and against different options; this provides a good overview:
http://stackoverflow.com/questions/1944910/what-is-your-preferred-style-for-naming-variables-in-r
For improved readability, I'd advocate for spacing and line breaks in if/else blocks as follows:
if (condition) {
  ...
} else {
  ...
}

or if it's a one-liner, spaces around the curly braces:
if (is.null(meta[[meta.var]])) { return(NA) }

Also, as per Hadley's style guide,

A closing curly brace should always go on its own line, unless it’s followed by else.

(The same goes for other blocks such as function bodies.)

I notice you've got several statements of the form:
if(any(!species %in% taxo.dat$species)){

which presumably works due to precedence rules in R, but I find it difficult not to associate the ! with the variable name itself and I think it's easier to understand with explicit brackets around the negated statement, even if it makes things a bit bracket-cluttered:
if (any(!(species %in% taxo.dat$species))) {

(Feel free to ignore me if I've misunderstood how the statement works!)
One last thing, I would suggest avoiding spaces in the names of the directories and files that you create for reasons of portability.
HTH,
Tamora

Hey Tamora!
Thanks for having a proper look!
Your comments are all completely valid and will definitely need addressing.
I'd say consistency of variable/function/argument names and styles is the most pressing.
Some nice reformatting would be great. I'll leave that for a bit in case someone would like something straightforward.
The species names in fact I was thinking of doing away all together and use something like the NBN taxon version key.  Same with observations in the master sheet.
Thanks again for taking the time to have a look and if you ever feel like suggesting any direct fixes feel free to make a pull request


Authorization header type

For #14 we need an Authorization HeaderType that takes an Authorization instance as its value. We also need a respective Proxy-Authorization type.

Done in #85


refactor: smaller lockfiles, source dependencies and bug fixes

Significantly refactors the lock file format to reduce the size of the lock-file and support source dependencies.
File size reduction
The size of the lock file is decreased by removing some fields that can be derived from the location of the package:
- kind: conda
  name: bzip2
  version: 1.0.8
  build: h93a5062_5
  build_number: 5
  subdir: osx-arm64
  url: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h93a5062_5.conda
  sha256: bfa84296a638bea78a8bb29abc493ee95f2a0218775642474a840411b950fe5f
  md5: 1bbc659ca658bfd49a481b5ef7a0f40f
  license: bzip2-1.0.6
  license_family: BSD
  size: 122325
  timestamp:<PHONE_NUMBER>368

becomes:
- conda: "https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h93a5062_5.conda"
  sha256: bfa84296a638bea78a8bb29abc493ee95f2a0218775642474a840411b950fe5f
  md5: 1bbc659ca658bfd49a481b5ef7a0f40f
  license: bzip2-1.0.6
  license_family: BSD
  size: 122325
  timestamp:<PHONE_NUMBER>368

Since this is a breaking change the lock-file format has increased to 6.
Source packages
Source dependencies can now also be specified. This changes the location of the package and multiple environments can use different variants from the same source package. To differentiate between those environments also get the ability to add selection parameters to the packages they reference:
version: 6
environments:
  default:
    channels:
      - url: "https://conda.anaconda.org/conda-forge/"
    packages:
      linux-64:
        - conda: "../minimal-project"
          subdir: linux-64
      win-64:
        - conda: "../minimal-project"
          subdir: win-64
packages:
  - conda: "../minimal-project"
    name: minimal-project
    version: "0.1"
    build: first
    subdir: linux-64
    depends:
      - __unix
  - conda: "../minimal-project"
    name: minimal-project
    version: "0.1"
    build: first
    subdir: win-64
    depends:
      - __win

The serialization code automatically selects the fewest selects to disambiguate different packages.
Roundtrip tests
While debugging I also added a test to roundtrip serialize lock-files. I discovered a lot of bugs in the old code which I patched up to the best of my abilities.
This PR also includes the changes from #858 so Im closing that one in favor of this one.

Merged in feature branch in #866


Figure out running nodes

Storage:

Rollup stacks are very immature so all historical blocks must be kept and served. Calibrate maximum block size based on not overwhelming a 2TB SSD in 1 year

CPU:

2 / 3 vCPUs

Network:

Validators: 500Mb, RPC nodes: 1Gb

Memory:

16GB / 32GB ? Mempool is likely the largest contributor

TargetedFeeAdjustment::convert (which is used by SlowFeeAdjustment) uses the current block weight. So, the c_traffic is changed considering ONLY weight and proof_size, without taking into consideration the effective dimension of a block.
But what we need is some sort of economic incentive to not exceed X amount of MiB per block. If there is constant demand, we should increase X and stabilize at a higher value. There is a significant difference between what TargetedFeeAdjustment does and what we want.
Initially, after studying this for only 2/3 days, would prefer to not dive into a new custom implementation because there are many tiny things that could go wrong if the c_traffic is not updated correctly. I started to think of solutions that integrate/modify the existing one to fit our needs. Here's what I came up with:
[definition: Y(c_traffic, v, s, s*) = c_traffic * (1 + v * (s - s*) + v^2 * (s - s*)^2 / 2)]

Create a Wrapper over TargetedFeeAdjustment and:

If the block size is, on average, between some lower bound and X, then call the standard TargetedFeeAdjustment to evaluate new c_traffic.
If the current block size is considerably close to X, then override TargetedFeeAdjustment behavior and use the same formula Y(c_traffic, v, s, s*) but with s being the size of the block and s* being the target size.

Why this? The reason could be: if the chain is used on average, then follow the normal TargetedFeeAdjustment. Otherwise, if there are peaks or very low usage, make the c_traffic decision dependent on the block size usage.
Of course, this idea makes it easy to update X if there is consistent demand.

The implementation of TargetedFeeAdjustment uses the same formula Y, passing the ref_time or proof_size based on which one is closer to its limit. A possible implementation of BlobsAdjustmentFees is to copy-paste code from TargetedFeeAdjustment, adding a third possibility of limit, the block_size.

Even in this case, updating X over time if needed is doable. The only problem with that is if I make a mistake implementing this, the chain could collapse for whatever reason. But it's a challenge I could accept!

Find a relationship between TargetBlockFullness (a parameter used by TargetedFeeAdjustment to define the saturation target) and X. I couldn't find a DIRECT relationship for two main reasons:

There could be, maybe, other extrinsic different from submit_blob in the set of executed normal extrinsics.
The weight of a submit_blob does not depend only on the size of the blob because the only computation that depends on the blob is the evaluation of the hash while there are many other things in the extrinsic

A possible solution could be:
weight_per_byte = current_consumed_weight / total_extrinsic_len
TargetBlockFullness = weight_per_byte * X
Then, call the standard TargetedFeeAdjustment but pass a different TargetBlockFullness each block.
I don't think this relation makes perfectly sense but this solution would be perfect if I find a better relationship between TargetBlockFullness and X. In that case, it could be perfect because we would use the already battle-tested math but with some custom values we update based on the block size usage.

My initial thought is that we should still base the fee adjustment off of weight and not just block size, as there are other kinds of transactions that will take up weight. For example, balance transfers, or XCM reserve transfers (in or out).
Substrate weights already account for bytes in transactions, though the exact formula I don't recall. They are already designed to encompass a variety of different factors: block size, computation, and database accesses. I recommend digging into the Substrate implementation to discover the specifics.
As to fee adjustment - one thing on my mind, early on, is that we may want the collator implementation to skip blocks when there are no transactions. This would change the fee adjustment logic slightly, in that we'd have to implicitly consider those skipped blocks as having zero weight. We won't do this right away, but it should be considered in the implementation as something that might be added soon.
Since there is already an implicit conversion between weight and bytes, I believe the best path is to use a parameterization of TargetedFeeAdjustment which targets X bytes worth of weight. It is not perfect, as we may raise fees too aggressively when there is some (negligible) computation being done, but it will be close enough for a first version.
The other thing is that we need to make sure that there is a sensible floor on fees. If fees can adjust e.g. 30% per day and trend towards zero when unused, we could end up in a situation where it takes multiple days for fees to react to demand as we have a long way to climb up the exponential curve. I favor a slightly faster fee update anyway, as the rollup approach is intended to amortize costs for end-users anyway. For parameterization, I suggest we set it to adjust maximum 30% per hour.

Target block fullness set based on the existing bytes-to-weight conversion done by Substrate/Cumulus
I searched how fees and weights work in substrate to find the byte-to-weights relationship you describe, and this is what I found:
Currently, pallet_transaction_payment uses the following formula:
inclusion_fee = base_fee + length_fee + [targeted_fee_adjustment * weight_fee];

final_fee = inclusion_fee + tip;

So, here, the length of the extrinsic is directly used, but it is a 'fixed' factor, dependent only on the length of the extrinsic.
[targeted_fee_adjustment * weight_fee] is the interesting part. targeted_fee_adjustment is the value that we can change every block to make inclusion_fee dynamic, making it depend on the congestion of the network. weight_fee is the return of what is inside the annotation #[pallet::weight] on top of the extrinsic.
We have control over targeted_fee_adjustment thanks to the trait pallet_transaction_payment::MultiplierUpdate, which is used to convert the previous targeted_fee_adjustment into the new one inside on_finalize. TargetedFeeAdjustment implements the conversion using some parameters. In particular, the type TargetBlockFullness refers to the portion of the NORMAL_DISPATCH_RATIO that we adjust the fees with. To explain what portion means, let's talk about weight.
TargetedFeeAdjustment uses <frame_system::Pallet<T>>::block_weight() to extract the current weight usage of the block, and then it extracts the weight associated with normal dispatchable. The following is the Weight struct:
pub struct Weight {
	#[codec(compact)]
	/// The weight of computational time used based on some reference hardware.
	ref_time: u64,
	#[codec(compact)]
	/// The weight of storage space used by proof of validity.
	proof_size: u64,
}

The weight is constructed in the function get_dispatch_info called on the Call::submit_blob enum, and it is constructed as follows (pseudo code because the output of the macro is very long):
let __pallet_base_weight = call what's inside #[pallet::weight(...)];
let weight_fee = call to frame_support::dispatch::WeighData::weight_data providing __pallet_base_weight and the arguments of the extrinsic

The trait frame_support::dispatch::WeighData is implemented for weight in the following way:
impl<T> WeighData<T> for Weight {
	fn weigh_data(&self, _: T) -> Weight {
		return *self
	}
}

weight_fee is not modified and thus will be the same as the output of what's inside #[pallet::weight(...)]. This is only the weight of a single extrinsic, and <frame_system::Pallet<T>>::block_weight() returns the sum of executed extrinsics in the block. The portion I talked about earlier refers to the limiting dimension: "If the proof size is the limiting dimension, then the multiplier is adjusted by the proof size. Otherwise, it is adjusted by the ref time" (extracted from TargetedFeeAdjustment::convert).
All of this is to describe how I didn't find the relationship you describe. The cost of the traffic multiplies the weight, which is composed of two factors that seem to not be directly associated with the extrinsic dimension. What I've done in #143 is trying to find a way to associate those two. Writing this, I've understood some errors I made in the initial implementation!
I'm curious to know if I'm missing something!
Adjust more quickly
Following the formula found here (https://research.web3.foundation/Polkadot/overview/token-economics#2-slow-adjusting-mechanism):
p = 0.30 (fees should increase at most 30% in one hour)
k = (60 * 60) / 12 = 300 (blocks produced in one hour)
s* = TargetBlockFullness (if we follow the approach in #143, this value will change each block)
v = p / k * (1 - s*)
Then, v will ensure that the fees change at most 30% each hour.
Set a floor which allows for very cheap but not free transactions
Currently, the transaction will be significantly cheaper than the normal assigned weight, but not free.
    pub MinimumMultiplier: Multiplier = Multiplier::saturating_from_rational(1, 10u128);

This would definitely require testing, given the variable v

All of this is to describe how I didn't find the relationship you describe

I was mistaken - thanks for chasing down the underlying truth. Given that weights do not relate to the underlying encoded length of the extrinsic, I took a look at configuring the transaction_payment pallet to charge fees based on weight more intelligently. I'm also not deeply familiar with FRAME - most of my work at Parity was outside of FRAME and focused on consensus implementations.
There are two parts to this problem. The first is applying fees according to the size, and the second is updating fee multipliers according to the size. We should try to solve these problems in ways that encompass all transactions in the runtime.
I have spent some time to review the tools in our toolkit:

Apply an adaptive multiplier in pallet_transaction_payment::Config::LengthToFee
Plug in custom fee adjustment logic in the pallet_transaction_payment::Config::FeeMultiplierUpdate
Adapt the Blobs::submit_blob weight with a custom WeighData that accounts for transaction length in the weight.

1. Apply an adaptive multiplier in LengthToFee
This tool only addresses applying fees and it automatically applies to every single call in the entire runtime. In our runtime this is currently a constant. We can make it dynamic.
pallet_transaction_payment invokes this hook for every single dispatched transaction. Here, we can either draw directly from the pallet_transaction_payment::NextFeeMultiplier (and use this as a hybrid with approach (2)) or have a separate multiplier in storage as a parameter type.
2. Plug in custom fee adjustment logic in the FeeMultiplierUpdate
This addresses updates of fee multipliers. The TargetedFeeAdjustment already has some logic we can adapt for choosing between two limiting factors: the execution time and the storage proof. In principle, the storage proof might contain the block data itself, as this is shipped off to relay chain validators, but in practice it only accounts for reads from the database.
My preferred approach here is similar to what was done in #143 : rather than choosing between those two limiting factors, we add a third. The difference is in the choice of the limiting factor. In #143, the pallet_blobs::TotalBlobSize is used as an additional factor. I suggest that we instead use pallet_system::all_extrinsics_len(), which is a superset of the TotalBlobSize.
3. Adapt the Blobs::submit_blob with a custom WeighData
Every call in every pallet has a #[pallet::weight] directive which allows custom logic to be provided. We could augment submit_blob with a custom weigher that attempts to transform the blob size into a ref time and proof size. See frame/examples/basic. This is clunky and only applies to the submit_blob extrinsic. However, it would allow us to stick with a simple re-parameterization of the TargetedFeeUpdate rather than a port. For those reasons, I suggest we skip this tool.
With that in mind, I suggest that we use a combination of tool (1) and tool (2): we would use the NextFeeMultiplier from pallet_transaction_payment as a byte-length multiplier (with a hardcoded per-byte floor) and adjust the logic of the TargetedFeeUpdate to manage the 3 limiting factors: ref time, storage proof size, and byte size, with the expectation that byte size will be the real limiting factor. No special-casing will be done for submit_blob, and its weigher will focus entirely on standard weight.
In the future, this architecture will make it simple to split these multipliers into two according to the approaches in the literature.


start-stop-daemon: warning: unable to alter IO priority to mask 24583 (Invalid argument)

This bug-tracker is monitored by developers and other technical types.  We like detail!  So please use this form and tell us, concisely but precisely, what's up.  Please fill out ALL THE FIELDS!
If you have a feature request, please post to the UserVoice.  If you're reporting a BSOD, don't post here!  Instead, e-mail<EMAIL_ADDRESS>and if possible attach the minidump from "C:\Windows\minidump".

Your Windows build number:  (Type ver at a Windows Command Prompt)

16251

What you're doing and what's happening:

when manually starting the cron service (for a dev project crontab script), the cron process will run the default /etc/crontab entries and thus eventually /etc/cron.daily/man-db. this script uses start-stop-daemon with the extra --iosched idle parameter.

What's wrong / what should be happening instead:

start-stop-daemon: warning: unable to alter IO priority to mask 24583 (Invalid argument)

Strace of the failing command

a dummy test start-stop-daemon --start --iosched idle --exec /bin/sleep 5 reports
ioprio_set(IOPRIO_WHO_PROCESS, 2936, IOPRIO_PRIO_VALUE(IOPRIO_CLASS_IDLE, 7)) = -1 EINVAL (Invalid argument)
full strace:
execve("/sbin/start-stop-daemon", ["start-stop-daemon", "--start", "--iosched", "idle", "--exec", "/bin/sleep", "5"], [/* 29 vars */]) = 0
brk(NULL)                               = 0x7fffc17e0000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7667500000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=56730, ...}) = 0
mmap(NULL, 56730, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f76674f2000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\5\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1856752, ...}) = 0
mmap(NULL, 3959200, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f7666e30000
mprotect(0x7f7666fee000, 2093056, PROT_NONE) = 0
mmap(0x7f76671ed000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1bd000) = 0x7f76671ed000
mmap(0x7f76671f3000, 14752, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f76671f3000
close(3)                                = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f76674f0000
arch_prctl(ARCH_SET_FS, 0x7f76674f0700) = 0
mprotect(0x7f76671ed000, 16384, PROT_READ) = 0
mprotect(0x7f7667807000, 4096, PROT_READ) = 0
mprotect(0x7f7667425000, 4096, PROT_READ) = 0
munmap(0x7f76674f2000, 56730)           = 0
brk(NULL)                               = 0x7fffc17e0000
brk(0x7fffc1801000)                     = 0x7fffc1801000
stat("/bin/sleep", {st_mode=S_IFREG|0755, st_size=35000, ...}) = 0
open("/proc", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
getdents(3, /* 56 entries */, 32768)    = 1552
readlink("/proc/1/exe", "/init", 256)   = 5
stat("/init", {st_mode=S_IFREG|0755, st_size=51272, ...}) = 0
readlink("/proc/2/exe", "/init", 256)   = 5
stat("/init", {st_mode=S_IFREG|0755, st_size=51272, ...}) = 0
readlink("/proc/3/exe", "/bin/dash", 256) = 9
stat("/bin/dash", {st_mode=S_IFREG|0755, st_size=154072, ...}) = 0
readlink("/proc/4/exe", "/usr/bin/mono-sgen", 256) = 18
stat("/usr/bin/mono-sgen", {st_mode=S_IFREG|0755, st_size=3842736, ...}) = 0
readlink("/proc/61/exe", "/usr/sbin/cron", 256) = 14
stat("/usr/sbin/cron", {st_mode=S_IFREG|0755, st_size=44472, ...}) = 0
readlink("/proc/421/exe", "/usr/sbin/exim4", 256) = 15
stat("/usr/sbin/exim4", {st_mode=S_IFREG|S_ISUID|0755, st_size=1019656, ...}) = 0
readlink("/proc/22884/exe", "/usr/bin/dirmngr", 256) = 16
stat("/usr/bin/dirmngr", {st_mode=S_IFREG|0755, st_size=377032, ...}) = 0
readlink("/proc/2199/exe", "/usr/sbin/sshd", 256) = 14
stat("/usr/sbin/sshd", {st_mode=S_IFREG|0755, st_size=795120, ...}) = 0
readlink("/proc/3752/exe", "/usr/sbin/apache2", 256) = 17
stat("/usr/sbin/apache2", {st_mode=S_IFREG|0755, st_size=675528, ...}) = 0
readlink("/proc/4040/exe", "/usr/sbin/php-fpm7.0", 256) = 20
stat("/usr/sbin/php-fpm7.0", {st_mode=S_IFREG|0755, st_size=4412640, ...}) = 0
readlink("/proc/4191/exe", "/usr/sbin/php-fpm7.1", 256) = 20
stat("/usr/sbin/php-fpm7.1", {st_mode=S_IFREG|0755, st_size=4548800, ...}) = 0
readlink("/proc/4322/exe", "/bin/bash", 256) = 9
stat("/bin/bash", {st_mode=S_IFREG|0755, st_size=1099016, ...}) = 0
readlink("/proc/4535/exe", "/usr/sbin/mysqld", 256) = 16
stat("/usr/sbin/mysqld", {st_mode=S_IFREG|0755, st_size=17508520, ...}) = 0
readlink("/proc/4536/exe", "/usr/bin/logger", 256) = 15
stat("/usr/bin/logger", {st_mode=S_IFREG|0755, st_size=43688, ...}) = 0
readlink("/proc/4780/exe", "/usr/lib/postgresql/9.6/bin/post"..., 256) = 36
stat("/usr/lib/postgresql/9.6/bin/postgres", {st_mode=S_IFREG|0755, st_size=6789112, ...}) = 0
readlink("/proc/4782/exe", "/usr/lib/postgresql/9.6/bin/post"..., 256) = 36
stat("/usr/lib/postgresql/9.6/bin/postgres", {st_mode=S_IFREG|0755, st_size=6789112, ...}) = 0
readlink("/proc/4783/exe", "/usr/lib/postgresql/9.6/bin/post"..., 256) = 36
stat("/usr/lib/postgresql/9.6/bin/postgres", {st_mode=S_IFREG|0755, st_size=6789112, ...}) = 0
readlink("/proc/4784/exe", "/usr/lib/postgresql/9.6/bin/post"..., 256) = 36
stat("/usr/lib/postgresql/9.6/bin/postgres", {st_mode=S_IFREG|0755, st_size=6789112, ...}) = 0
readlink("/proc/4785/exe", "/usr/lib/postgresql/9.6/bin/post"..., 256) = 36
stat("/usr/lib/postgresql/9.6/bin/postgres", {st_mode=S_IFREG|0755, st_size=6789112, ...}) = 0
readlink("/proc/4786/exe", "/usr/lib/postgresql/9.6/bin/post"..., 256) = 36
stat("/usr/lib/postgresql/9.6/bin/postgres", {st_mode=S_IFREG|0755, st_size=6789112, ...}) = 0
readlink("/proc/5433/exe", "/usr/bin/redis-server", 256) = 21
stat("/usr/bin/redis-server", {st_mode=S_IFREG|0755, st_size=952976, ...}) = 0
readlink("/proc/7489/exe", "/usr/bin/memcached", 256) = 18
stat("/usr/bin/memcached", {st_mode=S_IFREG|0755, st_size=150024, ...}) = 0
readlink("/proc/14174/exe", "/usr/sbin/apache2", 256) = 17
stat("/usr/sbin/apache2", {st_mode=S_IFREG|0755, st_size=675528, ...}) = 0
readlink("/proc/14176/exe", "/usr/sbin/apache2", 256) = 17
stat("/usr/sbin/apache2", {st_mode=S_IFREG|0755, st_size=675528, ...}) = 0
readlink("/proc/14177/exe", "/usr/sbin/apache2", 256) = 17
stat("/usr/sbin/apache2", {st_mode=S_IFREG|0755, st_size=675528, ...}) = 0
readlink("/proc/25795/exe", "/usr/sbin/sshd", 256) = 14
stat("/usr/sbin/sshd", {st_mode=S_IFREG|0755, st_size=795120, ...}) = 0
readlink("/proc/25797/exe", "/usr/sbin/sshd", 256) = 14
stat("/usr/sbin/sshd", {st_mode=S_IFREG|0755, st_size=795120, ...}) = 0
readlink("/proc/25798/exe", "/bin/bash", 256) = 9
stat("/bin/bash", {st_mode=S_IFREG|0755, st_size=1099016, ...}) = 0
readlink("/proc/25924/exe", "/usr/bin/sudo", 256) = 13
stat("/usr/bin/sudo", {st_mode=S_IFREG|S_ISUID|0755, st_size=140944, ...}) = 0
readlink("/proc/25925/exe", "/bin/su", 256) = 7
stat("/bin/su", {st_mode=S_IFREG|S_ISUID|0755, st_size=40128, ...}) = 0
readlink("/proc/25926/exe", "/bin/bash", 256) = 9
stat("/bin/bash", {st_mode=S_IFREG|0755, st_size=1099016, ...}) = 0
readlink("/proc/26056/exe", "/usr/sbin/sshd", 256) = 14
stat("/usr/sbin/sshd", {st_mode=S_IFREG|0755, st_size=795120, ...}) = 0
readlink("/proc/26058/exe", "/usr/sbin/sshd", 256) = 14
stat("/usr/sbin/sshd", {st_mode=S_IFREG|0755, st_size=795120, ...}) = 0
readlink("/proc/26059/exe", "/bin/bash", 256) = 9
stat("/bin/bash", {st_mode=S_IFREG|0755, st_size=1099016, ...}) = 0
readlink("/proc/26074/exe", "/usr/bin/top", 256) = 12
stat("/usr/bin/top", {st_mode=S_IFREG|0755, st_size=108304, ...}) = 0
readlink("/proc/2934/exe", "/usr/bin/strace", 256) = 15
stat("/usr/bin/strace", {st_mode=S_IFREG|0755, st_size=927920, ...}) = 0
readlink("/proc/2936/exe", "/sbin/start-stop-daemon", 256) = 23
stat("/sbin/start-stop-daemon", {st_mode=S_IFREG|0755, st_size=35944, ...}) = 0
getdents(3, /* 0 entries */, 32768)     = 0
close(3)                                = 0
getpid()                                = 2936
ioprio_set(IOPRIO_WHO_PROCESS, 2936, IOPRIO_PRIO_VALUE(IOPRIO_CLASS_IDLE, 7)) = -1 EINVAL (Invalid argument)
write(2, "start-stop-daemon: warning: ", 28) = 28
write(2, "unable to alter IO priority to m"..., 61) = 61
chdir("/")                              = 0
getgid()                                = 0
getuid()                                = 0
execve("/bin/sleep", ["/bin/sleep", "5"], [/* 29 vars */]) = 0
brk(NULL)                               = 0x7fffd036e000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f57d19e0000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=56730, ...}) = 0
mmap(NULL, 56730, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f57d19e4000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\5\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1856752, ...}) = 0
mmap(NULL, 3959200, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f57d1230000
mprotect(0x7f57d13ee000, 2093056, PROT_NONE) = 0
mmap(0x7f57d15ed000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1bd000) = 0x7f57d15ed000
mmap(0x7f57d15f3000, 14752, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f57d15f3000
close(3)                                = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f57d19d0000
arch_prctl(ARCH_SET_FS, 0x7f57d19d0700) = 0
mprotect(0x7f57d15ed000, 16384, PROT_READ) = 0
mprotect(0x7f57d1c07000, 4096, PROT_READ) = 0
mprotect(0x7f57d1825000, 4096, PROT_READ) = 0
munmap(0x7f57d19e4000, 56730)           = 0
brk(NULL)                               = 0x7fffd036e000
brk(0x7fffd038f000)                     = 0x7fffd038f000
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=2011424, ...}) = 0
mmap(NULL, 2011424, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f57d1639000
close(3)                                = 0
nanosleep({5, 0}, NULL)                 = 0
close(1)                                = 0
close(2)                                = 0
exit_group(0)                           = ?
+++ exited with 0 +++

@heldchen - Thanks for your post and feedback. cron, background tasks are not currently supported on WSL. If it is an important feature for you, please help us prioritize by upvote of the user voice post.

@sunilmut - There is a concrete actionable here that isn't related to background daemons.
ioprio_set(IOPRIO_WHO_PROCESS, 2936, IOPRIO_PRIO_VALUE(IOPRIO_CLASS_IDLE, 7)) = -1 EINVAL (Invalid argument)

I am pretty sure you can (if not should) just stub it to a no-op.  Relates to the observation made in other posts: the alternative is someone will just put a runtime if (!parse_proc_version_is_wsl()) around the call once they feel motivated enough.

thanks both. that's the reason I reported this, @therealkenc
albeit I certainly wouldn't mind an official sanctioned way to get daemons running either :-)

@therealkenc - Thanks. I agree that stubbing the ioprio_set is probably a good bet. But, I am afraid, that by itself will not unblock this scenario (even if one puts a runtime on top). Note taken though.

@sunilmut - FYI I already stubbed ioprio_set and it will be in an Insider build soon.

Adding link to #498.

@benhillis - thanks. Does that unblock the cron scenario /etc/crontab? Seems unlikely. Otherwise, I think it makes sense to not mark this "fixinbound".

@sunilmut - Yes, it solves the issue that is being reported.  This issue is about a single command that is failing and is not a generic "cron does not work" issue, thus the fixinbound tag is appropriate.

@benhillis Cron is deprecated in favor of systemd timer units nowadays anyway.

Does that unblock the cron scenario /etc/crontab? Seems unlikely.

Classic cron works fine on WSL and has for a long time (I mean, why wouldn't it). Thankfully it is not "depreciated" on distros like Devuan.
ken@WinDev1612Sys:~$ ps ax | grep cron
   73 ?        Ss     0:00 cron -n
  144 pts/0    S      0:00 grep --color=auto cron
ken@WinDev1612Sys:~$ crontab -l
[...]
* * * * * /home/ken/hello.sh

Not depreciated, deprecated.  That is, no longer suggested for use and on a path to obsolescence.

I think specifically doing anything to implement cron compatibility will be a waste of time compared to just systemd.

not sure how this relates to this issue here. /sbin/start-stop-daemon with some special parameter settings causes the EINVAL - cron already Just Works™ fine. systemd on the other hand...

@heldchen Who knows when we'll get systemd, but I have reason to believe it will come sooner or later.

this issue is fixed in 16273, thanks!


Issues with BF16 models

Hey... Thanks for the great work!
While trying to evaluate a BF16 model, I encountered an error in my runpod container:
"triu_tril_cuda_template" not implemented for 'BFloat16'. (https://github.com/pytorch/pytorch/issues/101932)
Switching the image from runpod/pytorch:2.0.1-py3.10-cuda11.8.0-devel-ubuntu22.04
to runpod/pytorch:2.2.0-py3.10-cuda12.1.1-devel-ubuntu22.04 fixed the issue.
I'm reporting this for others who may have the same problem.
I don't know if it might make sense to update the Colab notebook and use a newer image or it might reveal other problems.

Thanks @anakin87! That's weird, I evaluate BF16 models all the time (like automerged models for example). Would you be able to reproduce this error with another BF16 model by any chance? Thanks a lot for the fix!

Thanks for the feedback.
Thinking about it more, it is probably due to the fact that I used pytorch 2.2.0 for training. 🙂
Feel free to close the issue.

Cool! I added it to the troubleshooting section, it might be helpful. Thanks.


Update styled-components peerDependency range

This change should stop the warnings that occur when installing this package, when using styled-components v4 or above. This addresses issue #15

v4 doesn't export StyledComponentClass. How do you have this working?

Looks like that StyledComponentClass was just renamed to StyledComponent in https://github.com/DefinitelyTyped/DefinitelyTyped/commit/5c49d4ddc6f5bd06c5cf04d911398f3db05ead54

This PR should probably be reverted since styled-components 4+ can do this natively. @jacob-ebey what do you think?

@mrmartineau, it's already published to NPM and I don't want to have to deal with that cluster of a versioning system.


Bump the process module to get features like umask and version

Thanks

Any chance we could get a patch release?  I've worked around this problem currently but would like to remove the workaround

doen

thanks!


Write Rake CI task to warn on committed migrations with no structure dump

As a developer
I want to be reminded through the CI process when a migration is committed with no structure dump
So that I will be nudged towards doing so.

In our case we would need to check for db/{development_,}structure.sql


Support for downloading from the metadata, when the url does not match any known url

Example in net-misc/freerdp
    SRC_URI="https://pub.freerdp.com/releases/${MY_P}.tar.gz

but metadata.xml exist github
    <upstream>
            <remote-id type="github">FreeRDP/FreeRDP</remote-id>
    </upstream>

Merry Christmas and new year!!


Allow filtering images with some specific condition in a job list

My actions before raising this issue

[x] Read/searched the docs
[x] Searched past issues

Scenario: Suppose I have a pending job, when I am labeling/reviewing the job, I may want to first shrink the image list to "images containing cars", then shrink the image list to "images tagged as raining", and view those images that match the filter only.
As far as I know, the filter of an annotation filters specific labels for a given image, the filter of project/task/job... filters metadata, but I can't find a filter over a list of data.
Is it possible, or will it be supported?

Hi @yf-yang.
It is supported. Just apply a filter like: Label === "something" and then use arrow left/right to navigate instead of D, F keys.
It will navigate to those frames which contain at least one object satisfying a filter.
Another option is to click "Next", "Prev" button by right click to see navigation options. Not really intuitive, we know..

Nice, thanks!


Recruiting Team - Week - 2

📝 Weekly Report For TNB Team
Basic Details
🏟 Name of the TNB Team: Recruiting Team
📅 Report Date: [02-26-2021]
📜 Team Work Report
✅ Accomplishments this week

Completion of technical and non-technical appications
Creation of the Open contributor list
Experimental table is being made to search through the large amount of tasks available and the skills within the community to create suggestions for what people may be best suited to work on.
Researched the market for available online sites,forums for posting these kinds of positions online
Creation of Job Descriptions which I will continue to modify, hopefully to be posted on availability  sites but as well as linkedin, instagram, etc for visibility.

🚩 Goals for next week

Sending out a survey to discord/slack in order to build the talent pool with any and all active members, I am currently asking new introductory members if they are willing to provide their information and I will continue to do so in the future to build the list.
Begin testing out the technical and non-technical applications. These were created primarily for the team and not necessarily for getting people on board with projects as project-leads will make these decisions on their own. As we recruit world-wide not every resume will be the same, and not every candidate will have a resume. To simplify this process these forms will be available to collect, filled out, in-lieu of a tradition resume.
Continue research on available forums, beyond reddit, linkedin, etc. for recruiting and engaging the candidate. Ambitious but I hope to reach out the marketing team and work in-tandem in regards to recruitment as I finish out our excel reporting.

🔭 Long term goals

Long-term I want to have the open contributor list to hit at least 100 contributors as this will help with assessing how much TNB has in regards to manpower when it comes to working on projects/tasks.
The master recruiting file will be completed and shared with project leads and team-members to assess where we are all positioned and I plan on building a team tree so that its easy to understand everyone's position.

❗❓ Concerns
No main concerns at this time but will need to begin recruiting for the design of flyer's, brochures for distribution which I will pay for and create a bounty on in the future.
👨💻👩💻 Team Members Contribution Details
demetrioornelas : cf209735e4295b03b24ec7863a62f49196df4389076e73a67d776134961ac338

[Task 1] - Creation of the excel and every entry by me
[Task 2] - Researched and was denied by glassdoor and indeed in regards to crypto, researched other sites as well but most require initial payments. Will need to research university level postings/internships, and forums. (included is a job description)
[Task 3] - Creation of PDF's for both applications as well

TNB Applicant Form - NonTechnical.pdf
TNB Applicant Form.pdf
Template_JobDescription.docx
Open Contributor List.xlsx
🖹 Any Additional Notes (Optional)
[Your notes]

approved