text:
Feature Request: Allow setting of scrubbed parameter lists et al by configuration

Right now to add parameters, headers, etc to the list of things to be scrubbed requires implementing a whole module that duplicates a good chunk of the functionality of Sentry.Plug. Being able to specify you complete custom logic is great, but overkill for the 99% use case, which is just adding values to the lists to be scrubbed.
It would be great if instead of a hard coded list, the list of params to be scrubbed could be read from a configuration value and then allowing the option to completely override the logic if really needed.

While I've got the library forked, I'll go ahead a whip up a PR for this one as well

Thanks for opening an issue!
My main concern is whether adding a new way to configure is worth the added complexity, and the 99% use case is intended to be covered by the defaults that exist.  If there were edge cases to cover or potential pitfalls that the library would be able to help users with, I'd be more open to it. Right now I'm slightly leaning against this, as the function on the user side would be relatively small, ex:
defmodule MyApp.Sentry do
  def scrub_params(conn) do
    Map.drop(conn.params, ["secret"])
  end

  # ...
end

Mitchell,
That’s what I initially did, but they had to end up copying over all the recursive code to scrub those parameters inside nested structures as well.
That’s what ended up leading me to file this issue.
Sent from my iPhone

On Jul 15, 2020, at 7:24 AM, Mitchell Henke notifications@github.com wrote:

Thanks for opening an issue!
My main concern is whether adding a new way to configure is worth the added complexity, and the 99% use case is intended to be covered by the defaults that exist. If there were edge cases to cover or potential pitfalls that the library would be able to help users with, I'd be more open to it. Right now I'm slightly leaning against this, as the function on the user side would be relatively small, ex:
defmodule MyApp.Sentry do
def scrub_params(conn) do
Map.drop(conn.params, ["secret"])
end
...
end
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

Here's the code I had to write to add three parameters to the list of things to be scrubbed:
defmodule ApiV1.Stats.Sentry do
  @moduledoc false

  @params_to_drop ~w(
    currentPassword
    newPassword
    newPasswordConfirmation

  )

  @scrubbed_value "*********"

  def scrub_params(conn) do
    # Makes use of the default body_scrubber to avoid sending password
    # and credit card information in plain text.
    conn
    |> Sentry.Plug.default_body_scrubber()
    |> scrub_map()
  end

  defp scrub_map(map) do
    Enum.into(map, %{}, fn {key, value} ->
      value =
        cond do
          Enum.member?(@params_to_drop, key) ->
            @scrubbed_value

          is_map(value) ->
            scrub_map(value)

          true ->
            value
        end

      {key, value}
    end)
  end
end

Oh, that is a bit more than I had remembered. Do you think it would be sufficient for me to refactor that and make it public as something like:
  def scrub_map(map, scrubbed_keys, opts \\ []) do
    scrubbed_values_regular_expressions = Keyword.get(opts, :scrubbed_values_regular_expressions, [@credit_card_regex])
    scrubbed_value = Keyword.get(opts, :scrubbed_value, @scrubbed_value)

    Enum.into(map, %{}, fn {key, value} ->
      value =
        cond do
          Enum.member?(scrubbed_keys, key) ->
            scrubbed_value

          is_binary(value) && Enum.any?(scrubbed_values_regular_expressions, &Regex.match?(&1, value) ->
            scrubbed_value

          is_map(value) && Map.has_key?(value, :__struct__) ->
            Map.from_struct(value)
            |> scrub_map(scrubbed_keys, opts)

          is_map(value) ->
            scrub_map(value, scrubbed_keys, opts)

          true ->
            value
        end

      {key, value}
    end)
  end

Only intended as an example, didn't test/compile the code. It would allow keeping the configuration structure, but hopefully provide an easier path away from the current defaults.

That’s almost exactly the code that I was going to write :)

On Jul 16, 2020, at 11:24 AM, Mitchell Henke notifications@github.com wrote:
Oh, that is a bit more than I had remembered. Do you think it would be sufficient for me to refactor that and make it public as something like:
def scrub_map(map, scrubbed_keys, opts \ []) do
scrubbed_values_regular_expressions = Keyword.get(opts, :scrubbed_values_regular_expressions, [@credit_card_regex])
scrubbed_value = Keyword.get(opts, :scrubbed_value, @scrubbed_value)
Enum.into(map, %{}, fn {key, value} ->
  value =
    cond do
      Enum.member?(scrubbed_keys, key) ->
        scrubbed_value

      is_binary(value) && Enum.any?(scrubbed_values_regular_expressions, &Regex.match?(&1, value) ->
        scrubbed_value

      is_map(value) && Map.has_key?(value, :__struct__) ->
        Map.from_struct(value)
        |> scrub_map(scrubbed_keys, opts)

      is_map(value) ->
        scrub_map(value, scrubbed_keys, opts)

      true ->
        value
    end

  {key, value}
end)

end
Only intended as an example, didn't test/compile the code. It would allow keeping the configuration structure, but hopefully provide an easier path away from the current defaults.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/getsentry/sentry-elixir/issues/412#issuecomment-659589087, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAC2OIT4I4BTO253LPNGRDR35AVNANCNFSM4OZUJ4PQ.

From where I'm standing the added complexity to make the scrubbing configurable would be negligible.
While the scrub_map function currently looks like this:
defp scrub_map(map) do
    Enum.into(map, %{}, fn {key, value} ->
      value =
        cond do
          Enum.member?(@default_scrubbed_param_keys, key) ->
            @scrubbed_value

          is_binary(value) && Regex.match?(@credit_card_regex, value) ->
            @scrubbed_value

          is_map(value) && Map.has_key?(value, :__struct__) ->
            Map.from_struct(value)
            |> scrub_map()

          is_map(value) ->
            scrub_map(value)

          true ->
            value
        end

      {key, value}
    end)
  end

Making the keys and regular expression configurable might look like this:
defp scrub_map(map) do
    scrubbed_keys = Application.get_env(:sentry, :scrubbed_keys, @default_scrubbed_param_keys)
    scrubbed_value_regex = Application.get_env(:sentry, :scrubbed_value_regex, @credit_card_regex)

    Enum.into(map, %{}, fn {key, value} ->
      value =
        cond do
          Enum.member?(scrubbed_keys, key) ->
            @scrubbed_value

          is_binary(value) && Regex.match?(scrubbed_value_regex, value) ->
            @scrubbed_value

          is_map(value) && Map.has_key?(value, :__struct__) ->
            Map.from_struct(value)
            |> scrub_map()

          is_map(value) ->
            scrub_map(value)

          true ->
            value
        end

      {key, value}
    end)
  end

With this in place users can go ahead and configure the scrubbing the "usual" configuration way:
use Mix.Config

config :sentry,
  scrubbed_keys: ~w(password passwd secret mysupersecret),
  scrubbed_value_regex: ~r/my-weird-regex/

I do appreciate the simplification on the user implementation side.
The config would also likely be placed on the Plug rather than application.

I do appreciate the simplification on the user implementation side.
The config would also likely be placed on the Plug rather than application.

Fair enough, the user can then opt themselves to load the values from the config and pass them to the plug, so not a lot would be lost there.

I’m open to that, but I think I’d rather see how #417 works out for a bit. If it’s too burdensome on the user still, converting the current default keys / regex into that structure would be straightforward.

authors: aselder mitchellhenke sascha-wolf

repo: getsentry/sentry-elixir


text:
"Generic WSGI Request" naming

How do you use Sentry?
Sentry Saas (sentry.io)
Version
2.2.1
Steps to Reproduce
About half a year ago I started seeing more and more "Generic WSGI Request"s in the Sentry panels. At first I was sure the problem is with our code (even though we use the bare minimum sentry_init with DjangoIntegration, the only customization being a TracesSampler). But after multiple debug sessions I believe I isolated the core issue to this commit: 0ce9021ad27797ddf226aaa1c4a7c94694acf220, and specifically to the addition of lines 73–80 https://github.com/getsentry/sentry-python/commit/0ce9021ad27797ddf226aaa1c4a7c94694acf220#diff-2d58ee5eb379689063d5e76a9d48bd6945136fb45533809ef5b39b480afb250cR73-R80 (return self._new_style_group_matcher.sub(...) in RavenResolver._simplify ).
For URL patterns which do not contain a group (e.g., a simple “account/”), the regex replacement returns a None, which is then concatenated to a prefix (which is a str), on line 142 https://github.com/getsentry/sentry-python/commit/0ce9021ad27797ddf226aaa1c4a7c94694acf220#diff-2d58ee5eb379689063d5e76a9d48bd6945136fb45533809ef5b39b480afb250cR142.
This causes a TypeError exception “expected string or bytes-like object” in _set_transaction_name_and_source, and as a result, scope.set_transaction_name is not called, even not with the request.path_info fallback. Thus the “Generic WSGI Request” name set by SentryWsgiMiddleware litters the logs...
Expected Result
The path of the request is used as a fallback if the name cannot be obtained for some reason.
Actual Result
Each request which does not have a group in its URL pattern is named “Generic WSGI Request”.

@sentrivana I think you worked on this so I'm assigning it to you

I am using Django 3.2.25 with the latest version of Sentry SDK. Here are the relevant files, in my opinion, stripped down to the necessary bits:
# project/urls.py

urlpatterns = [
    path('', include('core.urls')),
]

# core/urls.py

from django.urls import path
from django.utils.translation import pgettext_lazy
from .views import LoginView

urlpatterns = [
    path(
        pgettext_lazy("URL", 'login/'),
        LoginView.as_view(), name='login'),
]

# core/views.py

from django.contrib.auth.views import LoginView as LoginBuiltinView

class LoginView(LoginBuiltinView):
    redirect_authenticated_user = True
    redirect_field_name = settings.REDIRECT_FIELD_NAME

# project/settings/sentry.py (included from other setting files)

import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration

def sentry_init(env=None):
    sentry_sdk.init(
        dsn='SENTRY_DSN_FROM_ENV_VARIABLE',
        integrations=[DjangoIntegration()],
        environment=env or "development",
        # Percentage of error events to sample.
        sample_rate=1.0,
        # Percentage of transaction events to sample for performance monitoring.
        traces_sample_rate=0.1,
    )

Stepping with the debugger when the login view is loaded in the browser, I arrive at line 76 of transactions.py :  https://github.com/getsentry/sentry-python/blob/38c14e99cd3732caf5687f61f3407038874ebfd1/sentry_sdk/integrations/django/transactions.py#L76-L78
where:
    _new_style_group_matcher.pattern = '<(?:([^>:]+):)?([^>]+)>'
    pattern = <URLPattern object 'login/' [name='login']>
    pattern.pattern = <django.urls.resolvers.RoutePattern object>
    pattern.pattern.regex = re.compile('^login/\\Z')
    pattern.pattern._route = 'login/'

Since the regular expression does not match, a None is returned by _simplify. If I comment out the whole if on lines 71–78, the regex of the pattern is used instead, resulting in the correct transaction_name = '/login/' ... Which means that the improvement introduced in commit 0ce9021ad27797ddf226aaa1c4a7c94694acf220 overlooked some part of Django’s routing.

Hey @interDist !
Thanks for all this information.
I checked it now in Python 3.12 like this:
import re
_new_style_group_matcher = re.compile(r"<(?:([^>:]+):)?([^>]+)>")   # taken from transactions.py
result = _new_style_group_matcher.sub(lambda m: "{%s}" % m.group(2), 'login/')

# result: 'login/'

So for me the result is correct. So there must be something different happening for you that makes makes _simplify return None.
Can you turn on debugging (sentry_sdk.init(..., debug=True)) and then post the output you get when hitting the route in question? (In the output there are messages for create a transaction with the "generig WSGI" name and then there should also be a message when it sets the correct name, iirc)

I'm able to repro now using the example. Looks like this has to do with the pgettext. If I just change the path to plain "login/", the transaction name is correct.
I'm thinking for a quick fix we could try subbing and if the result is None, just fall back to the regex parsing logic after that. 👀

Ok I think the fix is actually even simpler.
What I'm observing is that for a route that uses pgettext_lazy, pattern.pattern._route is not a string but rather some sort of proxy object. So when we try to use it in the sub, we get expected string or bytes-like object, got '__proxy__', and stuff silently blows up.
I think the fix is actually even more trivial than I thought and it's enough to stringify pattern.pattern._route:
diff --git a/sentry_sdk/integrations/django/transactions.py b/sentry_sdk/integrations/django/transactions.py
index a8e756cc..409ae77c 100644
--- a/sentry_sdk/integrations/django/transactions.py
+++ b/sentry_sdk/integrations/django/transactions.py
@@ -74,7 +74,7 @@ class RavenResolver:
             and isinstance(pattern.pattern, RoutePattern)
         ):
             return self._new_style_group_matcher.sub(
-                lambda m: "{%s}" % m.group(2), pattern.pattern._route
+                lambda m: "{%s}" % m.group(2), str(pattern.pattern._route)
             )

@interDist If you have the opportunity to try out the above ^ and see if it fixes the transaction names for you that'd be awesome! No worries if not, I'll prepare a PR regardless.

pattern.pattern._route is not a string but rather some sort of proxy object

Yes, it is Django’s lazy object (of an internal type Promise).

I think the fix is actually even more trivial than I thought and it's enough to stringify pattern.pattern._route

Coercing the route to str works. I tested different combinations of paths locally and all of them get the appropriate transaction name.

source: gharchive/issue

authors: antonpirker interDist sentrivana sl0thentr0py

repo: getsentry/sentry-python

license: MIT

license_type: permissive

license_source: github-api


text:
[ll] layer range for clear_attachments

Replaces the Rect in clear_attachments with ClearRect to allow for clearing layers in an attachment. Only implemented for vulkan & dx12 for now.
PR checklist:

[x] make succeeds (on *nix)
[ ] make reftests succeeds
[x] tested examples with the following backends: vulkan, dx12

bors delegate+

bors r=kvark

source: gharchive/pull-request

authors: fkaa kvark

repo: gfx-rs/gfx


text:
Pytradfri not working in version 1.9 of gateway?

Anecdotal evidence in Home Assistant's forums and Discord channels suggests pytradfri is not working in version 1.9 of the gateway.
File "/home/homeassistant/homeassistant/components/http/real_ip.py", line 40, in real_ip_middleware
    return await handler(request)
  File "/home/homeassistant/homeassistant/components/http/ban.py", line 73, in ban_middleware
    return await handler(request)
  File "/home/homeassistant/homeassistant/components/http/auth.py", line 231, in auth_middleware
    return await handler(request)
  File "/home/homeassistant/homeassistant/components/http/view.py", line 128, in handle
    result = await result
  File "/home/homeassistant/homeassistant/components/config/config_entries.py", line 164, in post
    return await super().post(request, flow_id)
  File "/home/homeassistant/homeassistant/components/http/data_validator.py", line 48, in wrapper
    result = await method(view, request, *args, **kwargs)
  File "/home/homeassistant/homeassistant/helpers/data_entry_flow.py", line 90, in post
    result = await self._flow_mgr.async_configure(flow_id, data)
  File "/home/homeassistant/homeassistant/data_entry_flow.py", line 89, in async_configure
    result = await self._async_handle_step(flow, cur_step["step_id"], user_input)
  File "/home/homeassistant/homeassistant/data_entry_flow.py", line 132, in _async_handle_step
    result: Dict = await getattr(flow, method)(user_input)
  File "/home/homeassistant/homeassistant/components/tradfri/config_flow.py", line 55, in async_step_auth
    self.hass, host, user_input[KEY_SECURITY_CODE]
  File "/home/homeassistant/homeassistant/components/tradfri/config_flow.py", line 164, in authenticate
    key = await api_factory.generate_psk(security_code)
  File "/home/pi/.homeassistant/deps/lib/python3.7/site-packages/pytradfri/api/aiocoap_api.py", line 195, in generate_psk
    self._psk = await self.request(command)
  File "/home/pi/.homeassistant/deps/lib/python3.7/site-packages/pytradfri/api/aiocoap_api.py", line 155, in request
    result = await self._execute(api_commands)
  File "/home/pi/.homeassistant/deps/lib/python3.7/site-packages/pytradfri/api/aiocoap_api.py", line 146, in _execute
    _, res = await self._get_response(msg)
  File "/home/pi/.homeassistant/deps/lib/python3.7/site-packages/pytradfri/api/aiocoap_api.py", line 95, in _get_response
    r = await pr.response
  File "/home/pi/.homeassistant/deps/lib/python3.7/site-packages/aiocoap/protocol.py", line 720, in _run_outer
    await cls._run(app_request, response, weak_observation, protocol, log)
  File "/home/pi/.homeassistant/deps/lib/python3.7/site-packages/aiocoap/protocol.py", line 745, in _run
    await protocol.find_remote_and_interface(app_request)
  File "/home/pi/.homeassistant/deps/lib/python3.7/site-packages/aiocoap/protocol.py", line 295, in find_remote_and_interface
    if await ri.fill_or_recognize_remote(message):
  File "/home/pi/.homeassistant/deps/lib/python3.7/site-packages/aiocoap/tokenmanager.py", line 179, in fill_or_recognize_remote
    return await self.token_interface.fill_or_recognize_remote(message)
  File "/home/pi/.homeassistant/deps/lib/python3.7/site-packages/aiocoap/messagemanager.py", line 327, in fill_or_recognize_remote
    remote = await self.message_interface.determine_remote(message)
  File "/home/pi/.homeassistant/deps/lib/python3.7/site-packages/aiocoap/transports/tinydtls.py", line 328, in determine_remote
    dtlsparams = self.ctx.client_credentials.credentials_from_request(request)
  File "/home/pi/.homeassistant/deps/lib/python3.7/site-packages/aiocoap/credentials.py", line 285, in credentials_from_request
    raise CredentialsMissingError("No suitable credentials for %s" % uri)
aiocoap.credentials.CredentialsMissingError: No suitable credentials for coaps://10.11.12.30:5684/15011/9063
2019-09-15 19:20:44 ERROR (MainThread) [coap] Connection loss was not expected.

Try upgrading the dependencies aiocoap and install the extras: aiocoap[tinydtls]

This has been resolved in pytradfri 6.3.1. The error was due to incorrect handling of dependencies in pytradfri.

authors: balloob ggravlingen

repo: ggravlingen/pytradfri

license: mit

license_source: bigquery


text:
Ignore EINTR for epoll_wait(2)

My programs running under pflask are always killed after my laptop
suspends and resumes, with an error message like

[✘] epoll_wait(): Interrupted system call

It's safe to retry in the case of EINTR, and this patch solves the above problem.
Ref: libevent ignores EINTR here (EINTR is treated as
"no errors and no events").
https://github.com/libevent/libevent/blob/master/epoll.c#L467

Thanks! Merged as 2a71cbfb4eaf0b8105200b258ca79723dae48b17 with some changes.

Thank you! It's cleaner than my version.

authors: culugyx ghedo

repo: ghedo/pflask


text:
Running lerna commands with 1.0.0 gives: Error: Cannot find module 'import-local'

I'm submitting a Bug report
Your Environment

Executable
Version

lerna --version
unable to run command

npm --version
8.5.4

yarn --version
not installed

node --version
16.14.0

OS
Version

Windows 11
21H2

WSL2/Ubuntu
21.04

Describe the Bug

Running any of the lerna commands with 1.0.0 installed gives Error: Cannot find module 'import-local'. Using ws-roller and ws-runner worked fine in 0.3.7.
Steps to Reproduce (for bugs)

Make a new project npm init
Install deps npm i @lerna-lite/cli @lerna-lite/run
lerna version -> Error: Cannot find module 'import-local'

lerna.json

{
  "packages": ["packages/*"],
  "version": "1.0.3",
  "npmClient": "npm",
  "useWorkspaces": true,
  "command": {
    "version": {
      "allowBranch": "main",
      "conventionalCommits": true,
      "message": "chore(release): publish"
    }
  }
}

Expected Behavior

The lerna commands should function the same way they did when it was ws-roller and ws-runner
Current Behavior

$ lerna version
node:internal/modules/cjs/loader:936
  throw err;
  ^

Error: Cannot find module 'import-local'
Require stack:
- /home/brando/.nvs/node/16.14.0/x64/lib/node_modules/@lerna-lite/cli/dist/cli.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
    at Function.Module._load (node:internal/modules/cjs/loader:778:27)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (/home/brando/.nvs/node/16.14.0/x64/lib/node_modules/@lerna-lite/cli/dist/cli.js:8:40)
    at Module._compile (node:internal/modules/cjs/loader:1103:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1155:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/brando/.nvs/node/16.14.0/x64/lib/node_modules/@lerna-lite/cli/dist/cli.js'
  ]
}

looks like I forgot to add it to the CLI package.json, would you like to do a Pull Request? I can push a patch release later today

Sure, I'll take a look at it right now.

pushed a patch release over lunch, thanks for the feedback and PR

authors: brammitch ghiscoding

repo: ghiscoding/lerna-lite


text:
Tutorial_01: Destructor of TriangeWindow - makeCurrent fails

Kommentar: Im Code mußten einige includes geändert werden da diese ab Qt6 nach QtOpenGL verschoben wurden.
Im Destructor von TriangleWindow ist folgender Aufruf:

m_context->makeCurrent (this);

Ergebnis: false
Die Grafik selbst ist ok.
Irgendeine Idee wo der Hund begraben ist ?
Umgebung:
OS: Linux Mint 22 und Debian 12
QtCreator+Qt von qt.io
Qt 6.7.3 und 6.6.3

Wenn ich vor dem makCurrent ein doneCurrent mache funktioniert der Aufruf.
Ein vorheriger Aufruf vom QOpenGLContext::currentContext liefert 0x0.

Hi petricf,
danke für den Hinweis. Aktuell läuft mein Code nur unter 5.15.x, Qt 6 habe ich bisher noch nicht angefasst. Danke aber für den Hinweis - bei der Portierung des Quelltextes zu Qt 6 wird das sicher helfen.
Falls Du den Code selber erfolgreich portierst, wäre ich über ein Pull-Request dankbar!

Für Tutorial_01 kann ich dir - bis auf den hier genannten Fehler - den Code anbieten. Reicht das ?

Klar, kannst Du ein Pull-Request machen, dann teste ich das mal?

Ich muß mal schauen wir das von innerhalb QtCreator funktioniert. Ich habe bisher noch nicht so viel mit GIT gemacht.
Oder hast du da ein "schnelles" Kochbuch (clone, change file, pull-request) auf cmdline ?

Hier das Kochbuch:

auf der github Seite https://github.com/ghorwin/OpenGLWithQt-Tutorial auf "Fork" klicken und unter Deinem Konto eine Kopie des Repositories erstellen
dieses Repository nun lokal klonen (in einem anderen Verzeichnis als mein Repo)
Deine bisherigen Änderungen (geänderte Dateien) in dieses Repo übertragen und committen und pushen
Auf der Github-Seite deines geforkten Repositories den Link "Pull Request" auswählen und dann "Pull request erstellen"

Das wär's schon.

Ansonsten kannst Du auch die geänderten Dateien einfach an ein Ticket ranhängen.

Nachdem ich nachgeschaut habe sind eigentlich nur 2 Dateien zu ändern:
OpenGL-Tutorial1.pro (opengl hinzufügen):

QT += core gui opengl

In OpenGLWindow.cpp:

#include <QtOpenGL/QOpenGLPaintDevice>
statt
#include

Wobei man - der Einheitlichkeit wegen - die anderen QOpenGL... Includes auch QtOpenGL/ voranstellen könnte.
Getestet mit Qt 6.6.3 - den o.g. Fehler inklusive. Bare metal i7-6700 / Intel HD 530 Grafik.apt i
Output von "glxinfo | grep renderer":

GLX_MESA_copy_sub_buffer, GLX_MESA_query_renderer, GLX_MESA_swap_control,
GLX_MESA_copy_sub_buffer, GLX_MESA_query_renderer, GLX_MESA_swap_control,
Extended renderer info (GLX_MESA_query_renderer):
OpenGL renderer string: Mesa Intel(R) HD Graphics 530 (SKL GT2)

Ich hoffe es hilft.

authors: ghorwin petricf

repo: ghorwin/OpenGLWithQt-Tutorial


text:
macos: Make "Settings…" menu item open config file in Application Sup…

…port
...unless ~/.config/ghostty/config already exists, then that is opened. (Or whatever $XDG_CONFIG_HOME points to.)
If both files exists, ghostty reads first the one in ~/.config/ghostty/config and then the one in Application Support, and merges the settings. In that case, the menu item opens the file at ~/.config.
Fixes #2890.

Maybe the user should get asked if a ~/.config/ghostty/config shall be created the first time he is opening the 'settings' rather than expecting him to create it by himself.

authors: martinengelke nico

repo: ghostty-org/ghostty


text:
working in localhost but not working Clerk production

Hi, Its nice project and like it. Thank you for sharing this.
I build this project in local with Clerk & working fine in localhost:3000 but when I want to deploy this to production so followed this url:
https://clerk.com/docs/deployments/overview
but non of the DNS urls are working. Already I have my existing domain name which was created in GoDaddy.com.
How to configure Clerk in production ? any help highly greatly appreciated!

Hi, sorry for the late reply.
I just followed Clerk guide for going to production
Have you replaced the clerk API keys with the production ones?

repo: giacomogaglione/chef-gpt


text:
RSP2 style matrices

@giacomov, how do you want to real with these? I think a subclass of the Response.py that does the weighting is really the only way to make the code clean. Otherwise, we could add on some types of checks. However, I think classes rather than cases is cleaner ;)
Your thoughts?

Added in #136


text:
Errore nel parsing di  -

Alla richiesta di parsing 5*-9 il risultato è: Error while parsing expression: An expression was expected, but an operator was found
Il risultato corretto si ottiene immettendo come input 5*(-9).
La situazione numero con segno negativo deve essere gestita in modo migliore: anche una semplice invocazione del risolutore con input un numero negativo produce un errore.

Grazie della segnalazione. Sono al corrente che ci sono problemi di questo genere.
Il primo comunque non mi sembra un vero problema, di solito non si scrive 5*-9 ma 5*(-9); comunque proverò a sistemarlo ugualmente.
Non capisco invece

una semplice invocazione del risolutore con input un numero negativo produce un errore

Se io eseguo java -jar javaexpreval-1.1-SNAPSHOT.jar -3 ottengo Result = -3.0 (con il jar della release 1.1).

Ok, ho capito dov'è il problema: si verifica se l'espressione inizia con uno spazio; infatti nel bot con verbose funziona (che concatena gli args), mentre normalmente no (perchè chiama getMessage, che ritorna una stringa che inizia con uno spazio). In altre parole, java -jar javaexpreval-1.1-SNAPSHOT.jar "-3" funziona ma java -jar javaexpreval-1.1-SNAPSHOT.jar " -3" no.
Vedo di sistemare.

Fixato tutto in a3d39e4735d7a927c90636c6f8658292ae597bdd.
(per quanto riguarda il PizzaBot le modifiche saranno incluse quando verrà rilasciata, a breve, la nuova versione 2.0 della libreria con il supporto completo alle variabili, che è in sviluppo).

authors: NeroReflex gianluca-nitti

repo: gianluca-nitti/java-expr-eval


text:
TEST - Please ignore

What this PR does / why we need it
Checklist

[ ] Updated CHANGELOG.md.

Trigger E2E tests

/run app-test-suites

/run app-test-suites-single PROVIDER=capa

/run app-test-suites-single PROVIDER=capa

repo: giantswarm/apptest-framework


text:
highlights for 2023-02-23

This weeks highlights PR

nothing from honeybadger this week

Hold on, I am adding some update for Atlas

authors: TheoBrigitte gianfranco-l weatherhog

repo: giantswarm/docs


text:
Refactoring

Use "official" images from Docker Hub if possible
Update Prometheus to v1.0
Provide one file for each Kubernetes object
Remove not needed configurations to keep example simple
Try to come up with a simple default prometheus scrap-configuration

/ping @puja108

WFM on minikube, will test on coreos-kubernetes in a bit

I'm currently writing the MD for this to be included in our docs, will include some screenshots, currently done on minikube as it's the most reliable setup for me, but would redo based on the actual customer clusters, also to reflect the web endpoints.
Might push it into a docs folder.

repo: giantswarm/kubernetes-prometheus


text:
Monitoring of our Tekton installation

As part of our goal to improve the reliability of our testing infra, we need to start monitoring the Tekton installation.
Acceptance criteria:

[ ] What metrics does Tekton export?
[ ] How can we consume them?
[ ] Do we need to provide additional ones?

We still need to add the ServiceMonitors to our tekton-install directory in our gitops

Changes have been merged.

authors: AverageMarcus ericgraf yulianedyalkova

repo: giantswarm/roadmap


text:
Mime headers parsed from connection refused

If connection is refused when fetching robots.txt then GB tries to parse the non-existing MIME headers, leading to use of undefined memory.
Solved in our fork, commit https://github.com/privacore/open-source-search-engine/commit/cda9c7c0edf74ab7fd6f344b1c850354d97d67fa

thanks, incorporated.

authors: gigablast isj-privacore

repo: gigablast/open-source-search-engine


text:
OneToMany Insert Problem

Hi there,
I try to insert a Person have skills and while inserting everything looks okey. But when I list person list from http://localhost:8000/gigy/people I can't se new inserted person skills, it is an empty array. Could you help about this?
I make a POST request to http://localhost:8000/gigy/people with body
{    "name": "Test Member",    "age": 30,    "skills": [ 	 { 	   "name": "First Test Skill", 	   "level": "AWESOME" 	 }, 	 { 	   "name": "Second Test Skill", 	   "level": "GODLIKE" 	 }   ]  }
After Person and Skill creation new inserted member looks like below.
{ "id": 8, "name": "Test Member", "age": 30, "skills": [] }

Hi @hozhanli thanks for feedback! We're currently investigating what's wrong and will keep you posted!

authors: hozhanli svachmic

repo: gigsterous/gigy-example


text:
Add React Leaflet

Name with link
React Leaflet
Site: https://react-leaflet.js.org
GitHub: https://github.com/PaulLeCam/react-leaflet
Description
The most popular implementation of the Leaflet library.
Link to the vector file, preferably from an official source
https://react-leaflet.js.org/img/logo-title.svg
https://react-leaflet.js.org/img/logo.svg

Hey @DigitalNaut
I don't add framework-specific logos anymore.
Thanks

authors: DigitalNaut gilbarbara

repo: gilbarbara/logos


text:
getUserInfo implements wrong endpoint

I get a slack.api.ApiError: unknown_method exception from SlackApiClient's getUserInfo(). I think the right endpoint is "users.info", not "users.getInfo".
This project is awesome, thanks!

Thanks for reporting this issue, and I'm glad you like the project! Just fixed this in master, I'll be publishing a new version to maven central before long.


text:
Concurrency issue on Mac OS X

After fixing #4, I got another error:
E         WARNING!!! b760efe69c5db5353704d2d47bb91c195775196b0744ae6633bd90ab5903df1e is b'' (<class 'bytes'>)
120
E
121
E         ------------------------------------------------------------------------------
122
E         WORKER 1 error:
123
E         Traceback (most recent call last):
124
E           File "/Users/runner/work/disk-objectstore/disk-objectstore/tests/concurrent_tests/periodic_worker.py", line 192, in <module>
125
E             main()  # pylint: disable=no-value-for-parameter
126
E           File "/Users/runner/hostedtoolcache/Python/3.7.7/x64/lib/python3.7/site-packages/click/core.py", line 829, in __call__
127
E             return self.main(*args, **kwargs)
128
E           File "/Users/runner/hostedtoolcache/Python/3.7.7/x64/lib/python3.7/site-packages/click/core.py", line 782, in main
129
E             rv = self.invoke(ctx)
130
E           File "/Users/runner/hostedtoolcache/Python/3.7.7/x64/lib/python3.7/site-packages/click/core.py", line 1066, in invoke
131
E             return ctx.invoke(self.callback, **ctx.params)
132
E           File "/Users/runner/hostedtoolcache/Python/3.7.7/x64/lib/python3.7/site-packages/click/core.py", line 610, in invoke
133
E             return callback(*args, **kwargs)
134
E           File "/Users/runner/work/disk-objectstore/disk-objectstore/tests/concurrent_tests/periodic_worker.py", line 159, in main
135
E             key, all_checksums[key], retrieved_checksums[key]
136
E         AssertionError: Mismatch for b760efe69c5db5353704d2d47bb91c195775196b0744ae6633bd90ab5903df1e: b760efe69c5db5353704d2d47bb91c195775196b0744ae6633bd90ab5903df1e vs. e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

randomly, at least twice.
Apparently, there are still cases in which one gets empty data back. This needs to be investigated further.

Got again the same error on PR #49... (Mac, py3.7). I will need to check if I can reproduce it. For now I'll just rerun the tests.

Check the branch check_concurrency where I repeat the test 20 times (10 with packing and 10 without) to show the problem with higher probability.
It seems from preliminary results that the problem occurs on Mac but I never saw it yet on linux.
In the branch I'm trying to increase also the debugging output

In this set of tests I always instead get an error when reading an object that is loose.
Either in the first part, with errors like
 WARNING!!! ab1c875bce9fbdbd8ae815fdc380e9ea9d276025a5f8173735028fa7b5e5c43c is b'' (<class 'bytes'>); {'type': 'loose', 'size': 0, 'pack_id': None, 'pack_compressed': None, 'pack_offset': None, 'pack_length': None}
or in the second part (with get_object) with errors like
WARNING!!! 301608b9bd8a36b6e83e2ed941c0ea45150708d5620987d1caa7491a98776000 is b'' (<class 'bytes'>)

After re-running I got only one error that seems to confirm that the error comes from the packing:
WARNING!!! a5894e7c80a68cf5508acfb20ebe9a022c2de9bd0e3cdec7c706e5dac7887c92 is b'' (<class 'bytes'>); {'type': 'loose', 'size': 0, 'pack_id': None, 'pack_compressed': None, 'pack_offset': None, 'pack_length': None}
|-> AFTER RE-READING: checksum=a5894e7c80a68cf5508acfb20ebe9a022c2de9bd0e3cdec7c706e5dac7887c92, meta={'type': 'packed', 'size': 713, 'pack_id': 0, 'pack_compressed': False, 'pack_offset': 40151, 'pack_length': 713}
`-> CONTENT: b'^\xc3\x1dr\xe9dBz\x92\x9f\xf6{\xcf\x1d\x18\x0bu/\xe7.\x9b\xd6\xeb4J\'B\xccp\xbe\x13\xef\x1f\t\x95|\xed\xccph49.L{2\x11V\xb7\xac\xe7\xbf\xe2\xe2@~\xee-\xf5\x94NI0\x0c\xdd\xdbBNp\x8fP\xa4A\xb2\xd0\xf4\x1d\x96\xd8\xffF\x943A\xb3\xbaP\xf5\xb1j\x17\t\xb1M\xd9;\xec\xce\xf6\x87\x9b\xae\xba\xef\x84\xac\xfds;\xbe\xcegyb\xc7\xb5%ay\x93\xc9\x8cQ\xc0\xa6k\xdf\xc9s~\xf2>\xfd&N\xc3q-\xd2\xe6W\xcf\xfc\x8b<\x1d\xfa\x05\xd9\xff\xbf\x8f9\xf4\xf2uT\xc6\x0f{\xef8[i\xf4\'\xc8\x99:@\xe3Pq\x8c\xf3w\xedrZ\x01Z\xa6(#[\x13\x06\x0f9\xd2:\xfc\x05\x16kx\xedA\xee\x16\xa2\x88\x9d#\x0b,\xf1\xe4\x89\xcd\xae\x97-\x9e\xbe\xd4w\x97\xc6\x835\xf53\xf2d\r\xd2reW\xd0\xfe\xb3\x9epI\xd0\x98\xb9&=\xdegV\xc8\x87j\xef\xe1j6\xfc@K\xd1hr\x8b[\xd5\x195\x1d\xf7\xe3\x8e\x88^}\xe1\x04\x8a\x91W\x1e-p\xb8t:#e\xfc\'\x85\xf3\xd7Q=\x86\xe6-2\xef\x0c\xce\x91\xd7F\x04\xb1\x03!\x9evT=\xc1Tep2\xf3\x8dD\rE4~\xc6:\xcf\x07\x03D\xdev\xcf\'\x1fk\xbd\xc3\xef\x98C@\xca\x9f\xed\x02\xf2H\xd0\x9d2\xc8\x8c\x84\xef;\x9fN\xcb \xb0\x8f]\x91\xc6\xf5\xcap\xd8M\x14\xd6\x05\xc9\xb8\xae\xb8\x95\xf3\x13\x9e\x8e\xd4\xc9\xbb\x12\x87\xe0\xd7{\xef[\xb9\x80\x030vX\xa7P\'\x7f\x86f\xcf\xeal\xb1]\xe6\x92p\xde\x94\x1ab\x9bZa\xed?u\x1cY]\x85\xb8\x02C\x94\xe6`\n\x1ct\xd7\x84\xd1i\xdc\xe0K\x7f\x06\xdc\xe2\xba\x95\xa0m\x98A\x9fp\x0c\x81\x97d\xac\x04,\xc4\x90\x0c\xe7U\xf7\xe9\x94\xbb\x9c\x08g/${#5\xaaN\x8dh\xec5L|\x1f\r@\xd20\xf9T\xc12Y\x8c\x85\xeb\xb2\xf7V\xbb\x01Y\xa9\x89\x88\xfdR\x87\xc8\xcc1\xfd\x1cu\xee\x03]\xcch\x9b\xcf}\xa3\xe0\xcd\xcc\xac\x1b\xfc\xd3\x92\xc2b\xc8\xf10 \x8f\xdc\x1ajl\xb9\x08 \xff\xbe\xd5\xf1 \xf1\x18\n\xd4lfd"\xd0:|\'\xabnR\xd6]Oyv\x93\xff\\\xe2Uj\xde\x18\x1c\xc9m;3\xd8d\x00~\xba\x1c\x10\xc2\xbfi~M(\x12L\x12\xb3Gp` \xab}\xfe\xc2\x08o\x1f\x85\xfaQ\xc1\xb7\xa8_\x1dr\xd3\x82\xaf\xa9\x10\x8c\x98\x1f~\x17\xf8\xfa\xaa\xb4\x02]\x11V\xefD\xafkbvS\x11\x8a\x9bY\x8b\xb2\xf0\xf7t\xa40\xd1\n\xbb\xe9\xc3$\xbf\xa9\x9f\xbd\xb4\'\x11L\xc1\xccLm\xa0CA\xbc\x12\xa8\xbf\xf1\xf87j\r%f\x9a\x1a\xd4\x94w\xb7\xe5\xbb=~I\x82G\x1c\xa0\xe1\xf8({\xee\x81\x13W\x1d6O6'

In the second read, the content indeed has been packed correctly and matches its sha256 that is a5894e7c80a68cf5508acfb20ebe9a022c2de9bd0e3cdec7c706e5dac7887c92

I think I managed to finally reproduce the problem on my Mac.
You need to write three scripts:
test-conc-replace.py
import os
import psutil

dest_fname = 'DEST.txt'
for i in range(10000):
    this_fname = str(psutil.Process().pid) + '.txt'
    with open(this_fname, 'wb') as fhandle:
        fhandle.write(b'CONTENT')
    try:
        os.replace(this_fname, dest_fname)
    except PermissionError:
        with open(dest_fname, 'rb') as f2:
            print(f2.read())
        raise
    print(this_fname, i)

test-conc-delete.py
import os
import psutil

dest_fname = 'DEST.txt'
for i in range(100000):
    if os.path.exists(dest_fname):
        os.remove(dest_fname)
        print(dest_fname, i, 'DELETED')
    else:
        print(dest_fname, i, 'continue')

test-conc-read.py
import os
import psutil

dest_fname = 'DEST.txt'
for i in range(100000):
    try:
        with open(dest_fname, 'rb') as fhandle:
            content = fhandle.read()
            assert content == b'CONTENT', 'FOUND INSTEAD: {}'.format(content)
        print(i, content)
    except FileNotFoundError:
        print(i, ">> DELETED <<")

Now, run them all at the same time.
I expect that the first keeps trying to replace the file with the content CONTENT. The second keeps trying to delete it.
This would be a problem in Windows (see #43) but not on Mac.
Therefore, I expect that if all operations are atomic, the reader either does not find the file, or finds a content CONTENT. Instead, when I run it, the reader often fails with:
AssertionError: FOUND INSTEAD: b''

That I think is the issue above.
Guess: on Mac, a remove first truncates the file and then removes it, making it non-atomic?

On Mac a simple solution would be to introduce the concept of a trash folder, and rename the object in there,without unlinking (otherwise you end up with the same issue). This wouldn't work anyway for windows, though (#37).
I'm starting to think that the easiest thing to do is to simply don't delete loose objects while packing (this might be good also for data safety, in case something bad happens during packing, even if I never saw yet such a case).
Duplicate loose files could be deleted at the next packing operation (which is already implemented, and ok as long as the second packing is done late enough so that all loose objects are not open anymore) and this should solve also (most) windows issues.
Or even better delegate this to maintenance operations that only should be operated while the container is not in use.

Actually the replace has nothing to do. The problem is just the remove/unlink.
The plots of the timing of the various parts of he code above in three cases are shown here, and as you can see in all runs there is always at least one deletion happening exactly during the read.

Indeed the same exception can be obtained by simply running test-conc-delete.py and the following modified test-conc-read.py:
import os
import psutil
import time

dest_fname = 'DEST.txt'
for i in range(100000):
    try:
        print("BE", time.time())
        with open(dest_fname, 'rb') as fhandle:
            print("IN", time.time())
            content = fhandle.read()
            print("AF", time.time())
            assert content == b'CONTENT', 'FOUND INSTEAD: {}'.format(content)
        print(i, content)
    except FileNotFoundError:
        print(i, ">> DELETED <<")
        # Recreate the file
        with open(dest_fname, 'wb') as fhandle:
            fhandle.write(b'CONTENT')

As a note, running this on Linux (Ubuntu, EXT4) has a lot of overlapping open and delete but never shows this problem.
See for instance this figure below.

As a follow up, even if probably this is less critical for this library, I created a repo to reproduce the problem (that happens even in C): https://github.com/giovannipizzi/concurrent-delete-race-problem
and I also reported this to python: https://bugs.python.org/issue41291

repo: giovannipizzi/disk-objectstore


text:
Typo in Sponsors section

Prevoius should be replaced by "Previous"
Link 👉 https://uplift.girlscript.tech/

The issue can be closed now.

repo: girlscript/GS-Uplift-Program


text:
CSS Flexbox

Description 📜
I want to make documentation on CSS Flexbox like what is flexbox, basic properties of flexbox, and some examples of code.

Domain of Contribution 📊

[ ] Android Dev (Flutter, Java, Kotlin)
[ ] Backend Dev (Java, .NET, Python)
[ ] C/CPP
[ ] Competitive Programming
[ ] Cyber Security
[ ] DSA
[ ] Database
[ ] Datascience with Python
[ ] Datascience with R
[x] Frontend Dev (HTML, CSS, JS)
[ ] Frontend Dev (React, Angular, Vue)
[ ] Golang
[ ] Interview Prep
[ ] Java
[ ] JavaScript
[ ] MERN
[ ] Machine Learning
[ ] Open Source
[ ] Python
[ ] Rust
[ ] Statistics
[ ] UI/UX

/assign

Hey, please this to me. I am in batch 13 of Web dev. I want to contribute to this topic.

/assign

/assign

/assign

/assign

/assign

I want to contribute to this issue : CSS Flexbox
Name-Arya Gupta
Domain-Frontend with HTML CSS
Batch-16
Serial No-3172
Issue Number-1227
Type-Audio
Contribution Approaches-What is flexbox, How does flexbox work, Advantages of flexbox, Commonly used flexbox properties

/assign I pertain skills required for this task. hence, kindly assign.

/assign please assign me this task

/assign

repo: girlscript/winter-of-contributing


text:
Lexicographic rank of a string

Description
Given a string, find its rank among all its permutations sorted lexicographically.
Domain
C/CPP
Type of Contribution
Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

/assign


text:
What is DynamoDb?

Description
Explain about DynamoDb
Domain
Open Source
Type of Contribution
Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

@Aryamanz29 @aaryan078 can i work on this ?


text:
[Interview Preparation]: Add OOPs cheat sheet

Description
Hi admin, i want to add OOPs cheat sheet under Interview preparation repository. Please assign it to me.
Domain
Interview Prep
Type of Contribution
Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

"\assign

/assign


text:
TLE in C++

Description
few ways to escape TLE in CP with C++
Domain
Competitive Programming
Type of Contribution
Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

/assign

/assign

authors: akkkanksha iam-sakshi


text:
MATRIX

Description
This repository will have EVERYTHING about MATRIX.
one-stop repository for everything you need.
Domain
Interview Prep
Type of Contribution
Audio, Video, Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

/assign

/assign


text:
Data Science with Python : Item Based Filtering System #1036

Description 📜
Made an Audio presentation.
Fixes #1036

Type of change 📝

[x] Audio (Should be in mp3 format Includes speech clarity, Concise ,Low distortion)

Domain of Contribution 📊

[x] Datascience with Python

Checklist ✅

[x] I follow Contributing Guidelines & Code of conduct of this project.
[x] I have performed a self-review of my own code or work.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I'm GWOC'21 contributor

Screenshots / Gif (Optional) 📸

@prathimacode-hub , Can you please evaluate my PR mam.


text:
Acyclic Graph

Description 📜
Acyclic Graph added.
Fixes #8942

Type of change 📝

[ ] Au#dio (Should be in mp3 format Includes speech clarity, Concise ,Low distortion)
[ ] Vi#deo (Animations, screen-recordings, presentations and regular explanatory films are all possibilties etc)
[x] Documentation (Content Creation in the form of codes or tutorials)
[ ] Other (If you choose other, Please mention changes below)

Domain of Contribution 📊

[ ] Android Dev #(Flutter)
[ ] Android Dev #(Java)
[ ] Android Dev #(Kotlin)
[ ] Backend Dev #(Java)
[ ] Backend Dev #(.NET)
[ ] Backend Dev #(PHP)
[ ] Backend Dev #(Python)
[x] C/CPP
[ ] Competitive #Programming
[ ] Cyber #Security
[ ] DS#A
[ ] Data#base
[ ] Datascience with #Python
[ ] Datascience with #R
[ ] Frontend Dev #HTML/CSS/JS
[ ] Frontend Dev #React/Angular/Vue
[ ] Go#lang
[ ] Interview #Prep
[ ] Java_#Domain
[ ] JavaScript_#Domain
[ ] ME#RN
[ ] Machine #Learning
[ ] Open #Source
[ ] Python_#Domain
[ ] Ru#st
[ ] Statis#tics
[ ] UI/#UX

Checklist ✅

[x] I follow Contributing Guidelines & Code of conduct of this project.
[x] I have performed a self-review of my own code or work.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I'm GWOC'21 contributor

Screenshots / Gif (Optional) 📸

Yarr ye conflicts kahaa se aa gayi @Saviour1001 Resolve kar dena


text:
Dragging a marker does not move the rotation handle

Add a draggable oriented marker to the map as follows:
L.orientedMarker(map.getCenter(), {draggable: true}).addTo(map).activateOrientation()
Now move the marker.
ACTUAL: The rotation handle stays in place.
EXPECTED: The rotation handle moves with the marker.

I could solve this problem by updating the marker on drag as follows:
orientedMarker.on('drag', function() {
  return orientedMarker.update();
});

Maybe leaflet.orientedMarker should support this natively so that dragging works out of the box?!


text:
Verse of the day not appearing

Verse of the day seems to be working fine on the emulator but it doesn't show on my phone.

Verse of the day is coming from api.

authors: jaydipgodhani samanyougarg

repo: gita/Bhagavad-Gita-App


text:
Add White Background for Unfilled Diagram Parts in Light Theme

Great plugin! thank you very much, because it's a life save for me to be able to zoom into big diagrams.
Please consider the image below, where the unfilled parts of the diagram are not white. In fact, it's slightly blurred and partially transparent.  Can you please consider making the background white for the light theme?
Thank you.
Expected background appearance (without popup)

Current background appearance (with popup)

Here is the sample mermaid diagram code
(please add "mermaid" after the backticks, I removed it so that the code will show in GitHub instead of the rendered diagram)
stateDiagram-v2
  classDef classNoUsage fill:orange,color:black,font-weight:bold,stroke-width:2px,stroke:black
	  classDef classFree fill:skyblue,color:black,font-weight:bold,stroke-width:2px,stroke:black
	  classDef classTrial fill:Gold,color:black,font-weight:bold,stroke-width:2px,stroke:black
	  classDef classActive fill:green,color:white,font-weight:bold,stroke-width:2px,stroke:black
	  classDef classAddCard fill:#E497E5,color:black,font-weight:bold,stroke-width:2px,stroke:black
	  classDef classRenew fill:#ff00ff,color:white,font-weight:bold,stroke-width:2px,stroke:black

	  state "asdasdasdasd" as containerNoUsage {
			state joasdasdaage <<join>>
			state "asdasda" as noUsage
			joisde --> noUasdge : ❗casdge
			state leaasdage <<join>>
		}
	  [*] --> joinNoUsage : 🎬 On user insert, set
nasdasdus = free

	  state lesdfsfdUp <<join>>

	  state joisdfsd1 <<join>>

	  joisdfsdf1 --> sdfsdfage

	  state "Trsdfsfdsee" as containerFree {
			state josdfe <<join>>
			state lesdfe <<join>>
			state "Free
     - set nsdfsdftus to trial" as free
			free --> free : cusdfsdfstatus
 === free

	  }

Alright, I will add an option for your requestment. Give sometime.
------------------ 原始邮件 ------------------
发件人:                                                                                "gitcpy/obsidian-diagram-popup"                                                                                @.>;
发送时间: 2024年11月15日(星期五) 上午9:27
@.>;
@.***>;
主题: [gitcpy/obsidian-diagram-popup] Add White Background for Unfilled Diagram Parts in Light Theme (Issue #8)
Great plugin! thank you very much, because it's a life save for me to be able to zoom into big diagrams.
Please consider the image below, where the unfilled parts of the diagram are not white. In fact, it's slightly blurred and partially transparent.  Can you please consider making the background white for the light theme?
Thank you.
Expected background appearance (without popup)
image.png (view on web)
Current background appearance (with popup)
image.png (view on web)
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

Thanks, I can give it a try to change the CSS although I will need your help to test it

https://github.com/gitcpy/obsidian-diagram-popup/pull/9

#9

Thank you very much! I did set the backaground untransparent. But I realize the UI background trend , in current devices，are mostly translucent like frosted glass. So I make it translucent. I am glad you have the same idea as what I thought. So I will make an option toggle it translucent or untranparent. And it will fit the trend and the requestment from you and me. If you have any idea, just let me know. Thanks again.!

I added two settings for you.
Try it.
Thanks your feedback and your work!

I added two settings for you.

Looks amazing, thank you!

authors: gitcpy zaakiy

repo: gitcpy/obsidian-diagram-popup


text:
🛑 invidious.tiekoetter.com is down

In 417a8dc, invidious.tiekoetter.com (https://invidious.tiekoetter.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: invidious.tiekoetter.com is back up in 5cda821 after 12 minutes.

repo: gitetsu/invidious-instances-upptime


text:
🛑 invidious.lidarshield.cloud is down

In 45e1c29, invidious.lidarshield.cloud (https://invidious.lidarshield.cloud/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: invidious.lidarshield.cloud is back up in 63ebb22 after 19 minutes.


text:
🛑 search.sethforprivacy.com is down

In 106f112, search.sethforprivacy.com (https://search.sethforprivacy.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: search.sethforprivacy.com is back up in 2981e4b.

repo: gitetsu/whoogle-instances-upptime


text:
🛑 search.sethforprivacy.com is down

In ebf44ed, search.sethforprivacy.com (https://search.sethforprivacy.com) was down:

HTTP code: 404
Response time: 123 ms

Resolved: search.sethforprivacy.com is back up in 048b780 after 5 minutes.


text:
Add a bird's eye view to the source code

This should help jump-start contributions especially by users who (like myself, 6 weeks ago) are new to Typescript.

The failing tests will be addressed by #2.

repo: gitgitgadget/gitgitgadget

license: ISC


text:
[GHSA-rcpf-vj53-7h2m] Denial of Service in org.springframework:spring-core

Updates

References
Source code location

Comments
Add patch links related to CVE-2018-1257.

Hey @sunSUNQ, I'm not sure I follow on how these commits are related to the advisory. The SPR-16732 issue doesn't seem to be linked. Any chance you can elaborate here?

在官方漏洞公告中https://spring.io/security/cve-2018-1257提到漏洞影响两个组件：Depend on spring-messaging and spring-websocket modules.并且提到和STOMP相关：Enable the simple STOMP broker。漏洞影响版本为Spring Framework 4.3 to 4.3.16，我拿到4.3.16-4.3.17版本间的所有commit共计28个，其中满足上述两个条件的只有246a6db1cad205ca9b6fca00c544ab7443ba202。因此我认为该commit为CVE-2018-1257的补丁。同理在5.x分支上ff2228fdaf131d57b5c8c5918ee8d07c6dd9bba为该漏洞补丁。

Gotcha, I can follow that logic and indeed it does look like the commits alter the behavior of websockets. I was hoping that the bug id might be cross listed somewhere. Many thanks!

authors: darakian sunSUNQ

repo: github/advisory-database


text:
[GHSA-65fx-pmw6-rcfm] An issue was discovered in Python 3.11 through 3.11.4. If...

Updates

Affected products
References
Source code location
Summary

Comments
Add patch links and other informations related to CVE-2023-41105.

Hey @sunSUNQ, the python interpreter is out of scope for us. We only index on packages in our supported ecosystems
https://github.com/github/advisory-database/?tab=readme-ov-file#supported-ecosystems


text:
Add the PostgreSQL license

A lot of Postgres extensions are licensed with the PostgreSQL license, which is similar to the BSD and MIT licenses:
http://www.postgresql.org/about/licence/
http://opensource.org/licenses/postgresql

If it's similar to the MIT and BSD licenses, why do we need it? Remember, ChooseALicense is about quality, not quantity.

For example, I mainain a few Postgres extensions, for which the license is "same as PostgreSQL", which means the PostgreSQL license. It's a natural fit for code that's written explicitly for Postgres and might in the future end up in the core distribution.
I guess people could always dual-license, MIT and PostgreSQL.

"PostgreSQL extension" seems like a pretty small niche.
I don't mean to sound rude. Honestly. I just don't see this on choosealicense.com.

Two questions come to mind for me:

Could I license a PostgreSQL extension under MIT, BSD, or a similar license?

Would I ever use this license for something other than a Postgres-related project? Should I?

Based on our new license criteria, the Postgres license can be added, if anyone is willing to submit a pull request to do so.
+--------------+--------------------+
|        License: postgresql        |
+--------------+--------------------+
| SPDX ID      | PostgreSQL         |
| SPDX Name    | PostgreSQL License |
| OSI approved | Yes                |
| FSF approved | No                 |
| OD approved  | No                 |
+--------------+--------------------+
| Eligible     | Yes                |
+--------------+--------------------+

See https://github.com/github/choosealicense.com/pull/524

authors: benbalter dlecan strugee wulczer


text:
Fix documentation of repository_visibility field in OIDC token

Code of Conduct

[X] I have read and agree to the GitHub Docs project's Code of Conduct

What article on docs.github.com is affected?
https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#understanding-the-oidc-token
What part(s) of the article would you like to see updated?
Give as much detail as you can to help us understand the change you want to see.

In "Understanding the OIDC token" section example as well as field details contains wrong field name for repository visibility. The field repo_visibility should be repository_visibility

Why should the docs be changed? What use cases does it support?

I spent more than couple of hour by referencing wrong field from from documentation. After debugging OIDC token I found the actual field name is different. This field is useful to configuring Workload identity federation with GCP and STS conditions in AWS to prevent from giving access to public repositories

What is the expected outcome?

Providing correct information in documentation
Saving development time

Additional information
Wrong references in example

Wrong references in field details

Actual JWT fields

@yogeshlonkar Thanks for opening an issue! I see that you made a PR as well, but it's for a file in which we don't usually accept changes, so our bot closed it out. 💛
I will get this issue triaged for review, and it will be fixed internally if approved.
Thank you for your interest in improving GitHub Docs! :sparkling_heart:

Hi @yogeshlonkar, thanks for letting us know. I've now updated the article in an internal PR 👍

repo: github/docs


text:
Missing comma in generated docs for Deployment Status state parameter

What article on docs.github.com is affected?
https://docs.github.com/en/rest/reference/repos#create-a-deployment-status--parameters
What part(s) of the article would you like to see updated?
The values for the state parameter. There is a missing comma between queued and pending. This is impactful because it's misleading when users select+copy the list of states and paste them into code (as an enum, say). I believe this section of the docs is auto-generated so I can't submit a PR directly.
Additional information

Thanks for opening an issue @jasonkarns! I'll triage this for the team to take a look 👀

authors: janiceilene jasonkarns


text:
fix passkeys.dev site name

Why:
https://docs.github.com/en/authentication/authenticating-with-a-passkey/about-passkeys has the wrong name of the website (passkey.dev instead of passkeys.dev)
Closes:

What's being changed (if available, include any code snippets, screenshots, or gifs):

Check off the following:

[ ] I have reviewed my changes in staging, available via the View deployment link in this PR's timeline.

For content changes, you will also see an automatically generated comment with links directly to pages you've modified. The comment won't appear if your PR only edits files in the data directory.

[x] For content changes, I have completed the self-review checklist.

@RuyiLi Great catch and thanks for submitting a PR with the fix! However, we just received a PR prior to this one with the same fix, so it's already been triaged and is waiting for review. I'm going to go ahead and close this as a duplicate. 💛
Thank you for your interest in improving GitHub Docs! :sparkling_heart:


text:
Update devcontainer.json

Why:
Closes:

What's being changed (if available, include any code snippets, screenshots, or gifs):

Check off the following:

[x] A subject matter expert (SME) has reviewed the technical accuracy of the content in this PR. In most cases, the author can be the SME. Open source contributions may require a SME review from GitHub staff.
[ ] The changes in this PR meet the docs fundamentals that are required for all content.
[x] All CI checks are passing.

From 91a979563cb394a36bc46f7b7183d292c34666e5 Mon Sep 17 00:00:00 2001
From: Cokybit 80327177+cokyman@users.noreply.github.com
Date: Sun, 8 Dec 2024 12:35:54 +0700
Subject: [PATCH] Update devcontainer.json

.devcontainer/devcontainer.json | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 021cf63593e5..9eac2f716edb 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -66,3 +66,6 @@
"memory": "8gb"
}
}
+
+
+

gh pr checkout 35580

Thanks for opening this pull request! A GitHub docs team member should be by to give feedback soon. In the meantime, please check out the contributing guidelines.


text:
In IE11 resolve is not always executed

Our app is making scheduled request every N seconds. After some time IE11 stops doing requests.
I try to search web and it looks like there is a bug in IE11. It does not handle XHR callbacks properly.
See similar issue on bluebird repository.
So I try workaround - wrap resolve to setTimeout and it works.

Thanks for letting us know. Unfortunately, I don't think there is anything we can do here to fix IE behavior, sans wrapping every XHR call in an arbitrary setTimeout. We won't do that, because if we choose a value for the timeout e.g. 10 seconds, then we prevent everyone from making requests that may take longer than 10 seconds.
The workaround which you can do in your project is wrapping all your fetch calls in a Promise-based timeout helper as suggested here.

Please reopen this issue.
This issue is not about making XHR call in setTimeout but about resolving Promise with results from completed XHR.
In IE 11 calling resolve within XHR onload handler may hang indefinitely if there's no active DOM operations. But calling resolve within setTimeout works fine.

Ah, I realize now what the OP was proposing above. Thanks for providing more information.

Hey guys, let's move on.

authors: ADagen CrOrc mislav petronellius

repo: github/fetch


text:
Custom transformer for manual_task using gh actions-importer

Hi there. We're trying to create a custom transformer for the gh actions-importer to migrate a CircleCI workflow to GitHub Actions.
The CircleCI workflow has a step as follows:
    steps:
...
      - setup_remote_docker:
          docker_layer_caching: true
...

Without a transformer, this step produces the following error:
undefined method `manual_tasks' for #<Transformers::Result::Unsupported:0x00007f278aeee568 @identifier="setup_remote_docker", @comment="'setup_remote_docker' was not transformed because there is no suitable equivalent in GitHub Actions", @snippet=nil, @dependencies=[]>

What we want to do is skip this step, during translation, if it exists in the CircleCI workflow being translated.
We've tried to create a custom transformer to do this. Here's the code for that transformer:
transform "setup_remote_docker" do |_item|
  nil
end

With this, we get the following error:
undefined method `manual_tasks' for #<Transformers::Result::Custom:0x00007fa7dd6af298 @identifier="setup_remote_docker(custom)", @comment=nil, @snippet=nil, @dependencies=[]>

We don't fully understand how to write custom transformers for what seem to be called "manual tasks". We've read the docs and looked at the codelab examples but are still lost.

How can we write a custom transformer for a manual task?
Is the source code for the custom transformer part of actions-importer available? Was hoping to use this to debug, but couldn't find it.

Thanks!

Hi @michaelfindlater,  The manual task is not something you would add a custom transformer for, it a internal structure used to add tasks to the PR created from the migrate command.  That being said I think your issue is something different.  The custom transformer you provided is valid and the setup_remote_docker is not supported and should generate only a comment in the outputted workflow, even without the custom transformer.  Can you provide more of the CircleCI workflow so I can investigate further and the logs? Make sure to remove any personal information.
If you are curious I confirmed the custom transformer worked by using the --source-file-path to use a simple local workflow.
circle_config.yaml
version: 2.1

jobs:
  build:
    docker:
      - image: cimg/base:2022.06
        auth:
          username: mydockerhub-user
          password: $DOCKERHUB_PASSWORD  # context / project UI env-var reference
    steps:
      - checkout
      - run: echo "Hello, world!"
      - setup_remote_docker:
          version: 20.10.14

workflows:
    example-workflow:
      jobs:
        - build

transformer.rb
transform "setup_remote_docker" do |_item|
  {
    "name" => "Setup Remote Docker",
    "run" => "echo 'Setup Remote Docker'",
  }
end

example command
gh actions-importer dry-run circle-ci --circle-ci-project circle-demo -o tmp/dry-run --source-file-path tmp/circle_config.yml --custom-transformers tmp/transformer.rb

Thanks @michaelfindlater I am glad it resolved your issue and I will close the issue now!

authors: j-dunham michaelfindlater

repo: github/gh-actions-importer


text:
Add "Check max file limit of your webserver" to known issues

I struggled with git lfs on my bitbucket server.
From git and git-lfs i received this error when uploading a big file (~ >= 50mb)
LFS: Repository or object not found: http://my-server/rest/git-lfs/storage/LIBS/test/43275934fc9f6081e15de811b6021a21da06c3cd03470b87438bfb8e5bb164ed

This was not a git-lfs fault nor of bitbucket. This was due a limit in my reverse proxy server (IIS) where the maximum request size was set to 30mb.
I think that it could be helpful to put this in a FAQ

Hi @filcuc, thanks for opening this. We're working on a user-guide wiki, and I'll make sure that this gets on there.

authors: filcuc ttaylorr

repo: github/git-lfs


text:
WIP: long running clean/smudge filter protocol

This is my first WIP version of a Git/Git-LFS stream filter. Please keep in
mind that I have little go-lang knowledge and experience. Therefore
I would be happy to receive a very strict review to improve my go-lang
skills 😄 👍
What is the problem with Git LFS?
Git LFS is an application that is executed via Git clean/smudge filter.
The process invocation of these filters requires noticeable time (especially
on Windows). An individual filter process is required for every single file
that Git touches during its operations (e.g. checkout etc).
Proposed solution
Instead of a single Git LFS process per file, I propose a single Git LFS
process per Git invocation. That means Git invokes the filter process
(e.g. Git LFS) only once and then continuously talks to the same filter
process via a pipes.
You can find the corressponding WIP Git core implementation here:
https://github.com/larsxschneider/git/tree/filter-stream
Performance tests
I executed both test runs on a 2,5 GHz Intel Core i7 with SSD and OS X.
A test run is the consecutive execution of four Git commands:

clone the repo
checkout to the "removed-files" branch
timed: checkout the "master" branch
timed: checkout "removed-files" branch

Test command:
set -x; git lfs clone https://github.com/larsxschneider/lfstest-manyfiles.git repo; cd repo; git checkout removed-files; time git checkout master; time git checkout removed-files

I compiled Git with the following flags:
NO_OPENSSL=YesPlease APPLE_COMMON_CRYPTO=YesPlease NO_GETTEXT=YesPlease make -j 8

TEST RUN A -- Default Git 2.9 (ab7797d) and Git LFS 1.2.1
+ git lfs clone https://github.com/larsxschneider/lfstest-manyfiles.git repo
Cloning into 'repo'...
warning: templates not found /Users/lars/share/git-core/templates
remote: Counting objects: 15012, done.
remote: Total 15012 (delta 0), reused 0 (delta 0), pack-reused 15012
Receiving objects: 100% (15012/15012), 2.02 MiB | 1.77 MiB/s, done.
Checking connectivity... done.
Checking out files: 100% (15001/15001), done.
Git LFS: (15000 of 15000 files) 0 B / 77.04 KB
+ cd repo
+ git checkout removed-files
Branch removed-files set up to track remote branch removed-files from origin.
Switched to a new branch 'removed-files'
+ git checkout master
Checking out files: 100% (12000/12000), done.
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.

real    6m2.979s
user    2m39.066s
sys 2m41.610s
+ git checkout removed-files
Switched to branch 'removed-files'
Your branch is up-to-date with 'origin/removed-files'.

real    0m1.310s
user    0m0.385s
sys 0m0.881s

TEST RUN B -- Git and Git LFS with stream filter support
+ git lfs clone https://github.com/larsxschneider/lfstest-manyfiles.git repo
Cloning into 'repo'...
warning: templates not found /Users/lars/share/git-core/templates
remote: Counting objects: 15012, done.
remote: Total 15012 (delta 0), reused 0 (delta 0), pack-reused 15012
Receiving objects: 100% (15012/15012), 2.02 MiB | 1.30 MiB/s, done.
Checking connectivity... done.
Git LFS: (15000 of 15000 files) 0 B / 77.04 KB
+ cd repo
+ git checkout removed-files
Branch removed-files set up to track remote branch removed-files from origin.
Switched to a new branch 'removed-files'
+ git checkout master
Checking out files: 100% (12000/12000), done.
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.

real    0m2.528s
user    0m0.209s
sys 0m1.602s
+ git checkout removed-files
Switched to branch 'removed-files'
Your branch is up-to-date with 'origin/removed-files'.

real    0m2.280s
user    0m0.066s
sys 0m0.637s

Results
Default Git:                      6m2.979s + 0m1.310s = 364s
Git and Git LFS with stream filter support: 0m2.528s + 0m2.280s = 5s

The Git stream filter solution is almost :sparkles: 70x faster :sparkles: when switching branches
on my local machine with a test repository containing 12,000 Git LFS files.
Based on my previous experience with Git LFS clone I expect even more
dramatic results on Windows.
Next Steps

Make Travis-CI tests pass (anyone an idea what is wrong with the  "clone with submodules" test 1a24a7c1c9b25fdb3a6d5a55c9429e045e60fd89 ?)
Make the pipe protocol more robust against errors (e.g. by adding ACK messages). Do you have other suggestions for the protocol?
Cleanup Git-core patch, propose patch to mailing list (/cc heads up @peff).
Cleanup code duplication in command_smudge.go/command_clean.go and command_filter.go.

Questions

Would you be OK with this approach in general? /cc @technoweenie @sinbad @ttaylorr
How should I handle integration tests? Git LFS would need to support and test both protocols ("per file" and "filter stream"). I was thinking about running all integration tests twice with different Git filter configs.

Thanks,
Lars

This is going to be great, it will remove the need for more lfs-specific commands and eventually could lead to us deprecating git lfs clone for recent git versions.
I've started a few comments but haven't finished reviewing yet, will pick up again tomorrow.

I like this approach. This will definitely be a huge speed gain for what are currently pretty slow operations under certain scenarios.
I made a few comments on some the code above, mainly boiling down to a few suggestions:

A InputDataHdr struct
Using binary.Read instead of buffering and calling binary.LittleEndian.Uint32(...)
A Processor type

I think that the header/data idea is a good one for this protocol. I am wondering, however, about the benefits of implementing a multiplexed chunked protocol. Would it make sense to interleave the data that was being sent across these file descriptors? I am not entirely sure.
On one hand, this would allow the clean and smudge filters to start processing one file before they had finished others, which would enable increased parallelism.
On the other hand, perhaps this sort of optimization is not necessary. One concern with this approach is the additional complexity that would be incurred by this sort of muxing. I am thinking in particular of the approach that is implemented in the RTMP protocol, which is certainly complex. The relevant parts of the documentation can be found here, and a reference implementation that I wrote in Go can be found here (docs). There is far more going on in that chunk package than we would implement in LFS, but it'd still be more than we have now.
Your thoughts?

@sinbad and @ttaylorr: Thanks a lot for your feedback!
Re: Multiplexing
Multiplexing would considerably complicate the protocol and is therefore
more error prone. Plus, with the Git clean/smudge interface that we have
today, the parallelism wouldn't buy us anything as Git processes the
files sequentially anyway. However, I have some vague ideas how we could
approach that. Therefore, I plan to define a "protocol version" field
that allows Git to support different filter protocols in the future.

relevant to Git LFS in general:
I am writing tests for the Git core side of the protocol and I discovered that Git calls clean way more than necessary: http://thread.gmane.org/gmane.comp.version-control.git/300028

It'll be pretty awesome if this makes it into git! I have two primary critiques so far. I think there's too much use of Panic() in deeper parts of the code, and the protocol parsing is happening in multiple places. I don't think the InputFileHdr is quite the right abstraction and the Read method on it is a little awkward. As it is, this parsing code would be very difficult to unit test.
I think something similar to bufio.Scanner would look pretty clean here, leaving us with something like this:
func filterCommand() {
	// ...

	scanner := NewObjectScanner(os.Stdin)
	for scanner.Scan() {
		obj := scanner.Object()
		r := obj.Reader()

		// ...

		switch obj.Command {
		case cmdClean:
			clean(r, obj.Name)
		case cmdSmudge:
			smudge(r, obj.Name)
		}
	}

	if err := scanner.Err(); err != nil {
		// ...
	}

	// write output
}

Here's a gist with a quick pass at an implementation.

Oh snap, that's way better. I like the idea of an object scanner, that puts the parsing implementation in the right place I think. Still not sold on the switch block, there may be some other abstraction that we can reach for, but I think this is awesome.

There probably is a better abstraction there, could be a part of the work to fix this part. If I'm thinking right, git is only performing one operation at a time per process invocation, so I'm not sure clean/smudge are really appropriate at the per-object level. I could be (probably am) overlooking something, though, it's been a while since I've dug around down there.

Thanks for all the feedback. I'll address it shortly. I just posted the Git core patch: http://thread.gmane.org/gmane.comp.version-control.git/300057 😅

Update: This PR is not stall, but I focus on getting the necessary changes into Git first:
http://public-inbox.org/git/20160722154900.19477-1-larsxschneider%40gmail.com/T/#t

@sinbad @ttaylorr @technoweenie :
If you have time, please take a quick look at the protocol:
https://github.com/larsxschneider/git/blob/e128326070847ac596e8bb21adebc8abab2003fc/Documentation/gitattributes.txt#L382-L457
The currently proposed protocol is a little different from what I've implemented here. Most notably  the data is split into "pkt-line" packets. This shouldn't be a problem in golang as I think I can implement a Reader/Writer to handle this transparently.
If you don't like the mailing list then feel free to add comments in my PR 😄 :
https://github.com/larsxschneider/git/pull/7

Update: I posted v5 of the necessary Git core changes today
http://public-inbox.org/git/20160810130411.12419-1-larsxschneider%40gmail.com/

Update: I posted v6 of the necessary Git core changes today
http://public-inbox.org/git/20160825110752.31581-1-larsxschneider@gmail.com/
On GitHub:
https://github.com/larsxschneider/git/pull/10

Update: I posted v7 of the necessary Git core changes today
http://public-inbox.org/git/20160908182132.50788-1-larsxschneider@gmail.com/
On GitHub:
https://github.com/larsxschneider/git/pull/11

Believe it or not but I am still working on the related Git core patch. I just posted v9:
http://public-inbox.org/git/20161004125947.67104-1-larsxschneider@gmail.com/
On GitHub: https://github.com/larsxschneider/git/pull/13

Junio merged the Git core patch series required for this PR to next ( git/git@ffd0de0 ) and it is scheduled for master ( http://public-inbox.org/git/xmqqk2d2ein7.fsf@gitster.mtv.corp.google.com/ ) 🎉 🎉 🎉 .
I'll update this PR with a working version soon, so that we can discuss how to use the new Git filter protocol feature in the most efficient way.

Woooo, amazing work Lars. 🤘

@larsxschneider great to hear. I'm looking forward to seeing your up-to-date version of this PR once it's ready. I'll be around to provide any help or answer any questions that you might have.

@larsxschneider Congrats, great work!

I didn't had much time today and I won't have too much time in the next 1.5 weeks. That's why I push a very rough versions here. A few thoughts:

The implementation as it is right now would smudge files from the Git LFS cache or download files if they are not in the cache. That works but we cannot take advantage of parallel downloads. Ideally I would extend the filter protocol in a way that a filter can tell Git "I can't process this file just yet, ask me later again". However, this wouldn't be straight forward in Git core and the filter protocol change was already pretty large. Until the filter protocol is improved that way we could use a trick, though. If Git asks Git LFS for a file that is not in cache, then Git LFS could return the pointer file as-is and download the file in background (maybe even batched with other files). When Git shuts down, then it sends an EOF to Git LFS via pipe and waits until Git LFS terminates. In this step Git LFS could finish the downloads and replace the pointer files with the actual content. This should give us git lfs clone like speed and we could get rid of the wrapper commands. Credit: I think @sinbad posted that idea somewhere but I can't find the link.

ReadRequest reads the entire content into a []byte which is then passed to the clean/smudge functions. I would rather pass a Reader to clean/smudge.

clean/smudge returns a []byte which is then written to the pipe in PktLine format using WriteResponse. I would rather pass a Writer to clean/smudge.

clean/smudge functions in command_filter.go are pretty much the same as the ones in command_clean.go and command_smudge.go. I want to reuse code here.

The process filter takes precedence over clean/smudge filter. That's nice as it makes the filter update for the user very easy. However, I would like to ensure in the tests that Git versions > 2.10 actually use the process filter. I am thinking in the direction of an env variable (see GIT_LFS_USE_LEGACY_FILTER) to control that. Any good idea how to do that in a nice way?

Unit test are missing for git/git_filter_protocol.go

@larsxschneider :+1: on your 6 points. Regarding the first one:

When Git shuts down, then it sends an EOF to Git LFS via pipe and waits until Git LFS terminates.

How is this handled in the filter? Would it be after the for loop exits, just before filterCommand() returns?

Unit test are missing for git/git_filter_protocol.go

I'm working on this right now and will post a PR to merge into this one as soon as I have the tests fleshed out! 🤘

Short of time this week but I totally agree with your "trick" in point 1 (I think we discussed it before as you said) - just smudging to the pointer in serial and doing the actual download in batch/parallel in the background, gated on the termination at the end seems like the best approach. The one Q I had outstanding about that is whether the stat info in the index would then be out of date and would need a git update-index to avoid files being displayed as modified.

@sinbad I haven't worked with git update-index, yet. Here is what would need to happen:

Files that GitLFS does not have in cache would end up as LFS pointer files in the working tree
After Git is done, GitLFS exchanges the pointer files with the actual content. I guess then we need to tell Git that the new content is OK and the working tree clean. That's what git update-index is for ?!

@larsxschneider yeah what I'm not sure about is exactly when Git updates the index for a file; it must be after the smudge filter is run so the size & date are correct, but I don't know if it does it immediately after calling the filter, or at the end of the entire checkout. If it can do it at any time before LFS replaces the pointer file with the real content then the stat in the index will be out of date and probably a git update-index will be needed to avoid it appearing to be modified.

I close this PR as the work is continued in https://github.com/github/git-lfs/pull/1617

authors: larsxschneider rubyist sinbad technoweenie ttaylorr


text:
Documentation and/or command to update credentials

I got an email from GitHub today asking me to regenerate the access token that hub uses to the new format, which I did. So I now have the new token... what do I do with it? I run hub help, nothing in there about authentication, tokens, configuration files, etc. I visit https://hub.github.com/, nothing there about tokens, authentication, configuration files. I go to https://github.com/github/hub, nothing there either. I try running a hub command, it just tells me Bad credentials, no instructions of how to update my credentials or anything. So what do I do with the token I just generated? I eventually searched issues for configuration file, and found that the configuration file for hub is ~/.config/hub, I opened that, pasted in my token, and I'm good to go. But I shouldn't have to search unrelated issues to get the answer to something is basic as this, there should at least be documentation on how to update the token, and maybe even a command to let you set a new token for when you get emails from GitHub asking you to regenerate tokens.

I have a similar error. I get a cryptic exit status 128 error, and then got the email to regenerate my token, which I did, but now I can't figure out how to update it. I don't have a ~/.config/hub file in $HOME like hub docs reference and can't figure out how to update the token.

I totally agree with this issue. Also, if you've deleted the ~/.config/hub file, then there is no way to configure hub with any credentials. The pull-request command asks for username & password, and then prints 404 Not Found, as I have 2FA enabled

I believe when it asks you for your password, you're supposed to enter your token. There's a PR to update the prompt to ask for a token rather than a password, but I'm starting to learn this repo seems dead.

@jroper https://mislav.net/2020/01/github-cli/ looks like so...

I don't seem to be able to set my credentials at all from the command line (hitting enter just displays ^M using zsh in my Mac terminal rather than entering my username). Haven't been able to find documentation related to it at all yet!

Sorry for the inconvenience, everyone. We absolutely need better behavior and better documentation around authenticating.  For the time being, I'm going to close this as a duplicate of https://github.com/github/hub/issues/2655#issuecomment-790263257

authors: Birdi7 NikkiDelRosso ashleyryan foursixnine jroper mislav

repo: github/hub


text:
License updates for master

This PR was auto generated by the licensed-ci GitHub Action.
It contains updates to cached github/licensed dependency metadata to be merged into master: (branch).
The licensed-ci action will add comments to this PR with the status of license checks.  Please make any changes needed to fix any status failures on this branch, then merge license updates into your branch.
If updates are unexpected, please check the github/licensed changelog for recent updates.

The licensed-ci GitHub Action updated cached license metadata based on changes to master: (branch).
licensed status result: SUCCEEDED
All status checks succeeded, please merge when ready.
Checking cached dependency records for licensed
..................................
34 dependencies checked, 0 errors found.

/cc @jonabc

repo: github/licensed


text:
Incorrectly classifying TeX files as OpenEdge ABL

This file is valid TeX class file, but it has OpenEdge ABL 43.2%

Classifying either a .txt (tsv) file or a Python pickled file as OpenEdge ABL. I'll use a Linguist override, but I thought I'd document this here in case it's helpful.

No access. Is it a private repository?

Oops, duh, yeah I'm sorry it is.
Head of the txt file:
AA	AA	rough, cindery lava [n -S]	41		b	hls
ABRACADABRA	AAAAABBCDRR	[n -S]	16880			s
ABRACADABRAS	AAAAABBCDRRS	ABRACADABRA [n]	11985
ANAGRAMMATICAL	AAAAACGILMMNRT	[adj]	4852
ARCHAEBACTERIA	AAAABCCEEHIRRT	ARCHAEBACTERIUM [n]	4085
BACCALAUREATES	AAAABCCEELRSTU	BACCALAUREATE [n]	3846

Head of the first pickled file:
ccollections
defaultdict
p0
(c__builtin__
list
p1
tp2
Rp3
S'DISPLAYERS'
p4

Head of the second pickled file:
ccollections
defaultdict
p0
(c__builtin__
list
p1
tp2
Rp3
S'SHAGS'
p4

authors: Alhadis Ho-Holic jwnorman

repo: github/linguist


text:
Add support for XPM

.xpm and .pm extensions associated with XPM.

.pm is disambiguated by searching the /* XPM */ string.
This is how file performs detection and should work with
every XPM3 file (most XPM generated by software later than 1991).

Added XPM samples:

stick-unfocus.xpm: extracted from Fluxbox (MIT License)
https://github.com/fluxbox/fluxbox/blob/0c13ddc0c85ed4445ff8e289387c142e0ac98c77/data/styles/Emerge/pixmaps/stick-unfocus.xpm

cc-public_domain_mark_white.pm: public domain image from
https://commons.wikimedia.org/wiki/File:Cc-public_domain_mark_white.svg
converted to XPM with ImageMagick (convert input.svg output.xpm).

I couldn't find a specific grammar for this. Note that it uses C syntax, so for syntax highlighting purposes it should be treated just like C.

@pchaigno Done.


text:
Add support for YASnippet templates

This PR adds support for YASnippet files, a templating system for Emacs heavily inspired by TextMate's snippets feature.
Description
The YASnippet system doesn't mandate any particular naming convention for snippet files. Nonetheless, .yasnippet sees widespread use with ~246,160 files currently indexed by GitHub. .yas is less common, but reasonably well-distributed (365 results, 40 unique repos, 38 users).
The snippet alias is to enable matching of Emacs modelines: the yasnippet package recognises -*- snippet -*- as meaning a YASnippet file (example).
The samples I've added are my own; they're taken from my Atom setup (Atom's snippets feature, which is also inspired by TextMate, is mostly compatible with YASnippet's).
Syntax highlighting is provided by the language-emacs-lisp package, which I recently updated to include YASnippet highlighting.
(Template removed because each point was already covered by the above, which was drafted offline in Emacs)

@Alhadis Could you update your branch to fix the Travis CI tests?

Whoops, sorry. Merged from master and pushed. 👍

authors: Alhadis pchaigno


text:
Add support for Futhark - futhark-lang.org

Description

[x] I am adding a new language.

[x] The extension of the new language is used in hundreds of repositories on GitHub.com.

Search results for each extension:

https://github.com/search?utf8=✓&type=Code&ref=searchresults&q=extension%3A.fut+futhark+NOT+nothack

[x] I have included a real-world usage sample for all extensions added in this PR:

Sample source(s):

https://futhark-lang.org/

<!-- Update the Lightshow URLs below to show the grammar in action if you included one.</li>

Duplicate request.

This color is better, obviously

Duplicate of https://github.com/github/linguist/pull/4842

Closing in favour of #4842, as @Munksgaard's submission is much more complete.

This colour is better, obviously.

@Ulrik-dk Please read our contributing guidelines on what we require of new language submissions. You might also want to read the section on language colours; in particular, the rationale behind colour choices.

authors: Alhadis Munksgaard Ulrik-dk


text:
Add Mint language

Description
Adding grammar for the mint language
Draft while waiting for official validation
Checklist:

[x] I am adding a new language.

[x] The extension of the new language is used in hundreds of repositories on GitHub.com.

Search results for each extension:
https://github.com/search?q=extension%3Amint+NOT+nothack&type=Code

[x] I have included a real-world usage sample for all extensions added in this PR:

Sample source(s):

https://www.mint-lang.com/
https://github.com/mint-lang/mint-realworld

Sample license(s): BSD-3-Clause License

[x] I have included a syntax highlighting grammar: https://github-lightshow.herokuapp.com/
[x] ~I have updated the heuristics to distinguish my language from others using the same extension.~ N/A

Fixes https://github.com/mint-lang/mint/issues/220

Verified, ready to proceed.

/cc @lildude

Usage doesn't quite meet the minimum requirements yet:
Total files found: 2393
Unique public user/repos: 174
Unique owners: 144

@lildude Are we there yet? :)

Unfortunately not yet.

@lildude Is there a quick way to check the number of Unique public user/repos combo?
Asking in order to cut down the no. of Are we there yet? messages 😅

There isn't yet, but you can use Harvester.

@lildude Unfortunately, I cannot make it work (it errors after ~9-13 pages).

Yeah, it's not the best solution. @Alhadis maintains Harvester so you might want to open issue in that repo; it's possible something has changed in the UI which it doesn't cater for.
You can also try this script that I use and am slowly improving, but be warned this will trigger GitHub's API abuse system so will almost always take a long time to run if there are a lot of results.

@lildude Anything has changed perhaps?

@lildude any updates on the number of repos? I tried to check for myself instead of simply asking here since it must be really inconvenient for you guys, but Github's search not only makes it hard to search for repos that contain a specific file extension, when I tried going through the search result pages to get the names of repos github actually refused to let me comb through everything because of rate limiting. Actually it seems pretty weird to me that Github imposes a requirement which cannot be checked by the people trying to meet it, shouldn't be hard to let the search for file extension return repositories...

@lildude Will the repos containing Mint code be re-indexed/categorized automatically?

@Sija No:

When you push changes to a repository on GitHub.com, a low priority background job is enqueued to analyse your repository as explained above. The results of this analysis are cached for the lifetime of your repository and are only updated when the repository is updated.

In other words, Mint repositories will only be categorised as such after a change has been pushed (and only after the next release of Linguist is cut).

[...] (and only after the next release of Linguist is cut).

@Alhadis I was missing that part, thanks!

authors: Alhadis Sija bbugh frnco lildude


text:
Translation: Catalan (ca-ES)

Repository: https://github.com/ygneo/opensource.guide
Preview: https://ygneo.github.io/opensource.guide
Locale: ca-ES
On your fork:

[x] Update title, description, and locale in _config.yml, and push the branch to the gh-pages branch of your fork. This should build the website and it should be visible at the preview url above.
[x] Copy _data/locale/en-US.yml to a new file with the name of your locale and translate the strings
[x] Create a new directory in _articles/ for your locale and translate each guide:

[ ] best-practices.md
[ ] building-community.md
[ ] code-of-conduct.md
[ ] finding-users.md
[ ] getting-paid.md
[ ] how-to-contribute.md
[ ] leadership-and-governance.md
[ ] legal.md
[ ] metrics.md
[ ] starting-a-project.md

[ ] Update CNAME to include your locale (e.g. de.opensource.guide)

Once a translation is completed:

[ ] Open a Pull Request on the upstream repository to add your fork to translations in _config.yml

@ygneo Apologies this issue has been neglected for so long. I've merged the first translation to this repository (Spanish) and updated the documentation on the latest translations approach (https://github.com/github/opensource.guide/blob/gh-pages/docs/translations.md). Please submit a pull request when you have translated all articles and checked ./script/test passes and I'll get it merged in ASAP. Thanks!

I would like to contribute to Catalan translation.
I follow this documentation.
This is my fork.

I would like to contribute to Catalan translation.
I follow this documentation.
This is my fork.

@fv3rdugo Please submit a PR when you're done, thanks!

authors: MikeMcQuaid fv3rdugo ygneo


text:
Telpon Layanan Call Center cs Help Tunaiku

WhatsApp: 0811-4892299. E-mail: tanya@amarbank.co.id atau hubungi Customer Service Tunaiku lewat live chat di aplikasi. Pembatalan pinjaman Tunaiku hanya bisa dilakukan jika dana belum dicairkan ke rekening

Tunaiku Whatsapp


text:
Stop graceful master takeover immediately when attempting to promote an ignored host

Related issue: https://github.com/github/orchestrator/issues/569
Description
During a graceful master takeover, this simply checks the IsBannedFromBeingCandidateReplica function for the newly designated master before doing anything else. By checking this early and failing early, we avoid making any changes to the topology for a promotion we know will fail at the outset.

[x] contributed code is using same conventions as original code
[x] code is formatted via gofmt (please avoid goimports)
[x] code is built via ./build.sh
[x] code is tested via go test ./go/...

(Thanks @zmoazeni for the idea!)

Great point! I pulled the check outside of the conditional so that it will be done with the designatedInstance, regardless of whether that instance was indicated by the user or selected by orchestrator.
I set up a local test env with three replicas, banning one of them via PromotionIgnoreHostnameFilters, and I verified that the error is reported immediately in both cases:

When I pass the banned replica explicitly.
When I make the banned replica the only descendant of the current master and therefore orchestrator tries to choose it as the designatedInstance.

Please let me know if there's anything else I should add or clean up here. Thanks!

Thanks Shlomi!

repo: github/orchestrator


text:
github-terms-of-service: Define "Other Users"

The ToS require You to provide them with legal rights in section D.5.  By defining a term, we have lots of space to remove any ambiguity about what that means.  For example, it clearly covers visitors regardless of whether they have a GitHub account.
I've replaced most instances of “users” with the new term, leaving out only those which referred to all users (You and Other Users).  We don't formally define that “Users”, but one new term seemed sufficient for this commit ;).
In lines I touch, I've also title-cased other terms (e.g. “you” → “You”).  If we have a formally-defined term available, I don't see why we would prefer the generic term to the formal term.  I expect the previous lowercase forms were accidental, but if any were intentional let me know and I'll revert those changes.
This pull request is against #1, but I can rebase it against master if that's more convenient.
Spun off from #54 at @mirabilos' request.

Hey, @wking,
We'll take a look at the definition of "Other Users" — thanks for the suggestion.
We left "you" and "we" lower-case on purpose. We worked very hard to create a clear, human-readable, user-friendly agreement using conversational language and sentence structure. Where possible, we tried to avoid legalese like convoluted clauses, archaic jargon, and stuffy specialized language. We believe that over-use of capital letters where they aren't necessary for clarity doesn't make the agreement easier to read or understand.
In this case, "You" and "We" are defined terms, and even if we leave them lower case, the person reading the agreement understands that "You" means the person who's agreeing to the agreement and "We" means GitHub. We're able to have an easy-to-read agreement without worrying about ambiguity.
I'm going to close this for now, but we're having an internal discussion about "Other Users" and how that may affect other parts of the agreement.
Thanks!

I'm going to close this for now, but we're having an internal discussion about "Other Users" and how that may affect other parts of the agreement.

Has anything come out of this discussion yet?  I'm not sure what to do with #54 (e.g. I'd want to remove "Other Users" there if you decide against it here).

Thanks for the reminder — we've decided not to specify "Other Users" as a defined term. It's only used in the license grant, and we don't believe it's unclear enough to need a separate definition.

authors: nsqe wking

repo: github/site-policy


text:
Add Delete Customers Example Script

Delete Customer Example Script
This PR adds an example script to delete customers via the Gladly REST API
Changes

Added a deleteCustomer method to utils/api
Provided an example script for deleting customers in a batch from a CSV, as well as a sample customer data CSV

Notes

I followed all the instructions in the written guide and the endpoint documentation such that this should work, but I don't have a means to test it yet, so I can't claim 100% bug absence for sure

@elizaw I don't think I have permissions to add you as a reviewer directly, so tagging you here.

Whoops, closing to follow instructions re: shortcut.

repo: gladly/rest-api-examples


text:
Execute multiple instances of zxing binary in parallel?

I read in a previous issue that the library is not thread safe. In my case I'm not making use of the library directly (yet), but instead just executing the zxing binary and eating the output.
If multiple threads may execute zxing processes in parallel, is it still safe? Or does this need to be protected against (presumably because the process make use of some shared resource)?
Thanks.

The library is not thread-safe. However, you can run the library in multiple processes no problems.

authors: Benjamin-Dobell logidelic

repo: glassechidna/zxing-cpp


text:
Invert Fly.io's logo on all news posts + Added news page styling #354

Non merge related
Hello, I am really new to this community and I'm very much in love with y'alls! I'm currently in a college and our most recent assignment was to contribute to an open source community. I've been looking for a way to contribute to this community for a while, and I noticed a few things that I thought I could help with!
Merge Related
Fly.io logo to inverted version
issue #354
I added the fly.io's inverted logo to the images/sponsors folder, and named it fly-inverted.svg. I went through each news post and updated the fly.svg to fly-invert.svg
News.html styling
Afterwards, I thought that the news.html page was a little hard on the eyes, and that there was a lack of typographic hierarchy with the text which makes it hard to figure out which text is most to least important. I changed the publish date, and author text tovar(--color-code-grey) and text size to var(--font-size-small). Afterwards, I added a hover effect on the {{ post.title }} to help clarify what is a link. I then changed the li { display } to better space its content. I then added a li::before to create a bar of var(--color-faff-pink) to the left size of the articles. This helps "block" the articles, and add a little visual interest.  Oh, I forgot, I also added the same lucy-hero effect to the Lucy in the footer, for some ✨ Spice ✨
News.html alterations
Inside the each post <li> I added custom data fields, post-tags and post-author with the idea that maybe later on you'd want to implement some sort of user-filtering. I also added an <a href="{{ post.author-link }}"> tag to {{ post.author }} because I figured maybe someone would want to check out more about the author?
Sorry for the wall of text, this is my first time creating a PR and I wanted to be concise.
TL:DR;

made fly.io inverted on news articles
added typographical hierarchy to posts in news.html
added visual interest to posts in news.html
added hover on {{ post-title }}
added hover rotation and svg change on lucy footer version
added author link to {{ post.author }}
added post-tags  and post-author data-attributes `into posts

I removed the padding in li, and moved the li::before -20px to the left. I also removed the data-attributes in the li and added a conditional to see if there is an author-link or not.

repo: gleam-lang/website