Add keycastr - keystroke visualizer

Added keycastr - keystroke visualizer
Project URL

https://github.com/keycastr/keycastr
Category

keyboard
Description

A  minimalist app to show keystroke, excellent utility to show during tutorials or zoom sessions
Why it should be included to Awesome macOS open source applications  (optional)
This is special utility for those with hearing problems. Visual signs is vital in the learning process for those human beings.
Checklist

[x] Edit applications.json instead of README.md.
[x] Only one project/change is in this pull request
[x] Screenshots(s) added if any
[x] Has a commit from less than 2 years ago
[x] Has a clear README in English

@kant Thank you! :rocke

my pleasure, sir @serhii-londar


FLUID-5603: Add the API doc for the text to speech component

http://issues.fluidproject.org/browse/FLUID-5603

@acheetham I've made adjustments to the headings and brought it more inline with the other migration doc we had fro 1.4 to 1.5.

merged at 6d022603f8cdd4122963ad2a9e44615d5a9f1c30


I have installed sparkles-text via CLI and also tried to add it manually, but it just outputs bunch of errors when trying to interact with "d:" and "viewBox" attributes. It does show the text but it doesn't have sparkle animations

same

@0xDynamic Can you explain to me?

@0xDynamic Can you explain to me?

Whenever I put <SparklesText text="Magic UI" /> in to use the sparkle text component, it doesn't show the sparkle around the text on website instead it outputs bunch of errors in console like the image I send.

@0xDynamic In my browser working currently. There is no error in the console.
Try to install using cli.
pnpm dlx magicui-cli add sparkles-text

Replace pnpm with whatever you use package manager.
If you are using javascript, then it's showing this type of error.

If you can provide a full image of full errors then I make changes upon it.please Ignore my grammar.

Just installed via cli and tested component with console but found no errors
Proof below

Will close issue for now unless someone opens up another reproducible example :)
Thanks again!


Request: a way to access the contents of a .packages file, if provided

The Dart platform now supports a .packages file as a way to specify a mapping between a package name and a location where the package's lib contents are stored.
Dart programs would like access to this map, in order to introspect package contents at runtime.
This request is for a new API added to the Isolate class. Something like this strawman:
class Isolate {
  /// Returns a map of package name to resolved URIs,
  /// if the runtime was configured with a mapping. May
  /// return null.
  ///
  /// Generally, Dart applications are configured with
  /// either a packageRoot or a packageMap, though
  /// both may return non-null values.
  static Map get packageMap;
}

cc @iposva-google

Dupe of https://github.com/dart-lang/sdk/issues/24022


Warnings when pip installing

I just added poetry (latest, 1.0.10) and poethepoet (latest, 0.8.0) to a virtualenv, and after installing poethepoet I get the following message:
$ pip install poethepoet
Collecting poethepoet
  Downloading poethepoet-0.8.0-py3-none-any.whl (23 kB)
Collecting tomlkit<0.8.0,>=0.7.0
  Downloading tomlkit-0.7.0-py2.py3-none-any.whl (32 kB)
Requirement already satisfied: pastel<0.3.0,>=0.2.0 in ./venv/lib/python3.8/site-packages (from poethepoet) (0.2.1)
Installing collected packages: tomlkit, poethepoet
  Attempting uninstall: tomlkit
    Found existing installation: tomlkit 0.5.11
    Uninstalling tomlkit-0.5.11:
      Successfully uninstalled tomlkit-0.5.11
ERROR: After October 2020 you may experience errors when installing or updating packages. This is because pip will change the way that it resolves dependency conflicts.

We recommend you use --use-feature=2020-resolver to test your packages with the new resolver before it becomes the default.

poetry 1.0.10 requires tomlkit<0.6.0,>=0.5.11, but you'll have tomlkit 0.7.0 which is incompatible.

Thanks for reporting this. Maybe dependencies specification could be loosened to avoid this sort of thing.
As it happens poetry specifies tomlkit = ">=0.7.0,<1.0.0" on master so this particular warning should go away on its own soon enough.


Unable to install dotnet-sdk-6.0 using package manager instructions.

Using the below instructions to install dotnet sdk 6.0 on Ubuntu 21.10
wget https://packages.microsoft.com/config/ubuntu/21.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-6.0

Unable to install dotnet-sdk-6.0 using package manager instructions because the package is not found.
E: Unable to locate package dotnet-sdk-6.0
E: Couldn't find any package by glob 'dotnet-sdk-6.0'
E: Couldn't find any package by regex 'dotnet-sdk-6.0'

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

ID: 80707602-f283-e796-d3b8-3287fbc011dc
Version Independent ID: 1d732b15-9e64-633a-000c-ad96d9d3818a
Content: Install .NET on Ubuntu - .NET
Content Source: docs/core/install/linux-ubuntu.md
Product: dotnet
Technology: dotnet-install
GitHub Login: @adegeo
Microsoft Alias: adegeo

Tried with the below command from the github page. Fails with 404
wget https://packages.microsoft.com/config/ubuntu/21.10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

Files haven't been uploaded to Microsoft's servers.
There's 21.04, but no 21.10.

@rbhanda

Do the commands to install 21.04 work? This may be the alternative until the packages are published via 21.10

Yes, you can use the 21.04 instructions to install on 21.10.

Interestingly, the instructions worked after I manually removed /etc/apt/sources.list.d/microsoft-prod.list
Previously it found an old version and running sudo dpkg -i packages-microsoft-prod.deb didn't overwrite the old file.
(The old file was hanging there after upgrading from 20.04).

Interestingly, the instructions worked after I manually removed /etc/apt/sources.list.d/microsoft-prod.list Previously it found an old version and running sudo dpkg -i packages-microsoft-prod.deb didn't overwrite the old file. (The old file was hanging there after upgrading from 20.04).

This worked for me. Am able to install sdk-6.0 from  https://packages.microsoft.com/config/ubuntu/21.04/packages-microsoft-prod.deb

21.10 is not working on Linux Mint 20.2.
21.04 is working and just confirming since it has not been fixed as of now.


private repositories

People won't be able to clone the project if you link to private repositories. Everything should be public.

Thanks, @rkaminsk !


Old exemplars get re-added continuously

Imagine we have an application exporting a histogram with typical long-tailed distribution.
The exemplar for popular buckets will change on nearly every observation, while those in rare buckets might stay the same for hours.
The Prometheus client library treats them all equally, so the hours-old exemplars are scraped every time same as the brand-new ones.
Storage for exemplars is a circular buffer: once full, the exemplar added to the buffer longest ago is removed to add a new one.
But we are continually re-adding those hours-old exemplars: they displace ones with newer timestamps.
To illustrate: the buffer here allows about 30 minutes of exemplars, but we have a few going back 2 hours:

I am reporting this because the observed effect was surprising to me, and I suspect it is unwanted.
It means this description is incorrect: https://github.com/prometheus/prometheus/blob/93886d84172503c30a58c60a90d0f3be3a9903c0/tsdb/exemplar.go#L79-L82
The timestamp is not "useful to check for what time range the current exemplar buffer limit allows", since it is greatly extended back in time for rare buckets.
As a fix I might suggest: when the buffer is full, don't add a timestamp older than the one you would displace.
However it may be simpler and cheaper to just discard incoming exemplars older than a fixed limit, e.g. the stale limit (5 mins).

I think this makes sense, but we would need to also decide what to do with examplars too far in the future.
cc @cstyan WDYT?

Sorry, just saw this issue. I think doing something to reduce the churn and adding of really old exemplars is a good idea but I don't know about "not older than the one you would replace". Sounds relatively sane at the moment though, not going to block this if you want to proceed @bboreham


Draft eduction-document

@jedmao - this branch is still work in progress - please let me end the sum up before we dig into it.


Unable to build gradle project

Hi,
Thanks for this project :)
I'm trying to install it but I'm running to the following issue when I add the dependency to my gradle projet:
Problems reading data from Binary store in [...path]\.gradle\.tmp\gradle18085399495289804999.bin offset 87035 exists? true
Problems loading the resolution results (0.001 secs). Read 451 values, last was: 5
Corrupt serialized resolution result. Cannot find selected component (4811) for runtime -> com.netflix.archaius:archaius-core:0.3.3

Corresponding file:

plugins {
	id 'org.springframework.boot' version '3.2.3'
	id 'io.spring.dependency-management' version '1.1.4'
}

java {
	sourceCompatibility = '17'
}

repositories {
	mavenCentral()
}

ext {
	set('springCloudVersion', "2023.0.0")
	set('openApiRouteDefLocatorVersion', "0.6.7-sc-2023.0")
}

dependencies {

	implementation 'org.springframework.boot:spring-boot-starter-actuator'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'

	/* Spring gateway */
	implementation 'org.springframework.cloud:spring-cloud-starter-gateway'

	/* Eureka client dependencies */
	implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
	implementation 'com.netflix.eureka:eureka-client-jersey3'

       /* Open API Documentaiton */
	implementation 'org.springdoc:springdoc-openapi-starter-webflux-ui:2.4.0'
	implementation 'net.bretti.openapi-route-definition-locator:openapi-route-definition-locator-spring-cloud-starter'

}

dependencyManagement {
	imports {
		mavenBom "net.bretti.openapi-route-definition-locator:openapi-route-definition-locator-bom:${openApiRouteDefLocatorVersion}"
		mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
	}
}

Have you any idea why this issue occurs ? :)
Thanks !

I was able to reproduce the problem but I'm not sure what causes it.
I found https://stackoverflow.com/a/70121332 and switched the order of the sections Eureka client dependencies and Open API Documentaiton in dependencies of the build.gradle file you provided. This made the error disappear.

I've further simplified the build.gradle you provided and submitted it as a reproducer to the respective Gradle issue: https://github.com/gradle/gradle/issues/14220#issuecomment-2008178522. Thank you for reaching out.


Use mini_s3's new cacheable urls

See chef/mini_s3#19
You can set s3_url_expiry_window_size to be:

off (which uses the original functionality
{integer(), minutes} which sets the interval to be X minutes
{integer(), percent} which sets the interval to be X percent of the expiry requested for that link.

Please include feedback in the documentation of existing settings.
Existing tests modified to use all three possible configuration setting syntaxes, off, {integer(), minutes} and {integer(), percent}

Should this PR also contain a bump to our rebar.config.lock?  I think currently we are locked to a version of mini_s3 that doesn't have this feature.

Few minor comments.  Otherwise :+1:


Any way to use .Release.Namespace in helmfile

Hi,
I'm wondering if there is a way to use the .Release.Namespace as value for a chart. I tried the following as '{{{{ .Release.Namespace }}}}' was somehow mentioned in you docu:
- name: dev-tools-image-pull
    chart: bizhub-helm/rbac
    version: 1.0.6
    namespace: bizhub-connect-iat
    values:
      - roleBindings:
          - roleBinding:
            name: dev-tools-allow-image-pull
            namespaces:
              - ''{{`{{ .Release.Namespace }}`}}''
            role: 'system:image-puller'
            subjects:
              - kind: ServiceAccount
                name: default
                namespace: bizhub-connect-internet-iat

In fact that doesn't work and gives the following error:
STDERR:
  Error: YAML parse error on rbac/templates/rolebinding.yml: error converting YAML to JSON: yaml: invalid map key: map[interface {}]interface {}{".Release.Namespace":interface {}(nil)}
  Use --debug flag to render out invalid YAML

COMBINED OUTPUT:
  Error: YAML parse error on rbac/templates/rolebinding.yml: error converting YAML to JSON: yaml: invalid map key: map[interface {}]interface {}{".Release.Namespace":interface {}(nil)}
  Use --debug flag to render out invalid YAML

Regards
Steffen

Release is for the helm chart.

@steffakasid Try valuesTemplate as explained in https://github.com/roboll/helmfile/blob/8594944f6374454e6ddea61d04b201133798cd95/docs/writing-helmfile.md#release-template--conventional-directory-structure 😃


IPFS desktop should have a download/upload management/logging screen

Much like any BitTorrent client’s UI has at its center, IPFS desktop should also have a download/upload management/logging screen. This would allow:

better storage and bandwidth control, as the user would easily know what is actually being downloaded/uploaded;
managing transmissions by pausing/starting them;
better debugging, cause, right now, there is no way to know why a file isn’t being downloaded/uploaded (you can’t know why if you don’t even know if it is doing anything).

Due to IPFS’ nature, this screen could (should?) be a little different to its BitTorrent counterpart and only show active downloads/uploads and downloads/uploads made in the last X hours, and not all downloads/uploads ever made.

IPFS is more loose about uploading files than bittorrent, whereas bittorrent deals with streams of specific files, IPFS uses something called "bitswap", which is simply a list of blocks (from any file) that it wishes to have, and the local client can lookup if it has that block, and give it.
Due to the nature of IPFS pins, and with how much is cached locally when some user is simply browsing, it's not really easily possible to resolve (quickly) what "file" a user is uploading to a specific user. It's easier to understand on the receiving end to see how far the file upload is, with something like https://github.com/ipfs/ipfs-desktop/issues/2386.
Kubo (the underlying IPFS implementation of ipfs-desktop) could have better bandwidth controls though, and there i completely agree, but the other requests are harder to work out. I believe some of these issues can be broadly addressed once a bandwidth limiter arrives to kubo, together with a progress bar on the receiving end.


Technical Progress General Inquiry

Hi everyone:
@bkeepers @howderek @wingr especially:
I am writing to give you an overview of the technical progress we are making, and to foreshadow future requests for accelerated or privileged access to the GitHub API that we may request. There are headings below so you can scan.
BACKGROUND (We All hopefully share this now for the most part):
Looking at changes over time in GitHub repositories will be essential to the aims of our project:  understanding their health and sustainability. We hypothesize (and, based on preliminary work, we think with some likelihood that we are right) the following:

H1: There is a relationship between derivable indicators of repository activity on GitHub and the type of organization governing the project
H2: There is a relationship between derivable indicators of repository activity on GitHub and performance, as perceived from the perspective of various stakeholders.
H3: Different stakeholders (owners, contributors, users, regulators, etc.) will be influenced by different combinations of indicators.

I think these flow as lower level operating tests from our research questions:

How and to what extent are community health and sustainability indicators identifiable from GitHub open source community data?
What are dominant genres of community based on health and sustainability indicators, and how and to what extent are health and sustainability indicators different between these communities?
How and to what extent are health and sustainability indicators understood by community owners and other stakeholders?
How and to what extent do heath and sustainability indicators change over time as communities evolve to include increased membership, new governance structures, and support from foundations?

TECHNICAL APPROACH:
Here, to some extent, we are looking to Brandon and Rowan to validate that we are not missing any key concepts or attributes of the available resources from GitHub. In particular, if there are limitations in the data archives and torrents we are referencing, those would be good to be aware of.

We are doing our indicator development against GHTorrent and the GitHub Archive.

Since data about deleted repositories and users may play a role in our research, it's necessary to use archives of GitHub data as opposed to the timestamp information included in GitHub API requests.
From our initial exploration, it appears there will be two projects that will meet our needs, GHTorrent and GitHub Archive
GHTorrent provides a SQL database of metadata created from the events stream, and GitHub Archive archives those events themselves.
There is a lot of overlap between the datasets, but both are needed. A fast interface to the data is needed, such as the SQL database that is populated by GHTorrent.

Once indicators are mature enough to evaluate (estimated 4-6 weeks), we will need more current information to validate with project stakeholders, who will likely have less recall of things going on a month or two ago than last week. We think less archival indicators are also going to be more compelling for GitHub users generally. To that end,

The data we use will need to become quite “up to date”. What is the best strategy?

Daily dumps provided by the GitHub Archive to fill in the gaps between the SQL backups provided by GHTorrent and the realtime data provided by the GitHub API?
Privileged API Access?
Both?
Other?

Ideally, we would like to demonstrate indicators and provide an indicator exploration site with the hope of prototyping a system that could be used to gain wider evaluation of the indicators (from GitHub’s ecosystem).

Perhaps this is too much for an email and a call is warranted?  But I thought I would start here!
Thanks!

Hey @bkeepers and @wingr : A few thoughts on our approach here would be most welcome. :)

How and to what extent are health and sustainability indicators understood by community owners and other stakeholders?

Just a note: The discussion on developing and understanding of the indicators occurs in the HealthIndicators repository

Hey @sgoggins, sorry for the delay here. I just wanted to give you a heads up that I'm at FOSDEM right now now and it'll be a few more days before I get a chance to reply.

@sgoggins likewise sorry for the delayed response.
Looking over the technical section, your approach looks sound to me. I also believe that GHTorrent and GitHub Archive are going to be your best source of information, although @bkeepers knows a little more about the public data sources than I do. I believe that you should be able to get what you need from the GitHub archive without needing privileged API access and that it should provide you with enough up-to-date information since it is updated hourly.
There are also a number of scripts and wrapper code that people have created to help pull data from these sources that you can find by Googling.
A team I work closely with is in the process of trying to get better documentation around using these public data sets, so ping me with questions or challenges that your encounter and I will pass them along and try to help where I can.

Hey @sgoggins, I agree with @wingr that GHTorrent and GitHub Archive are going to be your best sources of information.
As for keeping the information up to date, I don't have any great advice at the moment, but if this is still a challenge, could connect you with some folks I know that keep an internal copy of the GHTorrent data set to see how they do it.
How's everything going with regard to access to the data?

We got this worked out!


when server side been maintained, the client will not reconnect success after server side start.

how to handle when server side been maintained, the client will not reconnect success after server side start.
2022/08/09 03:07:15 gorabbit ERROR: attempting to reconnect to amqp server after close with error: Exception (501) Reason: "read tcp IP:54358->IP:5075: i/o timeout"
2022/08/09 03:07:15 gorabbit INFO: waiting 1s seconds to attempt to reconnect to amqp server
2022/08/09 03:07:16 gorabbit WARN: successfully reconnected to amqp server
2022/08/09 03:07:16 gorabbit INFO: successful recovery from: Exception (501) Reason: "read tcp IP:54358->IP:5075: i/o timeout"
2022/08/09 03:07:16 gorabbit INFO: Processing messages on 10 goroutines
2022/08/10 13:03:52 gorabbit INFO: closing consumer...
2022/08/10 13:03:52 gorabbit INFO: rabbit consumer goroutine closed
2022/08/10 13:03:52 gorabbit INFO: rabbit consumer goroutine closed
2022/08/10 13:03:52 gorabbit INFO: rabbit consumer goroutine closed
2022/08/10 13:03:52 gorabbit INFO: rabbit consumer goroutine closed
2022/08/10 13:03:52 gorabbit INFO: rabbit consumer goroutine closed
2022/08/10 13:03:52 gorabbit INFO: rabbit consumer goroutine closed
2022/08/10 13:03:52 gorabbit INFO: rabbit consumer goroutine closed
2022/08/10 13:03:52 gorabbit INFO: amqp channel closed gracefully
2022/08/10 13:03:52 gorabbit INFO: rabbit consumer goroutine closed
2022/08/10 13:03:52 gorabbit INFO: rabbit consumer goroutine closed
2022/08/10 13:03:52 gorabbit INFO: rabbit consumer goroutine closed

Sorry, can you be a bit more clear? This looks to me like the server restarted, the client successfully connected, but then you closed the client?

the client not closed by manual, below is all the client reconnect log.
2022/10/08 02:03:44 gorabbit INFO: rabbit consumer goroutine closed
2022/10/08 02:03:44 gorabbit ERROR: attempting to reconnect to amqp server after close with error: Exception (501) Reason: "write tcp <IP_ADDRESS>:38128-><IP_ADDRESS>:5075: write: connection reset by peer"
2022/10/08 02:03:44 gorabbit INFO: rabbit consumer goroutine closed
2022/10/08 02:03:44 gorabbit INFO: waiting 1s seconds to attempt to reconnect to amqp server
2022/10/08 02:03:44 gorabbit INFO: rabbit consumer goroutine closed
2022/10/08 02:03:44 gorabbit INFO: rabbit consumer goroutine closed
2022/10/08 02:03:44 gorabbit INFO: rabbit consumer goroutine closed
2022/10/08 02:03:44 gorabbit INFO: rabbit consumer goroutine closed
2022/10/08 02:03:44 gorabbit INFO: rabbit consumer goroutine closed
2022/10/08 02:03:44 gorabbit INFO: rabbit consumer goroutine closed
2022/10/08 02:03:44 gorabbit INFO: rabbit consumer goroutine closed
2022/10/08 02:03:44 gorabbit INFO: rabbit consumer goroutine closed
2022/10/08 02:03:45 gorabbit WARN: successfully reconnected to amqp server
2022/10/08 02:03:45 gorabbit INFO: successful recovery from: Exception (501) Reason: "write tcp <IP_ADDRESS>:38128-><IP_ADDRESS>:5075: write: connection reset by peer"
2022/10/08 02:04:16 gorabbit ERROR: error restarting consumer goroutines after cancel or close: Exception (503) Reason: "unexpected command received"
2022/10/08 02:05:03 gorabbit ERROR: attempting to reconnect to amqp server after close with error: Exception (501) Reason: "read tcp <IP_ADDRESS>:35328-><IP_ADDRESS>:5075: i/o timeout"
2022/10/08 02:05:03 gorabbit INFO: waiting 1s seconds to attempt to reconnect to amqp server
2022/10/08 02:05:34 gorabbit ERROR: error reconnecting to amqp server: Exception (501) Reason: "read tcp <IP_ADDRESS>:35436-><IP_ADDRESS>:5075: i/o timeout"
2022/10/08 02:05:34 gorabbit INFO: waiting 1s seconds to attempt to reconnect to amqp server
2022/10/08 02:05:50 gorabbit ERROR: error reconnecting to amqp server: Exception (403) Reason: "no access to this vhost"
2022/10/08 02:05:50 gorabbit INFO: waiting 1s seconds to attempt to reconnect to amqp server
2022/10/08 02:05:51 gorabbit WARN: successfully reconnected to amqp server
2022/10/08 02:05:51 gorabbit INFO: successful recovery from: Exception (501) Reason: "read tcp <IP_ADDRESS>:35328-><IP_ADDRESS>:5075: i/o timeout"
2022/10/08 02:06:56 gorabbit ERROR: attempting to reconnect to amqp server after close with error: Exception (501) Reason: "read tcp <IP_ADDRESS>:35508-><IP_ADDRESS>:5075: i/o timeout"
2022/10/08 02:06:56 gorabbit ERROR: error restarting consumer goroutines after cancel or close: Exception (501) Reason: "read tcp <IP_ADDRESS>:35508-><IP_ADDRESS>:5075: i/o timeout"
2022/10/08 02:06:56 gorabbit INFO: waiting 1s seconds to attempt to reconnect to amqp server
2022/10/08 02:07:27 gorabbit ERROR: error reconnecting to amqp server: Exception (501) Reason: "read tcp <IP_ADDRESS>:35590-><IP_ADDRESS>:5075: i/o timeout"
2022/10/08 02:07:27 gorabbit INFO: waiting 1s seconds to attempt to reconnect to amqp server
2022/10/08 02:07:58 gorabbit ERROR: error reconnecting to amqp server: Exception (403) Reason: "no access to this vhost"
2022/10/08 02:07:58 gorabbit INFO: waiting 1s seconds to attempt to reconnect to amqp server
2022/10/08 02:08:29 gorabbit ERROR: error reconnecting to amqp server: Exception (501) Reason: "read tcp <IP_ADDRESS>:35678-><IP_ADDRESS>:5075: i/o timeout"
2022/10/08 02:08:29 gorabbit INFO: waiting 1s seconds to attempt to reconnect to amqp server
2022/10/08 02:08:30 gorabbit WARN: successfully reconnected to amqp server
2022/10/08 02:08:30 gorabbit INFO: successful recovery from: Exception (501) Reason: "read tcp <IP_ADDRESS>:35508-><IP_ADDRESS>:5075: i/o timeout"
2022/10/08 02:09:00 gorabbit ERROR: error restarting consumer goroutines after cancel or close: Exception (503) Reason: "unexpected command received"
2022/10/08 02:12:26 gorabbit ERROR: attempting to reconnect to amqp server after close with error: Exception (501) Reason: "read tcp <IP_ADDRESS>:35716-><IP_ADDRESS>:5075: i/o timeout"
2022/10/08 02:12:26 gorabbit INFO: waiting 1s seconds to attempt to reconnect to amqp server
2022/10/08 02:12:28 gorabbit WARN: successfully reconnected to amqp server
2022/10/08 02:12:28 gorabbit INFO: successful recovery from: Exception (501) Reason: "read tcp <IP_ADDRESS>:35716-><IP_ADDRESS>:5075: i/o timeout"
2022/10/08 02:46:48 gorabbit ERROR: attempting to reconnect to amqp server after close with error: Exception (501) Reason: "read tcp <IP_ADDRESS>:36032-><IP_ADDRESS>:5075: i/o timeout"
2022/10/08 02:46:48 gorabbit INFO: waiting 1s seconds to attempt to reconnect to amqp server
2022/10/08 02:46:48 gorabbit ERROR: error restarting consumer goroutines after cancel or close: Exception (501) Reason: "read tcp <IP_ADDRESS>:36032-><IP_ADDRESS>:5075: i/o timeout"
2022/10/08 02:46:49 gorabbit WARN: successfully reconnected to amqp server
2022/10/08 02:46:49 gorabbit INFO: successful recovery from: Exception (501) Reason: "read tcp <IP_ADDRESS>:36032-><IP_ADDRESS>:5075: i/o timeout"
2022/10/08 02:46:49 gorabbit INFO: Processing messages on 10 goroutines

Please try out the new main branch version, it should work as you're describing


Fix list_prefix with family arg

Heh, can't check len(params) == 0 when we set it on the line above,
guaranteeing it will always be at least 1...
Fixes #1091.

LGTM :+1:


Better sorting

Current sorting seems a bit off.
E.g. searching "express" (by clicking on example on home page) returns "ifade" as top result. I assume because it has "Expressions" in its description.
What I'd expect/want to see when I search for "express" is express.js itself on top + all the relevant express-* modules (so, primary sort by title string matching should work here), which are then sorted by e.g. popularity + latest update.
Does this makes sense?

Thanks @yamalight! We'll look into it

I've been having the same experience. The results are returning queries in unpredictable order. A search query that is a part of a package name won't return the package name. Are there any additional tips on fine-tuning the search queries? npmsearch.com itself has predictable results, how can we achieve the same from the CURL API?


METRON-2076 - Fixed up flakey stellar timezone test

Contributor Comments
One of the Stellar-common unit tests (testDateFormatDefaultTimezone), is coded in such a way that it will only work when the passed static point in time (variable 'epoch') is in in DST in the timezone of the machine running the test.  The passed time is in August 2016, which is DST for USA, but definitely not DST for Australia, so the test fails when run on a machine from that timezone.
I've coded a fix for it now, but I'm very curious if anyone else has gotten burnt by this?  Anyone else around in the Southern Hemisphere?
... crickets ....
Anyway, to reproduce the bug, just set your machine location to somewhere that does not experience DST in August (Southern Hemisphere is a good bet), and run
mvn clean test -pl metron-stellar/stellar-common
Pull Request Checklist
Thank you for submitting a contribution to Apache Metron.
Please refer to our Development Guidelines for the complete guide to follow for contributions.
Please refer also to our Build Verification Guidelines for complete smoke testing guides.
In order to streamline the review of the contribution we ask you follow these guidelines and ask you to double check the following:
For all changes:

[x] Is there a JIRA ticket associated with this PR? If not one needs to be created at Metron Jira.
[x] Does your PR title start with METRON-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.
[x] Has your PR been rebased against the latest commit within the target branch (typically master)?

For code changes:

[x] Have you included steps to reproduce the behavior or problem that is being changed or addressed?

[x] Have you included steps or a guide to how the change may be verified and tested manually?

[ ] Have you ensured that the full suite of tests and checks have been executed in the root metron folder via:
mvn -q clean integration-test install && dev-utilities/build-utils/verify_licenses.sh

[x] Have you written or updated unit tests and or integration tests to verify your changes?

[x] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

[ ] Have you verified the basic functionality of the build by building and running locally with Vagrant full-dev environment or the equivalent?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered by building and verifying the site-book? If not then run the following commands and the verify changes via site-book/target/site/index.html:
cd site-book
mvn site

[ ] Have you ensured that any documentation diagrams have been updated, along with their source files, using draw.io? See Metron Development Guidelines for instructions.

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.
It is also recommended that travis-ci is set up for your personal repository such that your branches are built there before submitting a pull request.

+1, thanks @tigerquoll!


Take into account instances when hashing

We do not hash instances because they cause cycles.

Fixed in c8f7771c6bfc7ae18a24f851f29942a1a9b7a50e


permission weight is reset to zero after 65535

I think this will cause privilege escalation problem
[script I run]
cleos set account permission eospaycontrl active '{"threshold":65536,"keys":[],"accounts":[{"permission":{"actor":"eospay1admin","permission":"active"},"weight":65537},{"permission":{"actor":"eospay2admin","permission":"active"},"weight":65536},{"permission":{"actor":"eospay3admin","permission":"active"},"weight":65535}],"waits":[]}' owner -p eospaycontrl@active
[expected result]
assertion error
or
cleos get account eospaycontrl
permissions:
owner     1:    1 EOS5izi76yQFZ4ae8TMhCRYhcyUNdfGB87Xj1q3RXG22BZuKfUHZc
active 65536:    65535 eospay1admin@active, 65536 eospay2admin@active, 65537 eospay3admin@active,
memory:
quota:     127.4 KiB    used:     2.971 KiB
[actual result]
cleos get account eospaycontrl
permissions:
owner     1:    1 EOS5izi76yQFZ4ae8TMhCRYhcyUNdfGB87Xj1q3RXG22BZuKfUHZc
active 65536:    65535 eospay1admin@active, 0 eospay2admin@active, 1 eospay3admin@active, f
——————-
max weight of permission is 1 ~ 2^16 : 1 ~ 65536
when the weight is 65536, it became 0
big impact on multisig account control

This cannot cause privilege escalation, because it can only reduce the weights.  The threshold is 32 bits, so wrap-around for it is a lot less likely.

technically no privilege escalation.
but in real world, I can be used for fraud which will cause privilege escalation.

In order to focus our efforts on issues that are currently creating difficulty for the community we are closing tickets that were created prior to the EOSIO 2.0 release.  If you believe this issue is still relevant please feel free to reopen it or create a new one.  Thank you for your continued support of EOSIO!


domain() method assumes only the US data centre is used

Line 22 src/Auth0.php:
return 'https://' . $this->account . '.auth0.com';
Ideally a required data centre param needs to be checked for when the class is constructed. We're using the EU data centre at the moment and currently it's impossible to use with this package.

As an aside - probably shouldn't have string literals in methods.

@johnrhunt What do you think about this pull request #8 ?

Hi @neeckeloo - thank you so much for doing this PR, I really appreciate it. I'm about to go on holiday so don't have time to review the PR at the moment, but I will do as soon as I'm back on the 28th - I'm setting a reminder now. 👍

@johnrhunt Did you have any time to take a look at this?


feat(typescript): improve declarations

Copy some code from https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/twemoji/index.d.ts
to make d.ts declaration better for twemoji.
Respect to the community works. 🙇

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

thanks. this fixes a few outstanding bugs so I've released 14.0.2 with it.
@Saul-Mirone is there some reason that we shouldn't copy the DefinitelyTyped types in their entirety to the twemoji repo? theoretically, they should be the same types IMO.

thanks. this fixes a few outstanding bugs so I've released 14.0.2 with it.
@Saul-Mirone is there some reason that we shouldn't copy the DefinitelyTyped types in their entirety to the twemoji repo? theoretically, they should be the same types IMO.

I don't think there's any problem for us to copy it. But I want to leave it to you to decide.


Support compile static linux with GraalVM

ref
@xerial  I could make my Clojure app using sqlite compile with Graalvm for Windows/Linux/MacOS successfully here, but when compiling a Linux static binary, it doesn't work, it seems that the shipped sqlite lib is not static linked, but dynamic linked.
Running the static binary I get:
Failed to load native library:sqlite-unknown-5db626ec-518e-4fc0-a5f6-a21818a0c5c8-libsqlitejdbc.so. osinfo: Linux/x86_64
java.lang.UnsatisfiedLinkError: Can't load library: /tmp/sqlite-unknown-5db626ec-518e-4fc0-a5f6-a21818a0c5c8-libsqlitejdbc.so
Exception in thread "main" java.sql.SQLException: Error opening connection
        at org.sqlite.SQLiteConnection.open(SQLiteConnection.java:239)
        at org.sqlite.SQLiteConnection.<init>(SQLiteConnection.java:61)
        at org.sqlite.jdbc3.JDBC3Connection.<init>(JDBC3Connection.java:28)
        at org.sqlite.jdbc4.JDBC4Connection.<init>(JDBC4Connection.java:21)
        at org.sqlite.JDBC.createConnection(JDBC.java:115)
        at org.sqlite.JDBC.connect(JDBC.java:90)
        at java.sql.DriverManager.getConnection(DriverManager.java:677)
        at java.sql.DriverManager.getConnection(DriverManager.java:189)
        at next.jdbc.connection$get_driver_connection.invokeStatic(connection.clj:141)
        at next.jdbc.connection$url_PLUS_etc$reify__747.getConnection(connection.clj:357)
        at next.jdbc.connection$make_connection.invokeStatic(connection.clj:385)
        at next.jdbc.connection$fn__760.invokeStatic(connection.clj:406)
        at next.jdbc.connection$fn__760.invoke(connection.clj:406)
        at next.jdbc.protocols$fn__563$G__558__570.invoke(protocols.clj:24)
        at next.jdbc.connection$fn__764.invokeStatic(connection.clj:415)
        at next.jdbc.connection$fn__764.invoke(connection.clj:406)
        at next.jdbc.protocols$fn__563$G__558__570.invoke(protocols.clj:24)
        at next.jdbc$get_connection.invokeStatic(jdbc.clj:155)
        at sqlite_graalvm_sample.core$insert.invokeStatic(core.clj:15)
        at sqlite_graalvm_sample.core$_main.invokeStatic(core.clj:36)
        at sqlite_graalvm_sample.core$_main.doInvoke(core.clj:36)
        at clojure.lang.RestFn.invoke(RestFn.java:397)
        at clojure.lang.AFn.applyToHelper(AFn.java:152)
        at clojure.lang.RestFn.applyTo(RestFn.java:132)
        at sqlite_graalvm_sample.core.main(Unknown Source)
Caused by: java.lang.Exception: No native library found for os.name=Linux, os.arch=x86_64, paths=[/org/sqlite/native/Linux/x86_64]
        at org.sqlite.SQLiteJDBCLoader.loadSQLiteNativeLibrary(SQLiteJDBCLoader.java:367)
        at org.sqlite.SQLiteJDBCLoader.initialize(SQLiteJDBCLoader.java:67)
        at org.sqlite.core.NativeDB.load(NativeDB.java:63)
        at org.sqlite.SQLiteConnection.open(SQLiteConnection.java:235)
        ... 24 more

Is that possible to build this lib statically to make that work?

sqlite-jdbc's native lib for Linux x86_64 is already compiled with a static link flag: https://github.com/xerial/sqlite-jdbc/blob/21055a2b75b70039bd9f688deea2408d7d1c2114/Makefile.common#L77
Two possibilities: this flag was not effective, or other reasons.

We may need to check the .so file with ldd command

ldd: warning: you do not have execution permission for `/home/greg/Downloads/libsqlitejdbc.so'
        linux-vdso.so.1 (0x00007fff96564000)
        libc.so.6 => /nix/store/m0xa5bz7vw7p43wi0jppvvi3c9vgqvp7-glibc-2.32-25/lib/libc.so.6 (0x00007fddc0f34000)
        /nix/store/m0xa5bz7vw7p43wi0jppvvi3c9vgqvp7-glibc-2.32-25/lib64/ld-linux-x86-64.so.2 (0x00007fddc13dc000)

Any news or suggestions @xerial, ATM this is the only thing that is not working for clojure-lsp: https://github.com/clojure-lsp/clojure-lsp/issues/296

@ericdallo I thought I've been using a version of GCC (xerial/centos5-linux-x86_64-pic) compiled for supporting static link, but it seems not https://github.com/xerial/sqlite-jdbc/blob/master/Makefile#L129
So changing this makefile to use xerial/centos5-linux-x86_64-pic instead of xerial/centos5-linux-x86_64 and running make linux64, which requires Docker, may create sqlite-jdbc that is properly embedding libc etc.
If this still doesn't work, we need to revisit the linker options ..

great! so I will try this local, and release a local version of sqlite-jdbc and compile with graalvm and test it :)

Hey @xerial I made the docker image changes, generated a local version of sqlite-jdbc and compiled clojure-lsp wit graalvm static flag, finally tested in a ubuntu docker image the static binary and this is still an issue :/
When I try to query the sqlite I get the same error:
Failed to load native library:sqlite-unknown-a3558b77-d78e-45ee-b30a-0a57961f08b0-libsqlitejdbc.so. osinfo: Linux/x86_64

LMK if need any help

Ping @xerial, any news 😔 ?

Sorry for the late response as I don't have so much time for volunteer work 😓
We need to figure out how to embed libc to the binary file (with make native command in Linux) until ldd shows no dynamic link. In my experience of creating statically linked binaries in C++, we needed a custom GCC compiler built with special flags.

@ericdallo If you can find necessary compiler options (in Makefile.common) to produce statically-linked binaries (.so file) in Linux, applying it to sqlite-jdbc should be easy.

I was checking on this why trying to fix the armv6 build, and while i'm no expert at native compilation, i stumbled upon the fact that statically building glibc is discouraged (and should apparently use a specific glibc-static version) and can still end up with dynamically dependencies.

Yeah, maybe we should use musl but I have no idea on how or where to start with

I tried building the Alpine with musl by setting -shared -static but i still end up with a dynamic library 🤷🏻

BTW @ericdallo is this still a concern, even with #631?


Throttle plugin support

Q
A

New feature?
yes

License
Apache 2.0

What's in this PR?
Adds throttle plugin support
Why?
Allows users to limit the rate of event outputs per Flow.
Checklist

[x] Code meets the Developer Guide
[x] User guide and development docs updated (if needed)
[x] Related Helm chart(s) updated (if needed)

Thank @ahma, updated now with your suggestions.

Thank @ahma, updated now with your suggestions.

Thanks!


🐛 [Firebase Auth] Build failing on iOS. Precompiled application could not be built

Bug report
Describe the bug
I am unable to build and run my application on iOS. It runs successfully on android but when I run it on iOS, I get the error:
Could not build the precompiled application for the device.
Parse Issue (Xcode): Expected a type
/.pub-cache/hosted/pub.dev/firebase_auth-4.15.2/ios/Classes/Private/PigeonParser.h:22:59

Parse Issue (Xcode): Expected a type
/.pub-cache/hosted/pub.dev/firebase_auth-4.15.2/ios/Classes/PigeonParser.m:81:43

Semantic Issue (Xcode): Property 'sharedSecretKey' not found on object of type '__strong id'
/.pub-cache/hosted/pub.dev/firebase_auth-4.15.2/ios/Classes/PigeonParser.m:86:62

Steps to reproduce
Steps to reproduce the behavior:
When i run flutter doctor -v, it looks good to me:
[✓] Flutter (Channel stable, 3.16.4, on macOS 14.0 23A344 darwin-arm64, locale en-US)
    • Flutter version 3.16.4 on channel stable at /codelab/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2e9cb0aa71 (3 days ago), 2023-12-11 14:35:13 -0700
    • Engine revision 54a7145303
    • Dart version 3.2.3
    • DevTools version 2.28.4

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A507
    • CocoaPods version 1.13.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)

[✓] VS Code (version 1.84.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.78.0

[✓] VS Code (version 1.73.1)
    • VS Code at /Downloads/Visual Studio Code.app/Contents
    • Flutter extension version 3.78.0

[✓] Connected device (5 available)
    • SM S901B (mobile)        • RFCT80P12BN                              • android-arm64  • Android 14 (API 34)
    • Alfred’s iPhone (mobile) • 0d1104b00fa376bf158890b9e5ba007d2f22b784 • ios            • iOS 14.7.1 18G82
    • iPhone 15 (mobile)       • 7FA2E5E2-7790-4807-B545-52BF3BD6E765     • ios            • com.apple.CoreSimulator.SimRuntime.iOS-17-0 (simulator)
    • macOS (desktop)          • macos                                    • darwin-arm64   • macOS 14.0 23A344 darwin-arm64
    • Chrome (web)             • chrome                                   • web-javascript • Google Chrome 120.0.6099.109

[✓] Network resources
    • All expected network resources are available.

Expected behavior
I expect the build to be successful and run on my iOS device.
Sample project
Providing a minimal example project which demonstrates the bug in isolation from your main App greatly enhances the chance of a timely fix.
Please link to the public repository URL.

Additional context
Add any other context about the problem here.

Flutter doctor
Run flutter doctor and paste the output below:
Click To Expand
[✓] Flutter (Channel stable, 3.16.4, on macOS 14.0 23A344 darwin-arm64, locale en-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2023.1)
[✓] VS Code (version 1.84.2)
[✓] VS Code (version 1.73.1)
[✓] Connected device (5 available)
[✓] Network resources

• No issues found!

Flutter dependencies
Run flutter pub deps -- --style=compact and paste the output below:
Click To Expand
Dart SDK 3.2.3
Flutter SDK 3.16.4
App 1.2.0+14

dependencies:
- analyzer 5.13.0 [_fe_analyzer_shared collection convert crypto glob meta package_config path pub_semver source_span watcher yaml]
- badges 3.1.2 [flutter]
- cached_network_image 3.3.0 [cached_network_image_platform_interface cached_network_image_web flutter flutter_cache_manager octo_image]
- cloud_firestore 4.13.5 [cloud_firestore_platform_interface cloud_firestore_web collection firebase_core firebase_core_platform_interface flutter meta]
- collection 1.18.0
- counter 0.2.2 [flutter]
- country_code_picker 3.0.0 [flutter collection]
- crypto 3.0.3 [typed_data]
- cupertino_icons 1.0.5
- customizable_counter 1.0.4 [flutter]
- email_validator 2.1.17
- equatable 2.0.5 [collection meta]
- firebase_analytics 10.7.4 [firebase_analytics_platform_interface firebase_analytics_web firebase_core firebase_core_platform_interface flutter]
- firebase_core 2.24.2 [firebase_core_platform_interface firebase_core_web flutter meta]
- firebase_crashlytics 3.4.8 [firebase_core firebase_core_platform_interface firebase_crashlytics_platform_interface flutter stack_trace]
- firebase_dynamic_links 5.4.8 [firebase_core firebase_core_platform_interface firebase_dynamic_links_platform_interface flutter meta plugin_platform_interface]
- firebase_messaging 14.7.8 [firebase_core firebase_core_platform_interface firebase_messaging_platform_interface firebase_messaging_web flutter meta]
- firebase_ui_auth 1.11.0 [email_validator firebase_auth firebase_core firebase_dynamic_links firebase_ui_localizations firebase_ui_oauth firebase_ui_shared flutter flutter_localizations meta]
- firebase_ui_oauth_apple 1.2.15 [firebase_auth firebase_ui_oauth flutter]
- firebase_ui_oauth_google 1.2.15 [firebase_auth firebase_ui_oauth flutter google_sign_in]
- flutter 0.0.0 [characters collection material_color_utilities meta vector_math web sky_engine]
- flutter_bounce 1.1.0 [flutter]
- flutter_dotenv 5.0.2 [flutter]
- flutter_html 3.0.0-beta.2 [html csslib collection list_counter flutter]
- flutter_html_table 3.0.0-beta.2 [flutter html flutter_html flutter_layout_grid]
- flutter_local_notifications 15.1.1 [clock flutter flutter_local_notifications_linux flutter_local_notifications_platform_interface timezone]
- flutter_localizations 0.0.0 [flutter intl characters clock collection material_color_utilities meta path vector_math web]
- flutter_svg 2.0.9 [flutter vector_graphics vector_graphics_codec vector_graphics_compiler]
- geocoding 2.1.0 [flutter geocoding_platform_interface geocoding_android geocoding_ios]
- geolocator 10.1.0 [flutter geolocator_platform_interface geolocator_android geolocator_apple geolocator_web geolocator_windows]
- get_it 7.6.0 [async collection]
- google_fonts 4.0.5 [flutter http path_provider crypto]
- google_sign_in 6.2.1 [flutter google_sign_in_android google_sign_in_ios google_sign_in_platform_interface google_sign_in_web]
- graphql_flutter 5.2.0-beta.6 [graphql gql_exec flutter meta path_provider path connectivity_plus hive plugin_platform_interface flutter_hooks]
- hive 2.2.3 [meta crypto]
- hive_generator 2.0.0 [build source_gen hive analyzer source_helper]
- http 1.1.0 [async http_parser meta]
- injectable 2.1.1 [get_it]
- intl 0.18.1 [clock meta path]
- loading_animation_widget 1.2.0+4 [flutter]
- logging 1.1.1
- mockito 5.4.1 [analyzer build code_builder collection dart_style matcher meta path source_gen test_api]
- path 1.8.3
- provider 6.0.5 [collection flutter nested]
- rxdart 0.27.7
- shared_preferences 2.1.1 [flutter shared_preferences_android shared_preferences_foundation shared_preferences_linux shared_preferences_platform_interface shared_preferences_web shared_preferences_windows]
- shimmer 2.0.0 [flutter]
- sign_in_with_apple 5.0.0 [flutter meta sign_in_with_apple_platform_interface sign_in_with_apple_web]
- sqflite 2.2.8+4 [flutter sqflite_common path]
- timezone 0.9.2 [path]
- tuple 2.0.1
- url_launcher 6.1.11 [flutter url_launcher_android url_launcher_ios url_launcher_linux url_launcher_macos url_launcher_platform_interface url_launcher_web url_launcher_windows]
- uuid 3.0.7 [crypto]
- visibility_detector 0.4.0+2 [flutter]
- webview_flutter 4.2.1 [flutter webview_flutter_android webview_flutter_platform_interface webview_flutter_wkwebview]

dev dependencies:
- build_runner 2.4.4 [analyzer args async build build_config build_daemon build_resolvers build_runner_core code_builder collection crypto dart_style frontend_server_client glob graphs http_multi_server io js logging meta mime package_config path pool pub_semver pubspec_parse shelf shelf_web_socket stack_trace stream_transform timing watcher web_socket_channel yaml]
- flutter_test 0.0.0 [flutter test_api matcher path fake_async clock stack_trace vector_math async boolean_selector characters collection material_color_utilities meta source_span stream_channel string_scanner term_glyph web]
- graphql_codegen 0.13.10 [gql build glob code_builder dart_style built_collection path gql_code_builder recase json_annotation]
- injectable_generator 2.1.5 [build source_gen path glob analyzer code_builder dart_style injectable collection recase]
- json_serializable 6.7.0 [analyzer async build build_config collection json_annotation meta path pub_semver pubspec_parse source_gen source_helper]

dependency overrides:
- meta 1.11.0

transitive dependencies:
- _fe_analyzer_shared 61.0.0 [meta]
- _flutterfire_internals 1.3.16 [collection firebase_core firebase_core_platform_interface flutter meta]
- args 2.4.1
- async 2.11.0 [collection meta]
- boolean_selector 2.1.1 [source_span string_scanner]
- build 2.4.0 [analyzer async convert crypto glob logging meta package_config path]
- build_config 1.1.1 [checked_yaml json_annotation path pubspec_parse yaml]
- build_daemon 4.0.0 [built_collection built_value http_multi_server logging path pool shelf shelf_web_socket stream_transform watcher web_socket_channel]
- build_resolvers 2.2.0 [analyzer async build collection crypto graphs logging path package_config pool pub_semver stream_transform yaml]
- build_runner_core 7.2.8 [async build build_config build_resolvers collection convert crypto glob graphs json_annotation logging meta path package_config pool timing watcher yaml]
- built_collection 5.1.1
- built_value 8.6.0 [built_collection collection fixnum meta]
- cached_network_image_platform_interface 3.0.0 [flutter flutter_cache_manager]
- cached_network_image_web 1.1.0 [cached_network_image_platform_interface flutter flutter_cache_manager]
- characters 1.3.0
- checked_yaml 2.0.3 [json_annotation source_span yaml]
- clock 1.1.1
- cloud_firestore_platform_interface 6.0.9 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- cloud_firestore_web 3.8.9 [_flutterfire_internals cloud_firestore_platform_interface collection firebase_core firebase_core_web flutter flutter_web_plugins js]
- code_builder 4.8.0 [built_collection built_value collection matcher meta]
- connectivity_plus 5.0.2 [flutter flutter_web_plugins connectivity_plus_platform_interface js meta nm]
- connectivity_plus_platform_interface 1.2.4 [flutter meta plugin_platform_interface]
- convert 3.1.1 [typed_data]
- csslib 0.17.3 [source_span]
- dart_style 2.3.1 [analyzer args path pub_semver source_span]
- dbus 0.7.8 [args ffi meta xml]
- desktop_webview_auth 0.0.14 [crypto flutter http flutter_web_plugins plugin_platform_interface]
- fake_async 1.3.1 [clock collection]
- ffi 2.1.0
- file 6.1.4 [meta path]
- firebase_analytics_platform_interface 3.8.4 [_flutterfire_internals firebase_core flutter meta plugin_platform_interface]
- firebase_analytics_web 0.5.5+11 [_flutterfire_internals firebase_analytics_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins js]
- firebase_auth 4.15.2 [firebase_auth_platform_interface firebase_auth_web firebase_core firebase_core_platform_interface flutter meta]
- firebase_auth_platform_interface 7.0.8 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- firebase_auth_web 5.8.11 [firebase_auth_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins http_parser js meta]
- firebase_core_platform_interface 5.0.0 [collection flutter flutter_test meta plugin_platform_interface]
- firebase_core_web 2.10.0 [firebase_core_platform_interface flutter flutter_web_plugins js meta]
- firebase_crashlytics_platform_interface 3.6.16 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- firebase_dynamic_links_platform_interface 0.2.6+16 [_flutterfire_internals firebase_core flutter meta plugin_platform_interface]
- firebase_messaging_platform_interface 4.5.17 [_flutterfire_internals firebase_core flutter meta plugin_platform_interface]
- firebase_messaging_web 3.5.17 [_flutterfire_internals firebase_core firebase_core_web firebase_messaging_platform_interface flutter flutter_web_plugins js meta]
- firebase_ui_localizations 1.9.0 [flutter flutter_localizations path]
- firebase_ui_oauth 1.4.15 [desktop_webview_auth firebase_auth firebase_ui_auth firebase_ui_shared flutter_svg flutter]
- firebase_ui_shared 1.4.1 [flutter]
- fixnum 1.1.0
- flutter_cache_manager 3.3.1 [clock collection file flutter http path path_provider rxdart sqflite uuid]
- flutter_hooks 0.18.6 [flutter]
- flutter_layout_grid 2.0.5 [flutter collection meta quiver]
- flutter_local_notifications_linux 4.0.0+1 [dbus ffi flutter flutter_local_notifications_platform_interface path xdg_directories]
- flutter_local_notifications_platform_interface 7.0.0+1 [flutter plugin_platform_interface]
- flutter_web_plugins 0.0.0 [flutter characters collection material_color_utilities meta vector_math web]
- frontend_server_client 3.2.0 [async path]
- geocoding_android 2.1.0 [flutter geocoding_platform_interface]
- geocoding_ios 2.1.0 [flutter geocoding_platform_interface]
- geocoding_platform_interface 2.0.1 [flutter meta plugin_platform_interface]
- geolocator_android 4.3.1 [flutter geolocator_platform_interface uuid]
- geolocator_apple 2.3.2 [flutter geolocator_platform_interface]
- geolocator_platform_interface 4.1.0 [flutter plugin_platform_interface vector_math meta]
- geolocator_web 2.2.0 [flutter flutter_web_plugins geolocator_platform_interface]
- geolocator_windows 0.2.1 [flutter geolocator_platform_interface]
- glob 2.1.2 [async collection file path string_scanner]
- google_identity_services_web 0.2.2 [js meta]
- google_sign_in_android 6.1.14 [flutter google_sign_in_platform_interface]
- google_sign_in_ios 5.7.0 [flutter google_sign_in_platform_interface pigeon]
- google_sign_in_platform_interface 2.4.0 [flutter plugin_platform_interface quiver]
- google_sign_in_web 0.12.2+1 [flutter flutter_web_plugins google_identity_services_web google_sign_in_platform_interface http js]
- gql 1.0.1-alpha+1700868214564 [collection meta source_span yaml]
- gql_code_builder 0.9.1+1 [analyzer built_collection built_value code_builder collection gql gql_exec path gql_tristate_value]
- gql_dedupe_link 2.0.4-alpha+1700868214643 [async gql_exec gql_link meta]
- gql_error_link 1.0.0+1 [async gql_exec gql_link meta]
- gql_exec 1.1.1-alpha+1699813812660 [collection gql meta]
- gql_http_link 1.0.1+1 [gql gql_exec gql_link http http_parser meta]
- gql_link 1.0.1-alpha+1700868214578 [gql gql_exec meta]
- gql_transform_link 1.0.0 [gql_exec gql_link]
- gql_tristate_value 1.0.0
- graphql 5.2.0-beta.6 [meta path gql gql_exec gql_link gql_http_link gql_transform_link gql_error_link gql_dedupe_link hive normalize http collection web_socket_channel stream_channel rxdart uuid]
- graphs 2.3.0 [collection]
- html 0.15.3 [csslib source_span]
- http_multi_server 3.2.1 [async]
- http_parser 4.0.2 [collection source_span string_scanner typed_data]
- io 1.0.4 [meta path string_scanner]
- js 0.6.7 [meta]
- json_annotation 4.8.1 [meta]
- list_counter 1.0.2
- matcher 0.12.16 [async meta stack_trace term_glyph test_api]
- material_color_utilities 0.5.0 [collection]
- mime 1.0.4
- nested 1.0.0 [flutter]
- nm 0.5.0 [dbus]
- normalize 0.8.2+1 [gql collection]
- octo_image 2.0.0 [flutter]
- package_config 2.1.0 [path]
- path_parsing 1.0.1 [vector_math meta]
- path_provider 2.0.15 [flutter path_provider_android path_provider_foundation path_provider_linux path_provider_platform_interface path_provider_windows]
- path_provider_android 2.0.27 [flutter path_provider_platform_interface]
- path_provider_foundation 2.2.3 [flutter path_provider_platform_interface]
- path_provider_linux 2.1.11 [ffi flutter path path_provider_platform_interface xdg_directories]
- path_provider_platform_interface 2.0.6 [flutter platform plugin_platform_interface]
- path_provider_windows 2.1.7 [ffi flutter path path_provider_platform_interface win32]
- petitparser 5.4.0 [meta]
- pigeon 11.0.1 [analyzer args collection meta path yaml]
- platform 3.1.0
- plugin_platform_interface 2.1.4 [meta]
- pool 1.5.1 [async stack_trace]
- process 4.2.4 [file path platform]
- pub_semver 2.1.4 [collection meta]
- pubspec_parse 1.2.3 [checked_yaml collection json_annotation pub_semver yaml]
- quiver 3.2.1 [matcher]
- recase 4.1.0
- shared_preferences_android 2.1.4 [flutter shared_preferences_platform_interface]
- shared_preferences_foundation 2.2.2 [flutter shared_preferences_platform_interface]
- shared_preferences_linux 2.2.0 [file flutter path path_provider_linux path_provider_platform_interface shared_preferences_platform_interface]
- shared_preferences_platform_interface 2.2.0 [flutter plugin_platform_interface]
- shared_preferences_web 2.1.0 [flutter flutter_web_plugins shared_preferences_platform_interface]
- shared_preferences_windows 2.2.0 [file flutter path path_provider_platform_interface path_provider_windows shared_preferences_platform_interface]
- shelf 1.4.1 [async collection http_parser path stack_trace stream_channel]
- shelf_web_socket 1.0.4 [shelf stream_channel web_socket_channel]
- sign_in_with_apple_platform_interface 1.0.0 [flutter plugin_platform_interface meta]
- sign_in_with_apple_web 1.0.1 [flutter flutter_web_plugins sign_in_with_apple_platform_interface js]
- sky_engine 0.0.99
- source_gen 1.3.2 [analyzer async build dart_style glob path source_span yaml]
- source_helper 1.3.3 [analyzer collection source_gen]
- source_span 1.10.0 [collection path term_glyph]
- sqflite_common 2.4.5 [synchronized path meta]
- stack_trace 1.11.1 [path]
- stream_channel 2.1.2 [async]
- stream_transform 2.1.0
- string_scanner 1.2.0 [source_span]
- synchronized 3.1.0
- term_glyph 1.2.1
- test_api 0.6.1 [async boolean_selector collection meta source_span stack_trace stream_channel string_scanner term_glyph]
- timing 1.0.1 [json_annotation]
- typed_data 1.3.2 [collection]
- url_launcher_android 6.0.34 [flutter url_launcher_platform_interface]
- url_launcher_ios 6.1.4 [flutter url_launcher_platform_interface]
- url_launcher_linux 3.0.5 [flutter url_launcher_platform_interface]
- url_launcher_macos 3.0.5 [flutter url_launcher_platform_interface]
- url_launcher_platform_interface 2.1.2 [flutter plugin_platform_interface]
- url_launcher_web 2.0.17 [flutter flutter_web_plugins url_launcher_platform_interface]
- url_launcher_windows 3.0.6 [flutter url_launcher_platform_interface]
- vector_graphics 1.1.9+1 [flutter vector_graphics_codec]
- vector_graphics_codec 1.1.9+1
- vector_graphics_compiler 1.1.9+1 [args meta path_parsing xml vector_graphics_codec path]
- vector_math 2.1.4
- watcher 1.1.0 [async path]
- web 0.3.0
- web_socket_channel 2.4.0 [async crypto stream_channel]
- webview_flutter_android 3.7.1 [flutter webview_flutter_platform_interface]
- webview_flutter_platform_interface 2.3.1 [flutter meta plugin_platform_interface]
- webview_flutter_wkwebview 3.4.4 [flutter path webview_flutter_platform_interface]
- win32 5.0.7 [ffi]
- xdg_directories 1.0.0 [meta path process]
- xml 6.3.0 [collection meta petitparser]
- yaml 3.1.2 [collection source_span string_scanner]

Thanks for the report @AlfredAfutu
I believe you are getting these errors because you don't seem to be on latest firebase-ios-sdk version which is 10.18.0. You need to upgrade to it and re-run which should resolve the issue.
https://github.com/firebase/flutterfire/pull/11916
Closing, as upgrading to latest is the solution. If you disagree, write in comments and I'll reopen it.

Thanks for the report @AlfredAfutu I believe you are getting these errors because you don't seem to be on latest firebase-ios-sdk version which is 10.18.0. You need to upgrade to it and re-run which should resolve the issue.
#11916
Closing, as upgrading to latest is the solution. If you disagree, write in comments and I'll reopen it.

Upgrading to 10.18.0 actually resolves it. Thank you.


Not able to sync  - radar not installed error

What did I do?
I installed the sample app mentioned in the README I  installed it in local namespace
ksync create -n local --selector=app=app ~/www/ksync /code
$ ksync get
        NAME         LOCAL   REMOTE    STATUS            POD            CONTAINER
+------------------+-------+--------+----------+----------------------+-----------+
  stirring-buzzard   .       /code
                                      starting   app-55f6cb8fb6-ljhhn

$ ksync watch
INFO[0000] listening                                     bind=<IP_ADDRESS> port=40322
INFO[0000] new pod detected                              pod=app-55f6cb8fb6-ljhhn spec=stirring-buzzard
ERRO[0000] (connection.go:99): radar is not installed    ContainerName= LocalPath=/home/ubuntu/www/ksync LocalReadOnly=false Name=stirring-buzzard Namespace=local Pod= Reload=true RemotePath=/code RemoteReadOnly=false Selector="[app=app]"
INFO[0003] syncthing listening                           port=8384 syncthing=localhost

$ cat ~/.ksync/ksync.yaml
apikey: ksync
context: ""
daemonset-namespace: kube-system
docker-root: /var/lib/docker
docker-socket: /var/run/docker.sock
log-level: info
namespace: local
output: pretty
port: 40322
spec:
- name: stirring-buzzard
  containername: ""
  pod: ""
  selector:
  - app=app
  namespace: local
  localpath: /home/ubuntu/www/ksync
  remotepath: /code
  reload: true
  localreadonly: false
  remotereadonly: false
syncthing-port: 8384

Also i had changed the service type to be NodePort
Please suggest why could this happen

Closing this issue as i was able to make it work some config issue i think, there is a new issue happening of continuous reload and restart of my container will open a separate issue.


Bad code

You are wrong user response.raise_for_status in your functions.
Hamster API can return information with 4xx code.
For example in your function buy_upgrade api can return SUBSCRIPTION_TELEGRAM_CHANNEL_IS_REQUIRED or INSUFFICIENT_FUNDS but you just raise exceptions.
And error with get_profile_data api can return profile data in response["found"]["clickerUser"]
Fix this erros please.

update repo


Add max_children to nested sort

Relates: https://discuss.elastic.co/t/net-client-include-max-children-property-in-nested-sorting/161472
NestedSort is currently missing a MaxChildren property. This should be added.

Thanks, really needed stuff!
Any info when there will be a new release containing it?

It's in NEST 6.8.6 if you're using 6.x. For 7.x, there should be a new package out very soon

It's in NEST 6.8.6 if you're using 6.x. For 7.x, there should be a new package out very soon

Maybe any details about the dates? Just considering if it's reasonable to write by ourselves.
Thank you.

@NataliyaV I'm looking at putting a new 7.x release out today

@NataliyaV 7.6.2 is now released to nuget: https://www.nuget.org/packages/NEST/7.6.2

@NataliyaV 7.6.2 is now released to nuget: https://www.nuget.org/packages/NEST/7.6.2

Thank you @russcam ! Awesome


Error writing to a partitioned table: : it is not yet supported to write to hive partitions with datatype Dictionary(UInt16, Utf8)

@suremarc  got this error when writing to a partitioned table:
This feature is not implemented: it is not yet supported to write to hive partitions with datatype Dictionary(UInt16, Utf8)

Here is a repro using datafusion-cli:
CREATE EXTERNAL TABLE lz4_raw_compressed_larger
STORED AS PARQUET
PARTITIONED BY (partition)
LOCATION 'data/';

INSERT INTO lz4_raw_compressed_larger VALUES ('non-partition-value', 'partition');

Here's a zip file with a single file in it, data/partition=A/lz4_raw_compressed_larger.parquet.
I noticed the unit tests specify the schema explicitly, but I am guessing if you have DataFusion infer the schema, the partition columns are encoded as dictionaries. I think this will limit the usefulness of this feature if partitioned writes don't work with tables whose schemas are inferred.
Originally posted by @suremarc in https://github.com/apache/arrow-datafusion/issues/7801#issuecomment-1773144039

Hm, I am a little confused why Datafusion is inferring the schema of UTF8 data as Dictionary(some int type, UTF8).
:thinking: will have to look into it. It does seem that #7891, #7892, and some of the inconveniences reported by @theelderbeever in #7860 are all related.
Perhaps the partitioning code could accept any arrow array type which can be explicitly cast to UTF8, rather than only strictly UTF8... I assume since these Dictionary columns are representing string data, they can be cast to a plain UTF8 array without panic/error.

Ok, I read the arrow-rs docs on dictionary array types, so I understand what that means now... I took a stab at solving this in https://github.com/apache/arrow-datafusion/pull/7896


subesophageal ganglion neuron lacking axioms [sf#45]

Reported by cmungall on 2014-12-29 20:36 UTC
http://purl.obolibrary.org/obo/FBbt_00001972
No axioms connecting to subesophageal ganglion. Ideally this would be an equivalence axiom (neuron & po some SOG)

Commented by mmc46 on 2015-01-02 12:13 UTC
I've added the axioms (neuron & po some SOG).

Updated by mmc46 on 2015-01-02 12:13 UTC

status: open --> closed


Reformulate script call

Purely for good practice, maybe an idea to reformulate the call to:
./pishrink original.img shrunk.img

While not quite the most efficient way, its the best I have for now


Usage within redux overwrite my app state

i'm writing redux app and if i wrap my app with Grid its overwrite my state and i get  react-inline-grid state within my app

i have used https://github.com/dowjones/react-cellblock it doesn't have overwrite state issue

Yeah seriously threw me for a loop, atleast put some disclaimer on your README

Is there a workaround for this issue?
I posted a question on Stackoverflow (http://stackoverflow.com/questions/43927596/components-loose-access-to-store-when-wrapped-in-grid-react-inline-grid/) and someone directed me here.
Seems like the Grid's component provider is overwriting my App's provider.

I don't think there is a easy workaround. You would need to pass in the store via another provider component or via props.
I ended up switching to react-flexbox-grid, it took some work but ended up being a simpler and reliable solution.


Support endpoint "POST /users/@me/channels"

Hey all, I need my bot to support being able to DM users whenever an admin denies a user a request. I noticed that the client in twilight_http doesn't seem to support that.
Docs link: https://discord.com/developers/docs/resources/user#create-dm

We actually do, it's just called something different: https://api.twilight.rs/twilight_http/client/struct.Client.html#method.create_private_channel

My bad! I must be blind. Thanks for quick turn-around!


java.nio.file.Path should be parseable

@olafurpg What other JDK 1.7+ objects would we want to be parseable?

Path is the only one I can think of.

While we're at it, we should also add an Input.File.apply overload that takes a Path.


Show using ConnectionString in InstrumentationKeyMap

It would be helpful to document in the InstrumentationKeyMap schema that a ConnectionString value can be provided in place of InstrumentationKey. I tested it and it works, but the docs don't show it as an option.

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

ID: 055bda34-28d6-c32b-78ff-82e91353735f
Version Independent ID: e348c31a-06fb-512f-4e99-815b44d83eb6
Content: Azure Application Insights .Net Agent API reference - Azure Monitor
Content Source: articles/azure-monitor/app/status-monitor-v2-api-reference.md
Service: azure-monitor
Sub-service: application-insights
GitHub Login: @TimothyMothra
Microsoft Alias: tilee

Thanks for the feedback! I have assigned the issue to the doc author to update appropriately.

@cmw2 Thanks again for taking time to share your feedback , our document authoring team will further take this as a backlog item and update the document as needed.
We will go ahead and close this issue for now, however if you have any further feedback on the document please tag us in your reply and will be happy to reopen the thread and continue the conversation. Thank you


Implement Help and Version Commands

This PR adds version and help commands to the digger CLI
As requested in  #18

In addition to being invoked as a cli command, digger is also invoked as part of github action in which case the arguments are github context. We also want to react to a comment in the pull request and publish a comment in result. We can do this here after detecting that the event is a comment and the comment is "digger help" then publish a comment as a result to it and exit(0)


Privacy for enum variants and trait items

Support pub/pub(restricted) on enum variants and trait items, it helps with controlling matching exhaustiveness and trait implementability.
cc https://github.com/rust-lang/rust/issues/32770 https://github.com/rust-lang/rfcs/issues/943 https://github.com/rust-lang/rfcs/pull/2008
Rendered

Marking non-exhaustiveness with a dummy variant seems like a step in the wrong direction to me. It feels weird.
One of the reason it feels weird to me is that I have trouble imagining a case where this is useful for things you actually want to match on. Is it possible to show extant code where matchable private variants would be helpful?

From the RFC:
pub trait Trait1 {
    fn method1();
    pub(crate) fn method_without_default();
}

This feels strange to me. Under this RFC, the "package private" method here is method_without_default, but users coming from Java etc. would probably expect method1 to be the more private method, since it isn't explicitly marked pub. Although I understand the historical reasoning behind it, it seems really odd that the way to restrict the visibility of an element is to explicitly mark it as pub(X).

it seems really odd that the way to restrict the visibility of an element is to explicitly mark it as pub(X).

You can read pub(X) as publicness X.

You can read pub(X) as publicness X.

I think the issue being raised is that pub(X) is a keyword developed for a "private by default" context where it's still an example of making things "more public" and it's counter-intuitive to repurpose it to a context where pub(x) would make things "less public".

Oh, I get your point now. The issue is that the defaults are swapped here. Struct members are private by default while enum variants and trait items are pub by default. That's a valid point.

Maybe we could require explicit pub/pub(foo) annotations to be present on either every variant / associated item or none of them?

@glaebhoerl To be honest, that really screams "we wanted this so badly that we're making an hack everyone will recognize as ugly to circumvent our backwards-compatibility requirement".
In fact, that "you've gotta retroactively annotate all your old variants/items in order to start annotating new ones" pattern which appears nowhere else in the language feels like enough of a hack that It's something I'd feel students might judge me for by association unless I threw the language under the bus on that point.

To be clear, I think inherited privacy for trait items and enum variants was a mistake, but we gotta live in the world we live in and not the one we wish we were in. Sometimes having to decide which is the least-bad option that preserves backwards compatibility is just a fact of life (which to be clear again, is not necessarily the one I floated). Maybe we could transition to a cleaner solution with epochs.

You could add a unpub contextual keyword.. or even accept !pub perhaps.  lol

!pub would probably more intuitive, given how impl handles trait specification.

priv: its already a keyword.

We can change the default in a Rust 2.0 future, and requiring it just in the types using the new features is fairly small churn.
I think not doing things because they are deemed to give impression that we're admitting mistakes is rather obnoxious. Better to come clean than sweep under the rug.

I'm not by any means saying that admitting to a mistake is bad.
I'm saying that, from my perspective, the fix is such an uncharacteristically horrendous bodge that it would be a stain of Rust's grammar.

@glaebhoerl

To be clear, I think inherited privacy for trait items and enum variants was a mistake, but we gotta live in the world we live in and not the one we wish we were in.

I don't think it's a mistake, so far this scheme served us with almost no complaints, and this is indeed what you want in most cases.
If pubs for variants/trait-items were explicit, someone would probably already wrote an RFC about removing them as a part of the ergonomics initiative roadmap 😄

I'm still waiting for that example of a public enum in existing crate that would benefit from privately matchable variants. :)

@le-jzr

I'm still waiting for that example of a public enum in existing crate that would benefit from non-public variants.

Please, wait some more, I haven't even looked through all the comments yet!
Do you mean in addition to exhaustiveness checks? For example, inside of the crate you can use unreachable!()` instead of "do nothing" for the dummy variant :)
But I suspect this should be better done automatically during lowering to or from MIR.
I can imagine cases when private variants could be useful. For example the enum is a state machine with some states that can be observed externally, and some states that are purely internal/intermediate.
I don't think I've seen in practice, but I don't think I've seen many state machines written in Rust as well.

My primary argument in support of the private variant idiom is that making non-exhaustive enums is not a dire everyday need and doesn't worth extending the language, there's just need to be some way to do it.
As for private variants/trait items, I don't feel like they really extend the language, they only support syntax for writing what is already there + give some extra bonuses like trait implementability control.

I'm still waiting for that example of a public enum in existing crate that would benefit from non-public variants. :)

Not going to bother finding a crate with such a situation, but here's a very plausible example:
You could make use of an enum for configuring input arguments, such as some enum carrying a Vec<u8> or String, and you may have some other internal methods that make some guarantees for you, but you don't want to expose those publicly, as they could be unsafe, or leak implementation details.
pub enum Source {
    Utf8(String),
    Binary(Vec<u8>),
    pub(crate) PartiallyUtf8(Vec<u8>, usize),
}

pub fn encode(src: Source) -> EncodedString {

}

fn grow_and_encode(s: String, more: &[u8]) -> EncodedString {
    let index = s.len();
    let mut vec = s.into_bytes();
    vec.extend_from_slice(more);
    encode(Source::PartiallyUtf8(vec, index))
}

@burdges

You could add a unpub contextual keyword.. or even accept !pub perhaps. lol

vis(path), vis(export) and implicit vis(crate) as the default </dreams>

I've kinda wanted non-public variant several times.  I even learned the private-in-public when trying to create them.  I run into them when trying to use a polymorphic enum for several purposes, including object internal state as well as object configuration.
That said, I think non-public variants look weaker than being able to circumvent the private-in-public rules, so maybe one should work towards that instead.  If there was a pub(containable) that left the item private but allowed violating the private-in-public rules, and if we got ..Struct for struct inclusion, then I'd write something like :
pub(containable) struct InstantiateHereOnly;
...
pub enum Orientation<BCs: BodyCiphers,SKs: SURBKeys> {
    Send { bodies: BCs },
    SURB { surb_keys: SKs },
    SendAndSURB { surb_keys: SKs, bodies: BCs, ..InstantiateHereOnly },
}
pub const SEND: Orientation<(),()> = Orientation::Send { bodies: () };
pub const SURB: Orientation<(),()> = Orientation::SURB { surb_keys: () };

I could use this enum in several ways : I can use it for internal state. I can pass it in as a configuration option, usually using the two consts, but regardless nobody can instantiate SendAndSURB outside this module.  Yet, I can return this enum too and destructure SendAndSURB outside this module.
You might argue against abusing polymorphic enum this way of course, as I could always write two or three separate enums.  Arguably, my code would be more flexible if done that way, yet doing it this way may better connects the exhaustiveness checks between the three usages.
tl;dr  I think the case against non-public variants is ultimately stylistic and subtle, but I also think mechanisms for breaking the private-in-public rules look more powerful.

If this RFC establishes the pub(restricted) syntax for trait items, supporting #275 could be done through pub(impl).

https://github.com/rust-lang/rfcs/pull/2008 was merged, so I'm closing this as not having sufficient motivation.

@petrochenkov I don't understand how #2008 solves the issues raised by this issue, in particular as it relates to enums? Marking an enum as non_exhaustive is not sufficient if you don't want users to peek inside of the variants. You currently have to work around this by introducing a newtype around the enum, but that makes it much more clumsy to work with the type internally...

@petrochenkov I'm running into a situation where #[non_exhaustive] doesn't help in the slightest. I have an enum variant that should only ever be used internally, as it represents an intermediate state that can never occur in user code. I could certainly work around it, but right now the easiest way by far is to add an __internal variant, which is the same problem as the __nonexhaustive variant that led to #2008.

@jhpratt could you do something like this?
pub enum Foo {
    Bar(...),
    Private(Private),
}

pub struct Private {
    fueld: Quax
}

This way users can't construct the variant if they never see the variant.

@KrishnaSannasi I could, but as I mentioned in my previous comment, it's easier to add an __internal variant. As it turns out, there was a clever workaround in the way my data was structured, but that's not always the case.

Another motivating example would be
// where each variant represents some string
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub enum EventKind {
    One,
    Two,
    priv Custom(String),
}
impl EventKind {
    pub fn only_way_to_access_custom_that_wont_break_forwards_compat(&self) -> &str { ... }
}

So if the user of EventKind wants to check for known variants they can match EventKind { ... } and if they want to check a custom variant they use the method, there is no way to access the Custom variant.
If adding a strange keyword is hacky I would argue #[doc(hidden)] __Custom is much worse :shrug:

I would still like to see this.
enum MyThingImpl {
    A(...),
    B(...),
}

pub MyThing {
  state: MyThingImpl,
}

Is an ok workaround but it is very unergonomic. Now I need to add self.state everywhere, maintain two structs, twice the impls of Eq, Debug, Default, ... It also doesn't allow exposing a view variants (but that seems like a niche use case)
I think there should be a way to use an enum internally for a type without exposing that as part of the API.
Right now users are forced to pick between #[doc(hidden)] which is ergonomic for them but doesn't provide a meaningful guarantee of privacy (what if the user's IDE auto-completes it? Or creating a wrapper type which is tedious.

what about separately considering #[non_exhaustive($vis)]?

I agree that non_exhaustive  could do with a visibility update but a closed RFC is not the place to discuss it.

Well every issue about this that I am aware of hase been closed. So should we reopen one or open a new one?
https://github.com/rust-lang/rust/issues/32770

Filed https://github.com/rust-lang/rfcs/issues/3506


MSID: 87356 Version: 2 DOI: 2<IP_ADDRESS>4142

[PLACE MANUSCRIPT AND EDITOR DETAILS HERE WHEN AVAILABLE] See step 3
[PLACE PDF URL HERE WHEN AVAILABLE] See step 7
Step 1. Inform bioRxiv
Who can help: @QueenKraken, @nlisgo, @scottaubrey

[x] Manuscript is in data hub index (https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v2/by-publisher/elife/get-by-manuscript-id?manuscript_id=87356)

Step 2. Create preview of manuscript
Who can help: @fred-atherden, @nlisgo, @scottaubrey

[ ] Manuscript is available for preview (https://prod--epp.elifesciences.org/preview/87356/v2)

[ ] Trigger import for staging: https://prod--epp.elifesciences.org/import
[ ] Sync data folder with s3://prod-elife-epp-data/data
[ ] Trigger import for staging: https://staging--epp.elifesciences.org/import
[ ] Sync data folder with s3://staging-elife-epp-data/data
[ ] Pull request created to enhanced-preprint-data
[ ] Post link to pull request below

Pull request: [PLACE LINK TO PULL REQUEST HERE]
Detailed instructions: https://github.com/elifesciences/enhanced-preprints-data#add-a-manuscript
Step 3: Awaiting public reviews and QC
Who can help: Production team

[ ] QC passed or QC not needed

Who can help: Editorial team

[x] Public reviews available on sciety (https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>4142)
[ ] Manuscript and editor details at the top of this issue (Supplied by Editorial team)
[ ] Reviews returned by EPP - https://prod--epp.elifesciences.org/api/reviewed-preprints/87356/v2/reviews

Example
"msas": "Genetics and Genomics", "Neuroscience"
"msid": "84628"
"version": "1"
"preprintDoi": "10.1101/2<IP_ADDRESS>4241"
"articleType": "Reviewed Preprint"
"status": "Published from the original preprint after peer review and assessment by eLife."

"Reviewed Preprint posted": "2023-01-02"
"Sent for peer review": "2022-10-28"
"Posted to bioRxiv": "2022-11-21" (link: "Go to bioRxiv": "https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>4241v1")

Editors:
Reviewing Editor
Michael B Eisen
University of California, Berkeley, United States
Senior Editor
Michael B Eisen
University of California, Berkeley, United States

Step 4: Modify manuscripts.json (no PDF)

[ ] Reviewed preprint is published to EPP (https://elifesciences.org/reviewed-preprints/87356)

[ ] Pull request created to enhanced-preprint-client
[ ] Pull request switched to "Ready for review"
[ ] Post link to pull request below

[ ] Request that a doi be registered

[ ] Post link to #enhanced-preprint comment below

Pull request: [PLACE LINK TO PULL REQUEST HERE]
#enhanced-preprint comment thread: [PLACE LINK TO COMMENT HERE]

Instructions to modify manuscripts.json

Visit: https://github.com/elifesciences/enhanced-preprints-client/actions/workflows/publish-manuscript.yaml
Click: Run workflow
Complete the form and click "Run workflow"
A successful run should result in a new pull request at https://github.com/elifesciences/enhanced-preprints-client/pulls
Open the pull request and click the "Ready for review" button to trigger tests
Once the tests pass and you are happy with the changes the PR can be merged

Example pull request: https://github.com/elifesciences/enhanced-preprints-client/pull/334/files
Once the pull request is merged in it should be available a few minutes later.

Request that a doi
Post the following in #enhanced-preprint:
@Fred can you register a doi for https://elifesciences.org/reviewed-preprints/87356

Step 5: Awaiting search reindex

[ ] Reviewed preprint is avaliable on journal homepage (https://elifesciences.org)

The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.

Additional info
If needed, the jenkins pipeline to reindex search can be triggered sooner.
https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 6: Published! Request PDF generation

[ ] Post the link to the PDF url at the top of the issue

[ ] Post link to #enhanced-preprint comment below

#enhanced-preprint comment thread: [PLACE LINK TO COMMENT HERE]
Post the following to the #enhanced-preprint on slack:
@Ryan Dix-Peek please can you generate a PDF for https://elifesciences.org/reviewed-preprints/87356

Step 7: Introduce PDF to data folder and git repo

[ ] PDF is avaliable at https://github.com/elifesciences/enhanced-preprints-data/raw/master/data/87356/v2/87356-v2.pdf

Detailed instructions: https://github.com/elifesciences/enhanced-preprints-data#add-a-pdf
Step 8: Add PDF url to manuscripts.json

[ ] Reviewed preprint PDF is available for download (https://prod--epp.elifesciences.org/reviewed-preprints/87356)

[ ] Pull request created to enhanced-preprint-client
[ ] Pull request switched to "Ready for review"
[ ] Post link to pull request below

[PLACE LINK TO PULL REQUEST HERE]

Instructions to add PDF url to manuscripts.json

Visit: https://github.com/elifesciences/enhanced-preprints-client/actions/workflows/add-pdf-url-to-manuscript.yaml
Click: Run workflow
Complete the form and click "Run workflow"
A successful run should result in a new pull request at https://github.com/elifesciences/enhanced-preprints-client/pulls
Open the pull request and click the "Ready for review" button to trigger tests
Once the tests pass and you are happy with the changes the PR can be merged

Example pull request: https://github.com/elifesciences/enhanced-preprints-client/pull/397/files
Once the pull request is merged in it should be available a few minutes later.

Step 9: Done!

[ ] Kettle is on!

@acollings the authors response images are all missing from this one. Please could you take a look when you get a chance? Thanks!

@fred-atherden flagged to Sue!

@acollings is there any update on this one? Looks like the images are still missing to me

Thanks Fred, indeed, this one remains problematic. I've asked Karen to post an update once fixed.

Many thanks!

Hi @fred-atherden the images should be there now