[ZDF] Download fails for FHD and UHD videos with HTTP Error 403

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm reporting that yt-dlp is broken on a supported site
[X] I've verified that I'm running yt-dlp version 2023.07.06 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and I'm willing to share it if required

Region
Germany
Provide a description that is worded well enough to be understood
When attempting to download videos from ZDF https://www.zdf.de/, which are available in FHD or UHD, the extractor provides formats that are not downloadable. When trying to download these formats, an error occurs: HTTP Error 403: Forbidden. You can identify these problematic formats using the following method: Unavailable formats contain "http_na_na" in their name, and their resolution is marked as "unknown." I tried to download all of them and none worked. The output can be observed by running yt-dlp with the -F option, accessible via this PasteBin link: https://pastebin.com/4SybdgyY. As previously mentioned, I attempted to download all formats with "http_na_na" in their name and an "unknown" resolution. The corresponding output is available here: https://pastebin.com/9z1DC0v7.
Upon running yt-dlp with no arguments, it automatically selects an inaccessible format by default. This issue has been persistent since version yt-dlp 2023.02.17. Versions prior to yt-dlp 2023.01.06 function correctly.
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[X] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['-vU', 'https://www.zdf.de/serien/killing-eve/neue-allianzen-100.html']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>[b532a3481] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg N-110165-g9a245bdf5d-20230403 (setts), ffprobe N-110165-g9a245bdf5d-20230403
[debug] Optional libraries: Cryptodome-3.18.0, brotli-1.0.9, certifi-2023.05.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-11.0.3
[debug] Proxy map: {}
[debug] Loaded 1855 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version<EMAIL_ADDRESS>Current version<EMAIL_ADDRESS>Current Build Hash: 5ff3e702171a50175c34397494e2d18ce35d771c2110b1e59bd173ec2fb352aa
yt-dlp is up to date<EMAIL_ADDRESS>[debug] Using fake IP <IP_ADDRESS> (DE) as X-Forwarded-For
[ZDF] Extracting URL: https://www.zdf.de/serien/killing-eve/neue-allianzen-100.html
[ZDF] neue-allianzen-100: Downloading webpage
[ZDF] neue-allianzen-100: Downloading JSON content
[ZDF] neue-allianzen-100: Downloading JSON metadata
[ZDF] 230414_0140_sendung_kev: Downloading m3u8 information
[ZDF] 230414_0140_sendung_kev: Downloading m3u8 information
[ZDF] 230414_0140_sendung_kev: Downloading m3u8 information
[ZDF] 230414_0140_sendung_kev: Downloading m3u8 information
[ZDF] 230414_0140_sendung_kev: Downloading m3u8 information
[ZDF] 230414_0140_sendung_kev: Downloading m3u8 information
[ZDF] 230414_0140_sendung_kev: Downloading m3u8 information
[ZDF] 230414_0140_sendung_kev: Downloading m3u8 information
[debug] Sort order given by extractor: tbr, res, quality, language_preference
[debug] Formats sorted by: hasvid, ie_pref, tbr, res, quality, lang, fps, hdr:12(7), vcodec:vp9.2(10), channels, acodec, size, br, asr, proto, vext, aext, hasaud, source, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] 230414_0140_sendung_kev: Downloading 1 format(s): http-h264_aac_mp4_http_na_na-fhd-1
[debug] Invoking http downloader on "https://nrodlzdf-a.akamaihd.net/de/zdf/23/04/230414_0140_sendung_kev/1/230414_0140_sendung_kev_a1a2_6628k_p61v17.mp4"
ERROR: unable to download video data: HTTP Error 403: Forbidden
Traceback (most recent call last):
  File "yt_dlp\YoutubeDL.py", line 3363, in process_info
  File "yt_dlp\YoutubeDL.py", line 3084, in dl
  File "yt_dlp\downloader\common.py", line 461, in download
  File "yt_dlp\downloader\http.py", line 377, in real_download
  File "yt_dlp\downloader\http.py", line 129, in establish_connection
  File "yt_dlp\YoutubeDL.py", line 3863, in urlopen
  File "urllib\request.py", line 531, in open
  File "urllib\request.py", line 640, in http_response
  File "urllib\request.py", line 569, in error
  File "urllib\request.py", line 502, in _call_chain
  File "urllib\request.py", line 649, in http_error_default
urllib.error.HTTPError: HTTP Error 403: Forbidden

@seproDev any idea if something else is needed for the formats sourced from the Android API endpoint?

As far as I can tell, this is a geo restriction. The HTTP downloads only work with a German IP, while HLS downloads seem to work from everywhere. Currently, HTTP is ranked higher than HLS.


Currency display

How to display a US dollar sign to the left of the left and right values below the slider?

Nvm, turns like this component doesn't output numbers, it's a separate <div/> below which I can edit.


Appveyor CI

Work in progress..

I'm going to merge this now to kick appveyor into action (can't test the configuration otherwise).


Provide A Way To Access flavor and count From The LcThread Struct

Is your feature request related to a problem? Please describe.
I'm having trouble accessing the flavor and count field, since they are not public.
https://github.com/Arsynth/schnauzer/blob/7a8a32efaeb40f4881eea6deff476263b9a87f0d/src/types/load_command/thread_command.rs#L11-L16
Describe the solution you'd like
Make flavor and count field public, like how the other structs are (or provide an alternative way to access these values).
https://github.com/Arsynth/schnauzer/blob/7a8a32efaeb40f4881eea6deff476263b9a87f0d/src/types/load_command/entry_point_command.rs#L11-L14
Describe alternatives you've considered
I tried using .all_fields(), but it returned an empty Vec...
Additional context
I'm currently trying to create a tool that can print information about a macOS ARM64 core dump, such as printing out the entire register state from LC_THREAD (I need a way to compare a properly created core dump from a broken one).

I'm closing this in favor of a PR i opened: https://github.com/Arsynth/schnauzer/pull/2


Added green button workshop

All green button labs are under sandbox-labs, including one that is not used at this time (install-mgmt-agent-oca);
Green button index.html and manifest.json are under workshops/sandbox

Preview: https://yixinwei-oracle.github.io/jms-livelabs-staging-developer/java-management/workshops/sandbox/index.html
The content is same as the previous preview link
@enhl-orc @sktruong-oracle

Self QA done
self_QA_sandbox_workshop.pdf

Although self-QA points to cloud-login-livelabs2.md, but I've checked cloud-login-livelabs.md should be the right file


Install error: cblas.h file not found

Hi I'm having installation error with the most recent update (didn't happen before). Getting the error message below:
In file included from src/proj.cpp:11:
src/proj.h:22:10: fatal error: 'cblas.h' file not found
#include <cblas.h>
^
1 error generated.
make: *** [proj.o] Error 1

@jingsliu thanks for reporting. Removed it in https://github.com/facebookresearch/StarSpace/commit/08b1460636c4a27d3f560f0250ffe9bada0c7ed4 as it was unnecessary.


Proxy release 2024-10-10

Proxy release 2024-10-10
Please merge this Pull Request using 'Create a merge commit' button

Relevant PRs:

#8823
#9277
#9266
#9297
#9324
#9086
#9298

Reviewed for changelog


ENH: add tukeykramer to scipy.stats

Reference issue

Implements the Tukey-Kramer test as a part of "A Solid Foundation for Statistics in Python with SciPy". See mdhaber#26 for more information.
What does this implement/fix?

This PR is the addition of the Tukey-Kramer test (sometimes referred to as Tukey's HSD, Tukey's range test, and others). This distribution is reliant on a inverse CDF of the Studentized Range Distribution, which has proven to be the most difficult part of the test to implement.
As it stands, I have wrapped a Fortran method obtained from a research paper, but its permissions to be used in SciPy have not yet been verified. We are in the process of contacting the authors and discussing this source on the Scipy-Dev mailing list. In the event that it is not feasible to code our own similarly efficient implementation of this calculation or to wrap an external routine, we can fall back on interpolation of pre-calculated values.
See the Engineering Statistics Handbook: <IP_ADDRESS>. | Tukey's method for more details in regards to what the test entails.
Additional information

I will open this as a draft PR until we are able to finalize the method for the computations for the critical value, q, of the studentized range.
To Do:

[x] add add'l sources of tests (Currently have SAS, need to add R).
[x] determine if it is feasible to obtain and return a p-value like some implementations
[x] add p-value computation
[x] documentation
[ ] addition of the studentized range distribution in gh-13732
[ ] finalize how the output of the function should present itself

@swallan I found the statistic used to generate p-values here.

calculate the standard error np.sqrt(mse*len(args)/nsamples)
calculate the t-statistic as the difference between means divided by the standard error
the p-value is the SF of the studentized range distribution evaluated at the t-statistic
You can check it against the R TukeyHSD using their data:

l = [26, 30, 54, 25, 70, 52, 51, 26, 67, 27, 14, 29, 19, 29, 31, 41, 20, 44]
m = [18, 21, 29, 17, 12, 18, 35, 30, 36, 42, 26, 19, 16, 39, 28, 21, 39, 29]
h = [36, 21, 24, 18, 10, 43, 28, 15, 26, 20, 21, 24, 17, 13, 15, 15, 16, 28]

I computed the studentized range distribution CDF (k = 8, nu = 10) at q = 6.87 using three integration methods with varying tolerances/precision to estimate the accuracy. I decided to leave the axes unlabeled because short axis labels aren't descriptive enough.

"dblquad" is integration using scipy.integrate.dblquad, "mp-ts" is mpmath.quad using the "tanh-sinh" method, and "mp-gl" is mpmath.quad with "gauss-legendre".
The horizontal axis is what I think of as the "tolerance". 6 represents 1e-6, etc... For "dblquad", I passed this value in as the abstol, for mpmath, this is the number decimal digits of precision used in calculations (e.g. for 6, mp.dps=6). (There is not a direct connection between a tolerance passed to dblquad and precision used in mpmath. They mean different things, but we're just interested in trends.)
The vertical axis is what I think of as an error estimate - but it is not the error estimate provided by the quadrature routine. Considering mpmath.quad with mp.dps=19 to be the "ground truth", the vertical axis is the difference between the CDF calculated by the given method at a given "tolerance" level and the "ground truth" CDF. For example, you can see that with tolerance 1e-12, dblquad agrees with "ground truth" to about 14 decimal places.
Two important things:

The two mpmath methods agree with each other, and the error estimate continues to decrease as the mpmath precision is refined. This is a good indication that the integral is converging - presumably to a correct value - as the precision is refined.
The error estimate for dblquad is ~2e-12 even when dblquad is passed atol=1e-6. The error estimate stops improving after a tolerance of 1e-10 is passed; at that point, the error estimate is pretty close to machine precision.

Conclusions: I think we can use mpmath with fine precision as ground truth, and if that's right, dblquad seems to be quite accurate. I will ask one of you to do a larger scale test, though, to confirm. (I can provide the code I have to help you get started.)
@swallan the plan is to have @DominicChm add the studentized range distribution in a separate PR because it is useful on its own and because it will help simplify the review process. I do hope we get permission to use the Fortran code, and if so we can replace the inner workings of that distribution later, but for now let's proceed assuming that dblquad is good enough.

This is starting to get into an area where I'm not sure scipy needs to duplicate functionality that's already in statsmodels.
statsmodels has qsturng in Python copied from a license compatible 3rd party python package. It has some limitation on the range of supported p-values.
I don't know how that compares with the fortran version. If scipy gets a good implementation of the distribution, then statsmodels would reuse it.
Related issue in statsmodels is when comparing all treatments to a control. A good implementation of the distribution of the test statistic in that case is also not trivial.

statsmodels has qsturng in Python copied from a license compatible 3rd party python package. It has some limitation on the range of supported p-values.
I don't know how that compares with the fortran version. If scipy gets a good implementation of the distribution, then statsmodels would reuse it.

Hi @josef-pkt, thanks for the info.
I assume you are referring to the interpolation method used here.
We're working to get permission from the copyright holder for the Fortran version, but in the meantime, we are adding our own computation of the studentized distribution cdf. This mitigates the limitation of small p-value range. It should be added as a PR concurrent to this one soon, if you are interested in taking a look.

Somehow some changes to doc/sphinxext got committed here. We'll need to fix that like here.

Thanks @swallan. I'll take a look.

Just commenting on the representation of the results/objects. I am more than in favor of having such discussions 😃 we should just ensure we come to an agreement about how to do it in general. I have this issue #14022 open for this question.

@tupui  do you mean that if (and only if) the extension is loaded, then the output would be "rich", like a tabular representation? (Otherwise, it would be something boring like TukeyHSDResult(statistic = ..., pvalue = ...)?)
I think what we are talking about here, though, could be default behavior. We're talking about making the __repr__ method of TukeyHSDResult similar to that of scipy.optimize.optimize.OptimizeResult:
>>> from scipy.optimize import minimize
>>> minimize(lambda x: x**2, 1)
      fun: 5.5507930986288555e-17
 hess_inv: array([[0.5]])
      jac: array([4.32220232e-13])
  message: 'Optimization terminated successfully.'
     nfev: 6
      nit: 2
     njev: 3
   status: 0
  success: True
        x: array([-7.45036449e-09])

There is a spectrum of "rich object representation", and I think that this issue (gh-13002) and gh-14022 are somewhat far apart on that spectrum. Here, we're proposing plain-text without substantial extra computation; gh-14022 is about graphics with a lot of extra computation. From that standpoint, do you still think that gh-14022 needs to be settled to agree on something here?

Having textual information is fine without further discussion.
I just wanted to start a larger discussion about rich (textual or more complex) representations. It would be good if we could define and enforce a way to represent objects. Then when we add an object, we should also add a way to visualize it which should be consistent across the library.

I will squash merge

Sounds good, I think that's appropriate since it's automatic and doesn't require and history-cleaning.

I will squash merge

Sounds good, I think that's appropriate since it's automatic and doesn't require and history-cleaning.
Thank you for your careful review and comments!

Merged, thanks @swallan for the great work and @mdhaber for the thorough review!

Thanks @swallan @tupui!


Update flannel daemonset

Addresses having stuck in pod queue in Kubernetes 1.12.x
Fixes #170

Just an FYI that I also tested this under Kubernetes 1.11.x and it works as well.

Pull Request Test Coverage Report for Build 438

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 46.465%

Totals

Change from base Build 435:
0.0%

Covered Lines:
414

Relevant Lines:
891

💛  - Coveralls

Thanks for the heads up on missing that section in the Multus daemonset, appreciate it Tomo!


Only extend angular eslint in app folder

Fixes some errors on e2eTests (#654).

Coverage remained the same at 70.024% when pulling 9fcb16740483482dfa4d98c250c7093500fd406d on ynurmahomed:eslint into 00d992519f77f2ba34d06cd5c195aaede20a2e16 on esaude:master.

Alright I'll leave it as it is.


Add simple typescript definition

This definition covers the case with objects only as if it's an identity function, which should be its intended use-case. For anything else there should at least be something that strips the input of its callability, but I don't think Omit<T, '()'> is a thing. (Yes, they do understand new, but as far as I know there is no formal interface for describing what it does.)

That... can't be my fault.

Thanks for creating a TypeScript definition. 🙌 Can you follow this styleguide?
Some examples:

https://github.com/sindresorhus/semver-regex/commit/039944bb5b3876913171b895488874b5c200e458
https://github.com/sindresorhus/global-dirs/commit/0aae4d64887f77af94c4fb7ca12aa9f93c0a8291
https://github.com/sindresorhus/md5-hex/commit/bbbfeff840f26973fbffc16d4863ae6d120079f3

I don't like some of its choices but I will do it.


features

Hi,
how about theses features?

deleting user?
tos and privacy policy (none, one or both), now if I only want one the other doesn't show
when login via facebook, it doesn't show choice between accounts, like google did
how can I change the languages?

thanks

Hi, Thanks for listing the features. I've added a method for deleting a user in v1.0.1. I'll check for the rest soon :)


StateNotifier lost state when parent provider refresh

I have been trying to work out a solution for it but no luck. The key problem here is when you have a StateNotifier that depends on another provider, A fresh from the parent provider will cause the StateNotifier to be regenerated and result in existing state lost. I will use a simple example to explains my problem.
Here are the providers:
class Pair {
  final int parentValue;
  final int childValue;

  Pair({required this.parentValue, required this.childValue});

  Pair copyWith({int? parentValue, int? childValue}) {
    return Pair(
        parentValue: parentValue ?? this.parentValue,
        childValue: childValue ?? this.childValue
    );
  }
}

class PairNotifier extends StateNotifier<Pair> {
  // parentValue comes from counterProvider but childValue is maintained in existing notifier
  PairNotifier(int parentValue): super(Pair(parentValue: parentValue, childValue: 0));

  Pair increment() {
    final value = state.childValue + 1;
    state = state.copyWith(childValue: value);
    return state;
  }
}

final counterProvider = StateProvider((ref) => 0);

final pairStateProvider = StateNotifierProvider<PairNotifier, Pair>((ref) {
  final parentValue = ref.watch(counterProvider);
  // when counter is updated, PairNotifier is regenerated therefore childValue is lost.
  return PairNotifier(parentValue);
});

A real world case might be quite differentIs but this should be enough to deliver the idea. I would to know if there is a way to preserve the existing state when all its' parent providers refreshed.
Remaining code:
void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return ProviderScope(
      child: MaterialApp(
        title: 'Flutter Demo',
        theme: ThemeData(
          primarySwatch: Colors.blue,
        ),
        home: const MyHomePage(title: 'Flutter Demo Home Page'),
      ),
    );
  }
}

class MyHomePage extends ConsumerStatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends ConsumerState<MyHomePage> {

  void _incrementCounter() {
    // counterProvider updated cause refresh.
    ref.read(counterProvider.notifier).state++;
  }

  @override
  Widget build(BuildContext context) {
    final pair = ref.watch(pairStateProvider);
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              '${pair.childValue}',
              style: Theme.of(context).textTheme.headline4,
            ),
            ElevatedButton(onPressed: () {
              ref.read(pairStateProvider.notifier).increment();
            }, child: Text("Click to update childValue"),),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: const Icon(Icons.add),
      ),
    );
  }
}

That's expected. It's part of how ref.watch works
If you don't want that, don't use ref.watch and instead use ref.listen

Thanks @rrousselGit  for your quick response.
I'm not quite sure how I can achieve it with ref.listen, could you please provide an example?

Isn't it a good idea to return the state with ref?
StateNotifierProvider<Counter, int>((ref, state) {}

@rrousselGit ref.listen simply doesn't work in my case especially when I need to watch multiple providers . Is there a better solution? The current workaround that I can think of is to have the state in a top provider and have another viewmodel provider to watch this state provider. Something like:
final counterProvider = StateProvider((ref) => 0);

final stateProvider = StateProvider((ref) => Pair(0,0));

class ViewModel {
  // parentValue comes from counterProvider but childValue is maintained in existing notifier
  ViewModel(Pair state, StateController controller)

  void update() {
    controller.state = Pair(1,1);
 }

final pairStateProvider = StateProvider<Pair>((ref) {
  final parentValue = ref.watch(counterProvider);
  final controller = ref.watch(stateProvider.notifier);
  return ViewModel(controller.state.copyWith(parentValue: parentValue), controller);
});

But honestly I really don't want to do it this way because that would mean I need to give up StateNotifier which should be a great class to use.

You can listen to multiple providers too. I don't see the issue

As usual, thanks for your reply. I did try with listen but really don't seem to work for me.
Please correct me if Im wrong.
final pairStateProvider = StateNotifierProvider<PairNotifier, Pair>((ref) {
  late int parentValue;
  ref.listen<int>(counterProvider, (previous, next) {
    parentValue = next;
  }, fireImmediately: true,);
  return PairNotifier(parentValue);
});

In that case, it seems PairNotifier is not regenerated but we also don't get the updated parentValue.

It's your responsibility to update the PairNotifier when the counter changes
You can do:
final notifier = PairNotifier(...);
ref.listen<int>(counterProvider, (previous, next) {
  notifier.pairChanged(previous, next); // have PairNotifier handle updates
});
return notifier;

Hmm.. interesting. Just tried it but seems quite verbose in the (common)case that if I have multiple providers to watch.
final pairStateProvider = StateNotifierProvider<PairNotifier, Pair>((ref) {
  final notifier = PairNotifier();//And can not initialize with values from counterProvider and etc.
  ref.listen<int>(counterProvider, (previous, next) {
    notifier.pairChanged(previous, next);
  });
  ref.listen<int>(authRepoProvider, (previous, next) {
    notifier.authRepoChanged(previous, next);
  });
  ref.listen<int>(cardsRepoProvider, (previous, next) {
    notifier.cardsRepoChanged(previous, next);
  });
  return notifier;
});

Moreover, If I need to run it for unit test, that means I would need to have another constructor or call those methods again to inject the authRepoProvider, cardsRepoProvider and etc. And It doesn't seem ideal.
It just feels weird that, the provider definitely cache the state but we are just not able to retrieve it.
I would really like to know how others deal with this elegantly.

Moreover, If I need to run it for unit test, that means I would need to have another constructor or call those methods again to inject the authRepoProvider, cardsRepoProvider and etc. And It doesn't seem ideal.

Your tests would typically read the provider instead of manually instantiating the StateNotifier, so the ref.listen calls would be executed.
After-all, you'd want to test them too

I think if we can use ref.notifier.state to get the state, that will make our life much easier. And I think it totally make sense because we should be able to get the cached value.
I can see that it is now prohibited to do it
  /// The [StateNotifier] currently exposed by this provider.
  ///
  /// Cannot be accessed while creating the provider.
  Notifier get notifier;

But maybe we can simply returns a null value if it is not created yet?

I don't get what you're trying to do here.
You don't need ref.notifier to access the notifier as I shown before

Sorry for the confusion. What I mean is if the provider cache the current state, then there should be a way to retrieve it?
So I'm thinking if this is workable:
final pairStateProvider = StateNotifierProvider<PairNotifier, Pair>((ref) {
  final parentValue = ref.watch(counterProvider);
  final currentPairState = ref.notifier?.state //notifier return null if state is not created yet
  return PairNotifier(currentPairState ?? Pair(parentValue : parentValue, childValue : 0);
});

To me, this seems more elegant.


chore: upgrade to<EMAIL_ADDRESS>

Upgrades Biome, as Data Team wants to use https://biomejs.dev/linter/rules/no-restricted-imports/, which is not available in the version of Biome we are currently using.
It seems like quite a lot has changed within Biome - I've migrated the rules that have been promoted out of nursery into their modern equivalents.
Test plan
pnpm run biome exits with status 0 locally, required CI passes

FYI this commit on main started to break biome for us :( see https://sourcegraph.slack.com/archives/C05AGQYD528/p1714639734553859


License issues

Hi :-).
I read through your license file and noticed a couple of things:

It's spelled "LICENCE" instead of "LICENSE". This can make automatic LICENSE detectors miss your file
You (Yeung Shu Hung) share the copyright with "the Go Authors", but aren't you the sole author of this project?

It'd be nice if you can change the spelling from "LICENCE" to "LICENSE", as this may make it easier for automatic license detectors to find your license file.
Number 2 isn't a big deal, it's your project and you get to assign copyright to whoever you want of course. I just thought it was curious :-).
Cheers!

Hi @js-sketch,
Thanks for reading about this project. My answers to your comments:

Thanks for spotting out. Will change it later.
Some of the source code (mainly, fcgi.go) is from the core Go fcgi library. I do not solely own that part of the source code. So I licensed it accordingly.

Some of the source code (mainly, fcgi.go) is from the core Go fcgi library. I do not solely own that part of the source code. So I licensed it accordingly.

Ah, cheers! I tried looking into the git log to see if you had clearly copied some code, but I didn't look closely enough apparently.


dnscrypt-server (docker) suddenly stops working until restarted

I find that at some point my dnscrypt-server stops resolving and i need to restart the docker container, then all works fine again.
i searched the logs today and found this:
[9551] 08 Mar 14:17:07.862 [warning] [udp_request.c:302] Short query received
[32385] 15 Mar 16:55:35.113 [warning] [tcp_request.c:141] Short query received
[32385] 15 Mar 16:55:35.306 [warning] [tcp_request.c:141] Short query received
[32385] 15 Mar 16:56:34.076 [warning] [tcp_request.c:141] Short query received

not sure if this is related to the issue, but all i could find.
Possible that this was around the time the dnscrypt-server stopped working for me (i use a vpn most of the time so i did not care to restart it until today)

This is not the right repository for this (maybe use https://github.com/cofyc/dnscrypt-wrapper/issues instead).
These warnings are harmless, and just means that non-dnscrypt queries have been received.
Try running a shell in the container (docker exec) and check whether unbound is still resolving or not (I think it should listen to port 553).
You can also restart individual services to see which one was stuck.

thanks for pointing at the repository. checked https://github.com/jedisct1/dnscrypt-server-docker but there was no option to open an issue. I will do it as suggested, next time when it happens.


Optional auto capitalization on changelog

Description
The automatic changelog seems to automatically capitalize the first letter, like this:
feat: add amazing feature

Feature

Add amazing feature (abc1234)

That can be useful, but it can also be misleading, for example:
fix: do_stuff now does stuff

Fix

Do_stuff now does stuff (xyz9876)

I've had it happen a couple of times, where the first word of a commit message happens to be a case-sensitive name, and the changelog changes its capitalization.
Use cases
It'd be useful in order to avoid case-sensitive names having their capitalization changed automatically.

Feature

add amazing feature (abc1234)

Fix

do_stuff now does stuff (xyz9876)

Possible implementation
Having the auto capitalization enabled by default is okay I think, so I was thinking it could be an option in the changelog section in the configuration, something like changelog_capitalize, that could be set to false to disable the automatic capitalization.

Happy to accept a PR for this 👍


refactor: remove yq dependency

Fixes #384. blocked on bazel-lib 2.0

bazel-lib 2.0 is out: https://github.com/aspect-build/bazel-lib/releases/tag/v2.0.0

Hey all,
Is this PR ready to be merged ?. Thanks.

This is now ready to land in 2.x


Ordering of parameters to XOF() call in ML-KEM correct?

I note that you have implemented the calls to XOF() in ML-KEM (lines 283 and 298 of MLKEM/specification.cry) exactly as specified in the August 23rd Draft of FIPS-203. Specifically, you have "XOF(rho,i,j)" in both cases.
This is a change from Kyber that was not mentioned in the Change Log of FIPS-203 and generated some debate and disagreement in the PQC community. It appears that the community (and NIST) have settled that this is a mistake in FIPS-203 and it should really be "XOF(rho,j,i)".
Do you agree?
Does you Cryptol code pass the KATs provided by PQShield (e.g. https://github.com/post-quantum-cryptography/KAT.git) with or without that change?
Many thanks,
Rod Chapman, AWS

Hi Rod. Thank you for your detailed observation.

For line 283, adhering to the draft seems justified since line 288 uses A_hat as is.
For line 298, the suggestion to swap i and j is valuable. If we make this change, then we would have to adjust line 303 from (transpose A_hat) to A_hat directly. What do you think?

Regarding your question about compatibility with the KATs: Yes, our Cryptol code successfully passes both the PQShield KATs and the intermediate KATs provided by NIST, with the current implementation.

and then swaps it back again: https://github.com/post-quantum-cryptography/KAT/pull/4

And see the final comment in this thread from Robin Larrieu:
https://groups.google.com/a/list.nist.gov/g/pqc-forum/c/s-C-zIAeKfE

Are you planning to attend the HACS workshop in Toronto, March 21-22? I will be there, plus the designers of LibJade from the Formosa team, the people from Cryspen, and most of the Kyber/MLKEM design team - in short - almost everyone that's worked on verified implementations of MLKEM... it would be good to all meet...


Still more minor improvements...

More protections against non-responding crab server
Make runPostCrab accept several input directories at once
Move some common stuff into python/utils.py

thanks!


Camera path is not configured correctly, please edit the 'device_path' config value.

System: Asus Zenbook UX33F, Linux version 5.4.1-arch1-1, i3 window manager. I get the following error: Camera path is not configured correctly, please edit the 'device_path' config value. Some help on fixing this would be more than appreciated. I have tried looking for a solution without much luck. I'm not sure if this is a bug or what exactly is up with it.

Nevermind. Looking at https://wiki.archlinux.org/index.php/Howdy fixed it. It might be a good idea to change to arch linux section in the readme to include this link. Thanks! Closing.


Ensure nodeSelector logic is consistent for all operators

nodeSelectors are not currently applied consistently across all operators.
Some do not support nodeSelectors at all - will be implemented in this series of pull requests.
Some do not apply them to every pod (jobs/cronjobs esp) - will be resolved in this series of pull requests.
Some do not apply a node selector update correctly, only when not initially set.
Some support nodeSelectors but do not inherit the default nodeSelector from the OpenstackControlPlane CR.
Jira: OSPRH-10734

/override ci/prow/barbican-operator-build-deploy-kuttl

/cherry-pick 18.0-fr1


Problem with Safari for type of document

When i put accept: ".csv" no filtering is done and its show all files on Safari.
$.FileDialog({
            accept: ".csv", //acept: MIME type of accepted files, e. g. image/jpeg
            okButton: "OK",
            cancelButton: "Close",
            title: "Upload files"
        })

MIME type is not the same thing as file extension, have you tried accept: "text/csv"?

Yes that was problem on diff OS is different so i make function to see what OS is running and then use other format
switch (tmp_os_name) {             case 'MacOS':                 string_file_accept = "text/csv";                 break;             default:                 string_file_accept = ".csv";                 break;         }


[BUG][WEBJS] - Error while sending message

Describe the bug
When I am trying to send a video message, most of the times I am getting a server error.
Version
{"version":"2024.12.6","engine":"WEBJS","tier":"PLUS","browser":"/usr/bin/chromium"}

Requests - Responses
request errored {"reqId":190,"req":{"id":190,"method":"POST","url":"/api/sendVideo","query":{},"params":{"0":"api/sendVideo"}},"res":{"statusCode":500},"responseTime":6481}
err: {
"type": "Error",
"message": "a",
"stack":
a: a
at #evaluate (/app/node_modules/puppeteer-core/lib/cjs/puppeteer/cdp/ExecutionContext.js:388:56)
at async ExecutionContext.evaluate (/app/node_modules/puppeteer-core/lib/cjs/puppeteer/cdp/ExecutionContext.js:275:16)
at async IsolatedWorld.evaluate (/app/node_modules/puppeteer-core/lib/cjs/puppeteer/cdp/IsolatedWorld.js:100:16)
at async CdpFrame.evaluate (/app/node_modules/puppeteer-core/lib/cjs/puppeteer/api/Frame.js:341:20)
at async CdpPage.evaluate (/app/node_modules/puppeteer-core/lib/cjs/puppeteer/api/Page.js:807:20)
at async WebjsClient.sendMessage (/app/node_modules/whatsapp-web.js/src/Client.js:956:25)
"name": "a"
}
{"statusCode":500,"timestamp":"2024-12-30T09:36:31.552Z","exception":{"stack":"a: a\n    at #evaluate (/app/node_modules/puppeteer-core/lib/cjs/puppeteer/cdp/ExecutionContext.js:388:56)\n    at async ExecutionContext.evaluate (/app/node_modules/puppeteer-core/lib/cjs/puppeteer/cdp/ExecutionContext.js:275:16)\n    at async IsolatedWorld.evaluate (/app/node_modules/puppeteer-core/lib/cjs/puppeteer/cdp/IsolatedWorld.js:100:16)\n    at async CdpFrame.evaluate (/app/node_modules/puppeteer-core/lib/cjs/puppeteer/api/Frame.js:341:20)\n    at async CdpPage.evaluate (/app/node_modules/puppeteer-core/lib/cjs/puppeteer/api/Page.js:807:20)\n    at async WebjsClient.sendMessage (/app/node_modules/whatsapp-web.js/src/Client.js:956:25)","message":"a","name":"a"},"request":{"path":"/api/sendVideo","method":"POST","body":{"session":"E6FEFC25A8C64C7FA06335BC6FEEBEB6","chatId":"xxxxxxxxxx@c.us","file":{"mimetype":"video/mp4","url":"http://publicurl.com/bc9f5f8f-84c0-4a0d-9caf-ffacc985d2e9_The Docs Extension Explaination.mp4","filename":"video.mp4"},"caption":"test"},"query":{}},"version":{"version":"2024.12.6","engine":"WEBJS","tier":"PLUS","browser":"/usr/bin/chromium"}}
Additional context
Removed the phone number from the logs and the public URL. The number and URL are correct.

Hi! try using devlikeapro/waha-plus:chrome, chromium doesn't support sending videos
https://waha.devlike.pro/docs/how-to/send-messages/#send-video-imagesversionspluspng
Yeah, we need to add better error :D


[#139] Add auxiliary input type 2 support

What's new:

Implementation of aux-n input handling from within the stack (See #139 for details)
Added example for aux-n input application (dir: examples/vt_aux_n/inputs)
Moved aux-n function example application to own folder (dir: examples/vt_aux_n/functions)

Note: we probably want to wait for #65 to be finished before merging this PR. Right now a auxiliary input maintenance message is send every 100ms, regardless of whether there is an auxiliary input present in the object pool. A few other things also should rely on an object being in the object pool. I could've made some configurable options for this, but I'd rather wait so we can do it right the first time. I'd love to hear any opinions on this.
Closes #139

Gotta love delaying my PR's haha, so many things have changed since the initial commits... And the rebase couldn't resist leaving some artifacts behind as well. Seems like I'll have to spend some time this weekend fixing this 😅

Let me know when you think this is ready for review and I'll go through it 🙂

Let me know when you think this is ready for review and I'll go through it 🙂

I think it's ready for review. I still have to write some tests, but the rest is finished

I'll try to go over your comments later today, having a lot less spare time lately unfortunately... Other than issue #192, there were not really any issues while testing this thoroughly. But I don't really have the time to write unit tests any time soon I'm afraid.

I'll try to go over your comments later today, having a lot less spare time lately unfortunately... Other than issue #192, there were not really any issues while testing this thoroughly. But I don't really have the time to write unit tests any time soon I'm afraid.

No worries, I totally understand! I have been quite busy recently as well. We can always come back and make incremental improvements and add tests later too.

No worries, I totally understand! I have been quite busy recently as well. We can always come back and make incremental improvements and add tests later too.

Yea, I think this PR can be merged if you think it's ready, I'll try to add tests someday but that won't be anytime soon

@GwnDaan When you get time, if you could fix the conflicts in those 2 files (CMakeLists.txt and test/vt_client_tests.cpp) then I'll get this merged in before it sits around any longer (haha, sorry about that)

@GwnDaan When you get time, if you could fix the conflicts in those 2 files (CMakeLists.txt and test/vt_client_tests.cpp) then I'll get this merged in before it sits around any longer (haha, sorry about that)

Should be fixed now 😄


Update README.md

Hello,
While following the example in the README. When using pathParam, I encountered an error.

Simply changing pathParam to captureParam resolved the issue and the functionality worked as expected.

should be easy to reproduce but here are the versions that i am using:
ghc version 9.8.1
stack version 2.15.3
cabal version <IP_ADDRESS>

hi @zetos , we recently introduced pathParam as a synonym. What version of scotty gave you the error?

hi @zetos , we recently introduced pathParam as a synonym. What version of scotty gave you the error?

I must be doing something wrong then, i am using scotty version 0.20 in my package.yaml file:
dependencies:
- base >= 4.7 && < 5
- scotty >= 0.20


Adding Langfuse integration for LLM App tracing

Hi,
I would like to propose this integration for Langfuse. I think this will be a helpful addition to the other tracing applications.
Some details on the integration:
"This is a community built integration for the Langfuse Open Source LLM Engineering Platform. It uses the Haystack tracing functionality as described in https://docs.haystack.deepset.ai/docs/tracing. This extension provides detailed tracking of pipeline executions and component runs. Designed specifically for monitoring LLM applications, it allows for efficient diagnostics and performance assessment."
Below is an example trace of a nested pipeline:

It also enables tracing errors within components:

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

@vblagoje Just noticed that there is already a PR open for the same... #686

Sounds good! Anyways, I am glad that there will be a Langfuse integration soon. Even if it's not my implementation ;)


requirements: Update Django to version 1.11

More details on https://github.com/zulip/zulip/pull/4578

This is probably a moderately high-expertise project.  May not be super hard though; I didn't see much in the Django 1.11 changelog that will be a problem for us.

We forgot to close this when https://github.com/zulip/zulip/pull/4822 was merged.


Fix:Selectable text on product screen

What

This PR includes the fixes for the Selectable text on the Product page

Screenshot

Product Screen

Fixes bug(s)

#1119

Part of

https://github.com/openfoodfacts/smooth-app/discussions/395
(please be as granular as possible)

Hi, @M123-dev  could you approve it .

Heyy thanks @abhay1821 the code looks pretty good, just one thing. The move from the core to the main package added quite a few other for us unnecessary packages with it.
It looks like the core package is built up very modular. So it should be possible to only add selection without other additional features.
See here: https://pub.dev/packages/fwfh_selectable_text
By the way I will always read the code first, so it's more a review then a approval😉

Hey, @M123-dev Thanks for the suggestion got to learn something new . All the necessary changes are made and it's good to go. So can you please review it 😄

Somehow @abhay1821 the automated checks won't start and without them merging is blocked. Can you push another commit to start them again

Sure, @M123-dev I guess now it's good to go


Split name part of the query by . in addition to space.

This allows to find ListLabels.map when searching for List.map.
Remarks:

Would it make sense to also split the name by . when indexing? Docstrings are indexed "by words"
Certainly the cost function could be improved.

What do you think?

After testing this a bit, I really like it :)
There's a tiny issue when searching for +. as the dot is lost, but it's not a blocker as searching for operators already has similar issues that we should address in a future PR https://github.com/art-w/sherlodoc/issues/26

Thanks! Very cool that it is already deployed!

If there's no big issue, I think it make sense to split the names by . during indexing as it should result in a nice database size improvement! (... or not)

I'll do that and test the change in size, and undraft the PR when it's done :)


Add SELinux packages to Mariner.

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

[x] The toolchain has been rebuilt successfully (or no changes were made to it)
[ ] The toolchain/worker package manifests are up-to-date
[x] Any updated packages successfully build (or no packages were changed)
[x] All package sources are available
[x] cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/tools/cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json)
[x] All source files have up-to-date hashes in the *.signatures.json files
[x] sudo make go-tidy-all and sudo make go-test-coverage pass
[x] Documentation has been updated to match any changes to the build system
[ ] Ready to merge

Summary

Enable SELinux support for Mariner
Change Log

This commit add the following packages to Mariner to provide basic SELinux support:
- checkpolicy
- libsemanage
- mcstrans
- policycoreutils
- secilc
- selinux-policy
- setools

The selinux-policy provided here is a generic base policy, which is not specifically tuned for Mariner, therefore only permissive mode support is enabled in this commit.  (Although users could load a custom policy to run in enforcing mode).  Future phases have been discussed to add SELinux enforcing mode support.
This commit does not enable SELinux by default.  In order to enable SELinux support, one must first install necessary packages (libselinux, policycoreutils, secilc, selinux-policy), and then append "lsm=selinux selinux=1" to the kernel command line.  This will trigger an initial boot to relabel the system, at which point the system will reboot, and boot into an SELinux enabled system.  SELinux state can be queried with the "getenforce" command line tool.  If SELinux has not been enabled, it will report "Disabled" (the default).  If SELinux support has been enabled as described in this paragraph, it will report "permissive".
This commit also modifies the following packages to enable SELinux functionality in existing packages:
- coreutils
- cronie
- dbus
- openssh
- pam
- rpm
- shadow-utils
- systemd
- util-list

This enables them to build with SELinux support so that when SELinux is enabled, they have SELinux related functionality available.
Because coreutils is a basic package and requires building with libselinux-devel present in order to enable key SELinux functionality, several dependencies in other packages that rely on coreutils (namely bash, python2 and python3) had to be removed in order to avoid circular dependencies.  There does not appear to be a functional impact from this change in my testing.
Does this affect the toolchain?

YES
NO
Associated issues

None

Links to CVEs

None

Test Methodology

Local build and local smoke testing

%config %{_sysconfdir}/selinux/refpolicy/contexts/files/media %dir %{_sysconfdir}/selinux/refpolicy/contexts/users

I think the new line got remove here by accident. Or CodeFlow is showing me weird things.

Refers to: SPECS/selinux-policy/selinux-policy.spec:72 in 380a4bc. [](commit_id = 380a4bc61fd0d6a907ca9aa6fa39ca2013ded4b3, deletion_comment = False)

Mon Aug 31 2020 Daniel Burgener<EMAIL_ADDRESS>2.20200818-1

Why the change in versioning format?

Refers to: SPECS/selinux-policy/selinux-policy.spec:264 in 380a4bc. [](commit_id = 380a4bc61fd0d6a907ca9aa6fa39ca2013ded4b3, deletion_comment = False)

Source3:       https://github.com/SELinuxProject/selinux/releases/download/20190315/restorecond-2.9.tar.gz

Please use the %{version} macro for these and %{name} for the first one.

Refers to: SPECS/policycoreutils/policycoreutils.spec:24 in 380a4bc. [](commit_id = 380a4bc61fd0d6a907ca9aa6fa39ca2013ded4b3, deletion_comment = False)

Mon Aug 31 2020 Daniel Burgener<EMAIL_ADDRESS>2.20200818-1

Why the change in versioning format?
Refers to: SPECS/selinux-policy/selinux-policy.spec:264 in 380a4bc. [](commit_id = 380a4bc, deletion_comment = False)

This package has an interesting history.  Fedora hard forked upstream years ago and their policy has diverged heavily.  We could pull in Fedora's policy, but it will probably make more sense going forward to ship a policy more aligned with upstream.  The versioning previously refers to Fedora's versioning for their fork, and I modified it to match upstream's versioning.
For the current iteration, the details of the policy matter very little because we're not supporting SELinux enforcing mode by default yet.  In permissive mode (what this PR adds support for), SELinux is present and logs what it would deny, but doesn't actually do any access control.  In enforcing mode, it both logs and denies access that is disallowed by the policy.  A customer wanting to take advantage of SELinux at this point would want to supply a policy customized for their use case.  My understanding is that future development plans for Mariner involve creating a Mariner specific SELinux policy that will serve as a suitable generic policy for Mariner users, but that work is not yet scheduled.
In order to actually boot SELinux however, one must have a policy installed, even in permissive mode.  So this commit installs a generic policy which 1. allows us to boot in permissive and 2. provides the basic infrastructure needed for someone to build on top of it for their own policy.  Going with the standard upstream policy rather than Fedora's fork gives us the most flexibility going forward when we decide how to craft Mariner's policy in a future update.  I expect/hope that it will be much more closely tied to upstream, in line with what we are doing with other internal SELinux efforts.  Rather than hard forking, we can add light customizations to upstream to handle our environment appropriately, which will be better for both us and the community.

Is there a tool for updating the cgmanifest files, or is that all supposed to be done by hand?

Is there a tool for updating the cgmanifest files, or is that all supposed to be done by hand?

I reran the toolchains because of changes to the manifests files and both failed.  I'm looking into the failures now and will restart the toolchains when I have them fixed.

The AMD64 toolchain pipeline completed successfully, but the ARM64 one failed again.  It appears to have been a merge issue, which I have addressed.  I am now rerunning the pipeline.

Both pipelines have completed successfully.  This is ready to be merged from my perspective.


"Let's translate" popup on material-ui.com spammy and annoying

Popup asking site visitor to help translate spams visitor with notifications

[x] This is not a v0.x issue.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior 🤔
Visitor should be spammed at most once with dropdown popup to help translate—ideally targeted at locales that would be able to help with a language.

Steps to Reproduce 🕹
Visit https://material-ui.com
Context 🔦
Annoying
Your Environment 🌎
Mac OSX Chrome Version 72.0.3626.109 (Official Build) (64-bit)

...annnnnd now I can't repro it.
Anyone else experience this at least once? Otherwise, I guess close this issue.

I've experienced this also

I think those are tied to cookies. But I agree that this can be pretty annoying and reminds me of "Typical website in 2018"

@danielgwilson We have fixed your concern in the latest release of the documentation. All you need is an up to date version of the documentation loaded (v3.9.2 as we are speaking). The translation notifications are scoped by accepted-languages.


Patch: 1.3.8

Summary by CodeRabbit

New Features

Introduced new menu items for "Campaigns" and "NFTs" in the admin sidebar.
Added a description field with Markdown support in the campaign form.
Implemented a selection field for NFT collections, including minting mode names.

Enhancements

Updated the default minting mode in the NFT form to ACL (Access Control List).
Improved the broker table to display 'Max Owned Tokens' and 'Minting Fee (CSPR)' with updated values.
Adjusted the broker form to reflect the new estimate fee and updated labels for input fields.

Bug Fixes

Fixed the RouterGuard logic to correctly handle disconnected status.

Refactor

Replaced the use of useGetPublicNftCollections with useGetAllNftCollections for broader data retrieval.

Documentation

Added a utility function to format minting modes for display purposes.

@coderabbitai review

@coderabbitai review


CircleCI Partner Review

Hello Autify team,
I am from the @CircleCI Community and Partner Engineering team, here to help with a review for CircleCI orb partnership. I have a few items listed below for changes:

Rename the example to show a use-case
a. Each provided usage example has a name which should reflect what the use-case is of that example
b. Example: mobile-e2e-test
Move documentation out of the description
a. The description of the orb is used for SEO purposes. Documentation should be listed within the orb itself via parameters.
b. Consider making your homepage link, a link to further documentation for this integration hosted on your website.
Add a parameter for API tokens
a. As per best practices, API tokens should be parameterized, so the user may if needed, provide an alternate environment variable.
b. Having the token parameterized, also gives you as the developer a chance to document this in the parameter description.
c. Here is an example:

YAML: https://github.com/CircleCI-Public/github-cli-orb/blob/66c645413222b055ba90c31f2b73bbb6284dc6a0/src/commands/setup.yml#L11
BASH: https://github.com/CircleCI-Public/github-cli-orb/blob/66c645413222b055ba90c31f2b73bbb6284dc6a0/src/scripts/configure.sh#L3

Last just a request/question. What type of information is returned from these tests? Could the data be returned to CircleCI in JUNIT? If yes, we can display information about these results visually in our UI.

Please let us know if you have any questions.

Addressed by #4


Properly dismissed progress dialog when launching client fails

Resolves #3754.

Added check for successful launching of client and propagated results to the original caller.
Also checked that the progress dialog was dismissed.
Switched to a CATCHALL to ensure that dynamically allocated memory was deleted.

How Has This Been Tested?
Built and ran on Linux box.
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have updated the release notes
[ ] I have made corresponding changes to the documentation
[ ] I have added debugging support to my changes
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[ ] I have added any new baselines to the repo
[x] I have assigned reviewers (see VisIt's PR procedures for more information).

I think the changes are good. Is there any way to know about the missing xterm and report on that?
@biagas if you take a look at #3754 in the Describe the bug section you can see that the why is actually printed in the terminal. The main confusion is that the progress dialog kept appearing to try to connect to the CLI since the progress was only being dismissed after a successful connection. I believe the combination of dismissing the dialog so that it doesn't appear to be trying to connect along with the error and terminal messages will give the crucial bits of information.

I'll take a quick look to see how easy or what changes would be needed to propagate that message all the way up in a general way for any client connection errors.


WIP: Make project() a method as it reads the project object from the OMF file

Maybe while doing this we should also make it return problems. So perhaps it should return a tuple ?


Programmatically add ApiDescription with JSON request body

We are using Springfox 2.9.2. Our application has Spring Security enabled so I am wanting to advise Springfox of the authentication methods that our API exposes.
We have POJOs for both input and output for our authentication API, and the spring security layer handles conversion of these objects to/from JSON for the client. However these are not automatically added to the Swagger doc because they are not in a controller.
I'm trying to find out how to inject the request/response detail to the documentation. Based on this comment and related documentation page, I can see that I need to implement ApiListingScannerPlugin to build the ApiDescription. I can't find any way to specify the request input/body, as the Swagger documentation describes.
Any info on how to manually expose these API details (and related request/response objects) would be greatly appreciated. Thanks!

Specifying the parameter doesnt work?

I'm building the parameter like this, where AuthenticationRequest is my POJO:
Parameter input = new ParameterBuilder().name("body").description("Input")
	.parameterType("body").type(typeResolver.resolve(AuthenticationRequest.class))
	.modelRef(new ModelRef(AuthenticationRequest.class.getName()))
	.build();

When I do this and then load the Swagger UI endpoint, I get the following error:

Resolver error at paths./api/authenticate.post.parameters.0.schema.$ref
Could not resolve reference because of: Could not resolve pointer: /definitions/org.mycompany.rest.authentication.request.AuthenticationRequest does not exist in document

I have similar problem when I adding global error response message.
responseMessages.add(new ResponseMessageBuilder()
				.code(HttpStatus.BAD_REQUEST.value()).message(HttpStatus.BAD_REQUEST.getReasonPhrase() + " - Returns when
 invalid request received (i.e. request is in not expected format)
"
						+ "validation fails
 business error occurs.")
				.responseModel(new ModelRef("ErrorResponse"))
				.build());

Console log

@l3ender you need to change that to .modelRef(new ModelRef(AuthenticationRequest.class.getSimpleName()))

@rrathod05 you need to add ErrorResponse to additionalModels in your docket

@dilipkrish  Thanks !! It worked after adding additionalModels.
Also, I have same requirement as @l3ender and had tried what you suggested but did not work and giving same error as @l3ender listed.

@dilipkrish any further solution/info will be help much on the above said issue. Thanks!

@rrathod05 see the solution I provided here

@dilipkrish the solution provided here is not working. Kindly, suggest any alternate fix.


Reaction Commands

I am not asking for Reaction Commands Like Hydra just wanted to tell you that I made them. If you want them then just tell me I may add a Pull request and I also added Message Purging.

Gib code boi

Gib code boi

really there is a small issue but it's pretty small.

well, nah. i just wanna keep this as simple as possible

ok

Send me the code though xd.


Support for Unit and Serving Size Conversions

Seems like one of the big benefits of cooklang is that you could programmatically adjust a recipe for a different serving size, convert imperial to metric units, or vice versa.
Any plans for this? Are PRs welcome? Should I just write my own tool?

I was really surprised this is not implemented - seems like the most important feature and huge benefit!

Huh, I also thought this was implemented already. +1 for this FR


Can't work with uri starting with '//'

Comes to error handler, if we try to get uri starting with '//'.
var rp = require('require-promise');
rp({
    method: 'GET',
    uri: '//cdn.bootcss.com/fancybox/2.1.5/jquery.fancybox.css'
}).then(function () {
    // Do something
}, function (err) {
    console.log(err);
});

// RequestError: Error: Invalid URI "//cdn.bootcss.com/fancybox/2.1.5/jquery.fancybox.css"

Is this expected behavior?

Yes, that is the expected behavior. I double checked it.
Since you are using this browser trick I assume you are running the code in the browser. Just use window.location.protocol + '//cdn.bootcss.com/fancybox/2.1.5/jquery.fancybox.css' instead.
Feel free to ask a follow up question or close this issue. Cheers!

Ok. If it's expected, then nothing to say.
Actually I was trying this from a NodeJS app. But this should work. Say in this case, it'll fallback to normal http protocol.

If you want to give it a try you may open an issue for your feature request over at the request project. This library is used by request-promise internally and contains the logic to parse the uri.


Multi-index of a function that returns an empty array doesn't work

Multi-index of a function that returns an empty array doesn't work.  For example:
my ( $ldev, $lino, $perm ) = ( lstat $root )[ 0, 1, 2 ]

if lstat returns (), the indexing will raise an exception instead of returning undef (None) values.

Fixed in v0.969


Some bad changes

Summary:

Changelog:

Test Plan:

g

@CodiumAI-Agent /review

PR Analysis

🎯 Main theme: The PR introduces changes to the initial capacity of a LongArray and its size method, and removes two cases from the YogaAlign enum.
📝 PR summary: The PR modifies the initial capacity of a LongArray to be 2 instead of 0, changes the size method to return a string instead of the length of the array, and removes two cases from the YogaAlign enum. The changes seem to be arbitrary and could potentially break the existing functionality.
📌 Type of PR: Other
🧪 Relevant tests added: No
⏱ Estimated effort to review [1-5]: 2, because the PR is small but the changes are significant and could potentially break the existing functionality.
🔒 Security concerns: No security concerns found

PR Feedback

💡 General suggestions: The changes introduced in this PR seem to be arbitrary and could potentially break the existing functionality. It's recommended to provide a clear explanation of the changes and their impact on the existing functionality. Also, it's important to add relevant tests to ensure the changes don't introduce bugs.

 🤖 Code feedback:

relevant file: packages/react-native/ReactAndroid/src/main/java/com/facebook/react/common/LongArray.java
suggestion: Revert the changes in the initial capacity of the LongArray and its size method. The initial capacity should be 0 and the size method should return the length of the array. [important]
relevant line: mLength = 2;

relevant file: packages/react-native/ReactAndroid/src/main/java/com/facebook/yoga/YogaAlign.java
suggestion: Revert the removal of the two cases from the YogaAlign enum. The removal of these cases could potentially break the existing functionality. [important]
relevant line: -      case 6: return SPACE_BETWEEN;

How to use

Tag me in a comment '@CodiumAI-Agent' and add one of the following commands:
/review [-i]: Request a review of your Pull Request. For an incremental review, which only considers changes since the last review, include the '-i' option.
/describe: Modify the PR title and description based on the contents of the PR.
/improve [--extended]: Suggest improvements to the code in the PR. Extended mode employs several calls, and provides a more thorough feedback.
/ask <QUESTION>: Pose a question about the PR.
/update_changelog: Update the changelog based on the PR's contents.

To edit any configuration parameter from configuration.toml, add --config_path=new_value
For example: /review --pr_reviewer.extra_instructions="focus on the file: ..."
To list the possible configuration parameters, use the /config command.

@CodiumAI-Agent /describe

@CodiumAI-Agent /ask what is the LongArray class for?

Question: what is the LongArray class for?
Answer:
The LongArray class appears to be a custom implementation of a dynamic array specifically for long type values. It provides methods to add, get, and set values, as well as methods to check the size and whether the array is empty. The class also handles the resizing of the internal array when necessary, which is a common characteristic of dynamic arrays.
However, the changes in this PR seem problematic. The initial length of the array is set to 2, which might not be appropriate for all use cases. Also, the size() method has been changed to return a string "hello" instead of the length of the array, which will cause a compile-time error because the return type of the method is int, not a string.

@CodiumAI-Agent /describe

@CodiumAI-Agent /improve

@CodiumAI-Agent /ask why should I use the LongArray class instead of creating my own array?

Question: why should I use the LongArray class instead of creating my own array?
Answer:
The LongArray class in this context seems to be a utility class that provides additional functionality over a standard long array in Java. It encapsulates the logic for managing the array size, adding elements, and setting values at specific indices. This can help to simplify the code where it's used, as you don't need to manually manage these aspects.
However, in this PR, there are some problematic changes made to the LongArray class:

The initial length of the array is set to 2. This could lead to unexpected behavior if you're not expecting the array to contain any elements initially.

The size() method has been changed to return a string "hello" instead of the length of the array. This will cause a compile-time error because the return type of the method is int, but a String is being returned.

Regarding the YogaAlign class, two cases in the fromInt method have been removed. This could lead to unexpected behavior if the method is called with values 6 or 7, as these cases are no longer handled.
These changes seem to be inconsistent with the PR title "Some bad changes". It's important to provide meaningful titles and descriptions in your PRs to help reviewers understand the purpose of your changes.

@CodiumAI-Agent /ask In LongArray class what is INNER_ARRAY_GROWTH_FACTOR, and what would happen if I changed it to 20?

Question: In LongArray class what is INNER_ARRAY_GROWTH_FACTOR, and what would happen if I changed it to 20?
Answer:
The INNER_ARRAY_GROWTH_FACTOR is not directly shown in the provided PR diff. However, in many programming contexts, a growth factor is used to control the resizing behavior of dynamic arrays. When the array needs to grow (because more elements are being added than it can currently hold), the growth factor determines the new size of the array.
If INNER_ARRAY_GROWTH_FACTOR is indeed used in this way in the LongArray class, changing it to 20 would mean that each time the array needs to grow, its size would increase by a factor of 20. This could potentially lead to more memory being used than necessary if the array doesn't end up needing all the extra space. On the other hand, it could also reduce the number of resize operations needed if many elements are being added, which could improve performance.
However, without the actual code where INNER_ARRAY_GROWTH_FACTOR is defined and used, this is just an educated guess. You should look at the actual usage of INNER_ARRAY_GROWTH_FACTOR in the LongArray class to understand its exact role and the impact of changing its value.


Fix PayPalSharedSecretEncryptedPaymentsForm in Python 3

Building off the work in #217 and #211... I simply swapped to using six (already a requirement in the package) and made a minor to change support Python's .encode() function per comments in previous PRs. Reused tests from previous PR.
Tests pass however PayPal's sandbox IPN is currently down:
https://www.paypal-community.com/t5/Sandbox-Environment/IPN-not-working-Sandbox/m-p/2030902/highlight/true#M5746
What are your thoughts on this @spookylukey? I can update once PayPal has fixed their sandbox to confirm functionality.

No prob.
To be honest - I'm not sure on the tests, I didn't write them, just copied
from the other PRs so I don't know how complete they are...
Django was erroring out on launch without messages so I ended up including
it. I'm not sure if it's version specific to my Django release?
On Sat, Feb 15, 2020, 8:48 AM Luke Plant<EMAIL_ADDRESS>wrote:

@spookylukey commented on this pull request.
Looks good, just a couple of questions as above. Thanks so much!
In paypal/standard/helpers.py
https://github.com/spookylukey/django-paypal/pull/223#discussion_r379832502
:

@@ -7,10 +7,12 @@

from paypal.utils import warn_untested
+import six
def get_sha1_hexdigest(salt, raw_password):
warn_untested()
I think this warn_untested can be removed now?
In runtests.py
https://github.com/spookylukey/django-paypal/pull/223#discussion_r379832515
:

@@ -35,6 +35,7 @@
'django.contrib.admin',
'django.contrib.sessions',
'django.contrib.contenttypes',

   'django.contrib.messages',

I couldn't work out the reason for this addition, is it needed?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/spookylukey/django-paypal/pull/223?email_source=notifications&email_token=AAN5TPTODSZJOOI75DD6NUDRC7XEDA5CNFSM4KTHIHGKYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCVVTARQ#pullrequestreview-359346246,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAN5TPSEJ7FTGZP3Q5TGI6DRC7XEDANCNFSM4KTHIHGA
.

Hi, is styling the only thing preventing merge? Looks like the build failed because of flake8 only.
./paypal/standard/helpers.py:12:1: E302 expected 2 blank lines, found 1
./paypal/standard/ipn/tests/test_forms.py:8:120: E501 line too long (122 > 119 characters)

@dc740  There are also the other comments I left on the PR above.

Thanks, closed in favour of #229


Replace TerminalSettings runtimeclasses with interfaces only

TerminalSettings.dll exists because it is difficult to coerce the C++/WinRT build infrastructure to produce a type library and a set of headers without either statically linking (which rolls up the generated types into the consuming project) or dynamically linking (which forces us to put a DLL on disk).
I posit that the ideal representation of settings is the ICoreSettings and IControlSettings interfaces only. No classes need to be implemented in TerminalSettings.dll, because all they'd do is ferry data back and forth.
By dropping the classes and switching to the interfaces, we can remove the setters from the interfaces, and remove the runtime classes completely. Cascadia (or TerminalApp::<something>) can implement ICoreSettings and IControlSettings as views over existing profile data.
This will reduce both the number of runtime hops required for loading and saving settings and the number of code authoring hops required for adding new settings.

So that's what I tried initially. However, the TerminalCore project is a non-cppwinrt static lib. This was done to avoid having dll hops between TerminalCore and TerminalControl, which I believed would be frequent. Because TerminalCore wasn't a cppwinrt project, it couldn't generate a winmd/header pair for the idl.
Trying to make it a cppwinrt static library also introduced it's own insanity of build errors, where sometimes the winmd would be double included, or not included at all.
You also can't have a cppwinrt project that only has interface definitions without defining at least one type. I don't know if that was resolved in cppwinrt 2.0 or not. I tried this initially by making a TerminalSettings project that only included two idl files, but somewhere up the tree, msbuild was not be happy about the fact that the project didn't generate a dll (since it had no code, it didn't build a dll).

Indeed. I'll mark this help-wanted; I know that it's possible to have a project that only produces a type library, we just might need to dig deep on build system arcana.

Notes: I think it's okay that TerminalCore wouldn't be a C++/WinRT project. Since it does live on the "fully C++" side of the world, it wouldn't be unreasonable for it to use wil::com_ptr over the raw interface types in the ::ABI namespace that MIDL generates. It might even be preferable... the annoying thing is unpacking HSTRINGs, but even that really isn't all that bad.
It can also become a C++/WinRT consumer very easily. It's significantly cheaper than authoring components, and it is the recommended way to consume all WinRT APIs in all C++ code.

@zadjii-msft - First I am no expert on this and I am just starting to read up on WinRT.  Plus - I don't think I 100% understand the issue, but the discussion helps me learn.  So please ignore if this isn't helpful.

You also can't have a cppwinrt project that only has interface definitions without defining at least one type. I don't know if that was resolved in cppwinrt 2.0 or not. I tried this initially by making a TerminalSettings project that only included two idl files, but somewhere up the tree, msbuild was not be happy about the fact that the project didn't generate a dll (since it had no code, it didn't build a dll).

Instead of doing a project for this, could you use the command line and build step?  Use midl.exe and compile the idl files then combine them.  Then use cppwinrt.exe  to generate the headers.
If I understand the issue correctly it appears this will work.
Docs that I have been reading on this.
midl command line
cppwinrt example

That's certainly an idea. I'd be wary to make sure that the build artifacts are included correctly in all the consuming projects, but it's certainly something worth trying.

Huh, I was assuming TerminalSettings was a WinRT dll so you could eventually have your own app hosting TerminalControl load the user's default settings using the same logic and hand them off to as much of the other packages as you were using...
Basically, would it make sense to just move the parsing code into TerminalSettings and actually have a .dll on disk?

I certainly considered that. I was thinking about something like Visual Studio, which could host a version of the control (or something using the core at least). They however probably want to use their own settings serialization and settings structure. They probably don't have any notion of profiles or anything like that, and they probably want to store the settings as XML. So, I wanted TerminalSettings to be application-independent, so any app could implement settings however they like, so long as they pass a common settings structure to the terminal itself.

Note to whoever follows up:
https://github.com/microsoft/terminal/blob/5119ed1645d9606254ad3bdfb028bade55873086/src/cascadia/TerminalSettings/TerminalSettings.cpp#L125-L129
TerminalSettings is no longer a "dumb data carrier", and this logic will need to be moved to wherever it ends up living.
(/cc @hannesne)

Promoting this issue to be an epic. I'll copy the checkboxes below into the main description of this header.
This plan is largely based on #6904 and they'll be less risky than doing it all at once.

[ ] Introduce/Move TerminalApp bridge

Move TerminalSettings::TerminalSettings to TerminalApp::TerminalSettings

[ ] Move TerminalSettings interfaces

Move TerminalSettings::ICoreSettings to TerminalControl project
Move TerminalSettings::IControlSettings to TerminalControl project

[ ] Transform TerminalApp settings objects into WinRT objects

Profile
ColorScheme
GlobalSettings
Keybindings (this may be moved out to be its own PR)

[ ] Move the new WinRT settings objects into TerminalSettings


Typo in Information Disclosure threat for data-flows

When applying the suggested threats for a data flow component, there is a typo:
"Generic informtion disclosure threat", which should read "Generic information disclosure threat". This is only for the data flow components, the other components are spelt correctly.

Note that a fix for this is pending, in pull request #42 "Fix typo in default title of disclosure" in owasp-threat-dragon-core repo

PR in repo owasp-threat-dragon-core that provides a fix has now been merged:
https://github.com/mike-goodwin/owasp-threat-dragon-core/pull/42


Add support for general constants through a modified key_const function

Alternative to #33
@serhiy-storchaka @thautwarm

Codecov Report

Merging #34 into master will decrease coverage by 0.02%.
The diff coverage is 92%.

@@            Coverage Diff             @@
##           master      #34      +/-   ##
==========================================
- Coverage   93.58%   93.56%   -0.03%
==========================================
  Files          17       17
  Lines        2605     2625      +20
==========================================
+ Hits         2438     2456      +18
- Misses        167      169       +2

Impacted Files
Coverage Δ

bytecode/concrete.py
94.81% <100%> (ø)
:arrow_up:

bytecode/instr.py
94.02% <100%> (+0.12%)
:arrow_up:

bytecode/tests/test_concrete.py
99.24% <87.5%> (-0.5%)
:arrow_down:

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 a7cc7a5...7fdc4f5. Read the comment docs.

https://github.com/vstinner/bytecode/pull/34/files/bf0d8348ac79a1f1ad2ee24bcb634c96d6595e74#r211472739
If it doesn't break the working of related codes, why not remove the obj in const_key's return?
Actually I used to think about giving an implementation(see https://github.com/vstinner/bytecode/issues/32#issuecomment-413532398) exactly as this PR, however I'm afraid of the prospective usage of the obj in const_key's return.
Could you please tell @serhiy-storchaka and me why we need an obj itself in its const_key?

Oh, I see.

Could we merge this PR now? I'm looking forward to it :)


Unittest for Battwatts

Considering #284, it's apparent we need to add tests to cover BattWatts and potentially go through the model to update.

added some in pull request #324

This would be good.  See SAM issue 239 and 240.

@brtietz If you've already addressed this in your many tests, feel free to close it! Otherwise if you could add a few more for this config, that would be super helpful. Thanks!


fix: timestamp fields

Issue #, if available:
Description of changes:

update timestamp fields to first check for valid date before converting to number

onChange={(e) => {
        const date = new Date(e.target.value);
        if(!(date instanceof Date && !isNaN(date))) {
          setErrors((error) => ({ ...errors, [fieldName]: 'The value must be a valid date' }))
          return;
        }
        const value = Number(date);
        // rest of code
      }}

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Codecov Report

Merging #672 (ba36fb8) into tagged-release/forms-and-views (2e20271) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@                       Coverage Diff                       @@
##           tagged-release/forms-and-views     #672   +/-   ##
===============================================================
  Coverage                           90.87%   90.87%
===============================================================
  Files                                  98       98
  Lines                                3703     3706    +3
  Branches                              995      995
===============================================================
+ Hits                                 3365     3368    +3
  Misses                                317      317
  Partials                               21       21

Impacted Files
Coverage Δ

...codegen-ui-react/lib/forms/form-renderer-helper.ts
97.77% <ø> (ø)

...ckages/codegen-ui-react/lib/forms/event-targets.ts
100.00% <100.00%> (ø)

packages/codegen-ui-react/lib/forms/form-state.ts
97.67% <100.00%> (+0.05%)
:arrow_up:

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 2e20271...ba36fb8. Read the comment docs.


Fix color table window resize offscreen bug

Description
Resolves #17801

The color table window now has a maximum height, so it can no longer resize off the screen. I also moved some gui elements around to use the screen space more efficiently.
This was a real chore... I went down many a Qt rabbit hole before arriving at this much simpler solution.

Type of change

[x] Bug fix~~
[ ] New feature
[ ] Documentation update
[ ] Other

How Has This Been Tested?

built and ran on rztopaz. The gui looks and functions as I expect.
Checklist:

[x] I have followed the style guidelines of this project.~~
[x] I have performed a self-review of my own code.~~
[x] I have commented my code where applicable.~~
[x] I have updated the release notes.~~
[ ] I have made corresponding changes to the documentation.
[ ] I have added debugging support to my changes.
[ ] I have added tests that prove my fix is effective or that my feature works.
[ ] I have confirmed new and existing unit tests pass locally with my changes.
[ ] I have added new baselines for any new tests to the repo.
[x] I have NOT made any changes to protocol or public interfaces in an RC branch.~~
[x] I have assigned reviewers (see VisIt's PR procedures for more information).~~

Merge w/ develop in #18307


Data aggregation

-> moved constants to separate static.py file
-> issues
-> code review
& some stats @chrisngyn added.

Oops. Forgot I have one last query to push.


S3 address

When trying to upload a file I get a cross-origin request blocked response, even tho my CORS on aws are set. According to this StackOverflow questions the endpoint address should be http://bucket.s3.amazonaws.com/ and not http://s3.amazonaws.com/bucket/ in order for CORS to be respected. The error I get back says otherwise, where can I change that?

Orion uses https://github.com/Lepozepo/S3. That package returns the url in the way you are seeing it, if you want to change you can remove the s3 package and put the modified contents of the package in you code. https://github.com/orionjs/orion/blob/master/packages/s3/s3.js

@nicolaslopezj The package allow the parameter "region" and switch to the subdomain urls, if it's not "us-standard" https://github.com/Lepozepo/S3/blob/345971c472fef17cbd40cf278c6d476df1763116/server/sign_request.coffee#L43
You should implement the region Setting in orion-s3.
@smogg Use a bucket in region "us-standard" until it's fixed

Thanks for the clarification, everything works as expected now.


ReferenceError: Sheets is not defined (line 9, file "Code")Dismiss

Expected Behavior
Sample URL:
Description:
Actual Behavior
Steps to Reproduce the Problem

Please see https://stackoverflow.com/a/62690189/512127


Opening belt then opening inventory bag will close the window instead of swapping windows

Description

or vice versa
Reproduction

Screenshots

Additional context

Also reports of this happening with toolboxes as well

Happens with everything, belts, bags, medkits any inv item from look of it. Stayed closed for me until i close it and reopen if a few times via the verb menu, its very painful to do.

It looks like RobustToolbox 5382 is breaking it.

Adding some screenshots to better show this issue:
First inventory opened:

Second inventory opened:

A split second later, the second inventory is now invisible (no buttons pressed):

If you right-click the second inventory, you can see it shows "Close Inventory", meaning it's still open but just not visible:


Missing share button?

I no longer have the share button in the chat gpt UI. Uninstalled/reinstalled the extension / restarted Chrome, and logged into the extension w/ oauth

Sorry to hear that @ccheney . Could you send a screenshot? I've just tried to reproduce this by uninstalling and reinstalling the extension but was not able to.

@ccheney If you open chrome developer tools (right click > view source) and navigate to the 'sources' tab and select 'content scripts', do you see sharegpt appear?

Ok, looks like the button is rendered into the markup so maybe a styling problem

.dark.gdpr-settings, .flex.cookie, .py-3.rgpd, .visible.scroll-to-top, .visible.cookies, .bottom-0.cookies, .btn.gotop, #share_button, #share-bottom, #share-button, #share_bottom, .text-center.cookie, .text-center.cookie-consent, .text-center.rgpd, .fixed.cookies_law, .fixed[data-cookiebar], .block.cookies {
    display: none !important;
}

unsure where these styles are coming from but it sets display: none to #share-button

@ccheney Are you using any other chrome extensions, e.g. to block cookie consent banners? This can cause the share button to be hidden

It could be from Privacy Badger or another

You're right. It was uBlock origin.
Maybe update the selector for the #share-button

Will do 👍 thanks for flagging, I'll find one that's not covered by adblockers.


Fix #239 Making parameter prompt modal dialog

#239
@AndreSayreMSFT @HuanhuanSunMSFT @Microsoft/poshtools

Can we clean up the large amount of whitespace?
Also doesn't work on long input.

PasswordBox? (otherwise. looks good)


Spam links still being created with reCAPTCHA v2

Greetings everyone,
I am having issues with spam links being created at shrinky.link/http://ws.jpits.us/yourls/, even with reCAPTCHA v2 enabled at the highest setting. Here's what my public front page looks like:
<?php
// Start YOURLS engine
require_once( dirname(__FILE__).'/includes/load-yourls.php' );

// Change this to match the URL of your public interface. Something like: http://your-own-domain-here.com/index.php
$page = YOURLS_SITE . '/index.php' ;

// Part to be executed if FORM has been submitted
if ( isset( $_REQUEST['url'] ) && $_REQUEST['url'] != 'http://' ) {
	include('captcha.php'); if ($resp != null && $resp->success) {

	// Get parameters -- they will all be sanitized in yourls_add_new_link()
	$url     = $_REQUEST['url'];
	// $keyword = isset( $_REQUEST['keyword'] ) ? $_REQUEST['keyword'] : '' ;
	// $title   = isset( $_REQUEST['title'] ) ?  $_REQUEST['title'] : '' ;
	$text    = isset( $_REQUEST['text'] ) ?  $_REQUEST['text'] : '' ;

	// Create short URL, receive array $return with various information
	$return  = yourls_add_new_link( $url, $keyword, $title );

	$shorturl = isset( $return['shorturl'] ) ? $return['shorturl'] : '';
	$message  = isset( $return['message'] ) ? $return['message'] : '';
	$title    = isset( $return['title'] ) ? $return['title'] : '';
	$status   = isset( $return['status'] ) ? $return['status'] : '';
	} else {
	 // die("Error: INVALID CAPTCHA");
         yourls_die( $message = 'You must solve captcha', $title = '', $header_code = 200 );
}
}

// Insert  markup and all CSS & JS files
yourls_html_head();

// Display title
// echo "
YOURLS - Your Own URL Shortener
\n";
   echo "
Shrinky.Link – Shrink your links
";

// Display left hand menu
// yourls_html_menu() ;

// Part to be executed if FORM has been submitted
if ( isset( $_REQUEST['url'] ) && $_REQUEST['url'] != 'http://' ) {

	// Display result message of short link creation
	if( isset( $message ) ) {
		echo "
$message
";
	}

	if( $status == 'success' ) {
		// Include the Copy box and the Quick Share box
		yourls_share_box( $url, $shorturl, $title, $text );

		// Initialize clipboard -- requires js/share.js and js/clipboard.min.js to be properly loaded in the
		echo "\n";
	}

// Part to be executed when no form has been submitted
} else {

		$site = YOURLS_SITE;

		// Display the form
		echo <<<HTML

Enter a new URL to shorten

		<form method="post" action="">

URL: <input type="text" class="text" name="url" value="http://" />

<input type="submit" class="button primary" value="Shorten" />

		</form>
HTML;

}

?>

Thank you for using Shrinky.Link

This project is maintained By: Jayke Peters

Want to customize your links?

Register for an account at the Help Desk

Abuse

Clicked on a bad link? Report abuse <a<EMAIL_ADDRESS>
If you can't click on the link, email us at support at jpits dot us

<?php

// Display page footer
yourls_html_footer();

Some additional information that may or may not help resolve the issue:

Captcha Tutorial Followed by Jared Stark (blog.yourls.org)
Cloudflare CDN is being used
Ubuntu 16.04
PHP 7.2.17-1+ubuntu16.04.1+deb.sury.org+3 (cli) (built: Apr 10 2019 10:50:19) ( NTS )
mysql  Ver 14.14 Distrib 5.7.26, for Linux (x86_64) using  EditLine wrapper
YOURLS version 1.7.3
Apache 2.4

DB DUMP: yourls_url.pdf
Any help would be much appreciated!
Thanks,
Jayke

I wonder what reCAPTCHA does if your domain and API key do not match?

Try giving the alternate domain a valid reCAPTCHA key.
Also see if you can find the actual requests creating the spam links in your web server logs. I can't shake the thought that they might not be coming in through your public UI at all…

I wonder what reCAPTCHA does if your domain and API key do not match?

Try giving the alternate domain a valid reCAPTCHA key.
Also see if you can find the actual requests creating the spam links in your web server logs. I can't shake the thought that they might not be coming in through your public UI at all…

Try it again

Yeah, aside from putting a valid reCAPTCHA API key for your alternate domain(s) and checking the request logs to see how the spam links are getting submitted… I'm out of ideas for the moment.
I verified that disabling JavaScript or failing to solve the reCAPTCHA fails to submit a link, as does manually POSTing to the form endpoint. I very much doubt that your front page is the weak link. I encourage you to look into your request logs. Pick a recent spam link, and look for the request that created it in Apache's logs for all domains that point to this YOURLS database.

Yeah, aside from putting a valid reCAPTCHA API key for your alternate domain(s) and checking the request logs to see how the spam links are getting submitted… I'm out of ideas for the moment.
I verified that disabling JavaScript or failing to solve the reCAPTCHA fails to submit a link, as does manually POSTing to the form endpoint. I very much doubt that your front page is the weak link. I encourage you to look into your request logs. Pick a recent spam link, and look for the request that created it in Apache's logs for all domains that point to this YOURLS database.

Thanks, I will see what I can do. Cloudflare has some other WAF features that I can utilize in the meantime, or I can just restrict it to US IP addresses only to rule out any bad guys.
Do you know off the top of your head any other secondary methods that will fool bots, but is easy for humans? I've heard of an invisible form or something like that...
Thanks,
Jayke Peters
Sartell, MN
<EMAIL_ADDRESS>+1<PHONE_NUMBER>

From: dgw<EMAIL_ADDRESS>Reply-To: YOURLS/YOURLS<EMAIL_ADDRESS>Date: Thursday, August 1, 2019 at 11:48 PM
To: YOURLS/YOURLS<EMAIL_ADDRESS>Cc: Jayke Peters<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [YOURLS/YOURLS] Spam links still being created with reCAPTCHA v2 (#2540)
I wonder what reCAPTCHA does if your domain and API key do not match?
Try giving the alternate domain a valid reCAPTCHA key.
Also see if you can find the actual requests creating the spam links in your web server logs. I can't shake the thought that they might not be coming in through your public UI at all…
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Please just check your logs. That's why you have server logs. Cloudflare shouldn't matter, because we aren't interested in the source IP, but the requested URL and HTTP verb used.
reCAPTCHA is so popular, I'd say you would have heard about a flaw like this before. Or more likely, it would have been fixed long ago. I'm more inclined to believe it's a server misconfiguration, a bug in the frontend, or maybe (but not likely) a security hole in YOURLS' API. (If you've set YOURLS' cookie key constant, and defined non-default username(s) in the config, it's highly improbable that anyone could attack your authenticated API by spoofing the signature.)

Please just check your logs. That's why you have server logs. Cloudflare shouldn't matter, because we aren't interested in the source IP, but the requested URL and HTTP verb used.
reCAPTCHA is so popular, I'd say you would have heard about a flaw like this before. Or more likely, it would have been fixed long ago. I'm more inclined to believe it's a server misconfiguration, a bug in the frontend, or maybe (but not likely) a security hole in YOURLS' API. (If you've set YOURLS' cookie key constant, and defined non-default username(s) in the config, it's highly improbable that anyone could attack your authenticated API by spoofing the signature.)

Thanks again. I will be investigating. I think I am going to make a dummy YOURLS installation, just for bots to abuse, so I can further gain insight. I will do many tests, and maybe I can help make YOURLS better.

With reCAPTCHA
Without reCAPTCHA
User Agents
IP Blocks
URLS
HTTP METHODS, PUT, GET, POST, etc.
And other parameters that I may want to monitor...

Hello, i get also spam links and i use recaptcha v3.   How can i make it harder to create links for SPAM?   Maybe a word Blacklist?


Do with filter (if)

🚀 Feature request
In Scala, you can do a for-comprehension with a if:
for {
  n <- Some(12)
  if n < 10
  m <- Some(n * 2)
} yield m

Would it be possible to do this with a Do?
Maybe with this syntax:
Do(option)
  .bindL('n', () => some(12))
  .filter(({ n }) => n < 10)
  .bindL('m', () => some(n * 2))
  .return(({ m }) => m)

In Scala, the for-comprehension checks that the given Monad has a withFilter method.

You can't do this for an Either
For a Future, the failed value is:Future(Failure(NoSuchElementException("Future.filter predicate is not satisfied")))

But I have no idea how this could be done with a Task or a TaskEither. Maybe with a TaskOption?
Other Monads?

This would probably work for monads that are Filterable. Whether or not all Monads are Filterable, I do not know.
https://gcanti.github.io/fp-ts/modules/Filterable.ts.html
https://gcanti.github.io/fp-ts/modules/FilterableWithIndex.ts.html

It seems a Monad is not necessarily Filterable. However, you could implement your own For for things that are both Monad and Filterable. It could use ´Do´ for the operations that do not require for the type to be Filterable.

I made an experimental implementation of For notation. However, I can not figure out how to reuse code from the DoClass so I had to use copy/paste to make it work. Other than that it seems to work. See https://github.com/cyberixae/fp-ts-contrib/commits/implement_for_notation

Oh wow! Nice job!
I was thinking about the method name: wouldn't this be closer to the usual conventions of fp-ts:
For(option)
  .bind('n', some(12))
  .filter(2 > 3)
  .filterL(({ n }) => n < 10)
  .return(({ n }) => n)

But I don't see cases where filter isn't lazy.

The L stands for lambda. I think it would be nice to have the constants have a suffix instead of the lambdas since the constant versions are more of a special case. I don't think the L suffix naming is from fp-ts. I'm not sure if it makes sense to add the For notation to fp-ts-contrib. Maybe you could fork it and create your own npm package that implements the for notation. You could then make it more appealing to people with Scala background. Just an idea though. Don't feel obliged to do so.

I always thought that in fp-ts the L stands for lazy. In v1 of fp-ts, for instance for Option.getOrElse, there used to be both getOrElse et getOrElseL signatures.
https://github.com/gcanti/fp-ts/blob/1.x/docs/modules/Option.ts.md#getorelse-method-1
I have no problem with not adding For to fp-ts-contrib. This was just a suggestion and I managed to make my code work without it :)

Perhaps it was used for lazy in fp-ts however the Do notation was developed separately. See https://paulgray.net/do-syntax-in-typescript/#do-l-bind-l-sequence-sl-let-l-variants