UndefinedError("'sphinx_version_info' is undefined") - Error in current master

Problem
This must have been introduced in #1345
Building for instance the Read the Docs user docs with the current theme gives this error:
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 96 source files that are out of date
updating environment: [config changed ('version')] 97 added, 3 changed, 0 removed
reading sources... [100%] versions
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [  1%] abandoned-projects
Theme error:
An error happened in rendering the page abandoned-projects.
Reason: UndefinedError("'sphinx_version_info' is undefined")
make: *** [Makefile:62: html] Error 2

I would want to close this as "invalid" as somehow the entire sphinx_rtd_theme.setup(app) isn't called from this documentation set. But I think it's necessary to find out why, since this update would seem to break the documentation if left un-adressed.

The problem building docs.readthedocs.org is in conf.py:
https://github.com/readthedocs/readthedocs.org/blob/9e7787ce036c49ea03410bbf77b20ccf1b607873/docs/conf.py#L146
Commenting out this line makes the documentation project build, calling the theme's entrypoint setup(app). I would suppose that the html_theme_path configuration value isn't intended for themes with entrypoints and instead manages to overwrite the installed sphinx_rtd_theme entrypoint and all the setup(app) logic?

I suspect the main issue is the the sphinx_rtd_theme is missing from extensions = [] in conf.py. The theme won't be executed as an extension in this case (sphinx_rtd_theme.setup() is called on instantiation).
However, this is probably a rather common pattern. We didn't specify this installation pattern for a long while, and it's probably not very obvious that the theme needs to be set up as an extension on top of being set as html_theme.
I think this signals we should go back to the original logic, using template code, and fix the bug with breaking up sphinx_version there instead.

@agjohnson
Adding the theme in html_theme i sufficient to have setup(app) called, but somehow adding the path in html_theme_path kills the call. There's no need to add it to extensions.
Here's a minimal conf.py that will call setup(app)
project = 'Test'
copyright = '2022, Test Person'
author = 'Test Person'

extensions = []

templates_path = ['_templates']
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']

html_theme = 'sphinx_rtd_theme'
html_static_path = ['_static']

Just to illustrate the point, here is a minimal conf.py that does NOT call setup(app)
project = 'Test'
copyright = '2022, Test Person'
author = 'Test Person'

# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration

extensions = []

templates_path = ['_templates']
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']

# -- Options for HTML output -------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output

html_theme = 'sphinx_rtd_theme'
html_static_path = ['_static']
import sphinx_rtd_theme
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]

This is also important for whatever solution we would choose for a sphinx-jquery extension since we cannot rely on logic inside setup(app) unless we wrestle this.

Noting that the currently injected Sphinx configuration code for Read the Docs has this:
https://github.com/readthedocs/readthedocs.org/blob/9e7787ce036c49ea03410bbf77b20ccf1b607873/readthedocs/doc_builder/templates/doc_builder/conf.py.tmpl#L60-L68
if using_rtd_theme:
    theme = importlib.import_module('sphinx_rtd_theme')
    html_theme = 'sphinx_rtd_theme'
    html_style = None
    html_theme_options = {}
    if 'html_theme_path' in globals():
        html_theme_path.append(theme.get_html_theme_path())
    else:
        html_theme_path = [theme.get_html_theme_path()]

Which ultimately means that for now, we cannot rely on setup(app) being called in most projects.

Fixed in #1356


Add license title

It's not strictly required, but it's useful metadata, and part of the recommended license template text (see http://choosealicense.com/licenses/isc/ and https://opensource.org/licenses/isc-license)

Makes sense, thanks.


Remove resource limit

This patch removes the resource limit for test operator pods as we are hitting both issue when:

the limit is too low
the limit is too high (scheduler does not have where to schedule the pod)

This is a hotfix before we expose the resource limit values through the test-operator CRs and find the correct default values.
Related PRs:

https://github.com/openstack-k8s-operators/test-operator/pull/222
https://github.com/openstack-k8s-operators/test-operator/pull/205

/lgtm

/test test-operator-build-deploy


Support Arithmetic function ABS

Backgrounds

Kotlin JDSL does not yet support an arithmetic function ABS.

Objects

Support an arithmetic function ABS.

Requirements

Creates abs() function in com.linecorp.kotlinjdsl.dsl.jpql.Jpql for supporting an arithmetic function ABS.

Contribution

Please check if there is an assignee in this issue. And if it don't have an assignee, please leave comment to assign.
Please check the commit convention through the commitlint.config.js file. The commit  convention also described in the PR template.
When you use intellij, please set the code style through the .editorconfig file.
Please create the PR for develop as the base branch.
If you have any questions, please leave comment in Kotlin-JDSL Discord Channel in LINE Open Source

I would like to work on this issue.

Hi jbl428! 🥇
I assigned this issue to you. Thanks for your help!


EDNS not working for IPv6 nameserver behind opnsense

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:

[x] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[x] I have searched the existing issues and I am convinced that mine is new.

Describe the bug
This is for opnsense OPNsense 21.1-amd64 running on a pc-engines APU.
A DNSSEC enabled DNS server with an IPv6 address behind an opnsense firewall has problems with some queries. This is what the "EDNS compliance tester" at https://ednscomp.isc.org/ednscomp/ says:
dns=ok edns=ok edns1=ok edns@512=ok ednsopt=ok edns1opt=ok do=timeout ednsflags=ok docookie=timeout edns512tcp=ok optlist=ok
(please note the timeout errors).
The issue seems to be related to large UDP packets and packet reassembly. With Firewall: Settings: Normalization:Disable interface scrub enabled, IPv6 works, but IPv4 fails. Disabling the setting, IPv4 works, but IPv6 queries do not work.
DNS can be made working by disabling the line
$scrubrules .= "scrub on {$scrubcfg['if']} inet6 all {$scrubnodf} {$scrubrnid} {$mssclampv6}\n";
in filter.inc.
To Reproduce
Steps to reproduce the behavior:

Setup a DNSSEC enabled name server with a IPv6 address behind an opnsense firewall.
Make sure Firewall: Settings: Normalization:Disable interface scrub is disabled.
Visit https://ednscomp.isc.org/ednscomp/, enter a zone served by this nameserver and press sumbit.
Check for errors.

Expected behavior
IPv6 UDP packets of arbitrary length should reach the nameserver.
Additional context
pfsense has a similar error that could also be resolved by editing the php that generates the scrubing rules. There was a blog describing this error which is gone. The old page is available using the wayback archive:
https://web.archive.org/web/20200811014208/https://melkfl.es/article/2018/07/edns/
Environment
Software version used and hardware type:
opnsense OPNsense 21.1-amd64
PC-Engines APU 4D4

Interface scrub rules aren't generated when disabled:
https://github.com/opnsense/core/blob/f3e6a227e5817c61f71d4b485284a60a472949e2/src/etc/inc/filter.inc#L671-L673
The referenced scrub v6 rule is part of the same block.

I'm sorry for not being precise enough.
...
2. Make sure Firewall: Settings: Normalization:Disable interface scrub is disabled.
...
Means that the box is not ticked. So because the box is not ticked, scrubbing is not disabled, which means that the scrub rules in filter.inc are generated.

yes, my point exactly, if you do want to disable scrubbing, you need to disable it. The rule itself is needed for this https://github.com/opnsense/core/issues/4484. You can always create more fine grained rules if needed manually.

Actually I don't want to disable scrubbing in general. I would like to disable defragmentation for IPv6 which seems to the the problem. Citing from the blog page linked in the issue:
"A bit more fiddling later, and it looked like my pfSense was indeed reassembling the IPv6 packets (which is a bad idea to begin with), and then trying to shove them into its WAN interface in their reassembled state. The packets being >1500 bytes in size, that would trigger an ICMPv6 message that the packet was too big and so the packet would make like Jimmy Hoffa and disappear."
opnsense seems to behave identical here.
Regarding fine grained rules: How would I disable defragmentation for IPv6 (maybe for just one interface)? I've looked into Firewall: Settings: Normalization:Detailed settings, but could not find anything regarding defragmentation.

just disable the interface scrubbing, which is a general setting and build your own with the rules below....

All that's in the general rule should be configurable manually too. If I'm not mistaken "fragment reassemble" is standard when scrub is enabled, but you can always inspect pf.conf (man pf.conf)

As said above, I cannot find anything that relates to fragment reassembly in the detailed firewall scrub rules. Could you please advise me? Maybe I'm looking in the wrong place?
Besides that, if opnsense reassembles IPv6 fragments but does not fragment them again before passing them to the target interface, this is clearly a bug in my eyes. This means that no IPv6 UDP packet > 1500 bytes will reach its destination.

@mauline
Hi
from pf.conf man:
When forwarding reassembled IPv6 packets, pf refragments them with	the
original maximum fragment size.  This allows the sender to	determine the
optimal fragment size by path MTU discovery.
so no, of course pf doesn't try to send unfragmented traffic.
imho the question is why the PMTUD does not work in this setup (I'm afraid packet capturing will be needed to understand what is happening with icmpv6 type 2 messages).
another issue is pf itself imho. based on this post from pf maintainer,  imho fragment reassembly is always enabled with scrub enabled:
https://forums.freebsd.org/threads/omitting-fragment-reassemble.77854/post-485611
so imho if it is not possible to solve the PMTUD issues and the only way is to disable the reassembly (which is not good imho), then you can try to disable the scrub only for ipv6 and only for your name server.
@AdSchellevis pointed out how you can try to do this (disabling the general scrubbing and building your own)

Thanks a lot for your comment! I will do some packet capturing this weekend and post the results.
Actually I see no reason why opnsense does reassembly of IPv6 UDP packets at all. In the DNS case, the client tries to detect the maximum transfer unit and the sender fragments the packet according to this number. If some router in between starts to reassemble packets without both sides knowing, PMTUD does no longer work. For IPv4, reassembly is necessary to make NAT work. But using NAT for IPv6 is pretty uncommon, so I doubt, reassembly is necessary at all.
Regarding the workaround pointed out by @AdSchellevis, I'm still missing how to do this. I cannot find any setting in the GUI that enables me to configure packet reassembly based on an interface or destination host level. Can you give me a hint?

@mauline the plus sign at the top right corner can be used to add custom rules.

@mauline
if something happens to the traffic, then this is not an opnsense decision, but pf. and pf, if we believe the quote from man, tries not to interfere with the ipv6 PMTUD between endpoints.
reassembly itself is useful if it works correctly. because it allows you to check not only the IP headers but also the headers of subprotocols (ports, icmp codes etc.)
if pf has any issues with ipv6 reassembly, then it would be interesting to understand and inform the maintainer
in Firewall: Settings: Normalization you can "Disable interface scrub" and Add your manual scrub rules
hmm
@AdSchellevis  I cannot find an option to specify only the inet\ipv4 proto in the scrub rule settings. bad looking or really missed?

@kulikov-a I think we've omitted the protocol selection indeed, but that probably doesn't matter as you still can match on source / destination networks (<IP_ADDRESS>/0).

@kulikov-a Thank you. I will come up with some packet captures and then we can continue the discussion.

in Firewall: Settings: Normalization you can "Disable interface scrub" and Add your manual scrub rules

I know, but ok. So I disable interface scrub which globally disables packet reassembly.
Which setting in the manual scrub rules enables packet reassembly for packets matching this rule? Under "Normalization" I can see 5 settings, but none of them changes IP reassembly. Or am I missing something?

@AdSchellevis tricky! thanks )
@mauline
so imho you cant try to disable "Disable interface scrub" and add scrubbing for ipv4 sources only. or even try to make a Network Group Alias to exclude DNS server from all internal networks

@mauline
i think you need to disable scrubbing at all for this source. by enabling it for all except DNS host ipv6 address

@mauline
as mentioned in the https://forums.freebsd.org/threads/omitting-fragment-reassemble.77854/post-485611, there is a feeling that at the moment there is no way to enable scrubbing without reassembly. so you will have to completely disable scrubbing for this source

@AdSchellevis
sorry, maybe for such a case of granular scrub settings it is worth adding the ability to create "no scrub" rules?
(I can try to make a pr sometime)
Or have I missed something and there is such ability?

@kulikov-a to be honest, I don't think it adds much. maybe it's easier to just add the protocol so you can generate the exact same with two rules, maybe accompanied with some documentation (https://github.com/opnsense/docs/blob/master/source/manual/firewall_scrub.rst).

@AdSchellevis from what I see (manual scrub rules are written before the general ones) this could be done using one "no scrub" rule without turning off the general rules.
but of course the same can be done with existing capabilities, thanks!

@kulikov-a Ok so, I've created packet captures of working and non working scenarios and I can confirm the behavior described by me above:
On response to a DNS query, the DNS server sends a correctly fragmented reply. The firewall reassembles the fragments, and tries to send the reassembled packet over the outgoing interface, where it will be refused and an ICMP "packet too large" error is generated.
Problem is that the sender (DNS server) cannot do anything to remedy, because even if it creates smaller fragments in response the the ICMP error, this will have no effect. I haven't investigated why it works with IPv4 (see below for reason), but I would assume that for IPv4 the packet is again split into fragments before sending it over the outgoing interface. As a consequence opnsense breaks all IPv6 connections using packets larger the the MTU of the outgoing interface - if not serious trickery is applied.
Anyway, I'm not going to pursue this any further. It seems some opnsense members aren't really interested in improving opnsense. See #4872. I'm not going to work in a toxic climate like this and therefore closing this issue.

@mauline Maybe we got off on the wrong foot here, maybe something is lost in translation, it might be good to re-read some of the posts before jumping to conclusions. I'm (and I think most people involved in the project) are open for discussions, just saying it really helps if you're not jumping to conclusions and throw Wiki articles around about what a clone means.... There's often more to it then the single issue you're having your eye on at the time. Not trying to pursue you in doing anything, just asking for an open mind.

There might indeed be issues with pf (not refragmenting reassembled IPv6 packets) or OPNsense (no straightforward way to disable IPv6 fragment reassemble) which deserve further investigation.
That being said, taking a look at the bigger picture might be a good idea, too. Issues with fragmented IPv6 packets are unfortunately common and best avoided by not generating them in the first place. For DNS servers, this can and should be done by setting an appropriate EDNS buffer size: https://dnsflagday.net/2020/#action-authoritative-dns-operators

@mauline offtopic: I've been pestering devs for almost a year with questions, suggestions, and pieces of code (not always smart at all). And my opinion, if i may - you are in a hurry with conclusions (wrong foot really)
if you decide to try again:
could you describe in more detail: does the ICMP "packet too large" reach the server? Does server change the fragment size?Does pf change the size of the outgoing packet in accordance with the new size of the outgoing packet from the server?
and, by the way, is it possible to try without pf ipv6 nat (may be ipv6-nat is the issue)?


Add Solution for "Majority Element"

Given an array nums of size n, return the majority element.
The majority element is the element that appears more than ⌊n / 2⌋ times. You may assume that the majority element always exists in the array.
Example 1:
Input: nums = [3,2,3]
Output: 3
Example 2:
Input: nums = [2,2,1,1,1,2,2]
Output: 2
Constraints:

n == nums.length
1 <= n <= 5 * 104
-109 <= nums[i] <= 109

I'm interested in contributing to this repository as part of Hacktoberfest and would love the opportunity to work on this issue. Could you please assign it to me?

@Kushal997-das plz assign me this issue .

Hi @Kushal997-das,
I know the "Majority Element" problem solution . Could you please assign this issue to me so I can upload my solution?
Thank you!


merging should append values

Module version(s) affected
2.1.0
Description
In the current situation, merging arrays add values at the beginning of the array as described in
https://docs.silverstripe.org/en/5/developer_guides/configuration/configuration/#configuration-values
this is really not intuitive (or desirable in my opinion). A typical situation is this:

create an extension with a couple of db fields
these get added at the top
form scaffolder will be default render these fields on top (before things like firstname, surname, email...)
this basically makes form scaffolder mostly not user friendly

in general, as a developer, I expect values added by extension to be at the end of the array. Order often doesn't matter, but when it does, it should most likely be at the end, or at the very least, give me the opportunity to choose if the values should be appended or prepended, whatever the default should be.
i'm not exactly sure how a "low priority" parameter ends up being at the top, this also is not very clear from the code
How to reproduce
print_r(\SilverStripe\Config\MergeStrategy\Priority::mergeArray(['a' => 'v', 'b' => 'v'], ['c' => 'v']));

expected
array:3 [▼
"a" => "v"
"b" => "v"
"c" => "v"
]
but got
array:3 [▼
"c" => "v"
"a" => "v"
"b" => "v"
]
Possible Solution
No response
Additional Context
No response
Validations

[X] Check that there isn't already an issue that reports the same bug
[X] Double check that your reproduction steps work in a fresh installation of silverstripe/installer (with any code examples you've provided)

This would be a breaking change, and probably isn't really a bug so much as just a choice that we wouldn't necessarily make if we implemented this from scratch going forward.
If you would like to implement this change for the next major release, you can raise a pull request against the 3 branch with a corresponding changelog pull request against the 6 branch of silverstripe/developer-docs and we will review it.
If you don't want to implement this change, please close the issue.


Error on  npm start

@sojimon We would be happy to help, but could you please provide us with more info about your error


Update package.json

Point to the .mjs file as main and import.
What is it?

[ ] Feature / enhancement
[x] Bug
[ ] Docs / tests

Description
This change will point to the generated module file instead of the js file. It's also pointing imports to the same generated module file.
Checklist:

[x] My code follows the developer guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[ ] Added new tests to cover the fix / functionality

Already fixed in another PR


UI: Course URL Copied success message inconsistent

When clicking on share course option, course URL is copied and a success message is shown in green color.
The rest of the success messages in whole system are in blue color.
This is incosistency.
The success message in green should be changed to blue like other ones.
Current:

expected:

suggestion: The default success message in blue has an i icon, the green one has a tick mark. Tick mark on all the success messages throughout would look better, however this is an optional change.

i will change it to blue msg for new and later we can make it green the whole system

please test it with delete topic and delete channel.. it appears in grey

fixed


Incorrect interval for sin(x)*x

I am unable to compute the correct interval for sin(x) * x. I'm using the following code:
from interval import interval, imath

x = interval([-0.5, 0.5])
y = imath.sin(x) * x
print(y)                                # [-0.2397, 0.2397]

import numpy as np

X = np.linspace(-0.5, 0.5, 100)
Y = np.sin(X) * X
print(Y.min(), Y.max())                 # [0, 0.2397]

The correct bound should be [0, 0.2397], but pyinterval evaluates to [-0.2397, 0.2397]. Is there something I am missing?

At first glance, I think this is due to the fact that interval analysis methods typically do not consider the "connection" between the same variable appearing in two/more "independent" locations in the expression (here the import connection is the sign of the x and the sign of sin(x)).

Thanks Mark! That makes sense.
It's reasonable that pyinterval would over-estimate the range, which seems to be a well-known problem in interval arithmetic.


[OpPerf] Add example of using opperf with internal op locally

Description
Currently opperf supports for mx.nd operators alone.
However, locally, one can test internal ops. Documenting it in readme.
@access2rohit @sandeep-krishnamurthy @connorgoggins

@mxnet-bot run ci [unix-cpu]

@mxnet-label-bot add [pr-awaiting-merge]


Small typo in main.cpp.

s/programm/program/.

Thanks! Before I can accept the PR you have to join the W3C community group for WebAssembly (for legal reasons).

Apologies for the delayed response-- thanks for the info, but unfortunately it's just a tad more work than I feel like doing for this tiny fix :) I'll be sure to join if I decide to do anything more substantial!


Concatenate on axis=1 with misaligned blocks

Allow to concatenate on axis 1 two tables made of misaligned blocks.
For example if the first table has 2 row blocks of 3 rows each, and the second table has 3 row blocks or 2 rows each.
To do that, I slice the row blocks to re-align the blocks.
Fix https://github.com/huggingface/datasets/issues/5413

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


TLS Shim Layer DRBG

TLS Shim Layer DRBG
Description
Use PKCS #11 to seed a DRBG instead of calling PKCS #11 for all random numbers needed by TLS.
This reduces the load on secure elements significantly when creating many random numbers.
Checklist:

[x ] I have tested my changes. No regression in existing tests.
[x ] My code is Linted.

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

/bot run checks


Be able to adjust mem_buf_limit

What this PR does / why we need it:
Mem Buf Limit at 50KB works much better with Elastic Search as a backend. If set to hardcoded 5MB, and we try to cold start a fluent-bit DS with ES as backend, we saturate ES with too many in flight messages and nothing gets stored.
This PR allows the chart consumer to set a value other than 5MB.
Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

fixes #8907

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md

cc @kfox1111 @edsiper

/ok-to-test

/lgtm


Improve the HDF5 performance of the log file.

JSON + older HDF5 should be deprecated at some point.

Nice. Can you write a deprecation plan? And can you define the schema?

@J535D165 What kind of schema? Do we have it for the old one? I kind of remember something passing by...
I'm not sure about a deprecation plan. I want to improve some handling of the log-file, most notably remove "query_i" as a concept. (It took me ages to get the new format to behave like the legacy one..) So, as soon as possible would be my personal preference. But of course I understand I would break people's reviews, so maybe a read-only period? All that kind of stuff is so much work though >_>.

Closed in favor of https://github.com/asreview/asreview/tree/state-file-v3.


.mapError() not working?

We are using Promissum in a legacy project that we are trying to upgrade to Swift 3, but I found some issues when doing so.
Say that I have something like:
class Api {
  // ...
  fileprivate func requestJSON(_ path: Path) -> Promise<SuccessResponse<AnyObject>, ApiError> {
    let url = path.url(baseUrl)
    return manager
      .request(url)
      .responseJSONPromise()
      .mapError(self.errorTransformer)
  }

  // MARK: Error helpers

  fileprivate func errorTransformer(_ error: ErrorResponse) -> ApiError {
    return .networkingError(error.result as NSError)
  }

  // ...
}

Where ApiError is:
import Foundation
import Statham

public enum ApiError : Error {
  case notFound
  case networkingError(NSError)
  case jsonDecodingError(Error)
}

extension ApiError: CustomStringConvertible {
  public var description: String {
    switch self {
    case .notFound: return NSLocalizedString("Not Found", comment: "Api Error: resource not found")
    case .networkingError(let error): return error.localizedDescription
    case .jsonDecodingError(let error):
      #if DEBUG
        if let error = error as? JsonDecodeError {
          print(error.fullDescription)
        }
      #endif
      return NSLocalizedString("Server error", comment: "Api Error: Server error")
    }
  }
}

The problem comes when using .mapError(), where the compiler complains about "Argument passed to call that takes no arguments". Digging in the github, I can see that indeed there is this following method mapError() that does not take any arguments and that is a new addition since the 0.5.0 version.
I can see however the right method here, but it seems that extension is sort of overriding the right one? Or am I missing something important here?

The swift compiler often shows the "wrong" type of error in case of a type error.
Looking at your code, I'm guessing you're using the responseJSONPromise from the Alamofire extension. That returns a Promise<SuccessResponse<Any>, ErrorResponse>, not a Promise<SuccessResponse<AnyObject>, ErrorResponse> as you're using here.

Wow, Xcode does not help sometimes.
Thank you.


Grails 7: grails-spring-security-ldap

@bkoehm I have submitted a request for access so we can review this PR.

@bkoehm I believe you should have access to merge this PR.  When it merges, see if it kicks off the github action.


upgrade ruby to 3.0.5

Signed-off-by: Andrew Fader<EMAIL_ADDRESS>

There we go. Eventually we should move the image to openssf, but let's get it working first :-).


Update Bacalhau to use RPC interface (instead of shell commands)

Re: https://discord.com/channels/1212897693450641498/1212898458885685308/1255499431151800423

bacalhau has a lib to do this. things became more stable with this api.
https://github.com/bacalhau-project/bacalhau/tree/main/pkg/publicapi/client

We should consider removing the Bacalhau executor integration out of pkg/data into pkg/executor/bacalhau alongside the executor. At the time of writing, we also use Bacalhau for it's embedded IPFS, so some parts of the code may be more appropriate in directory or storage package.


Page Titles

Is it possible to pass a page title to GA-Beacon, to make it easier to read some of the GA reports?
This could be done by adding a query string with the desired title.
http://ga-beacon.appspot.com/UA-XXXXXXX-1/path/page.htm?pixel&title=Tracked Page Title

You can initialize page title via: http://localhost:8080/account/UA-XXXXX-X/path-to/page?dt="Page Title"

Hi,
I'd like to add you to my professional network on LinkedIn.

Carlos

Accept: https://www.linkedin.com/blink?simpleRedirect=c30MczkNejwOd3cMdPsTdzcVdjR4imVLqnhxt6BSrCACdAx5jmthdSQZumlbp6lOomxP9DhPpnlDnSlQqnpKqjRHpipxt6cJpnhFtCVFbnhPpnlDbmNJpjRDrCBHoS5Ot2pBt6BSrABDpl9BsD0ZoioScyROp6JCrTwTqiQNcTFJpPRBfP9SbSkLrmZzbCVFp6lHrCBIbDtTtOYLeDdMt7hE&msgID=I5988748260158767104_500&markAsRead=
You received an invitation to connect. LinkedIn will use your email address to make suggestions to our members in features like People You May Know. Unsubscribe here: https://www.linkedin.com/blink?simpleRedirect=0ScyROp6JCrTwTqiQNcTFJpPRAqmkCrTdElRsPojtfl4NRjDlvdz5WuB5Qgkx6kzBBl7tlgSRoq6xkrD5dk35Bs4FckTd6ozxDdSF8dD9zlAdfgR9jl45UdT1Ujjx3dkd1u6dlp3xmsCl5rjxBqmkSqn9PmCl9h7pcnQ9lcztkoT5jp7EMtzwUqnhQd79gu4x8dj1TuDF1sRdzmj9EtQxeljdzckZUu5l1gk5TtThpdPkMgQsRc4xhgjRAqmZI9DhPpnlDnSlQqnpKqjRHpiphdzdAhktElApOrkphgjRKpmJLl6hFripKtmMZt2oScyROp6JCrTwTqiQNcTFJpPRBfP9SbSkLrmZzbCVFp6lHrCBIbDtTtOYLeDdMt7hE&msgID=I5988748260158767104_500&markAsRead= Learn why we included this at the following link: https://www.linkedin.com/blink?simpleRedirect=3wUdPgZp4BBr6dFt79x9DhPpnlDnSlQqnpKqjRHpipIsBlBoSBSsCljsClJrThPtmcZoioScyROp6JCrTwTqiQNcTFJpPRBfP9SbSkLrmZzbCVFp6lHrCBIbDtTtOYLeDdMt7hE&msgID=I5988748260158767104_500&markAsRead=
© 2015, LinkedIn Corporation. 2029 Stierlin Ct. Mountain View, CA 94043, USA


Configuration helper link on main project page is broken

Not sure if this the best place to report this but on the docs on https://code4recovery.github.io/projects

The configuration helper links return errors like Not Found - Request ID: 01G9GJ34Q7825T1TJQZN84Q4ET

ah, thanks. that page is out of date, i've taken it down now.
for help getting started, please see https://tsml-ui.code4recovery.org/
for advanced configuration, please see https://github.com/code4recovery/tsml-ui#readme


Shortcut Guide: add Emoji panel shortcut

📝 Provide a description of the new feature
Hi! The Shortcut Guide is missing the Emoji panel shortcut (Win + .)
Could you add it please?
Thank you!

https://github.com/microsoft/PowerToys/issues/179


Create Posts “testi”

Automatically generated by Netlify CMS

👷 Deploy Preview for singular-belekoy-185ac4 processing.

Name
Link

🔨 Latest commit
5fd299ecf7a55e527921b63430b125d4283b489c

🔍 Latest deploy log
https://app.netlify.com/sites/singular-belekoy-185ac4/deploys/67703eb4e72e3e00083a2c64