🚀 Vault: Add support for Permissions framework

Plugin Name
Vault
🔖 Feature description
I would like to be able to control who is able to view the Vault entity card associated with relevant components in the service catalog by adding support for the permissions framework to the Vault plugin.
🎤 Context
As a Backstage administrator, I would like to be able to show Vault secrets for items in the Service Catalog only to the owners of the component. It is generally considered best practice that this potentially sensitive information would be shown on a need-to-know basis and in line with security recommendations.
✌ Possible Implementation
https://backstage.io/docs/permissions/plugin-authors/02-adding-a-basic-permission-check
I believe this is a relatively well-trodden path with a clear implementation guide courtesy of Backstage.
I hope to find time to explore adding the framework integration myself, but in the meantime I hope for this issue to serve as a spot to track and discuss.
👀 Have you spent some time to check if this feature request has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
Yes I am willing to submit a PR!

@ivangonzalezacuna Just wanted to bring you in on this as the plugin author to see if you have any thoughts!

Hey @jrtaylorJH. Yes, the permissions topic was something we have thought about when designing this plugin, but we decided not to do it at that time because because it would make it much complicated, and honestly, my experience with the permissions was a bit limited by then :smile:
Having, at least, a tiny conditional permission to allow getting the data whether you're the owner or not sounds like a nice thing to have, honestly. Feel free to give it a try if you like, I'm not sure if I'll have the time to work on it at the moment, but I'm happy to review it afterwards.
If it helps as inspiration, we've also implemented a more complex permission framework in another plugin we own in the company: https://github.com/spreadshirt/backstage-plugin-s3, might be helpful to see a real example apart from the docs

@ivangonzalezacuna I'll definitely see what I can do about contributing to it in the coming weeks. I'm a complete novice to the permissions framework, so based on it sounding like it may have been a complex implementation when designing the plugin I'll be curious to see if I can make it work. Thank you for the response!

It isn't that hard @jrtaylorJH if you want to try and we are happy to support you. There is also a possibility to reuse all the conditional rules exposed by catalog, so that you don't have to re-implement them. Essentially this is all you have to do 😅
https://github.com/backstage/community-plugins/blob/main/workspaces/azure-sites/plugins/azure-sites-common/src/permissions.ts#L22-L26
https://github.com/backstage/community-plugins/blob/main/workspaces/azure-sites/plugins/azure-sites-backend/src/service/router.ts#L106-L121


Test FB live with Mevo

Let me know if you'd like to be a part of this.

I contacted my A/V guy, Eric Leavy, and he wasn't familiar with Mevo.  He did say that audio was usually the biggest determinant of content quality (streaming or recorded).

We have two options on the table for Thursday.

Trophy will donate a 1/6 keg(40 pints) we setup and pour and still need
to find 3 more kegs

Brice's 4 x 1/6 kegs for $320($80/keg), they setup and provide
cicerone(s).

For Friday we will probably want to stick with Little City to support the
area with the fire damage.
Chris Mathews
On Fri, Aug 11, 2017 at 2:01 PM, aikimark<EMAIL_ADDRESS>wrote:

I contacted my A/V guy, Eric Leavy, and he wasn't familiar with Mevo. He
did say that audio was usually the biggest determinant of content quality
(streaming or recorded).
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/codeforraleigh/NCOpenPass/issues/528#issuecomment-321880162,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAOGtReJqDhBg-MphYVsYQuS6hr7cg48ks5sXJcJgaJpZM4O02O9
.

Let me know what I need to do!!!

What is the Facebook login? Would it be weird to test it there or should we
use a personal account?
On Aug 12, 2017 11:56 AM, "Chris Mathews"<EMAIL_ADDRESS>wrote:

Let me know what I need to do!!!
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/codeforraleigh/NCOpenPass/issues/528#issuecomment-321989548,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB3Ie2RZ82aR1pb2KKIhkgFOHmzGTkctks5sXcscgaJpZM4O02O9
.

I will need to figure that out
Chris Mathews
On Sat, Aug 12, 2017 at 11:58 AM, Leo Suarez<EMAIL_ADDRESS>wrote:

What is the Facebook login? Would it be weird to test it there or should we
use a personal account?
On Aug 12, 2017 11:56 AM, "Chris Mathews"<EMAIL_ADDRESS>wrote:

Let me know what I need to do!!!
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
<https://github.com/codeforraleigh/NCOpenPass/issues/528#issuecomment-
321989548>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/
AB3Ie2RZ82aR1pb2KKIhkgFOHmzGTkctks5sXcscgaJpZM4O02O9>
.

—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/codeforraleigh/NCOpenPass/issues/528#issuecomment-321989676,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAOGtb47sLx9N6ZIfpXKggxonzy58kW8ks5sXcuggaJpZM4O02O9
.

Added you as an editor to the FB page.

I'm planning to drop by HQ Raleigh next week, Friday the 25th around 3pm to do an on-site test of the Mevo. If anyone is nearby and wants to hang out, come on down. If anyone can be made available virtually to watch the test stream and offer live feedback (so I can test settings and such) that would be helpful also.
Let's say we get there at 3, kick off the stream around 3:15 and test it for 15-30 minutes depending. More details later.


Cannot SET XACT_ABORT

+## Driver version or file name
<IP_ADDRESS>-1
+## SQL Server version
Microsoft SQL Server 2014 (SP2-GDR) (KB3194714) - 12.0.5203.0 (X64)
Sep 23 2016 18:13:56
Copyright (c) Microsoft Corporation
Developer Edition (64-bit) on Windows NT 6.3  (Build 9600: ) (Hypervisor)
+## Client operating system
Ubuntu 16.04
+## PHP version
7.2.1
+## Problem description
Unable to turn on XACT_ABORT to perform a distributed transaction.
+## Expected behavior and actual behavior
I should be able to SET XACT_ABORT ON, begin a transaction, and have the setting work.
+## Repro code
I need to perform a transaction on both a local table, and on a linked server. Using the provided sqlsrv_begin_transaction does not seem to honor the SET XACT_ABORT ON statement.
In other words, this does not work:
sqlsrv_query(SET XACT_ABORT ON)
sqlsrv_begin_transaction();
UPDATE local table
UPDATE linked table
sqlsrv_commit()
It fails at the UPDATED linked table with:
SQLSTATE [42000, 7395]: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Unable to start a nested transaction for OLE DB provider "SQLNCLI11" for linked server "XXX". A nested transaction was required because the XACT_ABORT option was set to OFF.
SQLSTATE [01000, 7412]: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]OLE DB provider "SQLNCLI11" for linked server "XXX" returned message "Cannot start more transactions on this session.".
However, if I begin a transaction manually through sqlsrv_query, it works:
sqlsrv_query(SET XACT_ABORT ON)
sqlsrv_query(BEGIN TRANSACTION)
UPDATE local table
UPDATE linked table
sqlsrv_query(COMMIT TRANSACTION)
Is there a way to turn on XACT_ABORT and have it be recognized by the sqlsrv_begin_transaction function?

Hello @UFTimmy
In general, we do not recommend mixing Transact-SQL programming with sqlsrv transaction related calls, mainly because transactions are handled differently.
If you prefer T-SQL programming, you may consider using stored procedure(s) instead. Note that when sqlsrv_begin_transaction() is used, you will need to programmatically check for error cases to roll back the transaction when errors occur.
Hope this clarifies things.

Sorry, no, it doesn't really help me at all. Can you clarify?

In general, we do not recommend mixing Transact-SQL programming with sqlsrv transaction related calls,

In this case, which part is Transact-SQL programming and which part is sqlsrv transaction related?
I don't want to mix anything, but I need to call SET XACT_ABORT ON, and it does not seem to work when doing transactions the recommend way. So how can I do that?

Hi @UFTimmy, the answer to your question "Is there a way to turn on XACT_ABORT and have it be recognized by the sqlsrv_begin_transaction function?" is
No, it is not possible.
FYI, T-SQL (Transact-SQL) is a set of programming extensions from Sybase and Microsoft that add several features to the Structured Query Language (SQL), including transaction control, exception and error handling, row processing and declared variables.
In other words, SET XACT_ABORT ON is one T-SQL way to control how transactions work, and sqlsrv_begin_transaction() is another. Mixing these two mechanisms is not recommended. As you have already observed, it simply doesn't work.
If you really prefer using SET XACT_ABORT ON, I'd suggest you design a stored procedure for sqlsrv_query() to invoke.

Closing this issue due to inactivity. Please feel free to reopen if you still have other questions.


Pipeline feed: show pending pipelines (running, needs approval, waiting) on top

@qwerty287 do you have any guideline for UI? This needs to be done on the pipelineList? I want to take this if nobody touches yet


feat(SuperSource): implement SSBP (read) and CSBP (write) commands

Similar to #5, I've done a good amount of testing on the deserialization, but I've not tested the serialization at all yet. We will need to do that before merging.

CSBP has been fully tested and is good to go now 👌

Here's an early screenshot of the alternative Super Source UI I'm working on:

Everything shown in this image works in both directions (read and write), in realtime, and is how I tested this PR.


SelectView::insert_item

Hello,
thanks for a very intuitive tui library.
I have an enhancement proposal. I would like to insert an item at a specified index position in a SelectView. This would be a complementary method to 'remove_item'. What is your thought on this?
Regards

Hi, and thanks for the report!
It sounds like a great idea!

Thanks for the fast replay.
One additional thought is that it might be beneficial to also (or instead of) implement replace_item. insert_item might by to costly for big collections because it would require shifting the elements to the right.

3588955f0b420123fcc3731fb3209d96ab86f85c brings SelectView::insert_item.
As for replace_item, I'm not sure the performance impact would be that noticeable in most situations - I'd wait for it to actually become an issue before adding a new method like that.

Thanks -that was fast!


Logo

Hi, concrats for your project!
Do you have a logotype? If you need one I can do it for free, I love to contribute to opensource projects, so if you want one just say it.
Cheers!

Thank you. The wordmark we use now should suffice.


Why title starts from center instead of left align?

When I have a long text it begins with left alignment but when there is a short title/message it begins with center view. How to make it left aligned?

    CherryToast.success(
      title: Text(message, style: AppStyles.labelStyle),
      displayCloseButton: false,
      autoDismiss: true,
      disableToastAnimation: true,
      borderRadius: 8.0,
      inheritThemeColors: true,
      enableIconAnimation: true,
      animationType: AnimationType.fromTop,
      toastDuration: const Duration(seconds: 2),
      animationDuration: const Duration(seconds: 1),
    ).show(context);

@meet2011 I'll check this behavior and let you know


Notes

Shelly
https://softwaremill.com/functional-programming-for-kids/

https://twitter.com/racketlang/status/1584245205313544192?t=_fnNkbVd3JKsW-S_pboleA&s=19
https://youtu.be/NdvErByEZro
Why Functional Programming Matters in CS Education
Keynote by Marco T Morazan


Fix editor constant redraw from fxaa and debanding.

Every NOTIFICATION_PROCESS the spatial_editor_plugin.cpp is calling set_use_fxaa which is causing a redraw_request(). Same with debanding.
These can be fixed be checking for noop state changes.
Fixes #43228
Notes

This will also presumably need matching PR for 4.0, I can't do this (need to upgrade my OS before 4.0 will run) but it should be simple enough for Akien etc.
Need to check at startup this matches the default state of fxaa and debanding.

Further
Although this fixes the problem, it strikes me that the whole system of querying a bunch of strings every process in spatial_editor_plugin.cpp (and elsewhere presumably) is very inefficient. Surely there should be a notification sent specifically when a project setting is changed, rather than checking every setting, every frame, just in case? Does anyone know if one exists already? Maybe we could put one in.
This would be very useful in the renderer too to prevent the need for restarts when changing settings.

Although this fixes the problem, it strikes me that the whole system of querying a bunch of strings every process in spatial_editor_plugin.cpp (and elsewhere presumably) is very inefficient. Surely there should be a notification sent specifically when a project setting is changed, rather than checking every setting, every frame, just in case? Does anyone know if one exists already? Maybe we could put one in.

I agree that the current system feels quite inefficient.
There is NOTIFICATION_EDITOR_SETTINGS_CHANGED but I don't know of any equivalent for ProjectSettings.

Thanks!

This will also presumably need matching PR for 4.0, I can't do this (need to upgrade my OS before 4.0 will run) but it should be simple enough for Akien etc.

Strangely enough the code is already good for both screen space AA and debanding in the master branch, these issues were added when backporting to 3.2.


Qualified Identifiers for nested modules are incorrect in TopologyAc.hpp and TopologyAc.cpp

Example:
module Components {

    module Nested {

        @ Component to blink an LED driven by a rate group
        active component Led {
        ...
        }
    }
}

Expected lines in TopologyAc.hpp and TopologyAc.cpp:
//! led
extern Components::Nested::Led led;

Components::Nested::Led led(FW_OPTIONAL_NAME("led"));

Actual:
//! led
extern Nested::Components::Led led;

Nested::Components::Led led(FW_OPTIONAL_NAME("led"));

Was able to trace it back to this line in TopologyCppWriterUtils.scala

Good catch! It's a bug in the management of qualified names. I'll submit a fix.


Add referrals in discover

Cometh: https://docs.cometh.io/polygon-galactic-grand-prix-1/referral-program-1
Sorare:
When user press the discover card we:

add a self issued referal card with type specific of the referral program.
the self issued is added to wallet in gaming section
The link of the referal is opened in phone browser

@ThierryThevenet we need to define the jsonLD of the self issued

@nicolasmullertalao We need the referrals link to use in the app.

XL size

sandbox link: https://www.sandbox.game/en/login/?r=iTpRlmGR5o7jn8BxhVYrq
sorare: https://sorare.com/r/altme2022
Cometh is removed from project

Don't shw it on iphone

@HugoNDO : we need description text for the self issued card
@ThierryThevenet we should add a link property in self issued credential manifest, right ?

Abandon de la carte SANDBOX (le referral n'existe plus).
Pour la carte SORARE, voici le texte à mettre : "By connecting to Sorare with the referral Altme link, once you have collected 5 Limited cards you will win 2 Limited cards!"

For Sorare referral card, here is the content :

Description : By connecting to Sorare with the referral Altme link, once you have collected 5 Limited cards you will win 2 Limited cards!

Expiration date: This card will remain active as soon as long as the Sorare referral program is active.

How to get it: You just have to click on the card and agree to add it to your Altme wallet.

Sandbox referral program is over so this credential is abandoned. You can close the ticket after integrating Sorare.


Blank Results but row count > 0

Type: Bug
Run a simple Top n query:
SELECT TOP 100 *
, SysStartTime
FROM EncounterNote
ORDER BY id DESC
Status bar shows 100 rows returned but the Results are blank.
If I click back and forth between Messages and Results, the Results will eventually show.
Azure Data Studio version: azuredatastudio 1.47.1 (b6f7beb01f92adaa4b79b6b6f3ac704e95cafe6e, 2024-01-10T02:15:02.628Z)
OS version: Windows_NT x64 10.0.19044
Restricted Mode: No
Preview Features: Enabled
Modes:

System Info

Item
Value

CPUs
AMD EPYC 7452 32-Core Processor                 (16 x 2346)

GPU Status
2d_canvas: unavailable_softwarecanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: disabled_softwaremultiple_raster_threads: enabled_onopengl: disabled_offrasterization: disabled_softwareraw_draw: disabled_off_okvideo_decode: disabled_softwarevideo_encode: disabled_softwarevulkan: disabled_offwebgl: unavailable_softwarewebgl2: unavailable_softwarewebgpu: unavailable_software

Load (avg)
undefined

Memory (System)
128.00GB (107.94GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (14)

Extension
Author (truncated)
Version

admin-pack
Mic
0.0.2

admin-tool-ext-win
Mic
0.1.3

agent
Mic
0.49.0

dacpac
Mic
1.14.0

import
Mic
1.6.0

profiler
Mic
0.14.0

query-history
Mic
0.5.3

schema-compare
Mic
1.21.0

sql-assessment
Mic
0.6.4

sql-migration
Mic
1.5.1

azdata-sanddance
msr
4.0.3

extra-sql-script-as
pac
0.5.0

sql-prompt
Red
0.2.14

poor-sql-formatter
WSR
0.1.0

I am also having this issue. At first switching between Results and Messages would get the results to render, but after a few queries even that is no longer working for me. Only the header row is drawn; no values or even grid lines are drawn for the result rows.

Did this only start happening with 1.47.1? Did 1.47 not have this issue?

Did this only start happening with 1.47.1? Did 1.47 not have this issue?

I think it existed before. I noticed that I had an update pending so I installed the update to see if that would fix the issue, but the issue remains. Unfortunately I did not check which version I was on before installing the update

If it's a relatively recent problem that was introduced, the 1.47 added this change https://github.com/microsoft/azuredatastudio/pull/24719 that added an additional check for the formatting of the result cells, which could potentially have caused the slowdown. Can you try the 1.46 release and see if that's any better?

Here's some additional info I just discovered while testing.
In about half of cases I saw the results grid get drawn for a brief moment, and then it disappeared. I didn't see actual values drawn, but the grid lines flickered in and then vanished.
For me the problem seems to be query/data dependent - in the particular query I was running the results began showing as soon as I excluded one nvarchar(max) column from the data set. There were other nvarchar(max) columns included, but the others didn't cause a problem. Upon further investigation when I took a descending top 10 instead of ascending my query worked which seems to indicate there's something about the data itself that can't be rendered. My column is storing email message body data so sometimes plaintext and sometimes html

Very similar behavior for me. I am also storing email message strings (varchar (5000)) and if I exclude the column everything works fine. If included, random rows disappear, see below...

This was happening with 1.47.0 as I just upgraded to .1 to see if this was fixed.  I can reproduce with the following HTML every time:
Text 3

Tabbing back and forth between results and messages works sometimes for now.
Other HTML seems ok, the following don't cause the issue:
Text 2

Text 1!

Further investigation gives me this as always reproducible:
SELECT 'abc'

It doesn't matter what the element is, whenever there's text-element-text it breaks. Text-element or element-text are ok.

Bug repros for me in 1.47.1, but not in the latest insiders build on 1.48. Closing as fixed.


Error handling and no_afl + no_honggfuzz

This PR adds better error handling and standardizes error messages. It also increases the verbosity of ziggy overall.
In addition, the first draft of the no_honggfuzz and no_afl option (for build and fuzz) is sketched, which solves #12. Should only be merged once this is done.

Also fixes #12


Can i use delegate() instead of on() to handle events

I'm using jQuery 1.6 and i don't have on() function to handle events when i tried to handle the events using delegate() nothing happens
$("#selectAddress").select2({
placeholder: "Search by: City",
allowClear: true
});
$( "body" ).delegate( "#selectAddress", "select2-opening", function() {
console.log("opening");
});
Thanks.

Closing this off because of the lack of activity. If this is not fixed in 4.0, and you are interested in seeing it fixed, add a :+1: to the ticket to bring it to our attention.
If you can add additional details, that would also be useful.

Would need this as well


Internet Explorer and local files

When running the file locally, Internet Explorer 11 gives the error "Unable to get property 'appendChild' of undefined or null reference" on "document.head.appendChild(style);", line 52.
Somehow, everything works remotely.
Tried window.addEventListener; it claims addEventListener not supported.
Using document.addEventListener gives same problem.

Works now, I guess. No longer reproducible. Maybe it was related to IE's "Document Mode 7" which I turned off. If this turns up again I'll reopen it.

Solved by ca2ed9e.


Caption on "fotorama_directive"

How do you think I should implement "Captions" (http://fotorama.io/customize/captions/) in the fotorama_directive (https://github.com/getnikola/plugins/pull/94)?
I mean, how the user should write the caption to associate with the images?
I was thinking on something like this:
.. fotorama::

  image0.jpg
  Caption for image0.jpg
  image1.jpg
  Caption for image1.jpg
  image2.jpg
  image3.jpg

But the thing is: how I can distinguish if the line is a caption or is a path? I can check if the filepath exists but maybe is a typo instead of a caption :)
Well, that's why I'm asking you guys.

Put them on one line and use some sort of delimiter, that is unlikely to appear in filenames and that exists on keyboards (\t?)
(also, you should ask in a comment in #94)

I just implemented this but I think there is a bug in the fotorama.io plugin because "thumbnails" and "captions" seems to be incompatible.
http://fotorama.io/customize/thumbnails/#comment-2249947976
Can we merge this PR as it is? and after I get an answer from them, I will add this feature I prefer thumbnails over captions :)


Windows: removing directories can fail

Hi,
In some cases dune-release (on Windows) creates files that it does not manage to remove:
$ dune-release distrib --skip-test
[-] Building source archive
dune-release.exe: [WARNING] The repo is dirty. The distribution archive may
                            be inconsistent. Uncommitted changes to files
                            (including dune-project) will be ignored.
[+] Wrote archive _build\ocamlformat-0.17.0.tbz

[-] Linting distrib in _build\ocamlformat-0.17.0
[ OK ] File README is present.
[ OK ] File LICENSE is present.
[ OK ] File CHANGES is present.
[ OK ] File opam is present.
[ OK ] lint opam file ocamlformat.opam.
[ OK ] opam field description is present
[ OK ] opam fields homepage and dev-repo can be parsed by dune-release
[ OK ] Skipping doc field linting, no doc field found
[ OK ] lint _build\ocamlformat-0.17.0 success

[-] Building package in _build\ocamlformat-0.17.0
[ OK ] package builds
dune-release.exe: [ERROR] delete directory _build\ocamlformat-0.17.0: _build\ocamlformat-0.17.0\_build\.aliases\default\install-0<PHONE_NUMBER>0000000000000000000000: The directory name is invalid.

Ultimately this looks like a bug in bos but we should be able to debug it in the context of dune-release.
I narrowed this down to opendir returning that error. It's not clear how that file is created. Copying it with the same attributes creates a file that can be succesfully removed with Bos.OS.Dir.delete. Renaming the file also preserves deletability. This looks like something that's inherent to the file. A process might still have it open, but no dune process seems to be running. And dune clean and unlink file can remove this file.

I had a look at it and couldn't find anything, does using the verbose mode -vv give more information that can help?


MM-18054 Checked for prev post comment line

Summary
Added check for prev post to stop the "Commented on" line when in same thread.
Ticket Link
https://mattermost.atlassian.net/browse/MM-18054
Checklist

[x] Has UI changes

Device Information
This PR was tested on:
iPhone X 12.4 (Simulator)
Android Pixel 29 API (Simulator)
Screenshots

@imisshtml can you please add unit tests?

@imisshtml can you please add unit tests?

On it!

@saturninoabril @migbot pending your reviews


[sw] Move Interrupt Vector Definition into CRT

The interrupt vector is defined in ibex_interrupt_vectors.S, and
expects the declarations in sw/device/lib/handler.h to be defined
(those in sw/device/lib/hander.c may be overriden by individual
executables).
However, if ibex_interrupt_vectors.S is not a direct dependency of an
executable, its contents are lost during linking and an interrupt vector
is never defined, which causes runtime issues, as noted in #2162.
Given the CRT initialises the value of mtvec to the address of the
vector in ibex_interrupt_vectors.S, it would make sense for this
dependency not to be broken, and for ibex_interrupt_vectors.S to be
part of the riscv_crt meson dependency, rather than the interrupt
library. This still allows the interrupt handlers to be overriden.
In order to help diagnose issues with the interrupt vector being dropped
during linking, the interrupt vector is now referred to using the
assembler global symbol (rather than one from the linker script), and
all 32 entries are provided (most are the instruction unimp), so that
the .text section will not overlap with it.
As a consequence of this change, the riscv_crt meson dependency now
requires at least one set of interrupt handler definitions, regardless
of whether you want to use them in your executable. This commit has had
to add the sw_lib_irq_handlers library to some existing executables.
The assembler was also needlessly padding the .vectors section, so an
argument has been provided to prevent this behaviour.

Tagging @GregAC because this required a patch to riscv-compliance. It seems to be fixed, at least. Sorry for the whitespace changes when refreshing the patches, I don't know how to prevent them (even after an investigation into vendor.py a few weeks ago around this same issue).


[TF 2.0 Docs] Doc update for math functions

Following functions are updated:

greater
greater_equal
is_finite
isinf
isnan
less
less_equal
log
log1p
lgamma

Reference issue: https://github.com/tensorflow/tensorflow/issues/25802

@martinwicke Could you please review this PR ?

@SSaishruthi Could you please address the reviewer comments. Thanks!

Can one of the admins verify this patch?

Will update. Sorry for the delay

@SSaishruthi Did you get a chance to look on reviewer comments? Please let us know on the update. Thanks!

@SSaishruthi Did you get a chance to look on reviewer comments? Please let us know on the update. Thanks!

Addressed comments and questions that need to be clarified from my side
@gbaned


Adds connection listeners that can be called statically

This way you can have a connection listener before initializing NetworkTables

Would C++ benefit from this as well (for API similarity)?  Is this a breaking change?

C++ does not have connection listeners at all in the NetworkTables API. And this should not be a breaking change. All of the IRemote functions are valid, and its always been up to the user to know exactly which instance the functions are being called on if the IRemote is received from the callbacks.


Prevent using VPN features as public API

Task/Issue URL: https://app.asana.com/0/488551667048375/1205069342285064/f
Description
Prevent the VPN feature from being accessible externally, as they're inside an :impl module
Steps to test this PR

[ ] Smoke tests the NP exclusion list
[ ] Smoke test the internal AppTP and NP screens

Current dependencies on/for this PR:

develop

PR #3347

PR #3348   👈

This comment was auto-generated by Graphite.


Updated with requirements

Giving readers more information about what to consider prior to making
an unmanaged server managed

@bjswoboda are you planning on fixing this issues above?

I plan on fixing it.
From: Matthew Osborn<EMAIL_ADDRESS>Sent: Thursday, July 16, 2015 11:06 AM
To: CenturyLinkCloud/PublicKB<EMAIL_ADDRESS>Cc: Swoboda, Benjamin<EMAIL_ADDRESS>Subject: Re: [PublicKB] Updated with requirements (#210)
@bjswobodahttps://github.com/bjswoboda are you planning on fixing this issues above?
—
Reply to this email directly or view it on GitHubhttps://github.com/CenturyLinkCloud/PublicKB/pull/210#issuecomment-122004098.
This communication is the property of CenturyLink and may contain confidential or privileged information. Unauthorized use of this communication is strictly prohibited and may be unlawful. If you have received this communication in error, please immediately notify the sender by reply e-mail and destroy all copies of the communication and any attachments.


Add Gitter chat link to Dashboard

https://gitter.im/Codewars/codewars.com

migrated: https://codewars.ideas.aha.io/ideas/CW-I-97 please close :)

since Aha is no loger in use should it be reopened?

I believe we do link from the forum/docs. Though it's not the most super obvious thing in the world. Might be a good thing. If Gitter blew up with too many people cheating it might just become a lot of noise.

@kazk when we think through the documentation styling and home page design we should take this into consideration.

Added to wiki.


Switch Epoch structure from 4-3-3 to 3-3-4

This is important for Genesis work. Ideally it should be done before Conway, however if it can be implemented in isolation within a single rule, then an intra-era hardfork could be possible as well.
Timeline for this is sometime next year (unclear when exactly).
Any questions about this should be directed to Christian Badertscher and Duncan

Also: Christian asked us to consider 4-2-4 which he said he would generally prefer of 3-3-4, if we don't have a significant preference.

We had to page this back into our brain today. I'm writing my summary here, since I struggled to recall it this clearly:

There are three phases of an epoch, in a ratio X:Y:Z.
X stake distribution stabilization
Y honest randomness
Z nonce stabilization
The implementation has only ever directly constrained X+Y+Z and Z.
Nothing in the implementation as ever constrained X or Y independently.
X+Y+Z has always been 10 -- specifically, the concrete length of an epoch is 10k/f slots (ie 5 days of wall clock) --- so the ratio numbers hide a shared k/f constant.
The Praos->Genesis change (which we don't understand the motivation for) was to increase Z from 3 to 4.
Specifically before Conway it was 3 and in Conway it's now 4.
The confusing thing is that Z was always intended to be 4, but due to an early mistake is was 3.
Erratum 17.3 explains the mistake.
Thankfully using 3 instead of 4 was harmless during Praos, but needed to be fixed before Genesis.


[SMALLFIX] Use static imports for standard test utilities in IndexedS…

…etTest.java

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/15800/
Test PASSed.


Error when loading external scripts dynamically with SPComponentLoader (RC0)

Category

[ ] Question
[ ] Typo
[X ] Bug
[ ] Enhancement / Suggestion
[ ] Additional article idea

Observed Behavior
With the SPFx RC0 and the SPComponentLoader class from the sp-loader module, I failed to load  some specific scripts (some scripts are working and some others not). The same scripts was correctly loaded with the Drop 6.
For example with this code:
import { SPComponentLoader } from '@microsoft/sp-loader';
..
var ckEditorCdn: string = '//cdn.ckeditor.com/4.5.11/full/ckeditor.js';
SPComponentLoader.loadScript(ckEditorCdn, 'CKEDITOR').then((CKEDITOR: any): void => {
...
});

The script fails to load with the following error:
VM4757:4 - Uncaught (in promise) Error:
	Error loading https://cdn.ckeditor.com/4.5.11/full/ckeditor.js

@OlivierCC  : Add your script inside  external section in package. json file
and call it in to your webpart file using import/require(' ').
It will work.

Thanks @vbartari, but the problem is that the import/require method in RC0 has also bugs with loading from CDN (https://github.com/SharePoint/sp-dev-docs/issues/336). I can also include external scripts directly in the buddle but I preffer really to use external CDN.

In RC0 the signature of the loadScript method has changed. So instead of using SPComponentLoader.loadScript(ckEditorCdn, 'CKEDITOR') you should use SPComponentLoader.loadScript(ckEditorCdn, { globalExportsName: 'CKEDITOR' }).

Here are some notes on require/SPCOmponentLoader from @nickpape-msft
There are a couple differences between the 2 methods:
Require
•	This method should work:
o	Regardless of where your script is located: A CDN, your node_modules, or your src/ folder.
o	Regardless of whether your script is an AMD module or not (use globalName)
o	Regardless of whether you want the script bundled or not.
•	You automatically get better TypeScript support around typings
•	This means the resource is loaded when loading the bundle. [Due to webpack: the resource is listed at the top of the bundle in the define() statement].. You might not want this in every case (such as if you want to load something only in edit mode).
•	The resource, if it is not pointed at a qualified URL in the config.json, will be pulled into the build system (e.g. it will be in the dist/ folder after a successful build). If it is bundled, the code will be in the bundle. If it is not bundled, there will be a separate file in the dist folder. Essentially, using require allows the build system to know about the resource.
SPComponentLoader
•	You don’t want the script loaded when the WebPart is loaded (perhaps you want to wait until the webpart is in edit mode).
•	The path to the resource may change (imagine that you might want to load one of 3 scripts, and that changes based on user input).
•	You are having issues with require for one reason or another.

@waldekmastykarz thanks a lot that's working now with the good signature of the loadscript method !!
@patmill thanks a lot for this complete explanation, very very usefull.
I'm closing the bug. Thanks a lot for your help.


Folders are no longer expandable using ENTER key

Environment

Operating System: Ubuntu 18
Vim version :version: 8.1 1-409
NERDTree version git rev-parse --short HEAD: b84a8b6
NERDTree settings applied in your vimrc, if any:

" source: https://github.com/scrooloose/nerdtree/issues/636
let NERDTreeDirArrowExpandable = " "
let NERDTreeDirArrowCollapsible = " "
```
Process

Hit ENTER key to expand a folder under NERDTree tree

Current Result

Folders are no longer expandable using ENTER key. Also, many other actions such as m stopped working
Expected Result

Folders are expandable using ENTER key
Screenshot(s)
Possible Fix

let g:NERDTreeDirArrowExpandable = '▸'
let g:NERDTreeDirArrowCollapsible = '▾'

@mboughaba , See #904.


As as an App Admin, I want all DokuWiki user accounts moved to Gogs to support migration.

From @bspidel on January 21, 2016 20:54
Acceptance Criteria:
1 - I can use code at github.com/gogits/gogs/pull/2070/commits
2 - Users can access Gogs without registering.
3 - DokuWiki accounts remain until Door43 looks to Gogs
Copied from original issue: unfoldingWord-dev/sysadmin#39

From @jag3773 on February 1, 2016 20:48
Possibly, we could set DokuWiki to query the Gogs user DB via the postgres DB.  Not sure if it is worth the development effort though.

See #12 for setting DW to query gogs user db.

Note, do not overwrite any existing users in gogs.


rosidl_typesupport: 1.2.1-1 in 'rolling/distribution.yaml' [bloom]

Increasing version of package(s) in repository rosidl_typesupport to 1.2.1-1:

upstream repository: https://github.com/ros2/rosidl_typesupport.git
release repository: https://github.com/ros2-gbp/rosidl_typesupport-release.git
distro file: rolling/distribution.yaml
bloom version: 0.10.3
previous version for package: 1.2.0-1

rosidl_typesupport_c
* updating quality declaration links (re: ros2/docs.ros2.org#52 <https://github.com/ros2/docs.ros2.org/issues/52>) (#108 <https://github.com/ros2/rosidl_typesupport/issues/108>)
* Contributors: shonigmann

rosidl_typesupport_cpp
* updating quality declaration links (re: ros2/docs.ros2.org#52 <https://github.com/ros2/docs.ros2.org/issues/52>) (#108 <https://github.com/ros2/rosidl_typesupport/issues/108>)
* Contributors: shonigmann

Please hold for coordinated merge.


http vs https in static html

Hello!
The problem:

set no https listener or configuraiton, direct http in a simple local server.
set a name with hostile
set a public folder for html files
put in 2 html files with 2 links

result: When you have a static html in a public folder and click on simple link, link go ever in https and not http.
heeeelp XD
-this is an amazing plugin, i love you, it work also in linux?-

Hostile only modifies the /etc/hosts (or equivalent) file. This is a problem with your webserver or webbrowser we can't help you with here

Hostile only updates /etc/hosts (or the Windows equivalent file). Your problem is with your webserver or webbrowser with which we can't help you here
(if you see this twice, sorry - logged into wrong account earlier)

ah...
.. the strange is that the localhost and <IP_ADDRESS> work, only the links of the static files are blocked if they are tied to the new namehost.
I investigate, if I find a solution I tell, maybe it is useful.
anyway, thanks.

Sounds like strict-transport-security - perhaps you're using a .dev domain name or another hostname which your browser was told to only access over https. Overriding the IP address doesn't change any of those rules
(but still out of scope here, so I'll close now)

helmet.contentSecurityPolicy() lock to https all static links.
I'm sorry... it was my fault.
thanks.


apply new jadx

Codecov Report

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

@@           Coverage Diff           @@
##           master     #722   +/-   ##
=======================================
  Coverage   72.57%   72.57%
=======================================
  Files          49       49
  Lines       15967    15967
=======================================
  Hits        11588    11588
  Misses       4379     4379

Continue to review full report at Codecov.

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


STM32_Programmer_CLI not found

According to the stm32duino wiki, upload methods that don't require stm32cube to be installed have been deprecated so I think we should also call out that in order to use this library, you have to install stm32cube.

We do have the following in the Getting Started (Arduino Edition) section of the wiki. If you were looking somewhere else, we can add notice, and/or a link to the wiki from there as well.

Make sure to perform the "extra step" of installing STM32CubeProg, as that application is required for uploading firmware to the Daisy. You can return to this Wiki page after that step.

Ah-ha. Yeah, i was following the Getting Started section inside the README of this repo. https://github.com/electro-smith/ArduinoAudio#getting-started Definitely should link to the wiki page from there. That'd solve all future confusion 👍

I'll get the readme updated today

readme is updated and now points to the DaisyWiki getting started page


Remove old taskcluster use from webrender.

@bors-servo r+

:pushpin: Commit 1b3b5bb has been approved by SimonSapin

:hourglass: Testing commit 1b3b5bb7be395b25aa26c7ebf0b504bc07cf3f12 with merge 9f1f32958d50bdc2008bbfc162b308da3eaa5654...

:sunny: Test successful - checks-travis
Approved by: SimonSapin
Pushing 9f1f32958d50bdc2008bbfc162b308da3eaa5654 to master...


docs(): authentication tutorial with ionic

authentication with ionic and firebase
Checklist

Issue number for this PR: #1601 #1600  #1719
Docs included?: yes
Test units included?: no
In a clean directory, yarn install, yarn test run successfully? yes

Description
Updating our documentation on Ionic Authentication. it work with google and facebook

Yes sir! I'm on my way

No faults! We don't have clear guides on formats so there's going to be a bit of back and forth to get it into shape.

thank you @Chan4077 @davideast for guiding me to present the article better. Would you mind to help me to check my new update ?

@davideast  I already updated sir, can you check on my commit?

Thanks @hiepxanh!

you're welcome. I'm happy to help


Update secure GORM example with app retry loop

This change is

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/a8d8f1b5df4fc1195cf15c17d3cf05c7121f8c1f/
Edited pages:

v19.1/build-a-go-app-with-cockroachdb-gorm.md


chore(babel-hoist): use early return rather than tracking flag

Summary
From #10723

Test plan
Green CI

Yeah, this is faulty - we need to break out if the while, not the outer for


houskeepin'

PR does many random things to clean up the repository and add some of Github's community health files
List of things that get done (add to this as commits come in):

fix eq language
README updates
contributing
issue and pr templates
how to get support

I think I want to squash merge this when done

goal: finish today™

@VelvetRemedy is also very involved im not taking all the credit


About WebView

Hello,
I found "Microsoft.Win32WebViewHost_cw5n1h2txyewy" in the SystemApps folder in the C drive, but I don't know if it's part of "WebView". Can you please add the removal program?

This is the legacy WebView and directly considered as a system component, it's not apart of Edge Chromium.


Cityscapes Swin-S miou only 56

How u tested on cityscapes? Seems miou not so good. Training from scratch.

@jinfagang
Hi, do you Did you encounter the following error while running the code(tools/dist_test.sh /home/dai/code/semantic_segmentation/25/Swin-Transformer-Semantic-Segmentation-main/configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k.py /home/dai/code/semantic_segmentation/25/Swin-Transformer-Semantic-Segmentation-main/upernet_swin_base_patch4_window7_512x512.pth 2 --aug-test --eval mIoU)
"AssertionError:     fused_bias_leakyrelu miss in module _extext_module = ext_loader.load_ext('_ext', ['fused_bias_leakyrelu'])"

@jinfagan
is this code run in windows not ubuntu?

@ancientmooner
@jinfagang
is this code run in windows not ubuntu?

Hi, @jinfagang . We have not tried to train models from scratch. You may also have a try with our ImageNet pre-trained models held in this page
In addition, our default setting was searched for ADE20K and it might be sub-optimal for Cityscapes.

@impiga Will u guys also tried on other datasets? Just one task not very convincing.

How u tested on cityscapes? Seems miou not so good. Training from scratch.

Hi, I am able to reproduce swin-S on Cityscapes with mIoU of 81.4%. The dataloader of cityscapes is problematic. The labels should be transferred to TrainIds. There is a lot of void ids in citys's labels. You can check my training log.

20210616_091321.log

@xdeng7 Would u PR your changes to this repo repaired id issue? BTW, how's the speed of swin-s? What's your input resolution?


Show as many processes on the front page as the window allows.

As of today we only show ~15 processes on the front-page.
Calculate how many we can show (height and width) and display as many as possible on a page.

@knudsvik suggested using an infinite scroll instead. And I agree.

Closing this for now.


KBQA model for simple question answering in Russian not working

Code :
from deeppavlov import configs, build_model

kbqa_model = build_model(configs.kbqa.kbqa_rus, download=True)
kbqa_model(['Когда родился Пушкин?'])

fails with :
kbqa_model = build_model(configs.kbqa.kbqa_cq_rus, download=True)
AttributeError: 'Struct' object has no attribute 'kbqa_cq_rus'

DeepPavlov version : 0.10.0
Python version:   3.6.9
Operating system : Ubuntu 18.04

KBQA model for simple question answering was replaced with beta version of KBQA model for complex question answering in the latest release of DeepPavlov. New config is in the folder configs/kbqa/kbqa_cq_rus.json

Hi @mosvlad,
configs.kbqa.kbqa_cq_rus was added in 0.11.0


API-1835: migrate the node controller to SSA

tested the pr manually with a custom scaling test.
The original NodeStatuses were:
  nodeStatuses:
  - currentRevision: 6
    lastFailedCount: 0
    lastFailedReason: ""
    lastFailedRevision: 0
    lastFallbackCount: 0
    nodeName: ip-10-0-1-65.ec2.internal
    targetRevision: 8
  - currentRevision: 6
    lastFailedCount: 0
    lastFailedReason: ""
    lastFailedRevision: 0
    lastFallbackCount: 0
    nodeName: ip-10-0-38-169.ec2.internal
    targetRevision: 0
  - currentRevision: 6
    lastFailedCount: 0
    lastFailedReason: ""
    lastFailedRevision: 0
    lastFallbackCount: 0
    nodeName: ip-10-0-87-84.ec2.internal
    targetRevision: 0

After adding a new node:
nodeStatuses:
  - currentRevision: 8
    lastFailedCount: 0
    lastFailedReason: ""
    lastFailedRevision: 0
    lastFallbackCount: 0
    nodeName: ip-10-0-1-65.ec2.internal
    targetRevision: 0
  - currentRevision: 0
    lastFailedCount: 0
    lastFailedReason: ""
    lastFailedRevision: 0
    lastFallbackCount: 0
    nodeName: ip-10-0-27-177.ec2.internal
    targetRevision: 8
  - currentRevision: 8
    lastFailedCount: 0
    lastFailedReason: ""
    lastFailedRevision: 0
    lastFallbackCount: 0
    nodeName: ip-10-0-38-169.ec2.internal
    targetRevision: 0
  - currentRevision: 8
    lastFailedCount: 0
    lastFailedReason: ""
    lastFailedRevision: 0
    lastFallbackCount: 0
    nodeName: ip-10-0-87-84.ec2.internal
    targetRevision: 0

After removing the old node:
 nodeStatuses:
  - currentRevision: 9
    lastFailedCount: 0
    lastFailedReason: ""
    lastFailedRevision: 0
    lastFallbackCount: 0
    nodeName: ip-10-0-27-177.ec2.internal
    targetRevision: 0
  - currentRevision: 9
    lastFailedCount: 0
    lastFailedReason: ""
    lastFailedRevision: 0
    lastFallbackCount: 0
    nodeName: ip-10-0-38-169.ec2.internal
    targetRevision: 0
  - currentRevision: 9
    lastFailedCount: 0
    lastFailedReason: ""
    lastFailedRevision: 0
    lastFallbackCount: 0
    nodeName: ip-10-0-87-84.ec2.internal
    targetRevision: 0

oc get node
NAME                          STATUS   ROLES                  AGE    VERSION
ip-10-0-27-177.ec2.internal   Ready    control-plane,master   27m    v1.31.1
ip-10-0-3-155.ec2.internal    Ready    worker                 135m   v1.31.1
ip-10-0-38-169.ec2.internal   Ready    control-plane,master   143m   v1.31.1
ip-10-0-63-96.ec2.internal    Ready    worker                 136m   v1.31.1
ip-10-0-74-241.ec2.internal   Ready    worker                 136m   v1.31.1
ip-10-0-87-84.ec2.internal    Ready    control-plane,master   143m   v1.31.1

proof pr at https://github.com/openshift/cluster-kube-apiserver-operator/pull/1755

/assign @bertinatto @deads2k

/lgtm


graph/encoding: update serialisers and deserialisers to handle multigraphs

/cc @mewmew

I have a branch that takes a stab at dot encoding of multigraphs:
https://github.com/32bitkid/gonum/tree/multigraph-encoding
The external API doesn't change on Marshal() and internally the implementation is abstracted to either output the simply edge if g is not a Multigraph, or iterate and output the lines if it is. It supports both attributes on edges/lines as well as ports:compass annotations (the same way that strict graphs currently do), if they implemented on the graph.Line.
I would love to get some feedback on the implementation and other possible tests that would make sense before queueing up a PR. Thanks!

I have a branch that takes a stab at dot encoding of multigraphs:

@32bitkid That's great to hear! Just a heads up, I'm in the midst of heavy study semester at Uni, so I'll have to refer the review to @kortschak for now.
Cheers,
/u

thats cool.
@kortschak I also have a branch with some changes to support multigraph decoding, but it might be worth more of a discussion on the changes in there. The big change is a split of Builder into two interfaces for each type StrictBuilder (for non-multigraphs) and MultiBuilder
type Builder interface {
	graph.Graph
	graph.NodeAdder
}

type StrictBuilder interface {
 	graph.Graph
 	graph.Builder
 }

type MultiBuilder interface {
	graph.Multigraph
	graph.MultigraphBuilder
}

This could potentially not be quite right, however the Unmarshal() parameter list is unchanged, and should be 100% backwards compatible. Internally it switches on the Builder type to determine which Add* method should be used, AddEdge() or AddLine(), and will panic() if neither one is implemented. If there is a better way to represent this hierarchy/type-union I'd love to hear it, because statically asserting this seems more ideal.
Also of note: on that branch, the graphql decoder hasn't been updated yet, as I'm not sure if it should be able to decode to a Multigraph, although I can think of no reason why it shouldn't, and I'd have to rework decode_test.go support testing this.

The plans I had involved splitting builder into parts as you have, though they would be Builder and MultiBuilder, and two sets marshal/unmarshalers. I'll have a look at your branch sometime tomorrow. I would like to avoid switches.
The GraphQL decoder has not been updated because it doesn't make sense to represent multigraphs with GraphQL output. A GraphQL encoder would be more useful, though more as a way of implementing shims between a GraphQL-returning graph database a client (it's not a priority for me right now).

@kortschak I've thought about it more, and I think I agree on the decoder/Unmarshal side, that its probably better to have separate methods for parsing—ones that can enforce the proper type constraint at compile time, rather than the way that I was doing it before.
There is an updated branch that does exposes the public API as Unmarshal() and UnmarshalMulti(). Internally it still propagates the dst object generically, and pulls the proper interface when it needs to add a node or a edge/line, but I guess I could be convinced that a full copy-paste is warranted; but it feels wasteful to me because the majority of methods not really care.
On the Marhsal() side, I'm not sure I agree, it feel like its relatively safe and predictable, that you could give it either a graph.Graph or a graph.Multigraph and expect that it to encode correctly. The only part of it that gives me pause there is that the interface takes the strict argument, which can be implied from the graph type, i.e. graph.Graph I think is always strict in this context (unless you've intentionally collided a DOTID, which seems like a not great idea), but a graph.Multigraph could be either. So, I'm not sure where I come down on explicitly setting a strict boolean, as opposed to trying to derive it from the graph type in question.
Anyway, check it out when you get a chance, and we can figure out what the right approach is.

I got around to doing some more work on this and I think you are right, even on the Marshal() side, I was doing some preliminary testing with multi.DirectedGraph() with coincidentally does implement graph.Graph as well as graph.Multigraph but the interfaces themselves do not overlap. So, I'm going to rework a few things on my branch and make discrete Marshal() and MarshalMulti(), as well as Unmarshal() and UnmarshalMulti() methods.

@32bitkid Did you get around to reworking this or making progress?

@siddharthist I am dusting off some of my old branches now and updating them to work with the graph iterators that were added with b73a2c9. So, once thats done I will open a PR for some feedback that will hopefully finally resolve this issue.


I noted that example in test are a thing and usually  named

example_text.go
For example in go code here https://go.dev/src/html/example_test.go

I'd prefer to keep the [filename]_test.go format for now.  Thanks for the proposal!

I'd prefer to keep the [filename]_test.go format for now.  Thanks for the proposal!

Hi @SeanJxie,
I didn't explain it very well, there are two separate test concept, If I understood it right:

example_test.go has some library usage examples ( and test them)
[filename]_test.go test single file function

They are both used in the code of go core libraries, check https://go.dev/src/html/example_test.go for example
I am 100% ok if you decide a different direction for your library but I wanted to be sure  I explained it correctly
Have a great day
Marco


[Flake] Pub/Sub samples timeout in test

https://source.cloud.google.com/results/invocations/29229a70-3153-456e-8e9e-f55f127bafad
7/7 Test #207: pubsub_samples ...............................***Timeout 1500.10 sec

Running SubscribeAvroRecords() sample

Running PublishAvroRecords() sample

Waiting for session [SubscribeAvroRecords]... TIMEOUT
Standard exception raised: session timeout

GCB: https://console.cloud.google.com/cloud-build/builds;region=us-east1/a47ece6e-0bea-4a9e-954d-982ae9853396;tab=detail?project=cloud-cpp-testing-resources
Raw: https://storage.googleapis.com/cloud-cpp-community-publiclogs/logs/google-cloud-cpp/9430/3787eabd7ed84dfdea7eafc194b7946ab7bba8bc/fedora-35-cmake-gcs-rest/log-a47ece6e-0bea-4a9e-954d-982ae9853396.txt

It is not the same problem. I probably should have opened a separate issue. I only filed it here because the title matched.

No repeats in 90d, and probably reopened in error. Closing.


Indent rule should enforce tab indentation size

Bug Report

TSLint version: 5.9.1
TypeScript version: 2.6.2
Running TSLint via: (pick one) CLI

TypeScript code being linted
function test() {
		console.log('test');
}

with tslint.json configuration:
"indent": [ true, "tabs", 1 ]

Actual behavior
No error
Expected behavior
Error

This might be related: https://github.com/palantir/tslint/issues/1814

As you mentioned, I think the issue in this situation is that its hard to tell what the size of a tab is. What happens with code like:
function test() {
		console.log('test');
				console.log('test2');
}

Thank you @0815fox. You're making a lot of sense to me.
So "indent": [ true, "tabs", 1 ] should be defining that "one level of indentation" is one tab character, just like "indent": [ true, "tabs", 2 ] should mean that "one level of indentation" is exactly two tab characters. What width the user decides to render a tab characters as is then up to the user, as it always is when doing tab indentation.
The only sensible way that I can see of handling the example from @johnwiseheart when setting "indent": [ true, "tabs", 1 ] is to produce an error, as we can not enforce the rule if we allow mixed indentation at the same time.

I would expect @johnwiseheart 's example to produce an error in all cases, unless indent is disabled completely. Both console.log commands have the same level of indentation from a code structure point of view.
Assuming, that his first console.log is indented by one tab character and his second one by two tab characters, "indent": [ true, "tabs", 1 ] would mark the second one as wrong, "indent": [ true, "tabs", 2 ] would mark the first one as wrong and "indent": [ true, "tabs", 42 ] would mark both as wrong.
The implementor of the rule should just not think about how the indentation is displayed. He should check, that for each nesting in the source tree arg3 more arg2 's should be at the beginning of the line.
In our example [ true, "tabs", 1 ]: for each nesting in the source tree exactly one more \t character should be present.

closing in favor of #2814


Update init.py

Added send_to_story function

Please run flake8 and fix any style issues. Also, your commit message should reflect what has changed, e.g. "Add send_to_story".


Like to have the possibility to set the blobid from the serving application

In some use cases, it is more convenient to have the consuming client application set the blob ID.

implemented


safe ethers lib throwing error with new version1.6.0

Description
I was using @gnosis.pm/safe-ethers-lib version 1.1.0. I switched to the newer version 1.6.0, which throws the below error.
Error: Cannot find module '../../typechain/src/ethers-v5/v1.1.1/factories/Gnosis_safe__factory'
Require stack:
-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>- /app/server/helpers/safecore-sdk.ts
- /app/server/helpers/index.ts
- /app/server/middlewares/errorLogger.ts
- /app/server/index.ts
- /app/app.ts
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
    at Function.Module._resolveFilename.sharedData.moduleResolveFilenameHook.installedValue (/app/node_modules/@cspotcode/source-map-support/source-map-support.js:811:30)
    at Function.Module._resolveFilename (/app/node_modules/tsconfig-paths/src/register.ts:115:36)
    at Function.Module._load (node:internal/modules/cjs/loader:778:27)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (/app/node_modules/@gnosis.pm/safe-ethers-lib/src/contracts/contractInstancesEthers.ts:3:1)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Object.require.extensions.<computed> [as .js] (/app/node_modules/ts-node/src/index.ts:1587:43) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>    '/app/server/helpers/safecore-sdk.ts',
    '/app/server/helpers/index.ts',
    '/app/server/middlewares/errorLogger.ts',
    '/app/server/index.ts',
    '/app/app.ts'
  ]
}
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Also, not in Windows but on Mac, somehow 1.1.0 is now throwing the below error:
ts-node-dev ver. 2.0.0 (using ts-node ver. 10.9.1, typescript ver. 4.8.3)
Compilation error in /Users/nakul/Documents/projects/mesha/mesha-be/server/helpers/safecore-sdk.ts
[ERROR] 23:09:03 ⨯ Unable to compile TypeScript:
server/helpers/safecore-sdk.ts(44,45): error TS2740: Type 'EthersAdapter' is missing the following properties from type 'EthAdapter': getNonce, getChecksummedAddress, getMultiSendCallOnlyContract, getStorageAt, and 3 more.

This error was not there before switching to 1.6.0 and is now blocking us as it is occurring on Mac system and on the server.
Environment

Safe Core SDK version: 2.1.0
Safe service client version: 1.0.1
Node version: 16.13.1
ts-node version: 10.8.2
Environment:

non-browser

Expected result
No error.

Stuck with this issue as well !

@c-jain @len-cl
Thanks for reporting, I'm working on fixing this issue.
Meanwhile, these are the latest version numbers prior to this issue that can be used:

safe-core-sdk: v3.0.0
safe-service-client: v1.2.0
safe-ethers-lib: v1.5.0
safe-web3-lib: v1.5.0
safe-core-sdk-types: v1.5.0
safe-core-sdk-utils: v1.3.0

Still getting the following error with safe-ethers-lib v1.5.0:
server/helpers/safecore-sdk.ts(44,45): error TS2740: Type 'EthersAdapter' is missing the following properties from type 'EthAdapter': getNonce, getChecksummedAddress, getMultiSendCallOnlyContract, getStorageAt, and 3 more.
Temporarily fixed by setting the output to any
 const ethAdapter: any = new EthersAdapter({
      ethers,
      signer,
    });

Still getting the following error with safe-ethers-lib v1.5.0:
server/helpers/safecore-sdk.ts(44,45): error TS2740: Type 'EthersAdapter' is missing the following properties from type 'EthAdapter': getNonce, getChecksummedAddress, getMultiSendCallOnlyContract, getStorageAt, and 3 more.

Make sure to use safe-ethers-lib v1.5.0 with safe-core-sdk-types v1.5.0. That should be not related with this issue

@c-jain @len-cl @motonauta @nakulthebuilder
Fixed here in the next release: https://github.com/safe-global/safe-core-sdk/releases/tag/r19
These are the new version numbers:

safe-core-sdk: v3.1.1
safe-service-client: v1.3.1
safe-ethers-lib: v1.6.1
safe-web3-lib: v1.6.1
safe-core-sdk-types: v1.6.1
safe-core-sdk-utils: v1.4.1


Don't make CMAKE_BUILD_TYPE invisible in cmake-gui

Enable c++1z on Apple.
Set CMAKE_CXX_STANDARD_REQUIRED flag to true, to error-out on non c++14 compilers.
closes #107

@BearishSun the code base is using OptimizedDebug, which seems to be closely related to cmake's standard RelWithDebInfo, out of curiosity what is the difference ?

Re OptimizedDebug: I believe the intent was to use this configuration primarily for debug purposes, so the name suited better (various debug checks remain enabled, even though its an optimized build). I'm currently rethinking the configurations with the release near, as I want symbols for debugging, yet a build with no debugging checks for the user itself. Might either create a new config, modify OptimizedDebug, or just add debug symbols to Release (the last option seeming like the most likely).

Apparently that's what RelWithDebInfo is for :)

Merged.


Added support for NATS message headers when server is compatible

On NATS reader received message headers are exposed to message metadata
On NATS writer a new interpolable map field headers is available to write headers on the outgoing message

Looks great, thanks @angiglesias!


[Portal] Hydration failure in SSR when initially rendered

This manifests itself in Dialog and AlertDialog when using Portal with DefaultOpen in SSR env.
https://codesandbox.io/s/friendly-morning-3ny0r5?file=/pages/index.tsx

It seems the original portal had some code to bail out of ssr.
Do we need similar for the new one?

It seems the original portal had some code to bail out of ssr.

Do you mean this?

Do we need similar for the new one?

I think this is slightly different as hydration expects matching server / client. If we want to continue injecting into body by default we’ll probably have to add another render and do it as another pass on client only.

The same issue here when working with next.js, any plan to fix this? Now my workaround is set the open to false, then set it true in useEffect when page has mounted.

Another solution is to pass a wrapper node to container

I'd like to know if this hydration error also relates to this issue. I'm conditionally rendering a Dialog or Button based on viewport size. If it's a small window, I'd like to redirect the user to the registration page, otherwise, show a register dialog.
This is a contrived example showing the error:
https://stackblitz.com/edit/nextjs-hahx6j?file=pages/index.js
Error: Warning: Text content did not match. Server: "redirect to page.." Client: "open me dialog"

I'd like to know if this hydration error also relates to this issue. I'm conditionally rendering a Dialog or Button based on viewport size.

Not directly, no. The server has no concept of screen media size until it hits the client which is why is falls into the false block on server and hydrates true on desktop and reports a mismatch.

Another solution is to pass a wrapper node to container

I've tried this, but popover not showing in the first render, which is open=true

simple workaround iam using
function Content({ children }) {
  const { open } = usePopover();

  //workaround for radix bug
  const [portalKey, setPortalKey] = useState(0);
  const containerRef = useRef(0);
  useEffect(() => {
    let createdElement = document.createElement("div");
    createdElement.setAttribute("id", "radix-popover");
    document.body.appendChild(createdElement);
    containerRef.current = createdElement;
    setPortalKey((prev) => prev + 1);
  }, []);

  return (
    <AnimatePresence>
      {open ? (
        <PopoverPrimitive.Portal
          forceMount
          container={containerRef.current}
          key={portalKey}
          className="relative"
        >
          <PopoverPrimitive.Content asChild forceMount>
            <motion.div>
              {children}
              <Arrow></Arrow>
            </motion.div>
          </PopoverPrimitive.Content>
        </PopoverPrimitive.Portal>
      ) : null}
    </AnimatePresence>
  );
}

FYI headlessui's portal works out of the box in NextJS SSR, curious how they did it, but the code is too complicated for me to understand
https://github.com/tailwindlabs/headlessui/blob/main/packages/%40headlessui-react/src/components/portal/portal.tsx

Another solution is to pass a wrapper node to container

Could you please write a demo here, I really don't  understand how to pass a wrapper node to container

Bump +1⃣

Any updates on this?
I was able to use a workaround for dialogs, but I'm currently back to square one with the toast viewport.

Hey, I had this issue just now and I fixed by making it a client component + useState + useEffect.
I am using next 13.4.3, with @radix-ui/react-alert-dialog 1.0.4
Here is a working version using the 'open' prop to AlertDialog's root.
"use client";

import {
  AlertDialog,
  AlertDialogAction,
  AlertDialogCancel,
  AlertDialogContent,
  AlertDialogDescription,
  AlertDialogFooter,
  AlertDialogHeader,
  AlertDialogTitle,
  AlertDialogTrigger,
} from "@/components/ui/alert-dialog";
import { Button } from "@/components/ui/button";
import React from "react";

export function StatusAlertDialog() {
  const [isOpen, setIsOpen] = React.useState(false);

  React.useEffect(() => {
    setIsOpen(true);
  }, []);
  return (
    <AlertDialog open={isOpen}>
      <AlertDialogTrigger asChild>
        <Button variant="outline">Show Dialog</Button>
      </AlertDialogTrigger>
      <AlertDialogContent>
        <AlertDialogHeader>
          <AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle>
          <AlertDialogDescription>
            This action cannot be undone. This will permanently delete your
            account and remove your data from our servers.
          </AlertDialogDescription>
        </AlertDialogHeader>
        <AlertDialogFooter>
          <AlertDialogCancel>Cancel</AlertDialogCancel>
          <AlertDialogAction>Continue</AlertDialogAction>
        </AlertDialogFooter>
      </AlertDialogContent>
    </AlertDialog>
  );
}

Toast viewport is broken as well and I can't seem to find a workaround for it, no container prop and it doesn't matter if there's no toasts open, so no useEffect hack either.

We're running into this as well.
Building on top of @adomaitisc's solution, here's a component that only replaces the Root component (in this case for the Dialog, but could be AlertDialog just as well):
import type { DialogContentProps } from '@radix-ui/react-dialog'
import * as RadixDialog from '@radix-ui/react-dialog'

const Root: React.FC<RadixDialog.DialogProps> = (props) => {
  // This terrible hack is needed to prevent hydration errors.
  // The Radix Dialog is not rendered correctly server side, so we need to prevent it from rendering until the client side hydration is complete (and `useEffect` is run).
  // The issue is reported here: https://github.com/radix-ui/primitives/issues/1386
  const [open, setOpen] = useState<boolean | undefined>(props.open === undefined ? undefined : false)

  useEffect(() => {
    setOpen(props.open)
  }, [props.open, setOpen])

  return <RadixDialog.Root {...props} open={open} />
}

You can then use this custom Root instead of the default one.

Toast viewport is broken as well and I can't seem to find a workaround for it, no container prop and it doesn't matter if there's no toasts open, so no useEffect hack either.

Having the same issue as @pharaok. I get a hydration error when using the Toast provider in Next app dir

This also creates some big problems when using astro & SSG with any radix-ui component.
Can we get a permanent fix for this that allows components to be hydrated correctly?

I just did this to fix the current issue.
export const Panel = (props: PropsWithChildren<PenelProps>) => {
  const [isClient, setIsClient] = useState(false);

  const { children } = props;
  const { onToggleDropdown, isOpen } = useDropdown();

  useEffect(() => {
    setIsClient(true);
  }, []);

  if (!isClient) return;

  return isOpen ? (
    <Portal.Root>
      <DefaultStylePanel>{children}</DefaultStylePanel>
    </Portal.Root>
  ) : null;
};

TL;DR: Leaky abstraction.
I think it is important to realize right now that we are pursuing what we might not want in the end. Hydration, in my opinion, is the non-essential ingredient for web development. In the traditional way of doing web development, there are only HTML, CSS and JS. Do we need hydration to do dialogs in HTML, CSS and JS? No, but we have to right now, because hydration is a side effect of wanting to use a UI "library" to manage the DOM and its interactivity. There's nothing wrong with that if you need a UI "library" (not just for rendering the elements, but also organizing interactions and states), but UI "library" and a server, hence hydration, takes time to learn, which traditional websites and client-side apps doesn't have to.
With that said, looking at the Radix UI code, I think it is too complex (saying this from the perspective of a developer taking Radix UI's idea and build a composable unstyled UI component internally). Maybe it has to be that way to accommodate all of the components there are, but if you're using Radix UI and you hit a stone (just as I do when I have to write my own composable UI for a "Scrollable Horizontal List" and potentially wants to contribute to Radix UI), you're damned. Either spend 8 hours becoming a maintainer of Radix UI just to write your component that extends Radix UI's primitives, or you have to start from scratch.
Stones, like Radix UI's hydration error. Do you understand exactly why even with open={true}, the dialog still not open on the Server-side render pass? There's no way React do this by default - setting open={true} will just do nothing and decides:

"Hmm, maybe I should just use some effects to show something."

Is it React Portal's fault? Is it Radix UI's <Portal>'s fault? Is it the fact that the position of the dialog depends on the presence of the client-side because guessing the height of the user's viewport on the server is outright impossible? How do you go ahead and resolve the issue (and this GitHub issue altogether)?
So maybe the next time you got problems with Radix UI's SSR problem, maybe, just maybe, realize that Radix UI is working around React's problems just to be an unstyled UI library. Maybe you just have to understand everything and solve it yourself. I hope that you have the same vision as me, about the future where web development starts with HTML, CSS and JS (i.e. unstyled UI library/components for the web), not React (unstyled components in React).

@intagaming I agree with most of what you say. But the reality is that we need hydration because otherwise pages are super slow (mostly because, let's face it react is slow).
Also, I understand that dialogs and such depend on the size of the screen and therefore cannot hydrate. However, components such as dropdowns, if not open by default should be able to hydrate without issue.

@intagaming I agree with most of what you say. But the reality is that we need hydration because otherwise pages are super slow (mostly because, let's face it react is slow).
Also, I understand that dialogs and such depend on the size of the screen and therefore cannot hydrate. However, components such as dropdowns, if not open by default should be able to hydrate without issue.

If anything in Radix UI is not open by default, then there is no HTML in the server-rendered thing, so it has nothing to hydrate. It should already work, isn't it? I'm using Astro SSR + React + Radix UI.
About hydration being faster: Your argument only holds if you are using a UI library/framework (like React). Takes Swiper.js. They are migrating from Swiper React and such to Swiper Element, a new variant that runs as Web Components. I think this is big step forward for libraries that want to achieve full compatibility with any web technology, not just React or Vue or such. I think there is a deciding point where you decide whether you should do your components in Web Components or stay in React land. Definitely not your average web application but for libraries? Being compatible with the web is a huge thing. jQuery can still be used in your React app because it is not a niche for the React ecosystem.

This fixed it for me...
<DialogPrimitive.Portal container={document.body}>

container={document.body}

Thanks. This worked! But why did it worked?

This fixed it for me...
<DialogPrimitive.Portal container={document.body}>

That’s interesting, how did you come up with this workaround?

@intagaming Astro with client:load wasn't working for me. But I also had issues with react-country-flags. So I am not sure which package was at fault yet and haven't had time to work it out. I removed radix-ui and its a bit of a hassle to set it up again.

This fixed it for me...
<DialogPrimitive.Portal container={document.body}>

@JacobGrady @adomaitisc @iamshubhamjangle look into your console, document doesn't exist on your server. It might cause hydration issues down the line.

I fixed mine, I am passing a  element to the TooltipTrigger so I changed it to  and it works

We're running into this as well. Building on top of @adomaitisc's solution, here's a component that only replaces the Root component (in this case for the Dialog, but could be AlertDialog just as well):
import type { DialogContentProps } from '@radix-ui/react-dialog'
import * as RadixDialog from '@radix-ui/react-dialog'

const Root: React.FC<RadixDialog.DialogProps> = (props) => {
  // This terrible hack is needed to prevent hydration errors.
  // The Radix Dialog is not rendered correctly server side, so we need to prevent it from rendering until the client side hydration is complete (and `useEffect` is run).
  // The issue is reported here: https://github.com/radix-ui/primitives/issues/1386
  const [open, setOpen] = useState<boolean | undefined>(props.open === undefined ? undefined : false)

  useEffect(() => {
    setOpen(props.open)
  }, [props.open, setOpen])

  return <RadixDialog.Root {...props} open={open} />
}

You can then use this custom Root instead of the default one.

If you want it open from the start then don't use Dialog.Portal, that simple.
If you use ReactDOM.createPortal (Dialog.Portal) you have to have a reference element to attach the content to, and you don't have a DOM on the server, so you can't do that.
Lets say you want to instantly show a dialog, you use Portal and have a form in there. Because server can't render it server side, you will be rendering null as your first render and then send all of portal content serialized js to the client where it will be rendered, where's the SEO? While if you just omit Portal and render the dialog with form content directly...
Am I missing something why you might want Portal?

I create prodiver to root layout fix this issuse
'use client'

import { useEffect, useState } from 'react'
import { Modal } from '@/components/modal'

export const ModalProvider = () => {
  const [isMounted, setIsMounted] = useState(false)

  useEffect(() => {
    setIsMounted(true)
  }, [])

  if (!isMounted) return null

  return (
    <>
      <Modal />
    </>
  )
}

For me, this is a blocking issue, especially if I want Portal content to be crawlable for SEO purposes. Headless UI supports that.
I believe you should mention this limitation in your docs at least, so users don't waste time trying to make it work

Overview
Server side rendering or SSR, is a technique used to render components to HTML on the server, as opposed to rendering them only on the client.
You should be able to use all of our primitives with both approaches, for example with Next.js or Gatsby.

All the above workarounds, are just to bypass rehydration issues, but still Portal isn't rendered on the server side

Simply using asChild on the Trigger component worked for me. Note my Dialog is not controlled. See this answer for details.

As of today I still get Next.js hydration errors with the Portal primitive. The docs on SSR suggest they should work out of the box without any errors, but they don't. What is the workaround?

Same issue using shadcn ui (AlertDialog). Fixed by adding

FYI headlessui's portal works out of the box in NextJS SSR, curious how they did it, but the code is too complicated for me to understand https://github.com/tailwindlabs/headlessui/blob/main/packages/%40headlessui-react/src/components/portal/portal.tsx

Headless UI supports the umount prop where you can control whether to always render, or always mount the modal when you show/hide it. As I understand it, for hydration to work the component must be rendered in server and client, so we don't want the mount/unmount behavior, instead we always want to render the structure.

Simply using asChild on the Trigger component worked for me. Note my Dialog is not controlled. See this answer for details.

this is the easiest way

I ran into this issue and there's not much you can do other than not use Portals, since they depend on the DOM. The easiest work around to get Dialogs working with SSR with default=open is to just render you dialog high enough in the component tree, which effectively removes the need for Portals entirely.
I abstracted this a bit in my component by allowing a Portal?: React.ElementType; prop and having it default to Portal = DialogPrimitive.Portal so if I want to opt out of portals I can just pass Portal={React.Fragment}. Hopefully this helps someone else!


Generate mermaid diagram

Suggesting supporting mermaid for direct integration with GithubFlavouredMarkdown  :star_struck:

I will keep graphviz as the only option for now but this could be a fun addition in the future.


Information on LEDs needed

I am really confused about the LEDs in this device.
Here are some questions:

how many total LEDs there are?
which ones are internal and which are external?  There is at least one internal blue LED that can be seen if you open the case or look through the hole on the back.  And clearly there are 2 external spots where LEDs can be seen.
What is the position of each LED in the device's case?
For each LED, is it single-color or are there any multi color LEDs?
What is the pin numbering for each LED?

Your existing pinout diagram shows this:

And that doesn't really answer most of my questions.

And if you are able to answer these questions, please also put the answers in widely accessible places and not just in this issue comments, such as:

On this github README
On your AliExpress listings
On your web site

I am anticipating some answers on these issues as well. Especially curious as to why the blue LED seen inside the device runs non-stop when in sleep mode. A battery drain if you ask me...
This needs to be corrected.
Have you looked in the raw code to see if there are some lines to comment/uncomment to change the status of the internal LED's (not on the front)?

The blue light connected to GPS cannot be turned off. Unless the GPS is turned off, it cannot be turned off when the GPS is turned on.

GPS and Radio are controlled by P0.12, if this IO port is low level, then the GPS 1PPS light should not be on

I tried setting P0.12 to low during the Meshtastic shutdown code in my own fork of the firmware and it did not result in the 1PPS light turning off.  It was still on.  Why would this not work?
What about PWR_EN / P0.13 ?  Would that turn off the 1PPS LED?

1PPS cannot be closed.


Unnecessary Cast detected when removing it would cause an error.

If I have the following code:
class Job {}
class Worker extends Job {}
class Group extends Job {}

void main() {
  List<Worker> workers = [Worker()];
  List<Group> groups = [Group()];

  Iterable <Job> all = (groups as Iterable<Job>).followedBy(workers);
  print(all);
}

Then on the line defining all, there will be a lint warning for an unnecessary cast, but if that cast is removed, then there is an error:
The argument type 'List<Worker>' can't be assigned to the parameter type 'Iterable<Group>'.

Because it's not exactly the right type.
This seems like the unnecessary cast lint is being too strict here, and should not fire in this case.
The code is probably better written like below, so perhaps there should be a separate lint to recommend it:
  Iterable <Job> all = groups.cast<Job>().followedBy(workers);

@gspencergoog, I don't think this topic has been organized in a very strict manner, but it would probably be helpful if you file a similar issue in the linter repo at https://github.com/dart-lang/sdk/issues/new and label it as a false-positive. It is not very likely that this lint can (realistically) be changed such that it always avoids flagging a cast if the code has an error when the cast is removed, but it is useful to keep track of false positives that are encountered in real life because it makes us think about it. ;-)

... if that cast is removed, then there is an error

Right, but with the cast there is a run-time failure!
Uncaught Error: TypeError: Instance of 'JSArray<Worker>': type 'JSArray<Worker>' is not a subtype of type 'Iterable<Group>'

The reason for this is that groups has a run-time type that implements List<Group>, and this implies that its followedBy method expects an actual argument of type List<Group>, and the argument which is actually provided is a List<Worker>. Check out dart-lang/language#524 to see how this kind of failure can be detected at compile time rather than run time (you could even vote for it if you wish to support this feature ;-).
The variant that uses cast<Job> does not have this run-time failure, but it is in general unsafe to use cast<T> on a List<S> when T is a supertype of S, because that can create yet another situation where a dynamic covariance check fails:
void main() {
  var xs = <int>[1].cast<num>();
  xs.add(1.5); // Throws.
}

Here's a safe way to do it:
class Job {}
class Worker extends Job {}
class Group extends Job {}

void main() {
  List<Worker> workers = [Worker()];
  List<Group> groups = [Group()];

  Iterable<Job> all = [...groups, ...workers];
  print(all);
}

This is safe because the covariant requirement is enforced (that is, if we have an expression of type List<T> then the value of that expression is guaranteed to be an object whose run-time type implements List<S> such that S is a subtype of T). This ensures that the new list (created by [...]) will have a type argument which is a supertype of the run-time type of every element in the resulting list, without exceptions and without run-time checks. This type argument is chosen at compile time (with a declared type Iterable<Job> for the variable all it will be Job, and it would also be Job if we had used var all = ... and used type inference to obtain that type argument).
In any case, it is probably both syntactically and semantically useful to use the list literal and the spread operator (...), because it is quite readable, and methods like cast and followedBy have the potential to cause run-time type failures.

Wow, thanks for the excellent explanation.
The safe way also seems pretty clear, even clearer than the cast function.
Is there already an analyzer lint for cast<T>() to recommend the spread operator instead?
I'm happy to also file a separate issue, but I don't have the access to add labels, so it would basically just be a duplicate of this one. :-)

Thanks for the kind words!

Is there already an analyzer lint for cast<T>() to recommend the spread operator instead?

I don't think it would work very well, it's probably going to be quite difficult to detect the cases where it's useful to use the spread operator rather than an invocation of cast.
The situation where cast works really well is when we have a List<T> that (for some reason which is well-understood and meaningful in the application context, such that we can actually rely on it) only contains elements of type S, where S is a subtype of T (and different from T). If we want to pass that list to a receiver who wants a List<S> and we actually pass the List<T> then it is just going to be a type error (at compile time or run time, depending on the static types).
However, all the elements are OK, so we'd very much like to pretend that the list is a List<S>, because we don't want to create an entirely new list and copy all the elements; cast<S> will handle that.
void wantsAnIntList(List<int> ys) {
  for (int i in ys) print(i);
}

void main() {
  List<num> xs = [1, 2, 3]; // This is a `List<num>`, filled with `int`s.
  // wantsAnIntList(xs); // Compile-time error.
  // wantsAnIntList(xs as dynamic); // Run-time error.
  wantsAnIntList(xs.cast<int>()); // OK, at compile time and at run time.
}

With cast, it is still possible to get a run-time type error (if there are some elements that aren't of type S after all), but we're taking that risk because we have reasons to think that it is safe, and we want to avoid the copy operation.

I'm happy to also file a separate issue, but .. it would basically just be a duplicate

No problem, the important part is that its reported as a lint issue. But I can transfer this one and put on the label.


Remove no longer used requirements.txt

Use python setup.py develop instead

Current coverage is 0.00%

Merging #14 into develop will not affect coverage as of eb542a8

No diff could be generated. No reports for #14 found.
Review entire Coverage Diff as of eb542a8

Powered by Codecov. Updated on successful CI builds.

Use python setup.py develop instead

or pip install -e ., should be the same, right?

or pip install -e ., should be the same, right?

yes

@sbellem: there are some requirements we don't use anymore, like
repoze.lru==0.6
fake-factory==0.5.3
tornado==4.3

If it's not in the scope of this PR, can you open a new issue please?


fix: deprecated version of github actions

update: main.yml
update:audit.yml
update: quay.yml
update: stable.yml

Changes proposed

Check List (Check all the applicable boxes)

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

Rebased, and merged.
Thanks for your contribution !


Add function for decoding escaped json strings

See https://github.com/jkuhlmann/cgltf/issues/163 for background information.
The new function is called cgltf_decode_string and decodes all valid JSON escape sequences in-place. There are some assumptions in the code about the validity of escape sequences which were all previously checked by jsmn (or json parsing fails). Using this function with any string not from cgltf_data might break in funny ways, but I don't see the point of checking the same thing twice.
I also added tests for cgltf_decode_string as well as cgltf_decode_uri and verified that they pass under MSVC 2019 and Clang 10.

Thanks for the PR!
Can you fix the failed test on Ubuntu?
https://github.com/jkuhlmann/cgltf/pull/165/checks?check_run_id=3625925333

I hope that fixes it 🙇
A bit mysterious why I didn't get those errors when compiling through test_all.py with the same GCC version as CI is using.


Flask Truck Factor

As part of my PhD research on code authorship, we calculated the Truck Factor (TF) of some popular GitHub repositories.
As you probably know, the Truck (or Bus) Factor designates the minimal number of developers that have to be hit by a truck (or quit) before a project is incapacitated. In our work, we consider that a system is in trouble if more than 50% of its files become orphan (i.e., without a main author).
More details on our work in this preprint: https://peerj.com/preprints/1233
We calculated the TF for Flask and obtained a value of 1.
The developer responsible for this TF is:
Armin Ronacher - author of 90% of the files
To validate our results, we would like to ask Flask developers the following three brief questions:
(a) Do you agree that the listed developer is the main developer of Flask?
(b) Do you agree that Flask will be in trouble if the listed developer leave the project (e.g., if he wins in the lottery, to be less morbid)?
(c) Does Flask have some characteristics that would attenuate the loss of the listed developer (e.g., detailed documentation)?
Thanks in advance for your collaboration,
Guilherme Avelino
PhD Student
Applied Software Engineering Group (ASERG)
UFMG, Brazil
http://aserg.labsoft.dcc.ufmg.br/

Hi @gavelino, thanks for looking into this. Unfortunately this isn't the right place for this kind of forum. I'd suggest creating a google form survey and posting in the IRC channel #pocoo. But to answer one of you questions, I'd say @untitaker is the main contributor right now for sure. Although Armin makes big decisions, he is very busy with other projects.


Repository default branch (develop vs master)

Hey there!
I noticed that this repository's default branch is develop, but it also has a master branch, which is what is published on NPM. Is there a purpose for the develop branch, or would you be interested in changing the default to master and deleting develop?
Thanks!

@atdrago finally seeing this 😅
We want to get rid of this library sooner or later and replace it with podcast partytime in the mobile app, but we're still using podcast-feed-parser to parse local "add by RSS" feeds.
Anyway, I switched the default branch. Thanks for letting us know.


Allow setting hosted elasticsearch volume_types to gp3

Referenced https://aws.amazon.com/about-aws/whats-new/2022/07/amazon-opensearch-service-support-ebs-gp3-volume-type/

Thanks!


New instance of Animated Value not reflected in Component on mount

I’m creating a new instance of Animated.Value and passing 0 to use in a scale transform, but the component doesn’t initially have a scale of 0. Opacity works like this, but transforms don’t. Maybe I’m missing something? Here’s a CodeSandbox.
Code:
import React from "react";
import { render } from "react-dom";
import * as Animated from "animated/lib/targets/react-dom";

const anim = new Animated.Value(0);

const App = () => (
  <Animated.div
    style={{
      transform: [{ scale: anim }],
      width: 80,
      height: 80,
      backgroundColor: "red"
    }}
  />
);

render(<App />, document.getElementById("root"));

Screenshot (red square should be scale(0)):

Yep.
https://github.com/animatedjs/animated/pull/91

Whoa thanks for fixing this so quickly. You da man.

v0.2.2 is out with this fix. Hopefully I didn't break anything :)


BloodRefill generating an empty config file

We just installed BloodRefill to a dedicated server on GPortal with BepInEx and Wetstone installed all through Thunderstore.
I moved the BloodRefill plugin to the WetstonePlugins folder that I created in the BepInEx folder on the server.
BloodRefill is not working and has generated a config file with only [] in it. Nothing else.
I'm stumped. Any idea?
Thank you!

Managed to get a single player game to generate the config and uploaded it to my server. It still doesn't work on the server. I have no idea why not.

Update: I figured out the problem. Your instructions say to put this mod in WetstonePlugins folder. It goes in BepInEx Plugins folder instead on server. It works then.  Might wanna update your instructions. Thank you for the mod!


Update the medium-editor dependency to 5.5.1

Please read.

The version current of medium-editor in production is 5.14.4


cDNA sequencing

Hello,
Can the same pipeline be used for cDNA sequencing as well? I have the fastq reads and the reference genome and transcriptome fasta sequences.
Thank you.

Hi, module 04 (RNA modification) and module 05 (polyA tail length) requires direct-RNA sequencing reads in fast5 format, whereas other modules should still work for cDNA sequencing fastq reads in theory (although I have not tested).
Best,
Jia-Xing


refactor: Adjust the smoke tests so that they are more robust in the GHA environment

As a block node developer
I want the smoke tests to be reliable and consistent in the CI environment.
So that I can know that failures in a smoke test directly relate to my PR changes.
Request Details
The recommended approach is to refactor the smoke tests so that they are more
robust in the GHA environment. We would like liveness/health checks to execute
before other tests, the server logs be exported for Github Actions to view and
to no longer rely on pattern-matching log statements from the server to know
when the server is running
Technical Details
We discussed a few enhancements to the smoke tests to help improve visibility
and deterministic behavior in Github Actions

Remove the bash logic pattern-matching on log statements from the software.
Move the health and readiness checks so they are the first test before
continuing on to testing consumer/producer and other actions

Also change these tests to have a retry loop (use a bash function for reuse),
so that the check can run for a reasonable (perhaps up to 5 minutes?) before
giving up and declaring the server startup failed.

Export the server log statements so we can more easily debug server start failures

Additional Notes

For 1 and 2, removing the log checking will mean that health and readiness
checks will need to retry (see 2(a)) until the server is available or we
reach a timeout.
For 3 - it might be as simple as having the in-container script direct server
logs to the console and then using docker logs --timestamp <container id>.
We could also possibly enable the docker journald log driver (or other
appropriate driver) to bring the container console output out to the host
system in real time (particularly if we can publish to the Github Actions
"logs" view directly).

Here's a trace in GHA when it fails:
Run ./smoke-test.sh
No log file provided, skipping startup pattern check.
Started consumer with PID [8](https://github.com/hashgraph/hedera-block-node/actions/runs/11561014938/job/32179097892?pr=316#step:10:9)05, logging to consumer.log
Started producer with PID 806, logging to producer.log
get-block.sh executed successfully.
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100     2  100     2    0     0    153      0 --:--:-- --:--:-- --:--:--   166
OK/healthz/livez endpoint is healthy.
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100     2  100     2    0     0   3058      0 --:--:-- --:--:-- --:--:--  2000
OK/healthz/readyz endpoint is ready.
Shutting down background processes...
Producer process 806 terminated.
Error: Consumer process 805 has already terminated.
Consumer logs:
Param is: 1
Starting consumer...
Started consumer with PID: 80[9](https://github.com/hashgraph/hedera-block-node/actions/runs/11561014938/job/32179097892?pr=316#step:10:10)
Failed to dial target host "localhost:8080": write tcp [::1]:44526->[::1]:8080: write: broken pipe


Missing header file

I have a sphinx project created by sphinx-quickstart with separate source and build directories. In conf.py I set
confluence_header_file = 'confluence_header.tpl'

The docs say:

The file path provided should be relative to the build environment’s source directory

So I put the header at source/confluence_header.tpl
make confluence results in:
WARNING: missing header file

The option 'confluence_header_file' has been provided to find a header template
file from a relative location. Ensure the value is set to a proper file path.

sphinxcontrib.confluencebuilder error:

When I move the file to the top-level directory (./confluence_header.tpl), I get a different error:
WARNING: error reading file /home/rodencor/code/olp/dp/workflow/docs/source/confluence_header.tpl: [Errno 2] No such file or directory: '/home/rodencor/code/olp/dp/workflow/docs/source/confluence_header.tp

It seems like the confluence builder is looking relative to the source directory at one point, then relative to the top-level at another point. If I run ln -s source/confluence_header.tpl . , then the build succeeds.

Thanks for the report. This appears to be an issue with the configuration check implementation, where it does not take into account the environment source directory (and assumes the working directory is the source directory).
For now, a workaround (aside from the symbolic link example you have provided) would be to provide an absolute path to the header/footer assets (which currently make both the configuration check and translator happy):
import os
source_dir = os.path.dirname(os.path.realpath(__file__))
confluence_header_file = os.path.join(source_dir, 'header.tpl')
confluence_footer_file = os.path.join(source_dir, 'footer.tpl')

Thanks @jdknight, the workaround worked.

Version 1.0 of this extension has been released which includes the header/footer corrections for relative-provided paths. Marking this issue as closed.


Latest update

BRAT is telling me that the update failed as there is no main.js

The same here

Sorry, because that was an unfinished version that has now been released.


Country codes are not considered in profile phone number validation, so ambiguous phone numbers are possible

I believe it's possible to have ambiguous phone numbers, given the current HS phone number validation strategy.  This arises if we don't know if the user specified a country code or not (seemingly the case).  For example:<PHONE_NUMBER> could be interpreted as a valid Budapest, Hungary number (+36 30 901 820) or a valid Toronto, Canada number (+1)<PHONE_NUMBER>
https://github.com/google/libphonenumber
https://libphonenumber.appspot.com/

@Castronova I believe this is an issue related to the User Profile.

related to https://github.com/hydroshare/hydroshare/issues/2872

@martinseul how do we feel about the assumption that phone number should conform to the user's selected "country" in their profile?

ideally yes, but phone numbers are less important and likely to change so I'd be fine with a validation for us phone numbers and free text for the rest

My implementation will force phone number to conform to the expected format based on the "country" in the user profile.
I just wasn't sure if we were concerned about the edge case of someone having a phone number in a country not matching their profile. Seems like it would be a pretty rare edge case.