[Plugin] TechDocs / Docs-like-code

Summary
Add easy to use technical documentation plugin to Backstage. Some inspiration can be found from our internal technical documentation:

Context
TechDocs makes it easy for you to make your team’s technical documentation available in a central place (Backstage) for other teams to discover. Treating documentation as code, you produce documentation within your software development workflow. You follow a few simple conventions and your documentation appears in Backstage instantly.

Since TechDocs is an internal name I think it would be better to name this issue something like “Docs-like-code” or just “Technical documentation”.
I also look forward to seeing what different pieces are required behind the frontend for this plugin to work 😀

I've been thinking and experimenting a lot with a docs-like-code approach recently. I'm curious on the scope of what this plugin might provide though.
I know Spotify uses mkdocs internally. I looked at a lot of different static site generators and also settled on mkdocs because it seemed to provide the least configuration setup required for teams to use in their projects. In fact I've been able to hide it within the CI pipeline entirely so folks can focus on just writing docs and rely on conventions.
That said, I do think that any solution here should be agnostic to the tools to generate documentation (if possible). Integration with any existing tools that an organization may be using would be key for larger adoption.
Here is a list of "potential" areas of scope I see for this plugin:

A catalog / inventory system that tracks various documentation sites that might be generated by different teams, repositories, etc.
The front-end plugin that handles routing & rendering of documentation sites.
A back-end search service that proxies search queries to something like elasticsearch. The results would then need to be mapped to appropriate deep links on different sites (which the frontend would need to handle routing for)
Some sort of system that can update the search index when docs sites are updated/published.
Common tooling to generate sites that "conform" to the contract that will work with the plugin tooling, catalog, index service etc.

Some other features that seem really useful would be:

Analytics tracking.
Knowing when documentation has been updated and pushing that up to.
Ability to annotate & edit docs or easily when reading.

Also curious where the line is drawn for tools that content creators will be using to create documentation? Tools can be very opinionated and highly dependent on individual workflows & processes. However, it feels like the content creation experience is a key ingredient in how it might relate to the consumption of the content.
PS - Very excited about this plugin 😄

I don't know if this is directly related, or something that would be a separate feature or part of this, but a really neat thing that the Rust community does is that they run the example code snippets in their technical docs as tests. This prevents the problem of "the example doesn't work anymore" and is especially good for avoiding API breakage.
https://doc.rust-lang.org/rustdoc/documentation-tests.html

@SpamapS, yep! same thing in Go, https://golang.org/pkg/testing/#hdr-Examples
Never seen it implemented in JS/TS though, probably trickier since it's a dynamic language. It's a neat idea though.
Did just find this: https://github.com/yamadapc/jsdoctest :grin:

A catalog / inventory system that tracks various documentation sites that might be generated by different teams, repositories, etc.

@andrewthauer I think we should follow the same model we use inside Spotify; i.e. treat documentation as yet another piece of software that is stored in the Software Catalog.
In such as setup there are two categories of documentation:

Docs only - stand-alone documentation site
Docs with code - documentation living together with an existing software component, e.g. a backend service or website.

In such as setup there are two categories of documentation:
1. **Docs only** - stand-alone documentation site

2. **Docs with code** - documentation living together with an existing software component, e.g. a backend service or website.

@stefanalund - These make perfect sense to me and is how I've also been looking at it.
I wonder if there might be room for a 3rd more abstract option such as external docs? I suspect many organizations will still leverage other documentation systems/processes along with backstage (either transitioning or permanently). I have no idea how this would work, but being able to somehow integrate existing documentation systems into a central place like backstage could both help encourage a `docs-like-code approach and avoid yet another documentation tool/process being introduced.

@garyniemen @emmaindal time to close this one?

Not quite. But soon. Our v1 milestone is an alpha version of TechDocs that works end-to-end. We have set a due date of 28 August.

With TechDocs v1 launched and progress being tracked by Backstage documentation, I think it is okay to close this issue. cc @spotify/techdocs-core @stefanalund @leemills83

Please re-open if you feel so. 🙇


Update bottom_picker.dart

Fixed the issue where selectedItemIndex is rendered useless.
For example:
When the user opens the dialog providing a selectedItemIndex = 1, the widget will always set this value to 0, so if the user didn't change the selected item it will return 0.

Thanks @DevYahia  for your contribution I will update the documentation and publish a new version


how to adjust model to detect densely occluded targets

I would like to ask if there are other methods of NMS in mmdetection besides traditional NMS and SoftNMS? In addition, I am currently using mmdetection to do a detection, the occlusion overlap of the target is serious, how should I adjust the training and test parameters to make the effect better?
Now I use softnms and the score threshold is 0.1. The targets are all detected, but many targets will be marked with several boxes at the same time. How should I adjust?

This is a crowd detection problem and currently, there is no such algorithm in mmdet yet. We planned to implement CrowdDet in the future but we do not have the manpower to do this recently.


Automatically enable/disable Awake when a specific app is launched/closed

Description of the new feature / enhancement
The title says it all.
Scenario when this would be used?
I use PreSonus Studio One, which unfortunately will not prevent the PC from going to sleep. Maybe they'll fix it, maybe they won't... I use Awake to work around that, but it's a bit cumbersome because I have to think of turning it on then off after I'm done in Studio One.
It would be great if Awake could be configured to automatically start when a specific app is started, and stop when the app is closed.
Supporting information
No response

Duplicate of #32467


json subcommand: print SCIP index as JSON

Goals:

Adds a barebones command to print a scip file in JSON format
~Updates CLI docs as they've grown out of date~

Stretch goals:

~Fix (?) the testing commands as it seems they're not running on CI (i.e. CLI docs are out of date)~ Done in #148

Test plan

[x] Add basic Go tests

Subcommands should ideally be verbs, not nouns. That's already the pattern with existing subcommands (thought not all of them follow this). Thoughts on making this an extra --format= flag to scip print instead?

I think an even better option would be to add a --json flag to print subcommand, as it's a more intuitive and recommended way of controling output for CLI https://clig.dev/#output. TODO: remove subcommand, make it a --json flag

What's the motivation behind this subcommand? Is the output meant to be "stable" for some definition of stable? Since it's JSON, it's not unreasonable that someone may try to consume it. (Not saying it's a bad idea, but the motivation should at least be documented somewhere in the code/commit message etc.)

The motivation wouls be to provide a machine readable and ubiqutous output format, something amenable to other CLI tools like jq. I looked around and there doesnt' seem to be an obvious way to inspect protobuf files in a dynamic fashion, like what jq` provides. And even if there is such a tool, it's not as ubiqutous as JSON anyways.
w.r.t. stability, bar some variations in how to output missing fields, my understanding is that protobuf -> json conversion is unversal? So we can advertise it as stable.

Thoughts on skipping the pretty formatting? One can easily pipe the result through jq if pretty formatting is desired.

Yeah, I agree here. Once this becomes --json flag on the print command, there won't be a meaningful way to control the output, so we can just assume people will use jq. TODO: remove pretty-printing

urfave/cli doesn't support positional arguments (https://github.com/urfave/cli/issues/1074)
So the only form in which the command works is scip print --json <file>, not scip print <file> --json
It's annoying, but an alternative would be to manually process the arguments, which IMO isn't worth it at this point.


Evan Aparri | Week 1: Introduction to Python

Here is the link to my FastPages/Github site
Here is the link to my Python Quiz, where I add my own questions, reduced the amount of redundant code, made it so the result of the quiz showed up as a percentage, and created an option where I could skip a question.
Here is the link to my Installation Checks, where I made checks on my Python, Java, Anaconda, and Jupyter installation using bash functions.
Here is the link to my APCSP Lecture Notes, where I am creating a table that is organized by week to help keep track of what I learn.
Here is the link to my tags, where I have added a notes tag and trimester 1 tag to created further organization and easier acccess to the various posts I will be making.
Here is the link to notes that I took last year in AP European History. This is extra credit for my work in other classes and an imported Docx document on my website.

Great job with your installation checks! However, one thing that I would recommend you to try is to add a filter while checking for your installed modules and packages. The benefits of doing this is that it helps you to reduce the amount of clutter in your terminal and also on your page, which makes finding certain packages a lot easier and a less strenuous task. To achieve this, you can use the the pipe character followed by a grep command with key words or phrases of your choice to serve as a filter on your command output! Additionally, very good job on the Lecture Notes page, I really liked how you organized all lectures into their respective weeks so that it's quick and easy to locate a certain lecture to refer back to. The python quiz was also really creative in that you included a skip function, which was something that lacked in the original example, I would recommend trying out for loops and other iterative methods to reduce repetitive code just to test our some other methods. Great job as always though!


Unban Member doesn't work

Unban member doesn't work.
Please see here:
https://github.com/leen3o/mvcforum/blob/master/MVCForum.Website/Controllers/MembersController.cs#L151

user.IsLockedOut = false;

should be

user.IsBanned = false;

Good spot thanks. Fixed in v1.8


Pin old version of scikit-build-core until editable issue is resolved

This is related to #291

Codecov Report

Merging #292 (7dae9c9) into main (46cdfb5) will not change coverage.
Report is 2 commits behind head on main.
The diff coverage is n/a.

:exclamation: Current head 7dae9c9 differs from pull request most recent head 7dac9bc. Consider uploading reports for the commit 7dac9bc to get more accurate results

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files

@@           Coverage Diff           @@
##             main     #292   +/-   ##
=======================================
  Coverage   74.74%   74.74%
=======================================
  Files          26       26
  Lines        3231     3231
=======================================
  Hits         2415     2415
  Misses        816      816

Flag
Coverage Δ

cxx
87.21% <ø> (ø)

python
70.32% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Continue to review full report in Codecov by Sentry.

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


Can't update to full version

After updating from version 'ru.dgis.sdk:sdk-map:7.4.0' to 'ru.dgis.sdk:sdk-full:10.1.0' I cannot call method:
MyMapFragment() : Fragment(){   override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {     val view = inflater.inflate(R.layout.fragment_twogis_map, null)     val mapView: MapView = view.mapView as MapView     mapView.getMapAsync{     ...     }     return view }
Error is:
Cannot access 'androidx.lifecycle.FullLifecycleObserver' which is a supertype of 'ru.dgis.sdk.map.MapView'. Check your module classpath for missing or conflicting dependencies
Also while trying to run application i getting this:
pp:mergeExtDexDebug FAILED AGPBI: {"kind":"warning","text":"One or more classes has class file version >= 56 which is not officially supported.","sources":[{"file":"...\.gradle\\caches\\transforms-3\\bc65c6351d67c75323956ee857426be0\\transformed\\jetified-sdk-full-10.1.0-runtime.jar"}],"tool":"D8"} AGPBI: {"kind":"error","text":"com.android.tools.r8.internal.nc: Sealed classes are not supported as program classes","sources":[{"file":"....\.gradle\\caches\\transforms-3\\bc65c6351d67c75323956ee857426be0\\transformed\\jetified-sdk-full-10.1.0-runtime.jar"}],"tool":"D8"}
How to fix that?

Hi! Which version of agp is used in your project? Actually, complete android-related configuration of your project (agp, build tools version, compileOptions, etc) would help us investigate this issue.

complete android-related configuration

project gradle
https://pastebin.com/QTk75zEB
build.gradle
https://pastebin.com/D2Edmhe5

Fixed by:

adding classpath:
classpath "com.android.tools:r8:8.2.42"
change of jdk to 17.0.9


Update map example code

Changes deprecated lowercaseString calls to lowercased()
This pull request only affects example code provided in comments.

Thanks!
⛵
@swift-ci please smoke test and merge

@swift-ci please smoke test and merge


Generated Metal fragment shader with gather() fails to compile

Hi,
I have a fragment shader that is based on NVidia's FXAA shader. When converting the SPIRV to MSL, the generated calls to gather() are invalid. The generated calls miss the offset parameter:
Example for a generated line of code (in_texture is a 2D texture):
float4 _1925 = in_texture.gather(in_sampler, _3527, component::w);
From the MSL specification:
Tv gather(sampler s, float2 coord, int2 offset = int2(0), component c = component::x) const
As a test I did append ", int2(0)" for the offset before the component parameter in spirv_cross::CompilerMSL::to_function_args() and that fixes the issue.
Axel

@HansKristian-ARM If you haven't already started to work on this...I'll take care of it.
@awefers Do you have the original GLSL shader so we can test?

Fixed in PR #556.

Thank you!


If you go to the homepage on mobile, there's no way to get to the interior pages or log in unless you happen to click on a text link buried in the content. We need the mobile navigation to appear somewhere

Could possibly use trussworks header


doc: explain TouchScreenButton passby mode

This explains the concept of pass-by presses (which are otherwise undocumented), and clarifies what I believe is a common misreading of the property name.
Moved here following https://github.com/godotengine/godot-docs/pull/4645

Thanks!

Cherry-picked for 3.2.4.


No ability to control database field types

Database field types are now generated with default values but not always going to work for user needs. Like String length or numeric field.
We need to rely on a separate mapping file or directives

We should be using: https://github.com/Urigo/graphql-scalars
With that, we can really provide extended mapping.
I think Int by default should be Integer.

We might introduce scallars for better control of the data but this will not change the fact that we will need to have some database mapping thing

Closing. @craicoverflow will create follow up


Introduce semantic versioning of the project

Background
Currently, the project is not version as a whole (clientLibrary is). Let's extend the versioning to the whole project.
Ideally, these tags should then be used for particular docker image builds.
Proposed Solution [Optional]
Solution Ideas:

Tag based versioning
Version recorded in SBT files
Both?

Current state: we tag the commit in master by a final tag denoting the release. This can be then acted upon with other deployment actions (e.g. Absa-group internal for LS deployment).
There is no public docker-build process to be tagged otherwise, just the client lib is actually released.


Is there any idea to generate chart code If there's a chart in the picture?

If a screenshot or design draft contains a chart, it is usually very difficult to restore the chart. Is there a way to identify chart elements and then generate code for a chart library?

Hi @xuanhun , generating chart code from screenshots is challenging but achievable. Using OCR, image segmentation, and AI models like GPT-4 Vision, we can identify chart elements and map them to chart libraries like Chart.js or D3.js. Please assign this issue to me, and I’ll work on developing it!


Jupyter artifacts when Ark is used outside of Positron

Hi folks. Very excited by Ark. Thanks for all the work on it.
Myself and a few colleagues have been trying Ark outside of Positron, e.g. in Zed or regular Jupyter Notebook session. Some—but weirdly not all‐of us are seeing undesirable Jupyter (JSON?) logging artifacts alongside the regular cell output. For example, running
# %%
plot(1:10)

in Zed produces the plot correctly...but preempted with the following cruft.
  2024-12-09T19:55:07.910014Z  INFO  Received subscribe message on IOPub with subscription ''.
    at crates/amalthea/src/socket/iopub.rs:260
  2024-12-09T19:55:07.912842Z  INFO  Received shell request: JupyterMessage { zmq_identities: [[0, 128, 0, 65, 167]], header: Ju
pyterHeader { msg_id: "f8cc6be9-e09c-4c9f-b452-4620993a1389", session: "bdaca3cc-a480-47f1-9a7e-d0bf701334da", username: "runtim
elib", date: "2024-12-09T19:55:06.454278Z", msg_type: "execute_request", version: "5.3" }, parent_header: None, content: Execute
Request { code: "# %%\nplot(1)", silent: false, store_history: true, user_expressions: Object {}, allow_stdin: false, stop_on_er
ror: true } }
    at crates/amalthea/src/socket/shell.rs:185

Similar result in a native Jupyter session.
Is there a way to silence or remove these artifacts? Apologies if I missed a duplicate issue.
I'm running the latest Ark release 0.1.158 on MacOS (Sequoia).

Have you installed the kernel spec with ark --install and a recent version of Ark?
This should set RUST_LOG to error:
"env": {
     "RUST_LOG": "error"
}

Thanks @lionel-.
It's bit odd since I had already installed the kernel spec... but reinstalling seems to have fixed the issue. I did, however, encounter the spurious --file-connection error mentioned in https://github.com/posit-dev/ark/issues/648
Appreciate the help.


Unable to catch DtlsException: DTLS Handshake has failed.

Hello,
here an other point where I am struggling. Unable to catch DTLS Handshake has failed in this situation.
Client have a working dtls connection with the server.
Server wants to ban the client. Client's presharedkey is then removed from the server.
Client's tries to connect.
Result:
E/flutter (17787): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: DtlsException: DTLS Handshake has failed. E/flutter (17787): #0      _DtlsClientConnection._performShutdown (package:dtls2/src/dtls_client.dart:496:7) E/flutter (17787): #1      _DtlsClientConnection._connectToPeer.<anonymous closure> (package:dtls2/src/dtls_client.dart:518:15) E/flutter (17787): #2      _DtlsClientConnection._handleError (package:dtls2/src/dtls_client.dart:482:21) E/flutter (17787): #3      _DtlsClientConnection._connectToPeer (package:dtls2/src/dtls_client.dart:516:7) E/flutter (17787): #4      _DtlsClientConnection._maintainState (package:dtls2/src/dtls_client.dart:602:7) E/flutter (17787): #5      _DtlsClientConnection._incoming (package:dtls2/src/dtls_client.dart:563:5) E/flutter (17787): #6      DtlsClient._startListening.<anonymous closure> (package:dtls2/src/dtls_client.dart:87:26)
Would like to be able to catch this exeption to redirect the client to the signing page.
Thank you for your support.

Hi @Ifilehk! Thanks for opening this issue :)
Simply wrapping the connect() in a try-catch block probably wouldn't work here, right? Would creating a custom exception that is only being thrown in the case of a failed handshake be an option here? Or do you maybe have a better suggestion?

Hmm, or is the problem rather that the client is trying to reuse a connection that has been cached before?

No wrapping connect does not catch it. I suppose the exception is not transmitted up stream in the code.

exception should come out in connection.listen((...) { ... }, on DtlsException { here }

No wrapping connect does not catch it. I suppose the exception is not transmitted up stream in the code.

Ah, I see! Hmm, maybe that is caused by the fact that the exception is thrown as part of a callback?
https://github.com/JKRhb/dtls2/blob/c25e3bdcb46ad8371132d8a354060d972443b771/lib/src/dtls_client.dart#L516-L520

Possible ! thus not transmitted upstream. By the way if I remember well the Dtls Exception on send() works as expected.

Possible ! thus not transmitted upstream. By the way if I remember well the Dtls Exception on send() works as expected.

Here, the exception is actually being thrown directly:
https://github.com/JKRhb/dtls2/blob/c25e3bdcb46ad8371132d8a354060d972443b771/lib/src/dtls_client.dart#L523-L530
I guess we figured out how to solve this problem then :) I will try to come up with a fix in the next few hours.

@Ifilehk Could you try out if #81 fixes the issue? :)

Unfortunately not yet fixed. Getting same Unhandled Exception.
E/flutter (12576): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: DtlsHandshakeException: DTLS Handshake has failed.
E/flutter (12576): #0      _DtlsClientConnection._performShutdown (package:dtls2/src/dtls_client.dart:492:7)
E/flutter (12576): #1      _DtlsClientConnection._connectToPeer (package:dtls2/src/dtls_client.dart:513:9)
E/flutter (12576): #2      _DtlsClientConnection._maintainState (package:dtls2/src/dtls_client.dart:597:7)
E/flutter (12576): #3      _DtlsClientConnection._incoming (package:dtls2/src/dtls_client.dart:558:5)
E/flutter (12576): #4      DtlsClient._startListening.<anonymous closure> (package:dtls2/src/dtls_client.dart:87:26)

Hmm, could you post a code snippet reproducing the issue? Or how the exception should be caught?

Here a test code against my dtls2 server.

ID0 is a valid identity and the corresponding preshared key is also valid. Connection will succeed.
ID1 is an invalid identity an the corresponding preshared is invalid too. Connection will reproduce the unhandled exception.

Interesting to see also, not related to this bug but maybe to understand the flow, that is you use a correct identity and a wrong presharedkey, you  get DTLS Connection ERROR: TIMEOUT EXCEPTION. I would expect in this case too a DTLS Exception or what do you think ?
import 'dart:async';
import 'dart:convert';
import 'dart:io';

import 'package:dtls2/dtls2.dart';

void main(List<String> arguments) {
  connect();
}

void connect() async {
  try {
    print("Connecting ...");

    const bindAddress = "<IP_ADDRESS>";
    DtlsClient dtlsClient = await DtlsClient.bind(bindAddress, 0);

    DtlsConnection dtlsConnection = await dtlsClient.connect(
      InternetAddress("XXX.XXX.XXX.XXX"),
      XXXX,
      DtlsClientContext(
        verify            : true,
        withTrustedRoots  : true,
        ciphers           : "PSK-AES128-CCM8",
        pskCredentialsCallback: (identityHint) {
          return PskCredentials(
            //identity      : ascii.encode('ID0'),  // Valid identity
            //preSharedKey  : ascii.encode('mAKW-X437USLUGkMZEcass5nwpgcLQbN'), // Valid key
            identity      : ascii.encode('ID1'),                            // Invalid identity
            preSharedKey  : ascii.encode('OAKW-X437USLUGkMZEcass5nwpgcLQbN'), // Invalid key
          );
        },
      ),
      timeout: const Duration(seconds: 10),
    );

    print('Connected');

    dtlsConnection.listen((datagram) async {
      print('Received datagram $datagram');

    }, onDone: () {
      print('DTLS Connection DONE');
    }, onError: (e) {
      print('DTLS Connection ERROR $e');
    },);

  } on DtlsException {
    print('DTLS Connection ERROR: DTLS EXCEPTION');

  } on SocketException {
    print('DTLS Connection ERROR: SOCKET EXCEPTION');

  } on TimeoutException {
    print('DTLS Connection ERROR: TIMEOUT EXCEPTION');

  } catch(e) {
    print('Unhandled exception $e');
  }
}

Hi @Ifilehk, thank you for the example! Unfortunately, I haven't been able to reproduce the issue using it :/ Could you maybe use the altered example below (which uses the Californium test server) as a basis to replicate the issue?
Good point regarding the TimeoutException by the way, how about a DtlsTimeoutException that extends the DtlsException class and implements TimeoutException? This way, we could have the best of both worlds, so to say.
// ignore_for_file: avoid_print

import "dart:async";
import "dart:convert";
import "dart:io";

import "package:dtls2/dtls2.dart";

void main(List<String> arguments) {
  connect();
}

Future<InternetAddress> lookupAddress() async {
  return (await InternetAddress.lookup(
    "californium.eclipseprojects.io",
    type: InternetAddressType.IPv6,
  ))
      .first;
}

Future<void> connect() async {
  final dtlsClient = await DtlsClient.bind(InternetAddress.anyIPv6, 0);

  final address = await lookupAddress();

  try {
    print("Connecting ...");

    final dtlsConnection = await dtlsClient.connect(
      address,
      5684,
      DtlsClientContext(
        withTrustedRoots: true,
        ciphers: "PSK-AES128-CCM8",
        pskCredentialsCallback: (identityHint) {
          return PskCredentials(
            identity: ascii.encode("Client_identity"),
            preSharedKey: ascii.encode("secretPSK"),
          );
        },
      ),
      timeout: const Duration(seconds: 10),
    );

    print("Connected");

    dtlsConnection.listen(
      (datagram) async {
        print("Received datagram $datagram");
      },
      onDone: () {
        print("DTLS Connection DONE");
      },
      onError: (e) {
        print("DTLS Connection ERROR $e");
      },
    );
  } on DtlsException {
    print("DTLS Connection ERROR: DTLS EXCEPTION");
  } on SocketException {
    print("DTLS Connection ERROR: SOCKET EXCEPTION");
  } on TimeoutException {
    print("DTLS Connection ERROR: TIMEOUT EXCEPTION");
  } catch (e) {
    print("Unhandled exception $e");
  }

  dtlsClient.close();
}

OK will try it.
Regarding DtlsTimeoutException. I don't understand it in this context. Of course the DtlsConnection ends with not beeing established, but the real cause is that the identity / preshared key pair is invalid. For the upper layer it makes sense to know the reason. And actually what is a  DtlsTimeoutException ? I think it lacks a definition. In a connection Timeout means peer did not respond after a certain time. Here we have a response and an error that could give information to the client. What do you think ?

Are you running the californium server with the fix ?

Cannot reproduce on your server. Could you try on mine ?
<IP_ADDRESS> 8888
Valid client: WERT
PSK: P4OPmcvtHyZIhBjDSmPgGjM8V1Ykkp2D

Cannot reproduce on your server. Could you try on mine ? <IP_ADDRESS> 8888
Valid client: WERT PSK: P4OPmcvtHyZIhBjDSmPgGjM8V1Ykkp2D

Thank you! That helped me a lot actually :) I think I now found the root cause of the problem and opened #85 as a potential fix.

Regarding DtlsTimeoutException. I don't understand it in this context. Of course the DtlsConnection ends with not beeing established, but the real cause is that the identity / preshared key pair is invalid. For the upper layer it makes sense to know the reason. And actually what is a DtlsTimeoutException ? I think it lacks a definition. In a connection Timeout means peer did not respond after a certain time. Here we have a response and an error that could give information to the client. What do you think ?

That's true, I think the TimeoutException should only be thrown in the case of an actual timeout, though. With the potential fix in #85, I think this should now rather be the case. For other scenarios, I think it should be possible to determine the reason why the Handshake has failed and create more fine-grained exceptions from that. I will have a look into it.

#85 does the trick !!! Now client says:
DTLS EXCEPTION at the right place.
Thank you !!!

#85 does the trick !!! Now client says: DTLS EXCEPTION at the right place.
Thank you !!!

Awesome! Thank you for your error report! :) Then I will merge #85.


[Settings > Biometrics > Enter PIN] Screen view is broken so it is displayed higher and header of the page is hidden

Description of problem
PIN confirmation modal is broken when trying to switch Biometry state via settings: it is displayed higher so header of the page is hidden, at the same time there is an empty white area under the Unlock button.
Please look at the attached screenshot
Expected behavior
Screen is displayed fully, header is visible, there is no empty area under the button.
Steps to reproduce

Open the app.
Tap the Burger button in the header. => Settings screen is open.
Tap the Biometrics button. => Biometrics screen is open.
Tap the Use biometric toggle (it does not matter if you turn on or off it). > Enter PIN screen is open.
Look at the view.

Screenshots and/or log output
Note: Screenshot was done on older version, but it was confirmed that issue reproduces on specified commit.

Environment

[ ] Occurs on Android
[x] Occurs on iOS

Build #: https://github.com/hyperledger/aries-mobile-agent-react-native/tree/db3f18af25f554cd5d616e977e08551b77791c09
iOS Device Model: iPhone 12mini / iOS 16.4.1(a)
Workaround
None.
Severity

[x] High
[ ] Medium
[ ] Low

I am looking into this and would like to raise a PR soon.
cc: @amanji , @jleach


[server][controller][router] Minor cleanups

PR #1152 added a special behavior to inject latency during the increment operation in AbstractReadResponseStats::incrementMultiChunkLargeValueCount, and this was controlled by a static boolean variable.
The current commit makes this cleaner by removing the special behavior from the main code, and instead using dependency injection in the tests only.
Miscellaneous main code changes:

Reduced the parameters required to construct a StorageReadRequestHandler.

The HelixReadOnlySchemaRepository and HelixSchemaAccessor are now less chatty. In particular, listener registration prints one line instead of four.

Muted the stacktrace for InterruptedExceptions in TopicCleanupService and DictionaryRetrievalService.

Added a toString to D2Server.

Miscellaneous test changes:

Added missing @Test annotation to ConsumerIntegrationTestWithProtocolHeader so now it should run as part of the suite.

Tweaked the integration test bucketing, since bucket Z became the long tail again. Specifially:

Moved A/A tests from buckets C to D (where other A/A tests already lived).

Placed all consumer-related tests into bucket C (moved from D and Z).

How was this PR tested?

CI.
Does this PR introduce any user-facing changes?

[x] No. You can skip the rest of this section.
[ ] Yes. Make sure to explain your proposed changes and call out the behavior change.

Thanks @sushantmane!


[NO-REF] Update readme and TODO for coverage stuff

Codecov Report

Merging #7 (3fb427b) into main (820dfbf) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main       #7   +/-   ##
=======================================
  Coverage   86.21%   86.21%
=======================================
  Files          60       60
  Lines        1037     1037
  Branches       85       85
=======================================
  Hits          894      894
  Misses        134      134
  Partials        9        9

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 820dfbf...3fb427b. Read the comment docs.


Test training of examples with torchrun call

What does this PR do?
Updated the example tests to be launched in the way it's recommended in the readme: https://github.com/huggingface/optimum-intel/pull/315
Previous way without setting CUDA_VISIBLE_DEVICES can lead to training in Data Parallel mode, which is slower and can even fail with error: https://github.com/openvinotoolkit/nncf/issues/1582

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

@ljaljushkin could you run make style in the root of the repository, to fix the code quality check? pip install optimum-intel[quality] for the requirements for that.

@ljaljushkin could you run make style in the root of the repository, to fix the code quality check? pip install optimum-intel[quality] for the requirements for that.

thank you, reformatted!


SyntaxError: invalid syntax

Python version:
Python 2.7.13
Bandcamp-dl version:
Bancamp-dl options:
bandcamp-dl --help
url:
options:
Describe the issue:
bandcamp-dl -h
Traceback (most recent call last):
File "/usr/local/bin/bandcamp-dl", line 11, in
load_entry_point('bandcamp-downloader==0.0.8.post7', 'console_scripts', 'bandcamp-dl')()
File "/usr/lib/python2.7/dist-packages/pkg_resources/init.py", line 561, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python2.7/dist-packages/pkg_resources/init.py", line 2631, in load_entry_point
return ep.load()
File "/usr/lib/python2.7/dist-packages/pkg_resources/init.py", line 2291, in load
return self.resolve()
File "/usr/lib/python2.7/dist-packages/pkg_resources/init.py", line 2297, in resolve
module = import(self.module_name, fromlist=['name'], level=0)
File "build/bdist.linux-x86_64/egg/bandcamp_dl/main.py", line 54, in
File "/usr/local/lib/python2.7/dist-packages/bandcamp_downloader-0.0.8.post7-py2.7.egg/bandcamp_dl/bandcamp.py", line 17
def parse(self, url: str, art: bool=True, lyrics: bool=False, debugging: bool=False) -> dict or None:
SyntaxError: invalid syntax

Python 2.7.13

There is your problem. Its 3.4 and up.
It only installs under older versions as I can't seem to stop it from doing so.

I resolved with:
sudo python3 setup.py install

Yep seems you ran into the issue where Python 3 is installed along with Python 2.
This is less of an issue with bandcamp-dl and more of an issue with the nature of Python installations these days. I still haven't found a way around it other than to tell users to either switch to Python 3 entirely, force Python 3 when installing, or adjust their PATH. :/


Add the beta compiler

hey yeah its been months i forgot xd
heres the beta thing, if you update it you Must update it on here. And Must. Put it on the public thanks bye

@headsmasher8557

please put this on another repository
im trying to aim for full lua 5.1 compatibility here


Error encountered after running docker compose (gpu-nvidia)

After running docker compose, I encountered this error
docker compose --profile gpu-nvidia up
[+] Running 2/0
 ✔ Container self-hosted-ai-starter-kit-postgres-1  Created                                                                                0.0s
 ✔ Container qdrant                                 Created                                                                                0.0s
Attaching to n8n, n8n-import, ollama, ollama-pull-llama, qdrant, self-hosted-ai-starter-kit-postgres-1
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy'
nvidia-container-cli: initialization error: load library failed: libnvidia-ml.so.1: cannot open shared object file: no such file or directory: unknown

You need to install libnvidia-ml.so.1, If I recall correctly
Make sure it's installed
locate libnvidia-ml.so.1

If it's not there, try installing them using apt
sudo apt-get install -y gnupg software-properties-common nvidia-docker2

@hermandr What GPU are you using?


Make the bot count the days to Godot 4

We already have people counting every day in the #waiting4godot channel. Why not make the bot do it as well?

Maybe? But wouldn't it get a bit too repetitive and make it sorta spam that channel? I propose instead a counter command that increases the amount of times people have counted

It's not any more spammy than all the other people who post every day in the channel. But we can have both commands!

This bot is pretty much in maintenance mode nowadays, so I'm not interested in adding more features to it. Sorry for the inconvenience.


[📚] Use of Firestore Emulator - HTTP connection

Could you please add same text from Cloud Function emulators to firestore one:
https://firebase.flutter.dev/docs/functions/usage/#emulator-usage
I spend hours trying to figure out why my app does not write to emulator...and it was caused by missing plist/manifest settings allowing insecure HTTP communication :(

The documentation should have something like
import 'package:flutter/foundation.dart';
//...
String host = defaultTargetPlatform == TargetPlatform.android
    ? '<IP_ADDRESS>:8080'
    : 'localhost:8080';
FirebaseAuth.instance.useEmulator('http://$host');

What were the missing settings exactly?

For android, should this...
    <application
        android:usesCleartextTraffic="true"

go in android/app/src/debug/AndroidManifest.xml instead of main like the doc says?
For iOS, is it safer to add...
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsLocalNetworking</key>
    <true/>
</dict>

since you don't have to remove it each time you deploy.

The docs have been updated to reflect the necessary config.


Retrieving data from points that are not persisted to qdrant yet

Im creating a point as follows
to_append = models.PointStruct(
id=create_uuid_from_string(rabbit_dict["embedding_id"]),
payload={
"snippet":rabbit_dict["snippet"],
"is_dependent":rabbit_dict["is_dependent"],
"emb_type":emb_type,
"file":rabbit_dict["file"],
"file_uuid":create_uuid_from_string(rabbit_dict["file"])
},
vector = vector_array[i].tolist(),
)
Im writing this point to a queue in a process and in another process I would want to read say the key "file" from this point that is still in a multiprocess queue and not in qdrant yet.
How can I do this?
Thanks
Ajay

does point.payload["file"] work?

it does


tutorial issues

[ ] when the markdown fails to load, the UI is stuck on loading screen.

To repro, simply run the tutorial using http://localhost:3232/index.html?nolocalhost=1

[x] blocks macro should not be rendered with buttons
[x] tutorial projects should be temporary and destroyed as needed
[x] on start overlays with toolbox
[x] step numbering list are too large and won't scale for longer tutorials. Use dots + tooltip and expand number on selected step only.
[x] move tutorial to its own module.

Transferring markdown issue to its own bug: #1169


Error after update

Could not resolve airline theme "solarized". Themes have been migrated to github.com/vim-airline/vim-airline-themes.

+1

+1

Hello all,
Adding Plugin 'vim-airline/vim-airline-themes' into ~/.vimrc.bundles.local should fix the problem.

Yup, fixed it for me. Thanks @adlermedrado !

Many thanks @adlermedrado

Thx!

Thank you @adlermedrado for the workaround, it perfectly fixed the issue. Hope that the next release will include this modification.

+1 ;/

Thanks!

I added the bundle an ran BundleInstall and the themes are now included in the "themes" directory inside vim-airline. roblem is that now vim does not complain about the theme anymore but I don't see it in use either.

Duplicate PRs for this: #883 and #886.

+1!

+1, Thanks @adlermedrado it's work for me!

+1,Thanks @adlermefrado

+1

+1, Thanks

+1, thanks a lot

fixed! thx

I am using pathogen, I did a git pull, but that didn't help

and what with Pathogen?


app.scss is not included

Hello
Using sveltekit with the SCSS adder. Of all the methods specified in "Using SCSS" in the readme file, the following work:

You can write SCSS syntax in the style lang="scss" blocks in Svelte files.
You can write SCSS syntax in the src/variables.scss file.

But not this one. Nothing that I add in this file has any effect on the application

You can write SCSS syntax in the src/app.scss file.

Thanks

Did you have an existing project you added SCSS to, or did you use the app initializer to start a new project with SCSS?
If you started a new project, (which by the way I did locally with pnpm create @svelte-add/kit -- --with scss testing-new-scss to reproduce this problem), it worked just fine for me. I tested by writing body { background-color: $primary } in src/app.css and $primary: green; in src/variables.scss.
If you added it to an existing project, do you have a repository showing this? Preferably a commit right before running the command and one right after running it similarly to how it's described in the README.

I have run into the same problem. Assuming @MarcSallent did the same thing as me, I created the project using npm create svelte@latest my-app rather than npm create svelte-add/kit....
Should svelte-add work with fresh projects made with npm create svelte?


[HOTFIX][ZEPPELIN-1779]Flaky test: PySparkInterpreterMatplotlibTest

What is this PR for?
The matplotlib tests have stalled as a result of conda downloading version 2.0.0b1. While this was an old beta version and the issue has been fixed upstream (https://github.com/conda-forge/matplotlib-feedstock/issues/86), we still have not tested the inline backend for 2.0.0 which will be a release with a lot of major changes, hence this PR should be made anyway. I am also partially undoing one of the changes made in #1709 which suppressed the output of the dependency installation from conda. This change was very puzzling to me since dependency info isn't that verbose. I ended up determining the cause of this issue because I reverted this change and was then able to see the dependency versions in the log. I could see suppressing this being necessary for the R packages in case they aren't cached and a wall of compiler output gets printed out, but I see no real justification to mute it for python packages, especially given that they will only be installed for two short profiles.
What type of PR is it?
Hot Fix
What is the Jira issue?
ZEPPELIN-1779
Questions:

Does the licenses files need update? No
Is there breaking changes for older versions? No
Does this needs documentation? No

Thanks @agoodm lgtm

LGTM

Is this a hotfix? CI passed so should this be merged ASAP?

+1 to merge it ASAP. It is a hotfix to fix the flaky test.

merging if no more comment - I'll wait to tomorrow morning.


Question about the scaling factor

Hello, I've found this work really interesting and I would like to ask a question about the scaling factor in your framework.
From the paper I can find the following paragraphs:
about training:

and inference:

So is the inferred 3D model mesh generated up-to-scale? In practice the scaling calibration during training is just used to improve shape reconstruction results, yet leaving the scale factor unknown during inference, isn't it?
Thanks in advance.

Yes. The scale factor is just used to avoid scale ambiguity during training(because the ground truth models have certain scales). During testing, it can be set to a random number (preferably within the range of the scale factors trained).

@bianwenjing many thanks for the clarification, I will close the issue then


feat(CBR): add support for the X-Correlation-Id header

PR summary

Added support for passing the standard X-Correlation-Id header in each request

Updated some swagger properties summaries and descriptions

PR Checklist
Please make sure that your PR fulfills the following requirements:

[x] The commit message follows the Angular Commit Message Guidelines.
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

Current vs new behavior
This enhancement adds support for passing the standard X-Correlation-Id header in each request. This is an optional header and it does not break backward compatibility.
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

Unit test result:

Integration Test result:

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


plutus-tx: support typeclasses and add some basic classes

Fixes #1109.
It turns out this works just fine. I'm sorry for putting you all through
the pain of not having typeclasses!
We can't use the classes from base, unsurprisingly, due to lack
of unfoldings for the instance definitions.
However, we can define our own replacements, which is a bit of
boilerplate but not too bad.
Delightfully, you seem to generally be able to get away with
newtype-deriving them:

We do handle newtype coercions, so the generated instance
definitions are actually fine.
They seem to be small enough that GHC always puts in an unfolding for
them even though we can't annotate them.

This is a little dicey, but seems to be okay so far.

The class operations themselves annoyingly don't have unfoldings, but we
can recreate the RHSs using GHC's functions. Antother annoyance is #978:
this bites us for e.g. the default method declarations in Eq, which
means that (==) and (/=) are mutually recursive! So you need to put
your Eq instances in a separate file from the final use site.
To demonstrate, I added Eq, Ord, and Functor and plumbed them
through. I think the result is a lot better!
We get a ~10% increase in script size and a comparable slowdown. I think
this is somewhat inevitable since we're not taking much advantage of
GHC's specializer, so we are paying a price from passing all the
dictionaries around.
TODO (but probably not in this PR):

Semigroup/Monoid
Applicative/Monad

With RebindableSyntax I think we could even do do notation!

Num?

I'm unsure whether we want this, given that Num is kind of a
dodgy class, but I would like to be able to use + and -...
Possibly we should define our own Num-like class.

It turns out this works just fine. I'm sorry for putting you all through the pain of not having typeclasses!

(Actually this is slightly unfair to me - it's only been feasible since the unfoldings work landed.)

I'm going to do a little bit of reorganizing and move the classes and instances into separate files, so don't merge for now.

Okay, ready for review again.

One annoyance with this is that we sometimes need to import the Haskell prelude qualified in order to e.g. fmap over some types which we don't have instances for in our own prelude.
I'm not really sure what to do there: I kind of don't want to add e.g. a Functor IO instance in our prelude, given that you can't use it in Plutus Tx...

One annoyance with this is that we sometimes need to import the Haskell prelude qualified in order to e.g. fmap over some types which we don't have instances for in our own prelude.

I think that's ok, it won't be something that hits new users right away

Verily:
michael@clipper:~/projects/iohk/plutus ❯ echo "(program 1.0.0 {(abs a (type) (lam x a x)) (con integer)})" | result/bin/plc evaluate --stdin
(lam x a x)


Terminal stuck on non 0 exit code

I'm not sure if this is by design or not, but I don't think this was the case before. It seems like whenever I get a non 0 exit code the shell I'm in exits. I don't think that was the case before.
Reproduction step:
➜ az login
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code XXXXX to authenticate.
^C
[process exited with code 1]

In the example above the tab hangs and I need to close it. After pressing ctrl-c I thought I would get back to the prompt, instead I now need to exit the tab, create a new one and navigate to folder again to continue working.
This happens with more than just az, but this was the easiest way to reproduce.
Environment:

Win32NT 10.0.19042.0 Microsoft Windows NT 10.0.19042.0
WSL2
Windows terminal 1.3.2651.0
Ubuntu 18.04

User error... apparently a set -e had made its way to a bash script I was sourcing as part of a process. Removing that line solved it.


make GetPaginatedStream page size/timeout configurable from settings.

Description
No response

https://github.com/river-build/river/pull/1454


I can't get setup.py to produce it, either.
Any ideas?
I want to use it to convert tmx into tsv for upload into a corset. Should that work?
Cheers,
Jon

Oh right I forgot to update the README after reorganising the package a bit.
Does python -m tmxutil --help work for you? It should work anywhere after pip installing the package, but also when you're current directory is the repository's root.

Great. That seems to work. Thanks!


Basic Template : Update to Evo recommendations

New Concepts:
declarative component support (new core feature)
completely async mock server module with promise init
use module bootstrap event for mock server instantiation
OPA component launcher with autoWait=true instead of iframe
no direct jQuery dependencies anymore
use of new modular core APIs instead of jQuery.sap.*
CSP compliance (no more inline scripts)

Change is a copy from openui5 project


test:SPP-11043-jmeter-tests

Description
To test the performance of our sites we needed to create some JMeter test cases and run them in the local application.
This PR pushes the test files and the csv results for future use.
The results can be found in graphical form using this link https://confluence.ons.gov.uk/display/SML/JMeter+Results
Type of change
Please delete options that are not relevant.

[ ] 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)
[ ] Technical Enhancements

Checklist:
If any of these are not completed, please explain why in the notes.
Definition of Done
Code and merges

[x] Code to be commented on where applicable
[x] Documentation updated where required
[x] Have considered non-functional requirements such as Security, Performance, Scalability, and Fault Tolerance
[x] I have linted the code

Testing

[x] All levels of acceptance test are passing (automated, integration, manual, accessibility, etc.)
[x] I have run the behave command to check the selenium behaviour tests pass locally
[x] Acceptance criteria met

Other Checks

[x] I have performed a self-review of my own code
[x] I have checked for spelling errors
[x] I have commented on my code, particularly in hard-to-understand areas
[x] My changes don't break anything unexpected
[x] I have checked and updated the security.txt file where required
[x] Up to date with the main branch
[ ] For a change that needs to be deployed in a release I have a commit with the fix:, feat: or BREAKING CHANGE:
tags and will copy this commit message to the squash
[ ] For a change that does not affect the deployed code I have added a commit with ci:, docs: or test:
depending upon which area of the solution was affected

Note when merging, squash commit must begin with one of the following tags:
"BREAKING CHANGE", "feat", "fix", "ci", "docs", "test"
Usage
BREAKING CHANGE: any change that breaks current functionality and may cause compatibility errors to users upgrading
E.G BREAKING CHANGE: refactored method x to take variable y as input (changed from variable z)
feat: A new feature
E.G feat: adding method x to future methods table
fix: A bug fix
E.G fix: amending page for method x to show correct release version
ci: Changes to our CI configuration files and scripts (Concourse)
docs: Documentation only changes
test: Adding missing tests or correcting existing tests

@jhmjam This change has files changed as "infinity" and doesn't show the affected files? I was expecting this PR to simply add the jmx files, update the README to explain the testing and store those csv results files that are for the shorter run tests.

Hi @gibbardsteve, yes the infinity happens when github finds the files are too large. The reason for this is the csv files.
The PR:

Adds the jmx files - Done
Update the README -pending (this is in confluence so I can just bring a snippet across to the readme)
Add csvs files that are shorter runs - I added the csv files that would fit (not trigger maximum github allowance). However, I cam remove longer runs to see if that fixes the issue which I will do today :)

DEPLOY_URL=https://d2i2yygqfon2um.cloudfront.net/
cloudfront_id=ENR964NEUT7WZ

DEPLOY_URL=https://d2i2yygqfon2um.cloudfront.net/
cloudfront_id=ENR964NEUT7WZ

Readme now added and infinity resolved :)

Done :)

DEPLOY_URL=https://d2i2yygqfon2um.cloudfront.net/
cloudfront_id=ENR964NEUT7WZ

DEPLOY_URL=https://d2i2yygqfon2um.cloudfront.net/
cloudfront_id=ENR964NEUT7WZ

DEPLOY_URL=https://d2i2yygqfon2um.cloudfront.net/
cloudfront_id=ENR964NEUT7WZ

DEPLOY_URL=https://d2i2yygqfon2um.cloudfront.net/
cloudfront_id=ENR964NEUT7WZ

DEPLOY_URL=https://d2i2yygqfon2um.cloudfront.net/
cloudfront_id=ENR964NEUT7WZ

DEPLOY_URL=https://d2i2yygqfon2um.cloudfront.net/
cloudfront_id=ENR964NEUT7WZ

DEPLOY_URL=https://d2i2yygqfon2um.cloudfront.net/
cloudfront_id=ENR964NEUT7WZ

DEPLOY_URL=https://d2i2yygqfon2um.cloudfront.net/
cloudfront_id=ENR964NEUT7WZ


Add Containerfile for OCP builds

Since we distribute oc-compliance as a binary in a container, let's add
the container file so it's easier to build it from upstream.

/lgtm


How do I make it work with ruby on rails backend?

I might be asking a rookie question but I just can't understand the whole flow of the oauth login with facebook.  Please provide some insights.

@sainath13 this is how I've set it up with Rails:

User authenticates in app, and retrieves an Access Token
POST access token, user ID and provider to my /users endpoint
Back-end attempts to fetch the user for that access token (using Koala gem)
If a user is retrieved, it is either created or fetched from the database, and returned
Otherwise 401

From there you can do your own token authentication — I use JWT but it may not be the best option. Up to you.

@Amnesthesia Thank you so much. I use devise gem. I was not able to understand the difference between server side oauth and client side oauth.


onCardIOCancel not working

onCancel function not calling. I think because of sendFailureTo function returns CDVCommandStatus_OK. Eitherway it returns to successCallback.
Thanks

@engincancan thanks for your report.
We're trying to turn over the task of maintaining this repo to the Cordova/PhoneGap community, as you folks have more directly relevant expertise than we do.
So if a change in the sendFailureTo function would solve this problem, then please submit that change as a Pull Request, and we'll be delighted to incorporate it into the repo.


weed version2.3.9 mount memory leak.

Sponsors SeaweedFS via Patreon https://www.patreon.com/seaweedfs
Report issues here. Ask questions here https://stackoverflow.com/questions/tagged/seaweedfs
Please ask questions in https://github.com/chrislusf/seaweedfs/discussions
example of a good issue report:
https://github.com/chrislusf/seaweedfs/issues/1005
example of a bad issue report:
https://github.com/chrislusf/seaweedfs/issues/1008
Describe the bug
A clear and concise description of what the bug is.
System Setup

List the command line to start "weed master", "weed volume", "weed filer", "weed s3", "weed mount".
OS version
output of weed version
if using filer, show the content of

OS
root@jp-op-admin03:~# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 9.6 (stretch)
Release:        9.6
Codename:       stretch
root@jp-op-admin03:~#
root@jp-op-admin03:~# uname -a
Linux jp-op-admin03 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux
root@jp-op-admin03:~#

Weed Version
"weed master", "weed volume", "weed filer", "weed s3"  used:
root@jp-cmn-seaweedfs01:~# /usr/local/seaweedfs/weed version
version 30GB 2.05 898db14 linux amd64
root@jp-cmn-seaweedfs01:~#

"weed mount" used:
root@jp-op-admin03:~# /usr/local/seaweedfs/weed version
version 30GB 2.39 742ab1e linux amd64
root@jp-op-admin03:~#

filer parameter:
# A sample TOML config file for SeaweedFS filer store
# Used with "weed filer" or "weed server -filer"
# Put this file to one of the location, with descending priority
#    ./filer.toml
#    $HOME/.seaweedfs/filer.toml
#    /etc/seaweedfs/filer.toml

####################################################
# Customizable filer server options
####################################################
[filer.options]
# with http DELETE, by default the filer would check whether a folder is empty.
# recursive_delete will delete all sub folders and files, similar to "rm -Rf"
recursive_delete = false
# directories under this folder will be automatically creating a separate bucket
buckets_folder = "/buckets"
buckets_fsync = [          # a list of buckets with all write requests fsync=true
        "important_bucket",
        "should_always_fsync",
]

####################################################
# The following are filer store options
####################################################

[leveldb2]
# local on disk, mostly for simple single-machine setup, fairly scalable
# faster than previous leveldb, recommended.
enabled = true
dir = "/data/seaweedfs/filer"

[redis2]
enabled = false
address  = "localhost:6379"
password = ""
database = 0

[redis_cluster2]
enabled = false
addresses = [
    "localhost:30001",
    "localhost:30002",
    "localhost:30003",
    "localhost:30004",
    "localhost:30005",
    "localhost:30006",
]
password = ""
# allows reads from slave servers or the master, but all writes still go to the master
readOnly = true
# automatically use the closest Redis server for reads
routeByLatency = true

[elastic7]
enabled = false
servers = [
    "http://localhost1:9200",
    "http://localhost2:9200",
    "http://localhost3:9200",
]
username = ""
password = ""
sniff_enabled = false
healthcheck_enabled = false
# increase the value is recommend, be sure the value in Elastic is greater or equal here
index.max_result_window = 10000

Need to make sure the weed version are consistent for all instances.
How to reproduce the leak? What kind of files, e.g., size, amount, etc. And what kind of operations?

all instances include master，volume，filer and s3 roles？the file size is 4MB and 20MB,running with qclond cos migration tools。

yes
Need a way to reproduce.  If possible, make a reproducible case via docker image or docker compose file.

you may want to try the dev version, which has some more memory fixes https://github.com/chrislusf/seaweedfs/releases/tag/dev
Should be good if just using the dev version for the weed mount

Just now,Im upgrade weed binary package from 2.05 to 2.39 with master,volume,filer,s3 roles and remount client with command line weed mount.i`m sure all roles running the same version 2.39,but memory leak Doesn't seem to be resolved。
Read-only scene，about 100 million files。

try the dev version https://github.com/chrislusf/seaweedfs/releases/tag/dev
Please run weed mount -cpuprofile=mount.cpu.pprof -memprofile=mount.mem.pprof to collect and share cpu and memory profiles.

Moving to qcloud? Is it cheaper?

root@jp-op-admin03:~# /usr/local/seaweedfs/weed- version
version 30GB 2.39 90677e1097e18567999d98436d8c1e8eba4cc611 linux amd64
the mount command line:
root@jp-op-admin03:~# /usr/local/seaweedfs/weed- mount -cpuprofile=mount.cpu.pprof -memprofile=mount.mem.pprof -filer <IP_ADDRESS>:8888 -dir=/seaweedfs1 >> mount.log 2>&1 &
root@jp-op-admin03:~# more mount.log
nohup: ignoring input
This is SeaweedFS version 30GB 2.39 90677e1097e18567999d98436d8c1e8eba4cc611 linux amd64
mount point owner uid=0 gid=0 mode=drwxr-xr-x
current uid=0 gid=0
I0414 17:27:12 23529 leveldb_store.go:41] filer store dir: /tmp/82efcb6c/meta
I0414 17:27:12 23529 file_util.go:23] Folder /tmp/82efcb6c/meta Permission: -rwxr-xr-x
I0414 17:27:12 23529 mount_std.go:220] mounted <IP_ADDRESS>:8888/ to /seaweedfs1
root@jp-op-admin03:~#
Hello,the profiles is default store dir: /tmp/82efcb6c/meta.   upload the tar file?

Let "weed mount" run until the memory grows, and then ctrl+c. The profile is "mount.mem.pprof" should be on current directory.

memory is not enough and the mount process state is D。the cos_migrate_tools process state is D 。moving to qcloud is not it cheap。because qcloud more stable than the current i used。 i think weed running on the iaas is a good idea

mount.mem.pprof.zip

can you try weed mount -cacheCapacityMB=0 ...?

If that does not work, run "weed -v=4 mount -cacheCapacityMB=0 ..." and send the verbose logs.

mount.mem.pprof.zip

what is the file mount.cpu.pprof?

mount_all.zip
sorry,download this file,please.

Seems the amount of files is the reason and I am adjusting code to adapt to that.
Is it possible to fs.meta.save in weed shell?
Would need it to reproduce the issue.

running the fs.meta.save command ,master node cpu useage is too high.What did this command do？

fs.meta.save
total 319627 directories, 35168268 files
meta data for http://localhost:8888/ is saved to localhost-8888-20210415-154748.meta

the meta data is saved to "localhost-8888-20210415-154748.meta". You can share the file?

the meda file size is 6.4GB. is very big.

Without the metadata file, I do not know how to verify the fix.
You can try the updated dev version again. https://github.com/chrislusf/seaweedfs/releases/dev

2.40 has more memory fixes. Please help to verify.

2.40 should have fixed it. Reopen this if not fixed.


ZXWriter.h file not found in ZXMultiFormatWriter.h

Hi Folks,
I was getting the following error message when simply tried to compile the project:
ZXingObjC/ZXingObjC/ZXMultiFormatWriter.h:17:9: 'ZXWriter.h' file not found.
tkx

Still a problem?


Update the site with needed dependencies for each extension

Description:
Each extension site needs to be updated with the necessary dependencies.

It is completed now..


Can we create a standalone executable?

Can we somehow create a standalone executable like glow and nnfusion?
https://github.com/pytorch/glow
https://github.com/microsoft/nnfusion

Thanks for your interests in TVM. Please create a thread at the discuss forum (https://discuss.tvm.apache.org/) and ask above questions there since they are not issues. Thanks.


Allow a user specified CSS variable to override the hex color of statusBar only

User can set a specific (ion-content) CSS variable to apply to statusbar background
Automatically calculates the threshold color and sets statusbar style (=text color) to white or black depending on background color applied

formula approximately from https://stackoverflow.com/questions/596216/formula-to-determine-perceived-brightness-of-rgb-color

Closing this as I will be implementing this functionality.


Use the fs block size for chunks if larger than 64 kb

See https://github.com/seanmonstar/futures-fs/issues/3 for the reasoning.
Although I recently realized that's a pessimization for more common block sizes like 4 KB.

Where does this make a difference in practice? I just checked my HFS filesystem on macOS and an ext4 filesystem on Linux; both reported 4 KiB blocks.

My tests in the futures-fs PR were made on ZFS.

Oh, you said that in the link, but I missed it.
Hmm. I'm not real excited about this change for a few reasons:

I'm not sure 128 KiB chunks would be faster even for you. The linked benchmark was with different code and didn't consider the chunk size http-serve currently uses. Maybe 64 KiB is the sweet spot. I'd want a benchmark showing 128 KiB vs 64 KiB (and perhaps other sizes) with this code.
Even if 128 KiB chunks are faster, I'm not sure it's worth the extra memory usage (particularly if there are many simultaneous clients, so a large multiplier). If anything, I think people might want to turn down the chunk size. 168MB/s is already quite fast. Why do you care if it could be a little faster, considering that there's a tradeoff involved?
I'm not sure the chunk size should match the filesystem block size. I.e., if 128 KiB chunks are better, would they also be better even on filesystems with 4 KiB blocks? I don't see much importance to matching that number, especially when the data is hot in cache (as it likely was in your benchmark). And if it's not in cache, we might get more improvement from using readahead (as this code did prior to c09444e) than from making larger reads. Larger reads might even be worse; if we have the next 4 KiB available in cache, better to get those in flight before hitting disk for more.

I'd be more inclined to just make this tunable, leaving the filesystem block size out of it.

I think it's best to postpone this for a while (and maybe investigate tokio-fs).


The complexity of the build toolchain of the TSDuck makes difficult to develop "new" plugins. So, if you add a simple null/pass plugin that only passes every packet (without any modification, and without parameters), then will be more easy to us to implement/test new plugin ideas. With this "template" we don't need to create new files, modify Makefiles, etc. Only do the coding inside the template plugin.
I'm sure this will be trivial for your.
Do you agree?
Regards.

Honestly, I do not like the idea at all.
In the programmer's guide, in the Developing TSP plugin, you have this guidelines:

Developing plugins for the TSDuck project
To develop a new plugin named foo, follow these steps:

Create a source file named tsplugin_foo.cpp in the tsplugins subdirectory.
On Linux or macOS systems, this new source file will be automatically recognized by the Makefile and the new plugin will be built.
On Windows systems, create a project file named tsplugin_foo.vcxproj in the msvc subdirectory. The fastest way is to copy another plugin's project file. Then, edit the file (this is an XML file) and replace the names of the project and source file. Finally, under Visual C++, add the new project in the solution (File / Add / Existing Project).

Otherwise, if you develop an independent plugin, you can start from the template in sample/sample-plugin.
This isn't that complicated.

To develop a new plugin named foo, follow these steps:

Create a source file named tsplugin_foo.cpp in the tsplugins subdirectory.

That's just all I need.
Thank you!


Change Cron to daily to allow vercel hobby projects

Description
With current setup, "vercel link" returns "Error: Hobby accounts are limited to daily cron jobs. This cron expression (*/10 * * * *) would run more than once per day. Upgrade to pro to unlock all Cron Jobs features on Vercel."
https://crontab.guru/#0_1_*_*_* = “At 01:00.”
Related Issues
None
Checklist

[x] My code follows the code style 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.
[x] I have updated the documentation, if necessary.
[ ] I have added tests that prove my fix is effective or my feature works.
[ ] New and existing tests pass locally with my changes.

Screenshots (if applicable)

Additional Notes

Great call, definitely want to support deploying this on Hobby plans!


Updated GTW.py

Have you read the Contributing Guidelines ?
Yes.
Description

Added better UI
Random Question Picker
Answers are no more case sensitive
Program now displays the correct answer if the user gets the question wrong
Game ends If the user makes three or more wrong attempts

Fixes #195
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code..

Thank you @Kushal997-das and @photon149 for reviewing my project and merging my PR. Looking forward to more such open-source contributions. 😄


Error: Server at <IP_ADDRESS>:11211 not available

I am running a website with 10k + concurrent connections.
since i updated node memcached with npm today on a debian machine, i am receiving
Error: Server at <IP_ADDRESS>:11211 not available for almost 75% of all calls.
I have no clue what it might be. I also had max value size errors, but those i have secured by setting the maxvalue setting.
I tried to increase the poolsize to 999999, but it did not help.
any ideas??

Ok my mistake. the size of values cached in memcache was increased to 500kb for every put.
mistake from another program.
this one can be closed

@holoduke Hello.
I just had the same problem. Memcached did not update, did not touch anything, everything worked fine until now.
Can you tell us more in detail, because of what was the error?
# service memcached status
● memcached.service - memcached daemon
   Loaded: loaded (/lib/systemd/system/memcached.service; disabled)
   Active: active (running) since Thu 2017-03-23 08:35:35 EDT; 10s ago
 Main PID: 1538 (memcached)
   CGroup: /system.slice/memcached.service
           └─1538 /usr/bin/memcached -m 64 -p 11211 -u memcache -l <IP_ADDRESS>

Mar 23 08:35:35 trampamp systemd[1]: Starting memcached daemon...
Mar 23 08:35:35 trampamp systemd[1]: Started memcached daemon.

LOG
Error: Server at <IP_ADDRESS>:11211 not available
at Client.memcachedCommand [as command] (/home/hello.com/node_modules/memcached/lib/memcached.js:306:70)
at Client.get (/home/hello.com/node_modules/memcached/lib/memcached.js:830:10)

# telnet <IP_ADDRESS> 11211
Trying <IP_ADDRESS>...
Connected to <IP_ADDRESS>.
Escape character is '^]'.
stats
STAT pid 1538
STAT uptime 876
STAT time<PHONE_NUMBER>
STAT version 1.4.21
STAT libevent 2.0.21-stable
STAT pointer_size 64
STAT rusage_user 0.025996
STAT rusage_system 0.006998
STAT curr_connections 5
STAT total_connections 8
STAT connection_structures 6
STAT reserved_fds 20
STAT cmd_get 0
STAT cmd_set 0
STAT cmd_flush 2
STAT cmd_touch 0
STAT get_hits 0
STAT get_misses 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 46
STAT bytes_written 15
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT malloc_fails 0
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evictions 0
STAT reclaimed 0
STAT crawler_reclaimed 0
STAT lrutail_reflocked 0
END

any updates on this ??!

any updates on this ??!


Seven character strings come back as a valid number?

2.2.0 :016 > number = GlobalPhone.parse "aaaaaaa"
 => #<GlobalPhone::Number territory=#<GlobalPhone::Territory country_code=1 name=US> national_string="2222222">

That is deeply weird.  Anyone know why or have a fix?

Ohhhhhh it's converting to E161.  Yarg!


Unable to access /app/.aws for configuring ECR credentials after 0.13.0 upgrade

Describe the bug
It seems like this upgrade has (maybe?) broken functionality for using an authentication script for ECR like the following:
apiVersion: v1
kind: ConfigMap
metadata:
  name: argocd-image-updater-authscripts
data:
  # The following script must have a newline at the end of the output to work correctly, so we explicitly echo the output
  # https://argocd-image-updater.readthedocs.io/en/stable/basics/authentication/#using-a-script-to-generate-credentials
  ecr-login.sh: |
    #!/bin/sh

    userpass=$(aws ecr --region {replace with your region} get-authorization-token --output text --query 'authorizationData[].authorizationToken' | base64 -d) && echo $userpass

To Reproduce
Steps to reproduce the behavior:

Upgrade to v0.13.0
Define the above snippet for the argocd-image-updater-authscripts ConfigMap.
Set the annotations on an application for a private ECR registry
See logs in the image updater service along the lines ofCould not set registry endpoint credentials: invalid script output, must be single line with syntax <username>:<password>

Shell into the pod and run the command directly and see the following output:
/ $ /scripts/ecr-login.sh

[Errno 30] Read-only file system: '/app/.aws'

Expected behavior
A clear and concise description of what you expected to happen.
Like the behavior in v0.12.2 this should be acceptable to run aws commands on the pod. Running this command locally does indeed output a single line that follows the username:password convention, but the issue is with the new securityContext definition on the container spec.
AWS:authorization-token

Additional context
Add any other context about the problem here.
Reverting back to v0.12.2 immediately fixed the issue, and logs do not return.
Version
Please tell us about the version you encountered the issue with
v0.13.0
Logs
Please paste any relevant logs here
time="yyyy-MM-ddTHH:mm:ssXXX" level=error msg="Could not set registry endpoint credentials: invalid script output, must be single line with syntax <username>:<password>" alias=* application=* image_name=*/* image_tag=* registry=REDACTED.dkr.ecr.us-west-2.amazonaws.com

Please note that the output should contain a newline character.
https://argocd-image-updater.readthedocs.io/en/stable/basics/authentication/#using-a-script-to-generate-credentials

Is this new as of v0.13.0?

the same here

@schlags @chapayevdauren thanks for reporting the issue. Are you referring to the following block, which was added in PR #600 ?
https://github.com/argoproj-labs/argocd-image-updater/blob/master/manifests/install.yaml#L189

You could probably also just configure the aws CLI to read/write configuration in a different location by setting the AWS_CONFIG_FILE environment to point to a read-write filesystem in the container, for example:
AWS_CONFIG_FILE=/tmp/.aws/config

To properly fix this, we might want to have an emptyDir mount for /app/.aws in the installation manifests.

Will it work if you change the file system attribute to readOnlyRootFilesystem: false?

I tested multiple configurations of the block initially (with this included) and had no luck.

FYI, I had the same issue and worked around it by adding HOME=/tmp before the command. I think this is because AWS CLI tries to write session information to ~/.aws/cli/cache.
HOME=/tmp aws ecr --region $AWS_REGION get-authorization-token --output text --query 'authorizationData[].authorizationToken' | base64 -d

FYI, I had the same issue and worked around it by adding HOME=/tmp before the command. I think this is because AWS CLI tries to write session information to ~/.aws/cli/cache.
HOME=/tmp aws ecr --region $AWS_REGION get-authorization-token --output text --query 'authorizationData[].authorizationToken' | base64 -d

I can confirm this works also when using gcloud.

i stumbled across this dealing with the same issue in a totally unrelated context
FYI @jannfis using a emptyDir solved it for my usecase perfectly
So i would recommend it for a long term solution in this project

This is still an ongoing issue even in v0.15.1. I can confirm adding HOME=/tmp fixes it but I agree with everyone that a definitive solution for this is needed.


Flutter Code Obfuscation - Android build issue  - classes or functions are not obfuscated

I see flutter code obfuscated properly for iOS build, however Android production build seems not working correctly . I have confirmed that Proguard or R8 modules runs when a production build is created. However, libapp.so contains classes and function names as is for the Android build.
Here are my settings to enable Proguard or R8.
build.gradle
buildscript {
    repositories {
        google()
        jcenter()

        // Additional repository for fabric resources
        maven {
            url 'https://maven.fabric.io/public'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'
        classpath 'com.google.gms:google-services:4.2.0'  // Google Services plugin
        classpath 'io.fabric.tools:gradle:1.26.1'          // Add fabric classpath
    }
}
allprojects {

buildTypes detail:
buildTypes {
        release {
            signingConfig signingConfigs.release

            minifyEnabled true
            useProguard true

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

Proguard Rules file:
#Flutter Wrapper
-optimizationpasses 5
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.**  { *; }
-keep class io.flutter.util.**  { *; }
-keep class io.flutter.view.**  { *; }
-keep class io.flutter.**  { *; }
-keep class com.google.android.gms.** { *; }
-keep class com.google.firebase.** { *; }
-keep class com.crashlytics.** { *; }

iOS mapping file example:
"RegistrationService","Zk" - RegistrationService is one of my service class, which is obfuscated as Zk.
"_registerUser@96127098","_Bgb@96127098" - register user method changed to _Bgb.
However, mapping.txt under outputs->bundle->release->mapping does not contains any obfuscation detail for Dart classes or methods. I do see some obfuscated code details, for plugin classes not included in pro-guard rules file, but it seems Dart code is left out.
com.tekartik.sqflite.operation.BaseReadOperation -> com.tekartik.sqflite.operation.BaseReadOperation:
    void <init>() -> <init>
    java.lang.String getSql() -> f
    java.util.List getSqlArguments() -> g
    com.tekartik.sqflite.SqlCommand getSqlCommand() -> b
    java.lang.Boolean getInTransaction() -> c
    boolean getNoResult() -> d
    boolean getContinueOnError() -> e
    java.lang.Boolean getBoolean(java.lang.String) -> b
    com.tekartik.sqflite.operation.OperationResult getOperationResult() -> a

If I open libapp.so file from app bundle, I see all my dart code function names and classes as is. I see
RegisterationService reference and _registerUser method as is.
For ex.
get:_registerUser@95127098K§
/api/registration.service.dart8KæèúRegistrationService8KÇì

Is there anything I missed or do I have to add any additional rules in pro-guard.rules file? Any feedback will helpful to have obfuscated build for Android.
Thank you.

Duplicate of https://github.com/flutter/flutter/issues/47049

Thank you @jonahwilliams for feedback.
Just to confirm, we basically need to downgrade to v1.9.1+hotfix.6 for now. The fix will available in the next release.


[google_maps_flutter] Fixed minor syntax error and added imports

Changelogs

Added a missing bracket at the end of the sample code.
Added missing imports to the same sample code.

Issue fixed
Syntax issue in the code sample to copy.
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the relevant style guides and ran the auto-formatter. (Unlike the flutter/flutter repo, the flutter/plugins repo does use dart format.)
[x] I signed the CLA.
[x] The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.
[x] I updated CHANGELOG.md to add a description of the change, following repository CHANGELOG style.
[ ] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making, or this PR is test-exempt.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Took note of the 2 unsuccessful tests: does it mean I only need to edit the // #startdocregion and // #enddocregion in /lib/readme_sample.dart?
Also, I marked it as # NEXT in the changelogs but let me know if I should increment the version instead.
I'll commit the fix when I'll know your answer.

Thanks for the contribution!

Took note of the 2 unsuccessful tests: does it mean I only need to edit the // #startdocregion and // #enddocregion in /lib/readme_sample.dart?

Yes, that's correct.
For the imports though: snippets aren't usually intended to be complete source files (that's what the example app is for), so we only include imports that are non-obvious. That's not the case here, so omitting them is intentional.

Also, I marked it as # NEXT in the changelogs but let me know if I should increment the version instead.

Yes, see the FAQ.


[WIP/POC] Libscroll Integration

Creating to track feedback on integration approaches
Might be a little more complicated than I thought, since each Revery scrollview needs it's own corresponding tracking object from libscroll to avoid bugs akin to this.
Usage follows 2 phases (pipelined):

Open for events
Locked for render

Most sane way I can think to do this is to add a Revery event that marks end of frame (signals everything to move from phase 1 to phase 2), which each scrollview itself subscribes to. Pan events are not directly used to transform the viewport, but are simply passed to libscroll scrollview instances. When an end-of-frame event comes in, the scrollview is told to mark end-of-frame and then the resulting transform directive is used much as how scroll events are handled now.
I'm a bit shaky on how some areas of Revery fit together so if any part of this sounds dumb just let me know :)

This would also want wheelEvents to be a little bit smarter than they are now, or separate events between precise pan and normal wheel events (would probably make incremental integration a bit easier too)

You also need to run ./update-lockfiles.sh to fix the CI.
Is there anything else you want reviewed here?

I guess the plan, but that sounds like @bryphe territory to me :)

Just wanted to make sure the plan for actually integrating it with scrollviews isn't blatantly stupid

to avoid bugs akin to this.

That bug report was resolved with the conclusion that it only applies to "old-style" events, not "new-style" events. Is this integration using old-style events? If so, why? That model does seem pretty broken.

to avoid bugs akin to this.

That bug report was resolved with the conclusion that it only applies to "old-style" events, not "new-style" events. Is this integration using old-style events? If so, why? That model does seem pretty broken.

That bug was caused by the driver emitting scroll events for "fling", basically where if you start a fling then move the cursor over some other scrollview the first one will stop and the new one will spontaneously start moving. My original plan was to simply add libscroll at the top level and integrate with the render loop, but if it ignores what scrollview the cursor is currently over then a similar bug would occur

Oh, I see, so that bug is just in reference to needing separate tracking objects? So why is the two-phase approach necessary?

The two phase approach allows interpolating/extrapolating events properly (avoids jitter from misaligned or conflicting input/output refresh rates)
It would theoretically be possible to do simply with timers within libscroll, but that seemed a little janky/unecessary (makes usage a lot less predictable)
It basically just tells libscroll "OK, I'll be asking for the translation required for the next frame", then allows calling the functions to get that translation idempotently

Could it not also use an external timing source, with the current time being passed in on each call?

Could it not also use an external timing source, with the current time being passed in on each call?

It definitely could, that seemed like it would expose more of the inner workings than felt convenient for consumers to use. Would that also include the prediction/overshoot period or should that be tacked on at the end of the timestamp given?

It definitely could, that seemed like it would expose more of the inner workings than felt convenient for consumers to use.

The two-phased approach seemed more like exposing implementation details to me, but then I'm still not sure how that would work. Time on the other hand is an inherent part of the model.

Would that also include the prediction/overshoot period or should that be tacked on at the end of the timestamp given?

I don't know what any of that means :) Why is prediction needed?
I'm sure you can guess by now that I haven't followed the earlier discussion all that closely. Apologies for sounding like I have no clue what you're talking about, but I mostly don't. So please don't feel like you have to explain everything in excruciating detail if you don't want to. I'm sure @bryphe will be able to give just as good feedback with much less effort needed on your end.

It definitely could, that seemed like it would expose more of the inner workings than felt convenient for consumers to use.

The two-phased approach seemed more like exposing implementation details to me, but then I'm still not sure how that would work. Time on the other hand is an inherent part of the model.

Would that also include the prediction/overshoot period or should that be tacked on at the end of the timestamp given?

I don't know what any of that means :) Why is prediction needed?
I'm sure you can guess by now that I haven't followed the earlier discussion all that closely. Apologies for sounding like I have no clue what you're talking about, but I mostly don't. So please don't feel like you have to explain everything in excruciating detail if you don't want to. I'm sure @bryphe will be able to give just as good feedback with much less effort needed on your end.

No worries lol, it's a surprisingly deep subject.
Doing prediction is primarily for touchscreens, but should help make trackpads feel ever so slightly snappier. This basically tries to estimate where a touch would actually be mid way through the next frame's display period, to try to keep the delta from the onscreen content to the actual touch point as low as possible (theoretically zero if scroll velocity is constant.) A nice example of this in action (as far as I can tell) is microsoft surface tablets. From what I can see, they do some of this prediction to keep them as aligned as possible with the given touch point. Android doesn't, which leads to spacial lag (even if the actual temporal lag is imperceptible)
The two phase thing is ideally to allow users to do a minimum of their own math, just say how long frames usually last, how long until the next one will be displayed on screen, and then call mark_frame() every time a render loop happens so libscroll can do its magic. I could expose a way of asking to sample(timestamp) but that would force the consumer (in this case Revery) to do all the prediction math manually and understand the mechanics behind trying to do spacial prediction

Ah, I see. Thanks for explaining! I think the iPad also does a great job with the Apple Pencil.
So the prediction period then is basically just the time between user action and display response? And the only variable there is render time/frame rate?
If so I still don't understand why phases are needed. If for every frame the client asks "give position at this time", can the server not assume this call happens exactly once per frame and estimate the frame rate based on that? And in the rare case that's not true, or the client can provide a better estimate, it can do so using an optional argument?

Ah, I see. Thanks for explaining! I think the iPad also does a great job with the Apple Pencil.
So the prediction period then is basically just the time between user action and display response? And the only variable there is render time/frame rate?
If so I still don't understand why phases are needed. If for every frame the client asks "give position at this time", can the server not assume this call happens exactly once per frame and estimate the frame rate based on that? And in the rare case that's not true, or the client can provide a better estimate, it can do so using an optional argument?

Good point, thinking about it I've come around to the idea of having a requested timestamp be provided by the consumer (especially around VRR cases and the like, so I can step animations by a precise delta instead of trying to speculate) for how to sample. It also probably allows for way easier testing/mocking on my part to have that be the case.
I can try getting that in place a bit more tonight probably.
Question: what would this look like inside of Revery? IE do elements in revery know when they're about to be rendered such that they could know when to sample?

Yeah, I think the rendering would be driven by the element itself in this case, much like how we do animation:
https://github.com/revery-ui/revery/blob/4ca3483c1f1d2d955ac46846bffc8aa54acb7c7c/src/UI_Hooks/Revery_UI_Hooks.re#L17-L19
This will continuously trigger a re-render as long as ~active is true, and returns the time to be used in the rest of the render function. The animations in Revery are completely pure functions.

Yeah, I think the rendering would be driven by the element itself in this case, much like how we do animation:
https://github.com/revery-ui/revery/blob/4ca3483c1f1d2d955ac46846bffc8aa54acb7c7c/src/UI_Hooks/Revery_UI_Hooks.re#L17-L19
This will continuously trigger a re-render as long as ~active is true, and returns the time to be used in the rest of the render function. The animations in Revery are completely pure functions.

Oh very cool, I'll try to look into it a bit more tonight I guess, since that example almost perfectly fits how the library itself models things (save for events/correction and such, but those are silent here)

Those hooks only get called after all input events have been serviced right? Or are they called sometimes in the middle?

I'm not entirely sure, but the application loop certainly looks like it does:
https://github.com/revery-ui/revery/blob/4ca3483c1f1d2d955ac46846bffc8aa54acb7c7c/src/Core/App.re#L210-L250


Content in ipython startup files are not loaded in debug mode.

Issue Report Checklist

[x] Searched the issues page for similar reports
[x] Read the relevant sections of the Spyder Troubleshooting Guide and followed its advice
[ ] Reproduced the issue after updating with conda update spyder (or pip, if not using Anaconda)
[ ] Could not reproduce inside jupyter qtconsole (if console-related)

[x] Restarted Spyder
[ ] Reset preferences with spyder --reset
[ ] Reinstalled the latest version of Anaconda
[x] Tried the other applicable steps from the Troubleshooting Guide

[x] Completed the Problem Description, Steps to Reproduce and Version sections below

Problem Description
I have some import commands and functions in the .ipython/profile_default/startup directory. They are normally loaded in the spyder ipython console, except when I use debug mode. Is this expected behavior/ I think it would be great to have those function loaded, or at least be able to enable it in the settings (maybe there is a way to do it that I do not know about (?))
What steps reproduce the problem?

Create a file import.py inside the .ipython/profile_default/startup
Start debug mode in spyder.
Call any package imported or function defined in the import.py script

What is the expected output? What do you see instead?
The console returns that it does not recognize the command given (the function or package).

## Versions
<!--- You can get this information from Help > About Spyder...
or (if Spyder won't launch) the "conda list" command
from the Anaconda Prompt/Terminal/command line. --->

* Spyder version: 5.4.3  (conda)
* Python version: 3.10.11 64-bit
* Qt version: 5.15.2
* PyQt5 version: 5.15.7
* Operating System: Linux 5.19.0-32-generic

### Dependencies
<!---  I think you could achieve that by using the current_namespace kwarg of the debugfile function (the function call that gets executed in the IPython console when you debug). For that you will need to run a manually modified debugfile call in the IPython console. So something like:
debugfile('<path to your file>', wdir='<path to the working directory dir>', current_namespace=True)

A preview of the workaround:

Thinking about this, seems to me that this is/should be a preference? What do you think @ccordoba12? I remember being able to set things to run using the console current namespace but maybe that only has been working for normal file runs and not on debug runs?

Thinking about this, seems to me that this is/should be a preference? What do you think @ccordoba12? I remember being able to set things to run using the console current namespace but maybe that only has been working for normal file runs and not on debug runs?

Well, if you go to the menu
Run > Configuration per file

and then select Run file with custom configuration and Run in console's namespace instead of an empty one

Spyder will set current_namespace=True in debugfile:

And about what @Miguel-LlamasLanza said:

I have some import commands and functions in the .ipython/profile_default/startup directory. They are normally loaded in the spyder ipython console, except when I use debug mode. Is this expected behavior

Yes, it is. We don't load files in that directory while debugging.

I think it would be great to have those function loaded, or at least be able to enable it in the settings (maybe there is a way to do it that I do not know about (?))

It probably is but we don't have time to do implement right now, sorry. So for now you can follow @dalthviz's advice about starting the debugger in the console's namespace
Or you could use a simpler solution to what you want, which is setting the lines you'd like to run in the debugger preferences:

Thank you @dalthviz and @ccordoba12 for your answers.
Both workarounds work fine,
I personally prefer the option of putting all my lines in the debugger preferences (i.e. copying what I have in the .ipython/profile_default/startup/import.py file in there). It works even if I am defining functions there (I did not need to separate each line with semicolon, and it still worked)


feat: add support for check extinctions in subfolder

There are limits in https://github.com/launchdarkly/ld-find-code-refs/blob/main/search/search.go#L16-L23
However, if developer writes a helper around feature flagging, it might be possible that check can happen only on one package.
Then checking all codebase could potentially stops before checking the real code. Targeting directly to that subfolder can avoid false negative.

In the link I provided is maxFileCount = 10000 which is not sufficient for our project, because we have more than 10k files (we have also vendor folder commited for some reasons).
So I was worried, that scan might end up with 10k files and will not check some of them, which might contain references.
But focusing the run to be executed only on pkg folder would narrow down run to only <2k files.
I see that project attribute you are talking about is more like a monorepo solution. However might be used for this too.

@arxeiss Thank you for the additional information about your usage. One thing I would recommend is setting up an .ldignore file to ignore scanning vendor files https://github.com/launchdarkly/ld-find-code-refs/blob/main/docs/CONFIGURATION.md#ignoring-files-and-directories

Ah, interesting. Thanks. Then this PR could be closed


Is it possible to get current view inside dayHeaderFormat in v2?

dayHeaderFormat should have view variable as second parameter?
dayHeaderFormat: function(date, view) {

}

What about getOption('view') or getView() methods?

I tried this:
				dayHeaderFormat: function(date) {
					console.log( calendar.getview() );
				}

But is not working: Uncaught TypeError: Cannot read properties of undefined (reading 'getview')

Indeed, the calendar is not yet defined at the time of the first call to the function. But you can add an if and you know which view is initially active:
let calendar;
calendar = new EventCalendar(document.getElementById('ec'), {
    view: 'timeGridWeek',
    dayHeaderFormat: function(date) {
        if (!calendar || calendar.getView().type == 'timeGridWeek') {
            // timeGridWeek
        } else if (calendar.getView().type == 'timeGridDay') {
            // timeGridDay
        } else {
            // and so on...
        }
    }
};

Works! Thank your for the help.
I have replaced FullCalendar with your library.


Redirecting cross-language transforms content

Please add a meaningful description for your change here
@chamikaramj
These changes redirect the "Cross-language transforms" page:

Moved documentation/patterns/cross-language to documentation/sdks/java-multi-language-pipelines.
Retitled the cross-language page, which documents Java multi-language pipelines, to match the Python content.
Added a note that the page is a work in progress.
Redirected documentation/patterns/cross-language to the new Java multi-lang quickstart. To test, try this link on the staging server: http://apache-beam-website-pull-requests.storage.googleapis.com/16504/documentation/patterns/cross-language/index.html
Updated menus and links accordingly.
Eventually we need to fix the Java multi-lang content: https://issues.apache.org/jira/browse/BEAM-13654

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

[x] 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.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

Thanks. LGTM.