[GSProcessing] BERT Tokenizer

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Beside implementing the BERT Tokenizer feature

Add etype_featsize dict in graph loader to fix a bug
Add dependency for setuptools that is necessary for emr-serverless run
Reformat the _process_node_feature and _process_edge feature part to process tokenize feature and also allow enough backward compatibilities.

Result:

Constructing full mag dataset with tokenize feature for 111 minutes. Refer to the example here: https://github.com/awslabs/graphstorm/blob/main/examples/mag/mag_v0.2.json

LGTM, we should run some benchmarks to see if we have any bottlenecks with the implementation.

Update our result on the mag with the tokenized feature.


Add Docker convenience to run it locally

Added a Dockerfile and a docker-compose.yml to make it extra easy to take for a spin. Added instruction on the README on how to do it.

That's a bummer. I can't say I have the same issue, I can run the system and generate reports.
Did your docker build complete without any issues? It comes to mind to try to have docker image built from scratch
docker build . --tag assafelovic/gpt-researcher --no-cache
and then running docker-compose
docker-compose up


dApp: New transfer screen

Fixes #1460
Short description
Implements the new transfer screen.

Now we don't display the error messages if a field is just empty. Previously an error message was always displayed.

How address input error messages are displayed:

How amount address input error messages are displayed together with amount input error messages:

Definition of Done

[x] Steps to manually test the change have been documented
[x] Acceptance criteria are met
[ ] Change has been manually tested by the reviewer (dApp)

Steps to manually test the change (dApp)

It remains to add tests and changelog entry, but please go ahead and take a look at my changes.


[RFC] Fuel Wallet Connectors

Fuel Wallet Connector
Objective
Enable connectors that are not extensions to seamlessly integrate with Fuel Wallet's multiple connector standard, thus enhancing application-DApp interoperability.
Background
As blockchain Wallet evolved, each wallet chose its protocol, combining different integration methods. To solve these problems, we saw many abstractions tooling to make a single interface to integrate with multiple Wallet types.
On Fuel, we start with a Connectors protocol to enable multiple Wallet Providers to integrate directly on the Fuel Wallet SDK,  removing the need for other abstractions when developing Applications.
The current implementation of the Fuel Wallet Connectors only works with browser extensions. This proposal aims to change that, opening up more customization possibilities.
Problem Statement
How can we improve the methods through which applications interact with different types of connectors, including those that are not browser extensions?
Definitions

Fuel Wallet SDK: Manager component used for developers to integrate with the Fuel Wallet Connectors.
Fuel Wallet Connector: Component provided by a Wallet Application that implements the logic for the communication between the Fuel Wallet SDK and the Wallet Application.

Goals

Implement a set of methods and events that will standardize interactions between applications and connectors.
Enable application information and installation instructions through connector metadata.
Allow Fuel Wallet SDK to detect installed Wallets automatically.
Remove abstractions for the communication between SDK and Fuel Wallet Connectors.

System Overview
Components
Methods

The system will expose methods like ping, version, isConnected, etc. to enable standardized interaction.

Events

Events like accounts, currentAccount, connection, etc., will be emitted to communicate changes.

Connector Metadata

A metadata field for connectors will store name, image, and installation instructions.

Fuel Wallet SDK

The SDK connects the connectors, to invoke the exposed methods and listen to various events.

Detailed Design
Method list

Method
Description
Params
Return

ping
It should return true if the connector is loaded in less than one second.

boolean

version
The current version and the network that this connector supports.

Application and network version

isConnected
The status of the current connection from the origin to the connector.

connection status

accounts
Accounts available to the authorized to the current connection.

Account address list

connect
Start the authorization flow for the current connection.

connection status

disconnect
Removes the authorization of the current connection.

connection status

signMessage
Start signMessage flow for the current connection.
address and message
message signature

sendTransaction
Start to send transaction flow for the current connection.
address, transaction, and network
transaction ID

currentAccount
Return the default account if the account is authorized to the connection.

address

addAssets
Add assets metadata to the current connection.
Assets metadata
success or failure

assets
Return assets metadata available to all accounts, even the ones out of the connection.
Assets metadata
asset list

addNetwork
Start to add network flow for the current connection.
Network
success or failure

networks
Return network list available to all the accounts from the connector.

Network list

addABI
Add ABI information. This is a purely metadata endpoint and does not require an authorized connection.
contract id and ABI
boolean

getABI
Return ABI information.
contract id
FuelABI

hasABI
Return true if an ABI is available.
contract id
success if ABI returns

getProvider
Return a Provider instance it needs to extend Provider

Provider instance

getWallet
Return a Wallet instance it needs to extend WalletLocked

Wallet instance

Event list

Event
Description
Value

accounts
Emitted every time the accounts available to this connection change
Addresses

currentAccount
Emitted every time the current account on the connector is changed if the account is not available to the current it should be triggered with a null value
Address or null if no defined

connection
Emitted every time the connection status changes
Connection status

network
Emitted every time the network selected on the connector is updated
Network url and chainId

assets
Emitted every time the asset's metadata of the connector is changed
Update asset list

Connector metadata
A new field that will be part of the new connector structure is a metadata property that will be used to enable the application to have information and instructions on how to install the connector application.
class FuelWalletConnector extends FuelConnector {
   metadata = {
	  name: 'Fuel Wallet',
	  image: '/connectors/fuel-wallet.svg',
	  install: {
		   action: 'Install',
		   description: 'To connect your Fuel Wallet, install the browser extension.',
		   link: 'https://chrome.google.com/webstore/detail/fuel-wallet/dldjpboieedgcmpkchcjcbijingjcgok',
	  }
	}
}

Fuel Wallet SDK
With this new change, extensions will not be required to inject objects into the application window. With this new change, the application will be required to install the @fuel-wallet/sdk to interact with the application.
import { Fuel } from '@fuel-wallet/sdk';
import { FuelWalletConnector } from '@fuel-wallet/sdk';
import { ThirdyPartyConnector } from '@thirdy-party/connector';

// Fuel SDK instance
const fuel = new Fuel({
  // FuelWalletConnector is injected as a default connector
  connectors: [
     new ThirdyPartyConnector(),
  ]
});

// Wait for the connection response
await fuel.connect();

// Event based way
fuel.on('connection', (isConnected) => {
  console.log(isConnected);
});

Or as an automatic injection, this is made in this way to enable user Wallets that are not installed by the application to be visible on the Connector List.
import { Fuel, EventConnector } from '@fuel-wallet/sdk';
import { FuelWalletConnector } from '@fuel-wallet/sdk';
import { ThirdyPartyConnector } from '@thirdy-party/connector';

// Fuel SDK instance
const fuel = new Fuel({
  connectors: [
    new FuelWalletConnector()
  ]
});

// Manual dispatch of the event on the window
window.dispatchEvent(new CustomEvent('FuelConnector', {
  detail: new ThirdyPartyConnector()
}));

// Manual dispatch of using utility event
window.dispatchEvent(
  new EventConnector(new ThirdyPartyConnector())
);

// Promise way
await fuel.connect();

// Event based way
fuel.on('connection', (isConnected) => {
  console.log(isConnected);
});

Fuel Wallet Connector
The Connector implements an interface compatible with the FuelWalletConnector. Once the connector is connected to the Fuel Wallet SDK instance, which is the main entry point for the application, the FuelConnect controller will target the instance of the Connector and call the methods directly.
This opens better integration possibilities by enabling more customization for Connectors to use WebSockets, events, etc.
Below is a sequence diagram explaining the information flow for a Connection Request (method: 'connect'):
sequenceDiagram
    title Fuel Connect Manager

    participant A as Dapp
    participant B as Fuel Connect
    participant C as Wallet XW Connector (XW)
    participant D as Wallet Application

    A->>B: List connectors
    B-->>A: Receive connectors
    note over A,B: Select connector
    A->>B: Select Connector (XW)
    note over B,D: Check if Wallet application is available
    B->>C:Call ping on (XW) connector
    C->>D:Ping application
    D-->>C:Respond ping
    C-->>B:Receive ping response from (XW)
    B->>B:Save selected Connector (XW)
    B-->>A:Receive success or failure
    note over A,D: Authorize connection (on selected connector)
    A->>B:Ask for connection
    B->>C:Call connect on (XW) connector
    C->>D:Call connect
    D-->>C:Respond with connection status
    C-->>B:Receive connection status from (XW)
    B-->>A:Receive connection status

Fuel Connect Manager Flows
The Fuel Connect Manager oversees the interactions between a decentralized application (DApp), the Fuel Connect layer, and the wallet's connectors. The sequence diagram delineates the flow of events and method calls that occur during the various stages of a connector's lifecycle, from listing to connection establishment.
1. List Connectors

Actors: DApp (A), Fuel Connect (B)
Flow:

The DApp queries Fuel Connect to list available connectors.
Fuel Connect returns a list of available connectors to the DApp.

2. Select Connector

Actors: DApp (A), Fuel Connect (B), Wallet XW Connector (C), Wallet Application (D)
Flow:

The DApp selects a connector, in this case, Wallet XW Connector (XW).
Fuel Connect initiates a ping call to verify if the Wallet Application for the selected connector is available.
The ping is forwarded from the Wallet XW Connector to the Wallet Application.
The Wallet Application responds to the ping.
The Wallet XW Connector confirms the availability back to Fuel Connect.
Fuel Connect saves the selected connector and notifies the DApp of the success or failure of the operation.

3. Authorize Connection

Actors: DApp (A), Fuel Connect (B), Wallet XW Connector (C), Wallet Application (D)
Flow:

The DApp requests to establish a connection using the selected connector.
Fuel Connect calls the connect method on the Wallet XW Connector.
The Wallet XW Connector initiates the connection process with the Wallet Application.
The Wallet Application returns the connection status.
The Wallet XW Connector communicates the connection status back to Fuel Connect.
Fuel Connect relays the connection status back to the DApp.

Each of these flows opens up opportunities for customization, such as utilizing WebSockets for more real-time interactions or leveraging events for enhanced UX features.
Understanding these flows provides foundational knowledge to implement, debug, and extend the capabilities of the Fuel Connect Manager within the ecosystem.
Break changes

Removal of window.fuel injected object on the window.
addConector will now require an Instance of a Fuel Wallet Connector, or it will be removed.

Risks and Mitigations

Existing connectors will be required to update to this new standard. This will require coordination and may have backward compatibility issues.
Existing application will be required to update to @fuel-wallet/sdk to move from window.fuel.
Mitigation: A phased rollout and thorough documentation can alleviate these challenges.

Draft Implementation
https://github.com/FuelLabs/fuels-wallet/tree/ls/feat/sdk2/packages/sdk2/src

the DAPP can be using one network (local devnet), but the Wallet can be connected to other network (beta-4)
this raise some issues:

dapp can't trust on wallet provider + signer instance because they can be on a different network
dapp show one information, wallet shows other (any data, balance, transactions, etc..)

to fix this issue, when we detect the network of the wallet is different from the one DAPP supports, we can
ask the extension to change the network
for this we can add the method:

Method
Description
Params
Return

switchNetwork
Change current connection to use the inputted network
Network
success or failure

ps: this behavior already exists on connectKit integration and it's pretty useful.
on this case my metamask was connected to foundry(local), but the bridge supports sepolia

instead of injecting defaults connectors by default 😅 we can expose a method to prepare the default connectors
before
const fuel = new Fuel({
  // FuelWalletConnector is injected as a default connector
  connectors: [
     new ThirdyPartyConnector(),
  ]
});

after
const defaultConnectors = prepareDefaultConnectors({ chain });
const fuel = new Fuel({
  connectors: [
     ...defaultConnectors,
     new ThirdyPartyConnector(),
  ]
});

the Fuel sdk object can also receive a chain, so we know what chain the DAPP supports and can act based on that
const fuel = new Fuel({
  chains,
  connectors: [
     new ThirdyPartyConnector(),
  ]
});

instead of injecting connectors by default we can expose a method to prepare the default connectors
this allows the user to have more control and use wathever connectors he wants, without us enforcing default ones
before
const fuel = new Fuel({
  // FuelWalletConnector is injected as a default connector
  connectors: [
     new ThirdyPartyConnector(),
  ]
});

after
const defaultConnectors = prepareDefaultConnectors({ chain });
const fuel = new Fuel({
  connectors: [
     ...defaultConnectors,
     new ThirdyPartyConnector(),
  ]
});

Why having a method would be better? I think it adds more steps to implement.
In most cases, users will not need to provide any connectors...

the Fuel sdk object can also receive a chain, so we know what chain(local, beta-4, etc..) the DAPP supports and can act based on that
const fuel = new Fuel({
  chains,
  connectors: [
     new ThirdyPartyConnector(),
  ]
});

The idea of having a chains prop makes sense. Let's add this to the specs, also the switchNetwork.

we can enable a input prop options for WalletConnector when creating it, which enables any custom use case the wallet itself wants to implement.
const fuel = new Fuel({
  chains,
  connectors: [
     new ThirdyPartyConnector({
       layoutMode: 'compact',
     }),
  ]
});

examples:
layoutMode: 'compact'
appName: app.name,
headlessMode: false,
metadata: app,
name: 'Custom Walllet',
keepConnection

Why having a method would be better? I think it adds more steps to implement. In most cases, users will not need to provide any connectors...

would allow:

the user to have more control and use wathever connectors he wants, without us enforcing default ones
with the defaultConnectors in hands, user can customize and pass specific props for connectors (options from prev comment`


Fixed the comment adding

The code for the services/comments has been changed. The addComments function has been overwritten

We descturcturize the response from the user and get the according fields. then we look for this user in the database. At last we create a comment.
the comment schema has been changed as well

instead of just adding the author we get the user type from the scema.

@vlad-khrychov I corrected the code, but I can't reopen the pull request. It says that it has no history with the develop and main

@vlad-khrychov I corrected the code, but I can't reopen the pull request. It says that it has no history with the develop and main

@holus-bolus open a new PR with your current changes.
@vlad-khrychov , it's closed and doesn't allow me to open a PR to the closed issue


Enable for each row a separate RowBackground in DataGrid per row binding

In order to highlight a few rows in the table due to a property, I wanted to adjust the background of the respective row. Unfortunately, I haven't found a way to do that.
Alternatively CellBackground with same abilities.

<UserControl.Resources>     <conv:TestGridBackgroundConverter x:Key="BackgroundConverter"/>     <conv:TestGridForegroundConverter x:Key="ForegroundConverter"/>   </UserControl.Resources>   <UserControl.Styles>     <Style Selector="DataGridCell.colored">       <Setter Property="Foreground" Value="{Binding Path=Result, Mode=OneWay, Converter={StaticResource ForegroundConverter}}"/>       <Setter Property="Background" Value="{Binding Path=Result, Mode=OneWay, Converter={StaticResource BackgroundConverter}}"/>     </Style>   </UserControl.Styles> ... <DataGridTextColumn IsReadOnly="True" Header="Name" Width="5*" Binding="{Binding Name}" CellStyleClasses="colored"/>         <DataGridTextColumn IsReadOnly="True" Header="Status" Width="5*" Binding="{Binding Status}" CellStyleClasses="colored"/>         <DataGridTextColumn IsReadOnly="True" Header="Result" Width="8*" Binding="{Binding Result}" CellStyleClasses="colored"/>         <DataGridTextColumn IsReadOnly="True" Header="Info" Width="8*" Binding="{Binding Info}" CellStyleClasses="colored"/>
Worked like a charm :)

Would you share the source code of the converters?

Would you share the source code of the converters?

`
public class TestGridBackgroundConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is TestLib.ResultStatus result)
{
if (result == TestLib.ResultStatus.OK)
{
return Brushes.DarkGreen;
} else if (result == TestLib.ResultStatus.ERROR)
{
return Brushes.DarkRed;
}
}
return Brushes.White;
}
    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

`

But still, DataContext to (Alternate)RowBackground could be the row source itself. How would you handle i.e pointerover over a row with this approach?

@MihaMarkic pointerover selector can go after with higher priority. If you need to change the color depending on the row data context AND pointer over property, it's easier to use multi binding to bind to both data context and parent row's IsPointerOver property.

@maxkatz6 Ah, right, one has access to row properties through a parent relationship.

Solution was provided. Alternatively, developer can use LoadingRow to set classes to the row and use it in the styles, correct data context is set in this event.


Replace Get.off() with Get.close(pages.length-1)

Statemanagement.full and factory tend to have problems with using Get.offAll(). I have been using get.close(pageCount) instead and it works wonderfully. Could it be an idea to replace the offAll() api with the close()? Let me know what you think :)

I think they are different APIs for different purposes, but nothing prevents you from using the close, if you know how many pages to close, just use it.

Cool, is there any way to get the amount of pages without tracking it myself?

One API you are turning pages, the other you are going to one and removing the others, because more than they look alike, they are different.
You can use the same api that I showed you in the other issue to do what you want:
Get.until((route) => route.isFirst);
This will remove all of your pages and return you to the home page.
There are so many possibilities to do the same thing in different ways that I could spend an entire night here.


Add a new attribute swift_bridged_typedef for typedef bridging.

When importing a typedef of a bridged type, Swift will use the
typedef-name to describe the unbridging version of the type (e.g.,
NSString). This attribute signals when Swift should instead import the
typedef using the bridged type (e.g., Swift's String).
Clang side of rdar://problem/39497900.

@swift-ci please test and merge


ruby: fix endpoint.update parameters

endpoint_in was supposed to be endpoint_update

endpoint_in was supposed to be endpoint_update

Your absolutely right, sorry about that 🤦! Thanks for the fix!

@sevensidedmarble this has been released in v0.39.0, please let me know if you run into any other issues.  Thanks again for the fix!


Uses 5 deprecated libraries in its dependency chain

The following depecated libraries are used:
user@box2:~/zzz$ npm install -g @anansi/cli
npm WARN deprecated<EMAIL_ADDRESS>Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated<EMAIL_ADDRESS>https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated<EMAIL_ADDRESS>request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated<EMAIL_ADDRESS>this library is no longer supported
npm WARN deprecated<EMAIL_ADDRESS>cross-spawn no longer requires a build toolchain, use it instead
/home/user/.nvm/versions/node/v14.16.1/bin/anansi -><EMAIL_ADDRESS>

Unfortunately these are all transitive dependencies of non-deprecated libraries. Mostly storybook, which is a very active project.

For reference: https://github.com/jsdom/jsdom/issues/2792

https://github.com/yeoman/insight/issues/52

Down to:
npm WARN deprecated<EMAIL_ADDRESS>this library is no longer supported
npm WARN deprecated<EMAIL_ADDRESS>Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated<EMAIL_ADDRESS>request has been deprecated, see https://github.com/request/request/issues/3142

Closing as we wait on https://github.com/yeoman/insight/issues/52


Question: Is it possible to represent source times / frame rates independently of the timeline?

I'm testing using various permutations and combinations of the following basic code:
thisTimeline = otio.adapters.read_from_file("/path/to/Test.aaf")
for thisTrack in thisTimeline.tracks:
	for thisClip in thisTrack.each_child():
		print(thisTrack.kind, thisClip.name, thisClip.visible_range(), thisClip.range_in_parent())

...where visible_range() is outputting source time, range_in_parent() is outputting timeline time.
My Test.aaf is generated from project where the source clips are 23.976.
If my Test.aaf sequence is 23.976, the above code outputs an accurate representation of the timeline.
BUT...
If, back in the edit system, I edit the 23.976 source clips into a 29.97 sequence and export that as Test.aaf, then the above code represents everything, not only the timeline but also the source clips in 29.97
So while edit system is fully conversant in representing "This is a 29.97 sequence using sources of mixed frame rates", my opentimelineio code as written above converts source times to match the timeline frame rate.
Is there a way in opentimelineio to accurately represent source times in their original frame rates regardless of the timeline's frame rate?

This seems like an adapter issue because OTIO is natively framerate independent. I have a feeling #617 may either be related to or address this.
@communque If you are able to try a different edl format (like FCP 7 XML), does the issue manifest the same?

From past discussions, I think that AAF enforces an edit rate per Track, with an implicit rate adapter timing effect when you put clips with one rate into a track with a different rate. It might be that OTIO isn't handling that correctly in one direction or the other.
If you run otiocat -a simplify=False /path/to/Test.aaf or from python otio.adapters.read_from_file("/path/to/Test.aaf", simplify=False) you might be able to see the rate adapter effects in there. (To be clear simplify=False is meant only for debugging purposes.) That might give us more information about what is going on.

@jminor:  Double-checking: by "rate adapter effects" are you referring to clips whose frame rates have been changed by a motion effect?  If so why might be miscommunicating
The only time code modification I'm referring to is the master time code of the edited sequence.  In this case in Premiere but it's the same in Avid, where you can define the frame rate of your sequence -- 23.976 or 29.97 etc.  None of the source clips used in that edited sequence have any effects on them.  They were all shot at 23.976
Double-checking.  I could easily be misunderstanding you.
@reinecke: the FCP 7 XML does indeed do the same thing
I looked over #617 briefly.  I'm not that knowledgeable about the OTIO API -- just running a few tests to get the feel of it -- so I don't yet recognize the functions _find_timecode_mobs() and _find_mob_chain_and_timecode()   I'm assuming the code I posted above makes use of them?

I was focused on your original statement "I edit the 23.976 source clips into a 29.97 sequence" which (I think but might be wrong?) means that the track which contains the clips has an edit rate of 29.97.
When you put a clip with a different rate (23.976) in that track, then some NLEs will put a hidden re-timing effect just to calculate the difference in rates - that's what I meant by "rate adapter effect." We've seen that in the AAF files that come out of Media Composer and I suspect is inherent in the AAF format - it might be the same with Premiere, I don't know.
To check to see if that guess is right or wrong, then you could look at the details of the AAF that was exported from Premiere - either with aafDump or with the simplify=False option I mentioned. One of those might give a clue to see if the AAF shows the mix of rates. Then we can narrow down to see if OTIO is handling it wrong (likely) or if the AAF that was exported has forgotten the true rate of your clips.
Do you have a sample AAF composition you could share with us to see it in detail?

Re Avid putting the rate adapter effect on source clips: Yes, correct, Avid does indeed automatically put rate adapter effects on source clips edited into sequences when they are different frame rates.
Premiere Pro definitely does not add any frame rate adaptors, at least none you see as an editor.  It's described as playing at "100%" at whatever frame it was shot at.
Re "the track which contains the clips has an edit rate of..."  In Avid and Premiere the operating logic is that you set the frame rate of the overall sequence as opposed to the individual tracks of the sequences.  The various source clips edited into those tracks can be any frame rate.  I don't know if that helps clarify things from the OTIO perspective.
Re "simplify=False": Adding that resulted in the following error: AttributeError: 'opentimelineio._otio.SerializableCollection' object has no attribute 'global_start_time'
Re "sample AAF": Attaching a zip containing the following:
AAF Exports

AafTest-v1.aaf (23.976 timeline with 23.976 sources) (not working)
AafTest-v2.aaf (video 2 test) (working)
AafTest-v3.aaf (audio 3/4 test) (working)
AafTest-v4.aaf (29.97fps timeline with 23.976 sources) (not representing properly)

FCP XML Exports

AafTest-v1.xml (same as AafTest-v1.aaf)
AafTest-v4.xml (same as AafTest-v4.aaf)

Python script

AafTest.py

Premiere Pro Project

OtioTests.prproj

OtioTests.zip


Buzzoola adapter documentation update

🏷 Type of documentation

[ ] new bid adapter
[x] update bid adapter
[ ] new feature
[ ] text edit only (wording, typos)
[ ] bugfix (code examples)
[ ] new examples

📋 Checklist

[x] Related pull requests in prebid.js or server are linked
[ ] For new adapters check submitting your adapter docs

Related PR: https://github.com/prebid/prebid-server/pull/2192

@Timeryaev - just an FYI I sent a question to the PBS team asking why your adapter PR was still open.


load config from file only if env is not present

Hello @zaquestion
Continuing #155, even after setting the required env (LAB_CORE_HOST, LAB_CORE_USER, LAB_CORE_TOKEN), lab still asks to create the config file if it's not present.
So this pull request handles if no config file is present but the config is in env, then it wont asks user to input the config from stdin, but return the values from env instead.
And viper.AllSettings() seems to not return config from env, hence this pr checks for env and return the config asap

Thanks!


Get data folder for extension

Extensions should have a method to retrieve a data folder for the extension to store stuff in. Ideally, this wouldn't be in the extensions folder so we can reduce clutter a bit.

#122 adds this


Some suggestions

Hi, nice proxy.
Some few suggestions would be to:

use ESM syntax and change your package.json to include type: "module"
Use NodeJS new built in fetch API in newer NodeJS versions instead of using axios
Some requests are also compressed... so when you fetch abc.com and it responds with content-length: x and content-encoding: gzip then content-length will be the size of the compressed response. and what you are giving back to the client will be uncompressed... so the content-length will be invalid.
therefore it can be a good idea to fetch the requested proxy url as "raw" meaning that no decompression should be done when you are piping the data back to the client

Thank you for the suggestions.
So here is my opinion

I'll change to ESM. But I don't really get the reason why I should use ESM over CJS.
It is available as a experimental feature in Node v17?l, isn't it?
So you want a raw query to get the non-compressed response right? Will add.

just notice something blocking with raw data and node's own fetch implementation is that you can't fetch raw data...

just notice something blocking with raw data and node's own fetch implementation is that you can't fetch raw data...

So I just implemented your suggestions (except native fetch). You could give it a try and let me know if everything is fine.

So you want a raw query to get the non-compressed response right? Will add.

nah, a raw option could mean that it should not try to decompress the response. and simply pass the compressed data right back to the client. (you should not try to decompress or compress the response at all)


fasta rework

So this is NOT intended as a performance boost change. This is above all an API rework for ease of use and clarity.
I have implemented a fasta.Parser type. This type is intended to be the base to parse all fasta data and replace all other implementations.
Benefits of Parser.ParseNext() when compared to XConcurrent functions:

Provides the bare minimum API signature to parse a single fasta genome
It is a simple and easy to understand API.
No ambiguities on API use.
Takes a io.Reader for user liberty to use with any API or stream.
User has more control over how many fasta genomes they want to read
(EDIT) Also errors! ParseNext can return a very useful error with the line number on which parsing stopped

goos: linux
goarch: amd64
pkg: github.com/TimothyStiles/poly/io/fasta
cpu: Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz
BenchmarkFastaLegacy-8   	      55	  19968425 ns/op	17326897 B/op	  158406 allocs/op
BenchmarkParser-8        	     118	   9643441 ns/op	16795447 B/op	   58150 allocs/op

@soypat the benchmark needs some fixing but this is looking really good! Is your plan to eventually deprecate the legacy fasta parsers as well?

@TimothyStiles I'd really like to see those "Concurrent" parsers go. Maybe Read can be renamed as ReadFile, but that'd be gravy. Parse is OK as shorthand for creating a new parser and reading all.

@TimothyStiles  So I have changed the following things:

I initialize uniprot 1MB fasta as a raw format string in TestMain. This will avoid some noisiness of file manipulation in benchmarks
I have added an argument to NewParser: maxLineSize, in bytes. This is to give users some freedom of how much heap they want to use for the parser.
Added error handling during benchmarks
Better error handling for the non-EOF case during parsing

@soypat recent additions are looking great. Having a shorthand like Parse would be excellent.
Reset, ParseAll and ParseN need to be tested and it looks there are a couple of corner cases in ParseNext that also need to be tested.

@TimothyStiles Alright, looks much better. Fixed various bugs and test coverage is up to 95%

@soypat I just rewrote fasta.Parse as a wrapper around fasta.ParseAll and had a couple of tests fail.
ExampleWrite fails and doesn't return anything when trying to read what was written out. Couple of things are happening here.

New parser is stripping the * character which denotes a stop codon. Since it's technically not a amino acid it doesn't have a letter but is important to denote.
It looks like there's a fatal difference between what the parser can read and what the writer outputs.

Been super busy the past several days but will be free to work on this together any time this week after tonight!

I removed empty.fasta since it can be represented as a const string


DOCS: MINST CNN example code claims 99.25% test accuracy but is only 84%

The MINST CNN example code claims 99.25% test accuracy

https://keras.io/examples/mnist_cnn/

However when run with the Tensorflow v2.1.0 backend (Ubuntu 18.4 + CUDA 10.1), observed accuracy is only ~84%

https://github.com/JamesMcGuigan/kaggle-digit-recognizer/blob/master/src/examples/keras/keras_example_mnist_cnn.py
https://github.com/JamesMcGuigan/kaggle-digit-recognizer/blob/master/src/examples/keras/tf_keras_example_mnist_cnn.py

What do I need to do in order to get 99.25% test accuracy?
src/keras/examples/keras_example_mnist_cnn.py

Train on 60000 samples, validate on 10000 samples
Epoch 1/12
60000/60000 [==============================] - 7s 109us/sample - loss: 2.2754 - accuracy: 0.1646 - val_loss: 2.2287 - val_accuracy: 0.3468
Epoch 2/12
60000/60000 [==============================] - 5s 88us/sample - loss: 2.2023 - accuracy: 0.2839 - val_loss: 2.1380 - val_accuracy: 0.5022
Epoch 3/12
60000/60000 [==============================] - 5s 88us/sample - loss: 2.1075 - accuracy: 0.3794 - val_loss: 2.0163 - val_accuracy: 0.5872
Epoch 4/12
60000/60000 [==============================] - 5s 88us/sample - loss: 1.9826 - accuracy: 0.4569 - val_loss: 1.8593 - val_accuracy: 0.6505
Epoch 5/12
60000/60000 [==============================] - 5s 85us/sample - loss: 1.8317 - accuracy: 0.5159 - val_loss: 1.6713 - val_accuracy: 0.7023
Epoch 6/12
60000/60000 [==============================] - 5s 86us/sample - loss: 1.6617 - accuracy: 0.5625 - val_loss: 1.4650 - val_accuracy: 0.7441
Epoch 7/12
60000/60000 [==============================] - 5s 87us/sample - loss: 1.4878 - accuracy: 0.6030 - val_loss: 1.2637 - val_accuracy: 0.7791
Epoch 8/12
60000/60000 [==============================] - 5s 87us/sample - loss: 1.3346 - accuracy: 0.6342 - val_loss: 1.0898 - val_accuracy: 0.7997
Epoch 9/12
60000/60000 [==============================] - 6s 95us/sample - loss: 1.2022 - accuracy: 0.6603 - val_loss: 0.9495 - val_accuracy: 0.8124
Epoch 10/12
60000/60000 [==============================] - 5s 86us/sample - loss: 1.1006 - accuracy: 0.6819 - val_loss: 0.8413 - val_accuracy: 0.8239
Epoch 11/12
60000/60000 [==============================] - 5s 86us/sample - loss: 1.0165 - accuracy: 0.7002 - val_loss: 0.7581 - val_accuracy: 0.8349
Epoch 12/12
60000/60000 [==============================] - 5s 86us/sample - loss: 0.9482 - accuracy: 0.7159 - val_loss: 0.6931 - val_accuracy: 0.8427
Test loss: 0.6930903025627136
Test accuracy: 0.8427

Issue was resolved by using import keras rather than import tensorflow.keras
However there seems to be a deeper issue (need to raise a different bug), that import keras provides 99% accuracy, but import tensorflow.keras results in only 84% accuracy

I have traced back the source of this issue, which is due to different default learning rates between keras.optimizers.Adadelta() and tf.keras.optimizers.Adadelta()
keras = venv/lib/python3.6/site-packages/keras/optimizers.py
class Adadelta(Optimizer):
    def __init__(self, learning_rate=1.0, rho=0.95, **kwargs):

tf.keras = venv/lib/python3.6/site-packages/tensorflow_core/python/keras/optimizer_v2/adadelta.py
@keras_export('keras.optimizers.Adadelta')
class Adadelta(optimizer_v2.OptimizerV2):
  def __init__(self,
               learning_rate=0.001,
               rho=0.95,
               epsilon=1e-7,
               name='Adadelta',
               **kwargs):

The example code produces 99%+ accuracy in 12 epocs with tf.keras if an explict learning_rate is passed into Adadelta
model.compile(loss=keras.losses.categorical_crossentropy,
              optimizer=keras.optimizers.Adadelta(learning_rate=1.0, rho=0.95),
              metrics=['accuracy'])

@JamesMcGuigan
Moving this issue to closed status as there has been no activity, in case you still face the error please create a new issue.


Replace system_clock with steady_clock

What type of PR is this? (check all applicable)

[ ] Refactor
[ ] Feature
[x] Bug Fix
[ ] Optimization
[ ] Documentation Update

Description
Where used for timing, replace system_clock with steady_clock so that the updating of modules isn't affected by system clock changes.
The m_updated_at field of the mpd module was removed instead of having
its clock changed because it became unused in commit 645a3142a19747c252d24cc71414d40a8eb5f7dc.
Related Issues & Documents
This fixes #857 and #1932. Also replaces PR #1725, since we don't need
our own implementation of condition_variable anymore since people who
update their polybar should have GCC 10 by now (which was released in may 2020).
Documentation (check all applicable)

[ ] This PR requires changes to the Wiki documentation (describe the changes)
[ ] This PR requires changes to the documentation inside the git repo (please add them to the PR).
[x] Does not require documentation changes

Thanks for refreshing the PR :)
I'm not totally up-to-date on the bug. But what happens if someone builds polybar with gcc < 10. Do they just get the old behavior of the clock not being truly monotonic?
If so, I guess that's fine, we don't lose anything. But if this makes polybar not work properly with older gcc versions, we may have to rethink this. We aim to support any currently supported Ubuntu version (at least standard support), so we should try to make polybar work also on Ubuntu 18.04 with gcc 7.4

Also did the digging (on gcc 7.5), and I came to the same conclusion as you did. Thanks for reviewing :)

Alright, thanks!


Support double clicking on a non-default field label to reset it to default

Describe the feature
See title
Relevant code
No response

I implemented support for this in the commits above.


new logo

@williamboxhall Sorry for my poor design skills

Nice one man! :+1:  it's nice, however if we can get something from the design team would you be happy to go worth that?

@williamboxhall sure, anything that is better :)


Update merge-dependabot.yaml

[A clear and concise description of what the pull request is for along with a reference to the associated issue IDs, if they exist.]
Checklist

Base your changes on 2.x branch if you are targeting Log4j 2; use main otherwise
./mvnw verify succeeds (if it fails due to code formatting issues reported by Spotless, simply run ./mvnw spotless:apply and retry)
Non-trivial changes contain an entry file in the src/changelog/.2.x.x directory
Tests for the changes are provided
Commits are signed (optional, but highly recommended)

This incident has been reported.

The attack attempted to hijack secrets.DV_ACCESS_TOKEN to https://z1yhfhbr.c5.rs:

@ppkarwasz, shall we share this with Gradle too?

@ppkarwasz, shall we share this with Gradle too?

GE_ACCESS_TOKEN is an access token to our INFRA-hosted https://ge.apache.org Develocity instance. I notified INFRA just in case.

This was an attempted bug bounty POC. I didn’t notice there was a permissions check on the workflow run which hindered my POC.
My apologies for the confusion.
On Thu, Sep 5, 2024 at 4:04 AM, Piotr P. Karwasz @.***(mailto:On Thu, Sep 5, 2024 at 4:04 AM, Piotr P. Karwasz < wrote:

@.***(https://github.com/ppkarwasz), shall we share this with Gradle too?

GE_ACCESS_TOKEN is an access token to our INFRA-hosted https://ge.apache.org Develocity instance. I notified INFRA just in case.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you modified the open/close state.Message ID: @.***>

@rootd4ddy,
If you are referring to our YesWeHack program, attacks against our infrastructure do not qualify for a bounty:

Program rules
...
You cannot attack our infrastructure, including our source code repositories.
...
Non-qualifying vulnerabilities
...
Everything related to the build of the project or general infrastructure topics
...

If you are testing the security awareness of ASF project teams, please contact the ASF Security Team first: they can help you with your research project and provide "stealable" secrets without us necessarily knowing it.
cc/ @raboof


Non-CGS constants

We want to be able to extract runtime physical constants in the unit system of a non-cgs opacity when using non-cgs opacities.

[x] Remove some probably irrelevant constants
[x] Update photons
[x] Update neutrinos

OK this is ready for review, and merge if it looks good.


Cannot use Image on Tab

When i overide this method
func indicatorInfoForPagerTabStrip(pagerTabStripController: PagerTabStripViewController) -> IndicatorInfo {         return IndicatorInfo(title: "", image: UIImage(named: "tick_green"), highlightedImage: UIImage(named: "tick_green"))     }
In this tick_green is an image i add to Assets.xcassets of my Project
i got an error "fatal error: unexpectedly found nil while unwrapping an Optional value"
I don't know how to fix. Can you help me?

+1

+1

+1

its because ButtonCell.xib doesn't even contain imageView, but class have empty outlet for that. And when you trying to set image to not existed image view - it's crashed.
So, it's definetely not a bug, it is just not implemented for some reason :D

Any workaround for this ? How can I manage to have an icon instead of a text in the tab bar ? Thanks !!

I found a quick and simple workaround by modifying the cell in configureCell override method:
`    func setTabImageView(frame: CGRect, image: UIImage) -> UIImageView {
let imageView = UIImageView()
    imageView.frame = frame
    imageView.image = image
    imageView.image = imageView.image!.withRenderingMode(.alwaysTemplate)
    imageView.tintColor = .white
    imageView.contentMode = .scaleAspectFit

    return imageView
}

override func configureCell(_ cell: ButtonBarViewCell, indicatorInfo: IndicatorInfo) {
    super.configureCell(cell, indicatorInfo: indicatorInfo)

    let frame = CGRect(x: 0, y: 10, width: cell.bounds.width, height: 25)

    switch indicatorInfo.title {
    case "TAB_TITLE_1":
        cell.addSubview(setTabImageView(frame: frame, image: UIImage(named: "tab_icon_1")!))
        break
    case "TAB_TITLE_2":
        cell.addSubview(setTabImageView(frame: frame, image: UIImage(named: "tab_icon_2")!))
        break
    default:
        cell.addSubview(setTabImageView(frame: frame, image: UIImage(named: "alert")!))
    }

    for subview in cell.subviews {
        if subview.isKind(of: UILabel.self) {
            subview.removeFromSuperview()
        }
    }

    cell.backgroundColor = .clear
}`

+1

+1

+1

+1

This issue is fixed on the master branch
Cheers

'Can't add self as subview'
Please Have A Look on this image below.
https://ibb.co/gfj7EQ


Komada v0.20 update

New version of Komada. Seems to break a lot of things. Try to update Komada for Beta 0.6.

Komada v0.20 was install successfully and has seemed to fix a couple of small improvement items already.


Incorrect plurals

When using the group stash pluralization is added for a lot of items that simply do not need it
suggest removing pluralization to match game state

Alright, I will add an 'Enable item pluralization' config setting when I have time this weekend


Update google-cloud-bigquery to 2.34.1

About this PR
📦 Updates com.google.cloud:google-cloud-bigquery from 2.34.0 to 2.34.1
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.google.cloud", artifactId = "google-cloud-bigquery" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.google.cloud", artifactId = "google-cloud-bigquery" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #383.


docs: add page instantiating-wallets

This doc page is part of the improvements on the Wallet docs section.
This guide covers how to instantiate wallets and how to connect them to a Provider

@Torres-ssf this requires a changeset


Save the file

[09/30 05:59:20 c2.utils.dump.events]: eta: 0:00:21  iter: 89940/90000  total_loss: 0.481  loss_cls: 0.193  loss_box_reg: 0.285    time: 0.3588  data_time: 0.0090  lr: 0.000300  max_mem: 5200M
[09/30 05:59:28 c2.utils.dump.events]: eta: 0:00:14  iter: 89960/90000  total_loss: 0.482  loss_cls: 0.206  loss_box_reg: 0.293    time: 0.3588  data_time: 0.0070  lr: 0.000300  max_mem: 5200M
[09/30 05:59:35 c2.utils.dump.events]: eta: 0:00:07  iter: 89980/90000  total_loss: 0.507  loss_cls: 0.205  loss_box_reg: 0.297    time: 0.3588  data_time: 0.0104  lr: 0.000300  max_mem: 5200M
[09/30 05:59:43 c2.checkpoint.checkpoint]: Saving checkpoint to ./output/model_final.pth
[09/30 05:59:43 c2.data.build]: TransformGens used: [ResizeShortestEdge(short_edge_length=(800, 800), max_size=1333, sample_style='choice')] in testing
[09/30 05:59:44 c2.data.datasets.coco]: Loaded 5000 images in COCO format from /home/fsr/code/YOLOF/datasets/coco/annotations/instances_val2017.json
[09/30 05:59:44 c2.evaluation.evaluator]: Start inference on 2500 data samples
Traceback (most recent call last):
File "/home/fsr/code/YOLOF/tools/train_net.py", line 109, in
args=(args,),
File "/home/fsr/code/YOLOF/cvpods/engine/launch.py", line 53, in launch
daemon=False,
File "/home/laocheng/anaconda3/envs/dh/lib/python3.7/site-packages/torch/multiprocessing/spawn.py", line 230, in spawn
return start_processes(fn, args, nprocs, join, daemon, start_method='spawn')
File "/home/laocheng/anaconda3/envs/dh/lib/python3.7/site-packages/torch/multiprocessing/spawn.py", line 188, in start_processes
while not context.join():
File "/home/laocheng/anaconda3/envs/dh/lib/python3.7/site-packages/torch/multiprocessing/spawn.py", line 136, in join
signal_name=name
torch.multiprocessing.spawn.ProcessExitedException: process 0 terminated with signal SIGKILL
Traceback (most recent call last):
Traceback (most recent call last):
File "", line 1, in
File "", line 1, in
File "/home/laocheng/anaconda3/envs/dh/lib/python3.7/multiprocessing/spawn.py", line 105, in spawn_main
File "/home/laocheng/anaconda3/envs/dh/lib/python3.7/multiprocessing/spawn.py", line 105, in spawn_main
exitcode = _main(fd)
exitcode = _main(fd)
File "/home/laocheng/anaconda3/envs/dh/lib/python3.7/multiprocessing/spawn.py", line 115, in _main
File "/home/laocheng/anaconda3/envs/dh/lib/python3.7/multiprocessing/spawn.py", line 115, in _main
self = reduction.pickle.load(from_parent)
self = reduction.pickle.load(from_parent)
_pickle.UnpicklingError: pickle data was truncated
_pickle.UnpicklingError: pickle data was truncated
How can I solve this problem when you need to test after you save the file

It seems you've run out of memory on your system. You can reduce memory usage by setting DATALOADER.NUM_WORKERS a smaller number, like 1 or 2.


no-unused-vars within typescript enum

What version of this package are you using?
13.1.0
What operating system, Node.js, and npm version?
node 12.10
npm 6.10.3
Standard config in package.json
  "standard": {
    "parser": "@typescript-eslint/parser",
    "plugins": [
      "@typescript-eslint/eslint-plugin"
    ]
  }

What happened?
export enum EWeightUnits {
    MG = 1,
    G = 1000,
    KG = 1000 * 1000,
    T = 1000 * 1000 * 1000
}

Every entry of the enum has the error 'KG' is assigned a value but never used. (no-unused-vars)standard(no-unused-vars)
What did you expect to happen?
No error
Are you willing to submit a pull request to fix this bug?
If I understand correctly, issue is referenced here, we need to change a rule in standard so we use a different version of the plugin.
Not sure where to make the code change.

I don't think Standard actually really supports TypeScript, yet. Consider using our TypeScript project config with ESLint:
https://github.com/standard/eslint-config-standard-with-typescript

#1283


Reverse sort order

In the following exemple, I try to sort the result with a desc order
$ curl -d '{ "A1" : 201 }' -H "Content-Type: application/json" http://localhost:3000/test/example1
$ curl -d '{ "A1" : 3 }' -H "Content-Type: application/json" http://localhost:3000/test/example1
$ curl -d '{ "A1" : 307 }' -H "Content-Type: application/json" http://localhost:3000/test/example1

Sort asc (easy) :
$ curl http://localhost:3000/test/example1?sort=A1
[
  {"A1":3,"_id":"4ed3aee8cc4fc51e1a000002"},
  {"A1":201,"_id":"4ed3aedccc4fc51e1a000001"},
  {"A1":307,"_id":"4ed3aeedcc4fc51e1a000003"}
]

But how can I do a desc sort:
I tried with:
> encodeURI("{A1:-1}")
'%7BA1:-1%7D'

$ curl http://localhost:3000/test/example1?sort=%7BA1:-1%7D

[
  {"A1":201,"_id":"4ed3aedccc4fc51e1a000001"},
  {"A1":3,"_id":"4ed3aee8cc4fc51e1a000002"},
  {"A1":307,"_id":"4ed3aeedcc4fc51e1a000003"}
]

But it doesn't work.

This can be done with ?sort={"field":1} for ASC order and ?sort={"field":-1} for DESC order.


Fatal error in the Swift-Jupyter

Hi, there!
I follow the Installation Instructions and step by step on my MAC.
Everything is perfect. I can see that "Registered kernel 'Swift' as 'swift'!". I also can find the "swift" button in the jupyter notebook. However, there was a fatal error when I create a new swift.
Is there someone could tell what is wrong with that. Thanks so much!
By the way, I found the swift-tensorflow the latest version 2018-10-05, it worked on the Xcode playgroud. Great job!

Hi!
The "Fatal Python error: PyThreadState_Get: no current thread" message that shows up in the console looks pretty suspicious. Based on some searching, it seems to have something to do with loading libraries that are linked against different versions of python (e.g. https://stackoverflow.com/questions/15678153/homebrew-python-on-mac-os-x-10-8-fatal-python-error-pythreadstate-get-no-cu).
The lldb library seems like the most likely culprit. I'd be curious about the output of the following commands on your system:
otool -L <directory containing your venv>/venv/bin/python
ls -la <directory containing your venv>/venv
otool -L /Library/Developer/Toolchains/swift-tensorflow-DEVELOPMENT-2018-10-05-a.xctoolchain/System/Library/PrivateFrameworks/LLDB.framework/Resources/Python/lldb/_lldb.so

They might reveal that _lldb.so is picking up a different python from your venv's python interpreter.
Alternatively, maybe some of the solutions suggested in the stackoverflow will help. I'm not sure how useful they will be, since I can't repoduce the problem myself.

Hello!
Thanks for the information about my "Fatal Python error".
Exactly, there was two Python version in my MacOS, 3.6.x and 2.7.x. It should be the lldb library link the Python 3.6.x.
And now, I try to use the swift for jupyter in Ubuntu 16.04. Everything is good, swift for jupyter is work.
However, there is something wrong with the rich output the swift.
I saw the usage instructions said that: "Do not install them on the virtualenv from the Swift-Jupyter installation instructions. Swift's Python interop talks to your system Python."
Thus, I use the command
"pip2 install numpy"
"pip2 install matplotlib==2.2.3"
"pip2 install ipykernel==4.9.0"
Hope this will help improve the installation instructions. :)
And the error is
error: :1:10: error: use of unresolved identifier 'Python'
let np = Python.import("numpy")
I try to add new user to reinstall because before I use the anaconda2 to create a new env.

Now, everything is perfect work in my Ubuntu 16.04 LTS. My system default version is python 2.7.15. I share my install steps and hope this is useful:

you need to update your pip version from 8.x to 18.1: pip install -U pip
pip2 install ipykernel==4.9.0
pip2 install matplotlib==2.2.3
pip2 install pandas
pip2 install numpy
sudo apt-get install python-tk (I need to install this, and the official installation instruction didn't show that, but I think it is important for someone.)
virtualenv venv
. venv/bin/activate
pip2 install jupyter # Must use python2, because LLDB doesn't support python3.
you need go into the "swift-jupyter-master" folder which download from the "google/swift-jupyter". And you also need to check you are in the "venv" such as: "(venv) swift@lyt:~$" and Register the kernel with jupyter:
(venv) swift@lyt:~/Downloads/swift-jupyter-master$ python register.py --sys-prefix --swift-toolchain /home/swift/Downloads
You will see 'Swift' as 'swift' at the end.
(venv) swift@lyt:~$ jupyter notebook.
Done! It should be work! Enjoy the swift for tensorflow, for jupyter and Rich output! :)

Closing this since the issue has been resolved.


Rename GCP service account to ID

remains consistent with the property renaming in the tile

[#158457879]

Thanks @afong94!


Add segmentation mask to inference output

Description

Fixes #218

Note
I haven't tested this with OpenVINO as the installation is broken on my windows machine.
Changes

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

Checklist

[x] My code follows the pre-commit style and check guidelines of this project.
[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing tests pass locally with my changes

Done!


Make the dependencies more explicit.

We manually had to map the dependency on aurelia-event-aggregator. It would be nice to do this automatically on jspm install github:benib/aurelia-leaflet.
config.js
map: {
    "aurelia-event-aggregator"<EMAIL_ADDRESS>}

fixed with version 1.0.0

Thank you for maintaining the project. :) We're using it on greenearth.game and will be upgrading to your most recent release.

@shaunluttin great to see it used in the wild. Please file issues if you have any problems.
Please consider using another source than the default one for the map tiles. See the OpenStreetMap tile usage policy: http://wiki.openstreetmap.org/wiki/Tile_usage_policy


[Feature Request]Align time and date

Is your feature request related to a problem? Please describe.
No
Describe the solution you'd like
Would it be possible to have time and date center aligned rather than right aligned?
I think it would look better, but this is just me.
Additional Context

I don't think I'll be adding this as a feature, but you can edit the card to do this:
On line 549 find text-align: ${clockAlign}; and make it text-align: center;


wishlist: on_click() event for ToggleButtons

It would be useful if the ToggleButtons widget would have an on_click() method, just like the usual Button.
Use case: use this on_click() event to re-evaluate an interactive function. This makes sense when the ToggleButtons represent actions rather than a selection. These actions might be non-idempotent (clicking the button twice is not the same as clicking it once).

I believe buttons only have click because they are the only stateless widget. ToggleButtons use .value, so you can observe changes to .value, which will be triggered on every click:
toggle = w.ToggleButton(description='click me')

def on_click(change):
    print(change['new'])

toggle.observe(on_click, 'value')

and you can use it with interact, as well:
@interact
def clicked(a=ToggleButton()):
    print(a)

@minrk I think what @jdemeyer means is that the buttons should be allowed to mimic a stateless widget. In that, they may be clicked without the value being changed and you would still like to trigger an action

@minrk I think what @jdemeyer means is that the buttons should be allowed to mimic a stateless widget. In that, they may be clicked without the value being changed and you would still like to trigger an action.

That's exactly what I mean indeed. If you click the same button twice, .value is not changed the second time but you may still want to intercept the second click (and call the interactive function again).

Sorry, I was thinking of ToggleButton, where by definition each click toggles the state, I forgot about ToggleButtons. In interacts, you can't trigger re-evaluation without changing the value of any other widget, so I'm not quite sure why a choice-selection should be the exception. Should every widget send all their click/interaction events that don't change state?

In interacts, you can't trigger re-evaluation without changing the value of any other widget

Exactly. And this is annoying because such re-evaluation without changing the value could be useful for

Stateful interacts (the interact remembers some state between successive calls, so it is not a pure function of its inputs).

Interacts involving randomness (every runs gives a different random result).

Should every widget send all their click/interaction events that don't change state?

Well, maybe not every widget but clicking a button is a very typical way to indicate an explicit action.

OK. @SylvainCorlay how feasible is it to add the click event to ToggleButton(s)?
In the meantime, interact_manual gives you a button to re-evaluate, regardless of whether inputs have changed.

I would be easy but I wanted to take advantage of the fact that we still have few stateless things in ipywidgets to get back into
https://github.com/ipython/ipywidgets/pull/46

I would be happy if you only added support for the on_click() event itself. Wiring up this event to the interact is something I can easily do myself.

Let me add that this feature is used quite often in practice in SageMath interacts. I consider it the most important bug when porting SageMath interacts to ipywidgets.

I think a semantically, a selection container for ToggleButtons is different than a row of buttons that invoke events when clicked. One is selecting a value from a set of choices, the other is presenting a list of convenient actions. A huge UI difference is that the selection container has the current selection highlighted, while the row of buttons does not have a 'pressed' button highlighted.

I would call the row of buttons a 'ButtonBar', and think it should be a different widget. Semantically, it's the same as an HBox of buttons, but renders the buttons close together. Would an HBox of buttons work just as well?

Would an HBox of buttons work just as well?

No because I still want the ButtonBar to have a value attribute indicating which button was pressed.

I think a semantically, a selection container for ToggleButtons is different than a row of buttons that invoke events when clicked.

The problem is that Sage uses the same widget for both things. So if we want to be compatible with Sage, we really need to have one widget which supports both.

I don't think we ought to pull in things from Sage that would be a bad thing moving forward, though. If anything, Sage could have a small compatibility wrapper that it loads by default, maybe with a deprecation warning.

For this issue, I'm simply asking to be able to intercept the on_click() event. I am not saying that ipywidgets should by default do something with this event. So that would be 100% backwards compatible for ipywidgets.

For this issue, I'm simply asking to be able to intercept the on_click() event. I am not saying that ipywidgets should by default do something with this event. So that would be 100% backwards compatible for ipywidgets.

Okay. Can you submit a PR?

Okay. Can you submit a PR?

No, this is beyond my skill set (otherwise I would have done it already).

Moving to 6.1

This should do the job:
import ipywidgets as widgets
class ClickResponsiveToggleButtons(widgets.ToggleButtons):
def __init__(self, *args, **kwargs):
    super().__init__(*args, **kwargs)
    self._click_handlers = widgets.CallbackDispatcher()
    self.on_msg(self._handle_button_msg)
    pass

def on_click(self, callback, remove=False):
    """Register a callback to execute when the button is clicked.

    The callback will be called with one argument, the clicked button
    widget instance.

    Parameters
    ----------
    remove: bool (optional)
        Set to true to remove the callback from the list of callbacks.
    """
    self._click_handlers.register_callback(callback, remove=remove)

def _handle_button_msg(self, _, content, buffers):
    """Handle a msg from the front-end.

    Parameters
    ----------
    content: dict
        Content of the msg.
    """
    if content.get('event', '') == 'click':
        self._click_handlers(self)


Catalog Chart version should allow uppercase characters (SemVer)

What kind of request is this (question/bug/enhancement/feature request):
Bug
Steps to reproduce (least amount of steps as possible):
Create a chart which version contains uppercase characters like "mychart-1.2.3-SNAPSHOT"), in a chart repo. Add the helm repo as a catalog in Rancher.
Result:
Snapshot versions are ignored and can not be used.
The rancher container logs this:
failed mychart template version name mytemplate-1.2.3-SNAPSHOT:
[a DNS-1123 subdomain must consist of lower case alphanumeric
characters, '-' or '.', and must start and end with an alphanumeric
character (e.g. 'example.com', regex used for validation is
'[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')]

Other details that may be helpful:
Here (https://semver.org/#spec-item-9) it says that uppercase characters are ok to use:

A pre-release version MAY be denoted by appending a hyphen and a series of dot separated identifiers immediately following the patch version. Identifiers MUST comprise only ASCII alphanumerics and hyphen [0-9A-Za-z-].

Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI): 2.4.2
Installation option (single install/HA): HA

I just created a pull request that should fix the problem:
https://github.com/stearz/rancher/pull/1

similar issue https://github.com/rancher/rancher/issues/19615

original PR was closed when I tried to squash.
Here is the new one: https://github.com/rancher/rancher/pull/26943


[Gally]: master <- dev

Automatically created by Git-Ally

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Fix documentation

Document that the OpenShift internal container image registry is not enabled by default on bare metal installation.
Replace Fedora kernel versions with RHEL.
Fixes #370

/cc @iranzo

/hold

/unhold

/lgtm


IDfix installation confusion

IDfix isn't installed. It's a standalone/portable app that's executed after it's unzipped. There isn't an installation wizard that creates shortcuts or adds it to Programs and Features. Using "Install" language throughout this article can imply that it can be uninstalled and cause confusion. Also, the unzip process doesn't include a Winzip self extractor. It'd probably be better just to say to unzip the file using the native Windows extraction process (right click, Extract All...).

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

ID: c937e8be-1696-c315-a93b-88f083279644
Version Independent ID: c0c3d253-4bfe-1750-58a1-4d8f4a1e68d6
Content: Install and run the Office 365 IdFix tool
Content Source: Enterprise/install-and-run-idfix.md
Service: o365-administration
GitHub Login: @JoeDavies-MSFT
Microsoft Alias: josephd

@officedocsbot assign @mypil

@ohannanen - Thank you for submitting feedback.
I will get this issue over to the Enterprise writing team for investigation.
Thank you for reporting and making the docs better. Much appreciated.
I made a note to request the team to update this when the work is complete.

@ohannanen , @mypil I have updated the article based on your suggestions and stepping through a download/extract process. It is now much clearer that IdFix tool is a download, not a program that is installed. Thanks for letting us know.


Empty or null ChildRowContent of MudDataGrid cause visual bug

Bug type
Component
Component name
MudDataGrid
What happened?
If you programmatically define "Row Detail View", then an empty ChildRowContent leads to a visual bug - empty lines between the grid lines
Expected behavior
Normal representation without extra blank lines
Reproduction link
https://try.mudblazor.com/snippet/cEGRvakRBFncGGKm
Reproduction steps

Run Snippet

Relevant log output
No response
Version (bug)
6.10.0
Version (working)
No response
What browsers are you seeing the problem on?
Chrome
On what operating system are you experiencing the issue?
Windows
Pull Request

[ ] I would like to do a Pull Request

Code of Conduct

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

Hopefully this one gets some attention. I don't have time right now to investigate a proper solution or workaround, but it looks like it may be related to these areas of MudDataGrid:
@if (ChildRowContent != null && (_openHierarchies.Contains(item) || !hasHierarchyColumn)) {
                      @ChildRowContent(new CellContext<T>(this, item))
 }
Where ChildRowContent is never null when you've added it to your data grid, even if you don't pass anything into it. The RenderFragment is still instantiated, even without content. In my situation, shared below, even when the if statement is false here, the row is rendered as an empty row.
@if (context.Item.IsExpanded && context.Item.DynamicComponentType != null) { 	<DynamicComponent<EMAIL_ADDRESS><EMAIL_ADDRESS>/> }
If someone has a workaround to this, please let me know.

Hi.
The thing is that in Blazor there is no API to know if the RenderFragment has an empty content or that it's currently not rending it's content because of the condition
That's why when declare the ChildRowContent the RenderFragment
And this part is getting invoked
https://github.com/MudBlazor/MudBlazor/blob/0824b2135c504fcd74798acca6b53c429b4fbb14/src/MudBlazor/Components/DataGrid/MudDataGrid.razor#L251-L258
The applied mud-table-cell style is what causing this "empty" line to show up.
I think the main ChildRowContent was that you either have always some content, or you have like a toggle button iniside that will hide/show content.

As workaround you could do something like this:
https://try.mudblazor.com/snippet/cEQeEnFQywritWmt
Usually, I strongly don't recommend doing this in Blazor, but I don't have anything else to offer.
Also, this is not really correct:
    @if (!_isReadOnly)
    {
        <HierarchyColumn T="Element" ButtonDisabledFunc="@(x => x.Sign == "He")" />
    }

as every time this _isReadOnly you will add a new reference to the RenderColumns and in will duplicate, please read this: https://github.com/MudBlazor/MudBlazor/issues/6569#issuecomment-1493373386.

Here's a small workaround I've come up with.
https://try.mudblazor.com/snippet/QawSkycHrvmLqJfT
Only catch is that the :has() pseudo-class is only standard in browsers as of December 2023, so if you can't guarantee that your users have up-to-date browsers I imagine you could easily do something similar using JS interop.


[Feature Suggestion] Actor name and permission configuration

Hello, I'd like to suggest some features, the first one is to have an option to show the actor's name, not the token's name (which can be modified by modules like Token Mold).
The second suggestion is to have an option to automatically set the actors' permission to all players once the actor has been introduced. My suggestion would be to set it to "Limited" so that players can see the picture and name, but not the sheet.

That can definately be done. Good suggestions. 😄
I'll see about getting it out in a coming version.


Implement query for lirc programs

Signed-off-by: Sean Young<EMAIL_ADDRESS>

Fixes #2

thank you!


{Style} Replace BLUE in powershell.exe, honor enable_color

Description
Refine the style framework.

Since BLUE and LIGHTBLUE_EX are not very visible under powershell.exe (see the demo at https://github.com/jiasli/color-demo), they are replaced with LIGHTWHITE_EX.

Bring back get_parent_proc_name removed by #11665. #15076 has made sure that psutil is not installed under cygwin.

Honor cli_ctx.enable_color so that when color is disabled, it can removed when formatting styled text, eliminating the necessity to make 2 versions of the same string, one with color, one without, like
https://github.com/Azure/azure-cli/blob/026016e7bf205bfa378f79351f99c9d536efa3d5/src/azure-cli-core/azure/cli/core/commands/constants.py#L35-L37

Testing Guide
az demo style

powershell.exe:

pwsh.exe:

Style

LGTM from the design side as per our latest discussion!

May I ask could we support end parameter of print() in the print_styled_text() function?
At present, I have a requirement that the message of input() should also be colored, such as:

My previous implementation is:
print("Please input " + Fore.LIGHTBLUE_EX + param + Fore.RESET + ":", end='')
value = input()

Or do we have other better ways to implement this requirement, such as wrapping a specialized method?

@zhoxing-ms, end is already supported. Note that kwargs is passed to print as is.
https://github.com/Azure/azure-cli/blob/fa9985e7f18f5624cd21484404c313368a1909bd/src/azure-cli-core/azure/cli/core/style.py#L82


LlamaKit doesn't link to Foundation

LlamaKit (0.6.0) doesn't link to Foundation. This causes a build failure in Cartage with Xcode6.3b2.

I've made a PR for this issue

This issue can be closed, @rnapier! :wave:

Thanks for reminding!


Server APIs in jacdac docs

Maybe I'm just bad at it, but currently, I think it is quite tricky to send a packet to servers as we do not have typed APIs on the module class. Right now, I think we have to manually craft a packet and send it on the jacdac bus.
It would be great if we could brainstorm someway to make it more intuitive to interact with the hardware programmatically from docs pages.
A better dev x would be great for hackathon.

let's chat about what you're looking for.

In playground currently:

Closing for now.


Set smoke tests non-blocking

related: https://github.com/eclipse-openj9/openj9/issues/19122

@AdamBrousseau could you review the change? Thanks


SCM Repositories view cleanup

This would be a continuation of this: https://github.com/microsoft/vscode/issues/104151#
Thank you, for more or less bringing back the old View of the SCM panel, I really appreciate it 🙏
I still have one detail, that is bothering me a lot: in the old view, all the options and extensions were only visible on the "Changes" pane, leaving the different repos looking clean. My major problem with new look was this clean space got cluttered, and sadly this change doesn't really solve that.
I'm not sure if it is doable, but if it is, could we please have it back that all the various options are:
a) selectable (so I can turn it off, if I don't need it)
b) only appear on the selected Source Controls and not in the Source Control Repositories section.
Until this can happen (or confirmed that it is impossible), I'm gonna go back to 1.46, hopefully temporary.
for reference, this is how it looks like for me:

and how it looked like in 1.46

All that chrome is distracting and it'd be great to clean it up back to the 1.46 look.

I agree with the sentiment, but I disagree with the solution. Some of the new buttons are useful. Here's some ideas:

Ellipsis menu — This is powerful. How about adding all of the features in this menu to row context menu? Additionally, all of the features of the buttons should be added to the menu, so that regardless of other changes, you can access the functionality.
Refresh button — How about just one refresh button at the top of the sidebar? I'm ok with only being able to refresh all repos at the same time.
Commit button — This shouldn't appear in the Repos view since it doesn't do anything, and it should only appear in the Changes view when (a) there are staged changes and (b) There's a message in the input. To that end, it would be even better to but this icon next to the message input.
Branch button — I like this one. But for people who don't, how about offering the option to alwaysShow, showOnHover, or neverShow.
Changes — I like this one too. I would offer the same options as for the branch button.

Thoughts?
(Also, @joaomoreno thanks for working on the sidebar. Some of the new features have made it easy for me to consolidate my workflow into VSCode.)

@mikestopcontinues imho any button on the Repositories view are just clutter and redundant with buttons on Changes view (see screenshot)

That being said, I do agree with having options to toggle the visibility.
@joaomoreno any update maybe on when this could be scheduled in for work?

Starting with VS Code 1.86 (already available in VS Code Insiders) users are now able to right click on actions and pick to hide them. Only actions that cannot be hidden are checkout, and sync. Actions can be hidden independently in the "Source Control Repositories" and "Source Control" views.

@aiday-mar I see this issue was added to the Dec/Jan 2024 milestone, and it's currently closed, but the problem still remains. Do you know if there is any intention to address it?
Or is there another way to remove unwanted icons? In earlier versions of VSCode, it was possible to customize the CSS, so it was easy to hide them (e.g., using display: none). This is how I used to manage the interface, but that feature got taken away...

Hi @TheophileMot thank you for posting your concern. I am not sure what the state of this issue is, you would have to ask @lszomoru about it. I added this to the December / January 2024 milestone because it was initially assigned to it, and then at some point I deleted the milestone, so I had to assign it back.

@TheophileMot, could you please provide a screenshot with the exact icons that you cannot hide? Thanks!

@lszomoru Certainly; here's what I mean:

In practice, I only ever use one of the buttons ("Compare with HEAD"), so I would ideally like to hide the remaining five. To motivate the request:

The extra icons are visual clutter;
In particular, when the side panel is narrow, as mine often is, the icons take up so much space that they hide the branch name entirely;
There is the possibility of clicking on the wrong action by accident;
The icons are all so similar (arrows going in a circle) that to make sure I'm clicking on the right one, I need to look at the tooltip, but this means waiting a second for the tooltip to appear, which adds an unnecessary delay and distraction.

Thanks for looking into this!

@lszomoru Ah, I see! Thank you for the explanation (and sorry for any confusion); for some reason I thought it was a built-in feature. I'll raise an issue in that repo.


Update code as user types into the editor

For #8589
For #9870

Code is kept upto date as user types into the editor/cell
Hence when running a cell, we only pass the cell id
When moving a cell up/down we only need the cell id
When changing focus we no longer attempt to update the cell source
When changing cell types from markdown to code, we use code in current state instead of passing it.

Basically the expectation is that the cells in extension and state will always be up to date with latest code
We'll always strive to keep the cells updated with the latest source upon typing text as per issue requirement.
Note:
I think i found why some of the case we were getting weird behaviour. When running a cell, the user could be in the edtior & they could hit the shift+enter key. Even when focus fires, its possible that that triggers the dispatcher to update the state with latest source, however, when running a cell we're dealing with the old previous state, which contains old code. I know we've tried to work around this in some places to get the latest source, but I found some places were not using this even though it was being passed around. It would compile because we added new properties but we weren't using them.
Then again, this is exactly what we're trying to solve. 😄
Again, WIP

[ ] Add functional tests
[ ] Review issues where code was lost (when changing cell types), ensure this still works

Codecov Report

Merging #10223 into master will decrease coverage by 61.31%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           master   #10223       +/-   ##
===========================================
- Coverage   61.31%       0%   -61.32%
===========================================
  Files         567       10      -557
  Lines       30770       31    -30739
  Branches     4410        4     -4406
===========================================
- Hits        18868        0    -18868
+ Misses      10918       31    -10887
+ Partials      984        0      -984

Impacted Files
Coverage Δ

src/client/debugger/constants.ts
0% <0%> (-100%)
:arrow_down:

src/client/constants.ts
0% <0%> (-100%)
:arrow_down:

src/client/common/platform/constants.ts
0% <0%> (-100%)
:arrow_down:

src/client/interpreter/locators/services/conda.ts
0% <0%> (-100%)
:arrow_down:

src/client/common/process/constants.ts
0% <0%> (-100%)
:arrow_down:

...ience/jupyter/jupyterDebuggerRemoteNotSupported.ts
0% <0%> (-60%)
:arrow_down:

...t/datascience/jupyter/jupyterDataRateLimitError.ts
0% <0%> (-50%)
:arrow_down:

src/client/language/textRangeCollection.ts

.../application/diagnostics/commands/launchBrowser.ts

...c/client/interpreter/autoSelection/rules/system.ts

... and 551 more

Continue to review full report at Codecov.

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

This should fix #9870 then too?

This should fix #9870 then too?

Yes @rchiodo

        // Dont change focus state if not the focused cell. Just update the code.

Couldn't you just return arg.prevState here? No changes happened?

Refers to: src/datascience-ui/native-editor/redux/reducers/effects.ts:82 in 62b1860. [](commit_id = 62b1860540995a3ed7b13a2d0b900c0981b2df85, deletion_comment = False)

@rchiodo @IanMatthewHuff Parking this PR for now, until we get ds/cusom_editor into master.

Closing as there's another PR, had to create another after merging ds/custom_editor into master


Rename 'WebID Profile Document' to simply be 'WebID Document'

Proposal here is to recommend a ‘spec’ change to remove the word ‘Profile’ when referring to a ‘WebID Profile Document’.
Justifications

Mainly because it's easier to say(!) and type in code or documentation.
It removes any confusion with the 'extended' webid profile. Every time we explain WebIDs to someone we need talk about 'THE' profile and the 'extended' profile, adding even more cognitive burden to those learning about Solid.
It would be consistent with related forms of usage - specifically 'Client ID Document' and 'DID Document'.
Continuing to use ‘Profile' is overly limiting in terms of what we can expect to be contained in this document (i.e., whatever is in there kinda needs to be ‘Profile-like' data, which I assume may not always be the case (i.e., any user should be able to choose whatever they want to put in there - Profile-like or not)).

/chair hat off
As we finally get to update the working draft, we seem to agree on using the concept of Extension Profiles from W3C's note on spec variability to identity the class of specifications building upon the "core" WebID spec.
IMHO, having both Extension Profiles and Profile Documents would be rather confusing. I'd be in favor of changing to WebID Document or even Identity Document (without the WebID prefix) as suggested by (I think) @woutermont a while ago.

Digging for justification for discovery, I explored rather a lot of the Mercurial dump, and am amused to note that it flipped between "WebID Profile Document", "WebID Document", "Profile Document", and "Personal Profile". It's unfortunate that the dump lacks any surrounding discussion of why each of these changes was made.

Identifier and Document disambiguation is the overarching issue.
"WebID Document" doesn't disambiguate identifier and document with clarity.
In addition, on the discovery front:
Given a WebID I can discover one or more clusters of other agents denoted by their respective WebIDs.
A WebID facilitates discovery of what ever it names in addition to what ever it's related to, by way of what's in its associated profile document.
Profiles are used in this manner outside of the Web, but without the expansive connectivity that HTTP facilitates.  Unix even has a ".profile" file for similar purposes.
A you know, HTTP is heavily influenced by Unix.  Keeping "Profile" in place is important and useful.

We already had a long discussion about dropping 'profile' in the Solid CG about a year ago. The main reason for doing so is because it is confusing: 'profile' immediately leads people to think about social media related personal profile pages. While a WebID Document might have been conceived as such, and has definitely been used to contain similar data, it has a much broader and more technical goal than merely being a set of personal profile data, i.e. it is an entry hook into the digital presence and toolchain of an agent.
The discussion in the Solid CG led to the use of two distinct terms: 'WebID Document' for the document a WebID dereferences to, and  'Solid Profile' for the set personal profile data discoverable from the WebID entry hook, including the WebID Document, but also the Preferences File and the Extended Profile. I personally believe this is a clear and workable disambiguation. Note that in this sense a 'profile' is a data boundary, not a document boundary, which precisely addresses one of @nicolasmondada's concerns.
The above is a semantic point. I also agree with the pragmatic one: we also use 'profile' in the sense of W3C Spec Variability; this makes the term ambiguous. We can easily resolve this ambiguity by dropping 'profile' from 'WebID Profile Document' since in the latter term it is redundant, i.e. everyone will still know what we mean when saying 'WebID Document'.
Re dropping 'WebID' (@webr3's proposal), I'm not in favour. Within the scope of the WebID spec and ecosystem, the document we are talking about is the document a WebID dereferences to, so 'WebID Document' is a good term. As @nicolasmondada already pointed out, when we look at specs with a similar behaviour, their terminology is the same ('DID Document', 'Client ID Document'). Only when we talk in a more general sense, I prefer to use the term 'Identity Document'. A WebID Document is then an Identity Document to which a WebID refers, a DID Document one to which a DID refers (and ideally, nothing should prevent those to be the same).

/chair hat off

"WebID Document" doesn't disambiguate identifier and document with clarity

Personally I don't find this to be the case. Most importantly, I've asked a few colleagues that work in completely unrelated areas and they don't find this to be the case, either.

Digging for justification for discovery,

In addition, on the discovery front:

Better discussed in #54 .

Note that in this sense a 'profile' is a data boundary, not a document boundary, [...] The above is a semantic point

Good point.
There are no blockers for me, here, though I do think that Profile is confusing no matter what surrounds it. In order of preference:

Identity Document
WebID Document
Profile Document
WebID Profile Document

We should leave "WebID Profile Document" as is. Changing it will not reach consensus, amongst other downsides.

I think DID Document is a bad example of how to do identity.

While the diagrams look beautiful.  No developer I've ever met understands the concept.  Here was their attempt to clarify it in the spec:

Identity Document

can live with this, it is in fact a document that houses an identity

WebID Document

this is the least controversial of all, imho, just saying that webid has a document because it is http -- a tautology

Profile Document

WebID Profile Document

can live with either
but no one has ever really said what is the difference between a Person and a Profile, and also now we have extension Profiles, which we didnt before
Perhaps grammatically correct is the "WebID's document", with an apostrophe.  But omitted for convenience.
Regarding Solid uses of WebID, it seems to have diverged a long way from what the purpose is, and that is a social identifier.  Definitely "Solid Profile" is different from anything in WebID, and a branding discussion.  WebID can be clean, simple, elegant and developer friendly.

-1
No to changing "WebID Profile Document" to "WebID Document" .

We should probably take this has a hard NACK for now, unless @kidehen might change his mind, of find a formulation he can live with.
If it's impossible to live with the status quo, we should try and find a better way.  Otherwise probably best to move to other things that need doing such as extension profiles.
just my 2c

/chair hat on
@kidehen is yours a hard no / strong objection / hard NACK to changing "WebID Profile Document" into "WebID Document" ?
Asking because, from what I can see, everybody else in this thread might actually be open to it or even prefer doing so. However, nobody has expressed a strong dissatisfaction with "WebID Profile Document", either. Ultimately, given the conversation above, making this change or not boils down to whether this is something you could live with.

Come on, it's terminology, not an impactful technical change. If everyone except one person agrees that a shorter and less confusing term would be better, are we really going to base our decision on the preference of that one person?

/chair hat on
@woutermont while I personally agree, I don't think that approach would go far as chair, at least based on the last few years of discussion. Presently I'm trying to ascertain whether there are strong objections at all.
If there were strong objections to both keeping and dropping "Profile", then of course I would have to choose which strong objection to go against and would do so based on where the majority stands. But, insofar as no strong objections are raised, I don't see the point of forcing the change through rather than settle for keeping "Profile", which looks like something we could all live with.

What I'm trying to point out is that, as far as terminology goes, 'being able to live with' is quite relative. If personal preference is enough, then I hereby raise a strong objection. If not, then we can only look at (A) the number of advantages/disadvantages raised (which is in favour of dropping), or (B) the number of people in favour of an option (which is again in favour of dropping).

/chair hat on
@woutermont I don't always find it easy to discriminate between personal preference and objective technical superiority, mostly because we each differ in our sensibility to technical issues based on our experiences and areas of expertise. The demarcation between A and B is not as clear, IMHO.
Generally speaking, my goal as chair is unanimity. If I have to settle for something less than unanimity, I aim for the solution with the largest consensus and no strong objections. If I have to settle for something even further from unanimity, I aim for the solution with the largest consensus and the least strong objections. That is why I always ask to clarify whether a NACK is a hard one or not, and why I tend to only do so after giving the conversation a chance to converge.
An exception to this rule would be something to which I personally object so strongly that I would rather resign than being the chair under which it were brought into the spec.

then I hereby raise a strong objection

That's fair! Strong objection to keeping "Profile" noted.

then I hereby raise a strong objection\n\nThat's fair! Strong objection to keeping "Profile" noted.

That should be 'to drop Profile', since otherwise I would not have a problem 😅

/chair hat on
So far we have:

3 strong preferences for "WebID Document" over "WebID Profile Document" (@nicolasmondada , @woutermont and @webr3)
2 soft preferences for "WebID Document" over "WebID Profile Document" (@melvincarvalho and @jacoscaz)
1 strong (I think?) preference for "WebID Profile Document" over "WebID Document" (@kidehen)

Consensus seems to lie with "WebID Document", at least based on the preferences and the arguments put forth so far. Unanimity is unlikely but strong preferences have been expressed. I'll create a PR for this in the next few days.

The fundamental point here is the term "Profile Document" isn't novel. It's in common use that serves the WebID Specification well.
SeeAlso, courtesy of Microsoft CoPilot: https://sl.bing.net/jZu2OGmxa5Q

fwiw, personally WebID Profile Document > WebID Document > Profile Document.
It's a Document, containing the Profile, of a WebID.
I think there may well be more than one document described by either of the latter labels, certainly the last; while there should, and will probably, be only one document described by the first label, for any given WebID.

I just noticed that this issue is still Open, so I'll just throw in my 2cents too:
Strong preference for WebID Document over WebID Profile Document - so +1 to removing Profile.


Mirror the target control of ObjectNavFragment if front facing camera is used

When front facing camera is used, the target control of ObjectNavFragment should be mirrored otherwise the bot can't follow the target object. See the issue 385 for detail

The convention for the front camera varies across phones. How about adding an icon to mirror controls next to the camera flip icon.

OK, I haven't tried phones other than Samsung's. Maybe a better solution would be to detect the convention for the phone automatically, and set default value accordingly, in addition to adding icon to mirror control? Not sure if it's detectable. Before figuring out that, adding icon to mirror control can be a basic solution. I'll add some more commits soon

I've added more commits. It should be ok now.

I adjusted the layout and appearance of icons, now it looks like this:

I have fixed the UI for the fragment. Could you review and replace below file named fragment_object_nav.xml in the path robot/src/main/res/layout-land directory.
fragment_object_nav.xml.zip
And also replace below file named fragment_object_nav.xml in the path robot/src/main/res/layout directory.
fragment_object_nav.xml.zip


Duplicate photos

Describe the bug
The app duplicates photos... sometimes. Unfortunately that's as specific as I can get right now
To Reproduce
I don't have good repro steps for this yet, but I think it happens after upload, and I'm sure it happens with imported photos, so try importing a few photos and uploading them, syncing the app a few times, etc.
Expected behavior
Photos should never be duplicated.
Screenshots
This is what https://www.inaturalist.org/observations/190310475 looks like on ObsEdit:

FWIW, I created that today by importing a single old photo.
Context (please complete the following information):

Device: iPad Air (5th gen)
OS: iPadOS 16.6.1
App version: v0.15.0+61

FWIW, I think this happens in both iOS and Android, iPad and iPhone, regardless of OS version.
Additional context
Unfortunately this is a bit exploratory at this point, but it might be valuable to at least write photo creation events to the log file if we're not already so we can see when these duplicates get created.
Another interesting symptom is that when you delete the duplicate photo, save the obs, and upload, the photo appears to be gone in the app but persists on the website.

Yaron can't replicate this so I'll see if I still can and close if not.

I don't think I've noticed the app doing this for the past month so I'm going to close for now.


[Feature]: Collapse all invisible widgets in view and preview mode

Is there an existing issue for this?

[X] I have searched the existing issues

Summary

When a widget within a container -- which has auto height enabled -- goes invisible -- in view and preview mode -- they should fully collapse, allowing widgets beneath them to take up the vacated space.
We cannot have this enabled by default without consequences to existing apps. The reason for this, is that this will effect exiting page layouts and cause unexpected behaviour without the knowledge of the application developer.
To mitigate this, we should enable this only for newly created applications. This way, application developers will notice the behaviour during development.
This requires the application API response, to provide the client with a flag that informs the client of the fact that the application is a newly created application, allowing the client to enable this feature without consequences like breaking apps.
The application API response can have a flag collapseInvisibleWidgets: true.
If this flag exists and is true, the client will collapse all invisible widgets within an auto height enabled container.
If this flag doesn't exist or is false, the client will not collapse all invisible widgets within an auto height enabled container.

Why should this be worked on?

Today, widgets which have auto height enabled, will collapse, allowing widgets below them to occupy their space.
However, not all widgets have auto height. This leads to widgets like Button and Divider, always taking up space.
Collapsing invisible widgets is a basic expectation when it comes to web UI.

Reopened, as @riodeuno is still working on this for the frontend.


fix: Fixed links to nightly-build compose files to point to edgexfoundry master

Just fix the links to properly point to nightly-build compose files in master and not Lenny's branch

sorry, I merged the PR without considering this.  there might be something wrong on GitHub right now, and we will try to fix it tomorrow.


use docker for travis

This PR changes travis to use docker and docker-compose to allow more control over the test environment.

@elorest do you have a recommendation on where you think this should go? /docker or /config or ???

In this case I wonder if putting it in spec/ would be a good idea.

I moved the docker files to /spec


fix: allow using the key file path configuration in the new Firebase connection

We have added a new connection type which uses the Firebase RTDB but this new connection did not use the config parameter keyFilePath so that the only way of telling this connection where to find the file with the credentials was by using an environment variable.
With this code change this connection will use this config parameter in the same way that the other connections use it

@saranshdhingra  and @bshaffer were involved in the previous PR on which this one is based, so they may want to review this one


fix: do not recreate trustpolicy secret if the content doesn't change

What type of PR is this?

Which issue does this PR fix:
What does this PR do / Why do we need it:
If an issue # is not available please add repro steps and logs showing the issue:
Testing done on this change:

Automation added to e2e:

Will this break upgrades or downgrades?
Does this PR introduce any user-facing change?:

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Merged as this is urgent for test case stability.


[DO NOT MERGE] Implement precommit java jobs to run on java 11

Please add a meaningful description for your change here

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.