text:
Delete Deploy Cache button is not cleaning /uploads/static-html-output/ directory

Symptoms

When I changed permalinks, I deleted all uploaded files at Bunny
When deployed, old permalink and new both came.

This means, files are not deleting. As well as LIVE I checked by going to C:\xampp\htdocs\site1\wp-content\uploads directory, it doesn't delete.

@leonstafford
Update: I also tested on Linux machine with version. Same issues.
Clicking Delete button doesn't clear this directory.
/var/www/wordpress/wp-content/uploads/static-html-output

Also ran into this - tried to delete a post, it refused to remove it from the site, or to empty the cache. First thought was a problem with static-html-output directory permissions, but can't get it to work even when world-writable.

I'd also note that this is a bigger problem that it first appears, as it means that all a site's deleted posts remain published, silently, until you notice the issue.

Thanks for reporting @diegoteliz and those from last year.
Couple of things to clarify here:

deploy cache, as far as I remember in Static HTML Output, behaves to delete caches used for specific deployments, not necessarily the working directory of /wp-content/uploads/static-html-output (I will need to check code to confirm)
neither Static HTML Output not WP2Static have had functionality to delete files when deploying. This may come for free with Netlify and WP2Static's S3 deployments, but wouldn't be there for Bunny, where this was initially reported.

Why it hasn't been a feature?
This probably comes down to my original preferences, where I didn't really care about any orphaned files left on a deployed site, as long as the actual site rendered fine. In the case of Bunny, if I really wanted to force reset the deployed site to remove any remnants, I could do via their UI/FTP, bulk delete the storage zone's contents and then publish again.
Obviously, from this issue (and some other mentions I recall over the years), it is a desired behaviour for users.
To help inform me for developing this feature out properly in this and WP2Static, could you please share me the main reasons for this and how you would expect it to behave?

for SEO? ensuring de-indexing of old content?

One way it can function for some vendors, is to grab a list of all files in storage container, iterate them all, see if intended deployment file exists and (where applicable) has different hash. If option to delete files not within this deployment is enabled, it will delete those as needed and deploy the expected ones.
In Static HTML Output, this may be trivially possible (feels like I did something similar with an old GitLab deployment implementation, at least the file traversal part). In WP2Static, where this project's best parts will eventually migrate to into, we have other features which make this challenging to implement, such as partial deployments (deploy just a a post and it's linked assets when it changes, deploying only files changed since last deployment).
What would be terrible, is to end up with a partially working site due to trying to be too clever about what to deploy and delete, so I'm hesistant to rush into this implementation.
I suggest as a workaround for those finding this important to cleanup orphaned files, to choose a low traffic time for their site and delete everything in the site's storage container, then re-deploy, so you'll only have the latest full working site.
Please do let me know as much about your intended workflow re this issue to better inform my development.

In my case the workflow was that we sometimes want to delete/unpublish a post from the site, either temporarily or permanently.
What we expected to happen is that the static HTML deployment would 'mirror' the current state of the Wordpress install. What happened is that the new publish (this was to Netlify in my case) included all posts, the new ones and the deleted ones.
I expected that clearing the cache would fix this because it would force the plugin to re-spider the whole site, but that does not fix it. For my purposes at least it is not really helpful to have any cache - I would prefer to start 'fresh' each time to know that the static version of the site exactly matches the current state of the site.

Thanks @leonstafford for clarifying the expected behavior of 'Delete Deploy Cache' feature.
In regards to deleting files when deploying, I see it as a 'must have' rather than a 'nice to have' feature. As @tomwalkr mentioned, I would expect Static HTML or WP2Static to mirror the site after I press the "Start static site export" button. For certain pages like Sales, Promos, etc. you really want to have control over what's published and what is not. Same for other temporary or outdated content.
In terms of the solution itself, I don't think it should be overly complicated. To me, it's a matter of implementing an additional checkbox on the Deploying screen (disabled by default) asking if you want to ☐ Perform a clean export, alongside with a brief description about what will happen and what to expect (longer deploying time compared to partial deployment, site will be off while copying the files, etc).  So when the option is selected and you press the export button, the plugin would:

crawl the site and prepare the files
delete everything in storage container
copy all the files over

As you can see, point number 2 is almost what you suggested as workaround, but automated within the plugin. The reason why some of us need this feature and can't go with your suggestion is because, although we (devs) build the site, the ones that use it and update it on regular bases aren't always tech-savvies, so you wouldn't expect them to connect to the server storage and manually delete files (after all, that's the main reason why they're using a CMS like WordPress). So the more we can automate it for them, the better.
I know this is not the most clever solution, but I'm pretty confident it should be relatively easy to implement, can be integrated in both; Static HTML / WP2Static and will satisfy the majority of us who need this feature :)
In any case, thanks for asking for our opinion and for taking time aside from your busy agenda. Keep up the great work!

authors: diegoteliz leonstafford thegulshankumar tomwalkr

repo: leonstafford/static-html-output

license: Unlicense


text:
Feature Request: Make visible option text easier to update

https://github.com/leonstafford/wp2static/blob/10ba2905c200f47283e8e8536e161ab6e73e7274/src/CoreOptions.php#L60
Currently the option text is written to the database when the plugin is first activated. This means that we can't easily update the text later without writing an SQL query.
For instance, I wanted to change "Queues a new job every time a Post or Page is saved." to "Queues a new set of jobs every time a Post or Page is saved." to make it more clear the relationship between the different job types and what happens on a save or delete hook.
I'm open to keeping them in the database but keying them by name so that we can do an ON DUPLICATE KEY UPDATE query but I think that ultimately we're better off moving the user-visible text to code so that we can leverage translation capabilities built into WP to support other languages.

Implemented in #829.

source: gharchive/issue

authors: bookwyrm john-shaffer

license_type: permissive

license_source: github-api


text:
Support to dicate where injected snippet is placed.

Currently, livereload is appending itself to the end of the HTML response which means its outside the outer HTML tag.
Is there any to specify a placeholder of where it can inject the snippet. Example - it would be great to set it inside the head tag.
Here's a screenshot of what my current HTML output looks

This is not currently supported and also not really planned. We deliberately do not use any HTML parser/templating library/... to keep complexity and dependency count low. Do you experience any problems with the placement of the script tag, or is this purely an aesthetic preference?

When using htmx, if you use the history push state feature, when the library attempts to restore a previous state of the page they will re-render anything in the body (by default), this means that any script tag in the body will be parsed again. So when I navigate back and forth, the polling causes the server to stop responding.
I am able to configure htmx to restore a different DOM element, but it does mean by default tower livereload placement of its script is problematic.
May I suggest an alternative that also keeps the complexity low since this seems to be a goal of the library.
What if you could pass a flag to disable injecting the script, leaving the application in charge of placing the snippet? This also means you will need to expose the snippet HTML so that the app code can reuse the same js script and place where they prefer.

Ah, I think users previously have experienced a similar issue in #2. My comment in #3 shows an example of how to fix it with HTMX specifically. I am only somewhat familiar with the internals of HTMX, so there might be a reason this does not work with the "history push" functionality, but in my limited testing, reloading keeps working even when I navigate back and forth a bunch of times.

Yes I already have a solution for not adding livereload to requests not triggered by htmx.

I assume you mean "not adding livereload to requests not triggered by htmx"?

This is a different issue. You have to leverage the hx-push-url attribute.

I've tried to reproduce this issue on my end, but I'm not experiencing the same issue as you do. When I use hx-push-url, tower-livereload will connect to the poll endpoint multiple times, which is probably undesirable and should be fixed, but for me this does not result in the server stopping to respond. If you could provide me with a minimal reproducible example that would be of great help.

Any thoughts on allowing app code to turn off the auto-injection and exposing the snippet? Seems like it would be the simplest solution and provide app devs with more control.

Not a huge fan of the idea of exposing the JS snippet. Maybe exposing the poll/back-up URLs so that app developers can write their own reload logic would be a more elegant solution. However, at that point adding a very simplistic </head> scanner might be more beneficial for more users. I will have to think about it.

While the fix in #3 worked for me it took a while to understand at which point things go wrong and that the issue is related to tower-livereload. Would be nice to make this lib compatible by default or to do as @pbouzakis suggested, or maybe mention this detail in readme idk.

I would like to report that I am also having an issue with the placement of the livereload snippet and it's interaction with HTMX.
I do not use hx-push-url attribute directly. Instead, I have set hx-boost on my <body> element which I assume uses hx-push-url under the hood when any link is clicked.
If I click on a link, press my browser back button, then click the link again. After about 7-9 cycles of that, the link (and any other link on the page) doesn't work anymore. The request never hits the backend.
I think it might be because the "long-poll" is made again every time I go back:

It specifically only happens if I use the browser back button, navigating through pages via link clicks on the pages still works after 9 clicks (and it doesn't make an extra long-poll request in the network log).
Also, this sounds very similar to the same issue this commenter had with forms: https://github.com/leotaku/tower-livereload/issues/2#issuecomment-1806729931

I put the liveReload middleware at the end of the routes, it working fine. But after I click my button 7 times to do POST request with htmx, the button stopped working.

I am using HTMX with tower-livereload in an axum server. I only enable livereload in debug mode.
I added the not_htmx_predicate from #3 which does remove the livereload snippet from HTMX responses, however it did not fix the issue of links not loading after 8 redirects.
All links work okay after the 8th link if I remove tower-livereload. Maybe this is more of an HTMX issue, but I think it would be nice to be able to configure where the snippet goes if it is in fact an issue with it's placement in the body element.

Same issue

authors: edezhic leotaku pbouzakis shmy thallada

repo: leotaku/tower-livereload


text:
Application.Current will be null

Describe the bug

To Reproduce
Revit Plugins Development
Expected behavior
In case of software plug-in development，this Application.Current will be null
Screenshots
No response
OS version
Windows 11
.NET version
net48
WPF-UI NuGet version
3.0.0 preview.3
Additional context
No response

The same bug in release 2.0.3.
We need a documentation how to avoid this issues https://github.com/lepoco/wpfui/issues/668

Yep. I've had to copy some of WPFUI's code to avoid this issue, as I can't port my entire app in one go.
This is particularly an issue (for me) with calls hardcoded to Application.Current.Resources.
Perhaps it would be better if you could have an IWpfUiResourceService that you pass to those methods, with a default implementation that points to Application.Current.Resources, but a way for you to supply your own.

Perhaps it would be better if you could have an IWpfUiResourceService
And this IWpfUiResourceService should be public to be able to change theme colors at runtime.

authors: 23W chucker sherlockforrest

repo: lepoco/wpfui

license: MIT


text:
Add List of items on the homepage

Hi, I did the following task:

[ ] Add List of items on the homepage:
[ ] Add "Show Comments button":
[ ] Running linters:

Hi @lerfast!
STATUS: APPROVED! 🥇 💯
Your project is complete! There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉
Cheers and Happy coding!👏👏👏

source: gharchive/pull-request

authors: JavierAybar lerfast


text:
🛑 Mini (A literal Mac Mini) is down

In b9cb232, Mini (A literal Mac Mini) ($MINISERVER_URL) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Mini (A literal Mac Mini) is back up in bf7133f after 23 minutes.

repo: lerndmina/uptime


text:
KWT uren wegfilteren

Hi sander,
Ik gebruik magister-calendar nu al een tijdje, en ben er erg blij mee :smile:. Merk echter al een tijdje dat de KWT (niet ingeplande lessen) alsnog in de agenda verschijnen. Naar mijn weten is dit iets dat werd voorkomen. Klopt dit? Of is dit uit de code gehaald?
Ik ben op dit moment niet in staat om te kijken welke versie ik heb. Zal dat eind van de middag doen.

Hi Yochem,
Leuk om te weten dat dit nog gebruikt wordt 😁. In config.json wordt in de array blacklist aangegeven welke afspraak titels er genegeerd moet worden. Ik gok dat de standaard KWT titel dus iets veranderd is.

Denk dat ik nog een van de weinige ben op het pierson die het gebruikt😅 zal thuis even ernaar kijken

authors: lesander yochem

repo: lesander/magister-calendar

license: mit

license_source: bigquery


text:
一个小建议，可以加入一个自定义选择输入输出文件夹的功能

原图一般都比较大，每次使用都要先拷贝进input，然后又从output拷贝出来，用起来比较麻烦。可以加入一个自定义选择输入输出文件夹的功能，或者给个可以更改的配置项也可以

这个配置在 config.yaml 里面有，input 和 output 可以指定输入输出路径，但如果没有备份的话，建议谨慎操作，如果 input 和 output 指定为同一个目录可能会导致文件被覆盖

authors: GoooForward leslievan

repo: leslievan/semi-utils


text:
【功能】支持用户密码修改

密码需要加密存储，注意修改历史密码数据，以及登录部分逻辑。
由于没有保留盐字段，考虑使用 bcypt 算法

领取

authors: Hccake airtm

repo: lets-guandan/guandan-ladder


text:
[Bug] nvim__get_hl_defs is deprecated

A recent PR in neovim added in an official API for getting the highlight definitions in a namespace i.e. nvim_get_hl this replaces the unofficial API. I think it should be a very straightforward swap.

Ignore me I was still on the other branch which didn't have your latest fix in yet


text:
Invalid token causes error 500 when using Lcobucci

Simple scenario: generate na JWT (so it is correct) and then modify a part of it so that base64/json is invalid. Or just use a token like this: a.a.a and send it to the app and you will get an error 500 because of RuntimeException from Lcobucci jwt parser/decoder.
{
  "error": {
    "code": 500,
    "message": "Internal Server Error",
    "exception": [
      {
        "message": "Error while decoding to JSON: Syntax error",
        "class": "RuntimeException",
        "trace": [
          {
            "namespace": "",
            "short_class": "",
            "class": "",
            "type": "",
            "function": "",
            "file": "/srv/.../vendor/lcobucci/jwt/src/Parsing/Decoder.php",
            "line": 36,
            "args": []
          },
          {
            "namespace": "Lcobucci\\JWT\\Parsing",
            "short_class": "Decoder",
            "class": "Lcobucci\\JWT\\Parsing\\Decoder",
            "type": "->",
            "function": "jsonDecode",
            "file": "/srv/.../vendor/lcobucci/jwt/src/Parser.php",
            "line": 112,
            "args": [
              [
                "boolean",
                false
              ]
            ]
          },
          {
            "namespace": "Lcobucci\\JWT",
            "short_class": "Parser",
            "class": "Lcobucci\\JWT\\Parser",
            "type": "->",
            "function": "parseHeader",
            "file": "/srv/.../vendor/lcobucci/jwt/src/Parser.php",
            "line": 60,
            "args": [
              [
                "string",
                "a"
              ]
            ]
          },
          {
            "namespace": "Lcobucci\\JWT",
            "short_class": "Parser",
            "class": "Lcobucci\\JWT\\Parser",
            "type": "->",
            "function": "parse",
            "file": "/srv/.../vendor/lexik/jwt-authentication-bundle/Services/JWSProvider/LcobucciJWSProvider.php",
            "line": 81,
            "args": [
              [
                "string",
                "a.a.a"
              ]
            ]
          },
          {
            "namespace": "Lexik\\Bundle\\JWTAuthenticationBundle\\Services\\JWSProvider",
            "short_class": "LcobucciJWSProvider",
            "class": "Lexik\\Bundle\\JWTAuthenticationBundle\\Services\\JWSProvider\\LcobucciJWSProvider",
            "type": "->",
            "function": "load",
            "file": "/srv/.../vendor/lexik/jwt-authentication-bundle/Encoder/DefaultEncoder.php",
            "line": 54,
            "args": [
              [
                "string",
                "a.a.a"
              ]
            ]
          },
   ...
}

The thing is, that this line: https://github.com/lexik/LexikJWTAuthenticationBundle/blob/master/Services/JWSProvider/LcobucciJWSProvider.php#L81 should be wrapped with try...catch for \RuntimeException and just return a invalid JWT response.

Really nice catch  👍  I'll try to propose a fix before the end of the week, thank you for your contribution!

authors: chalasr eXtreme

repo: lexik/LexikJWTAuthenticationBundle


text:
Don't panic in nokube.go newKubevirt() searching for a hypervisor

Don't panic in nokube.go newKubevirt(), just return nil
Let the hypervisor search continue
nokube.go newKubevirt() was leading to boot time panics and watchdog reboot at least on kubevirt builds.

I built before checking in, it seems my build didn't pickup the new image.  Hold on.

I am confused now on why no one else is seeing crashes in kvm builds ? Because if nokube.go is picked, it should panic every time.

Closing, may just be a build cache issue instead.

@andrewd-zededa Yes, most likely you had first built pillar for kvm and latter on the same version tried to build for kubevirt. However, since the pillar container was cached by the linuxkit from the first build, the second build was NOOP and therefore did not include kubevirt-specific go files. I don't know how to avoid this issue. We need to somehow include the value of HV variable into the hash used as a tag of the pillar container.

repo: lf-edge/eve


text:
Support boolean attributes

http://www.rubydoc.info/gems/slim/frames#Boolean_attributes
We'll probably need a dedicated AttributeValue trait for this:
pub trait AttributeValue: fmt::Display {
    fn render_as_attribute(&self, sink: &mut MarkupSink, name: &str) {
        sink.write_str(" ");
        sink.write_str(name);
        sink.write_str("=\"");
        sink.as_escaped().write_fmt(format_args!("{}", self));
        sink.write_str("\"");
    }
}

impl AttributeValue for bool {
    fn render_as_attribute(&self, sink: &mut MarkupSink, name: &str) {
        if *self {
            sink.write_str(" ");
            sink.write_str(name);
        }
    }
}

impl AttributeValue for str {}
impl AttributeValue for i32 {}
// ...

Depends on #3.

I ultimately chose to use a dedicated syntax for boolean attributes. The trait-based solution led to too much boilerplate, and didn't optimize as well.

repo: lfairy/maud


text:
Add hint about writeable paths to intro

As seen in #69, it would be nice to have a hint about the writeable olders in the intro.
Currently it's known that /storage/emulated/0/Downloads is not writeable but ../Documents is (at least on the emulator)

In my case it cannot read or write to any directory.

Hmm, do you know how your storage is organized?
Does your phone have an sd card? In that case, only /storage/sd (or /sdcard or something similar) should be writeable.
I'm really sorry about all this trouble by the way. 🙈

No sdcard is present, this may help:
https://github.com/Catfriend1/syncthing-android/pull/459
https://github.com/Catfriend1/syncthing-android/pull/618

The first link is unfortunately only valid for apps targeting Android < 11 (Android Docs)
I'll give the strategy of the second link a try, would you be willing to join the beta to see if it works for you?
(If you do please ignore the feedback link if it is not showing GitHub)

Joined beta and installed app, waiting for app update.

I haven't published anything yet 🙈
Also a great note in another docs page:

Due to COVID-19 related considerations, apps that target Android 11 (API level 30) and request All files access cannot be uploaded to Google Play until early 2021. This includes new apps as well as updates to existing apps. This temporary uploading restriction only affects apps that both target Android 11 (API level 30) and request the All files access permission.

Great. So they break the API but delay the workaround due to COVID 🤦

Okay, not even beta uploads work. I get an error in the Dev Console. 🤦
If you still want to see if it works please use the APK directly: https://stuff.lrk.sh/lrkFM-v2.5.0b1.apk

No change, maybe logcat (only lrk logs) will help
logcat_11-09-2020_19-59-13.txt

Okay, so considering the following lines:
[11-09 19:58:27.675 19488:19488 D/io.lerk.lrkFM.activities.file.FileActivity] Extracting from uri: 'content://me.zhanghai.android.files.file_provider/file%253A%252F%252F%252Fstorage%252Femulated%252F0%252FDownload%252Fsecret.7z'...
[11-09 19:58:27.688 3768:4654 E/InputDispatcher] Window handle Window{6931b2 u0 io.lerk.lrkFM/io.lerk.lrkFM.activities.file.FileActivity} has no registered input channel
--> [11-09 19:58:27.695 19488:19488 D/io.lerk.lrkFM.UriUtil] Temp file created: '/data/user/0/io.lerk.lrkFM/cache/secret4626393681241621260.7z'!
--> [11-09 19:58:27.723 19488:19488 D/io.lerk.lrkFM.UriUtil] File written 'successfully'!
--> [11-09 19:58:27.759 19488:23448 E/io.lerk.lrkFM.tasks.archive.ArchiveUtil] Error extracting 7z
--> [11-09 19:58:27.837 19488:24368 W/io.lerk.lrkFM.tasks.DirectoryLoaderTask] Can't read '/storage/emulated': Permission denied!
[11-09 19:58:27.851 19488:24368 W/io.lerk.lrkFM.tasks.DirectoryLoaderTask] Can't read '/storage/emulated': Permission denied!

It looks like the archive was read successfully but there was an error while writing the extracted files.
Additionally (from the screencaps) it looks like you tried to extract the archive in the "current folder" (by selecting "no" in the path input dialog) which seems to be /storage/emulated.
Try navigating to a writable directory first, then extracting the archive. Or select "yes" in the dialog and enter a writable path.
I found that on API 29 (Android 10) /sdcard is a link (to /mnt/sdcard) which is writable even if there is no sd "inserted" into the emulator. Downloads are apparently also stored there.

Unfortunately i get permission denied with every folder, tried /sdcard, /storage/emulated/0, /data/user/0

Another file managers sets requestLegacyExternalStorage, seems that is the only way to fix filesystem access on android 10.

Yes. Unfortunately that doesn't work for apps targeting API >= 30, which the current release is using.
I created another test release which is using API 29, this should also appear in the GooglePlay Beta track in a few hours.

It works now! Can you also make /storage/emulated/0 default path?

Great!
You can set the home directory in the App settings :)

authors: lfuelling soredake

repo: lfuelling/lrkFM


text:
🛑 INTRANET is down

In 714f0c6, INTRANET (https://intranet.samsa.com.ar) was down:

HTTP code: 0
Response time: 0 ms

Resolved: INTRANET is back up in a1674c2 after 43 minutes.

repo: lgimenezdev/samsanet


text:
Add podname to async profiler report filename when specified

Add podname to async profiler report filename when specified.
Example usage:
./k8s-diagnostics-toolbox.sh async_profiler broker-3 -e cpu -d 30 1 -f /tmp/profile-cpu.html

It will generate: profile-cpu_broker-3_2022-12-22-124458.html

This has been deprecated by #4 .


text:
Add i8n support

Waiting on the following:

[x] Locales added to Obsidian's version of moment

Added in v1.4.0

repo: liamcain/obsidian-calendar-plugin


text:
H2字体样式, 无法渲染下划线/分界线

描述问题
下载主题后打开README.md, Customize (自定义)的H2区域无法显示下划线/ 分界线.
如何复现问题
期望结果

截图

系统 (建议使用最新Typora版本)

OS
MacOS Apple Silicon
Theme
Drake vue, Drake Juejin, Drake...
Typora Version
0.11.18 和1.8.10

我也遇到了这样的问题

二级标题自动下划线效果已经被删了
因为它导致其他问题(具体问题忘记了, 可以issues搜索), 暂时没有能力修复

好的, 了解! 感谢!

repo: liangjingkanji/DrakeTyporaTheme


text:
Unused functions and variable - remove?

These functions and variable are not used in libcsp. Is there a greater scheme - or simply remove them?
file: libcsp/include/csp/drivers/usart.h:
int usart_messages_waiting(int handle);
static inline int usart_stdio_msgwaiting(void) {
return usart_messages_waiting(0);
}
file: libcsp/src/drivers/usart/usart_linux.c
int usart_stdio_id = 0;

Well it was needed by GOSH in order to do non-blocking reads (for example to break out of a while loop). On some systems there are more than one USART and GOSH could potentially be running on either of them. So i think this is a leftover from that time. Slash uses a waitfunc callback pattern to solve this problem.
If you don't need them any more, you can safely cut that out.

What is "slash"?
GOMspace doesn't use it anymore, because it caused everything to rely on libcsp for linux - so we changed that.
I will remove them in near future then, so we keep libcsp "clean"  :)

Slash (or satlab shell) was Jeppes first take at building a shell. (from before he worked at gomspace).
https://github.com/satlab/slash
It's open source now.
Jeppe originally built it for linux only. But i adapted it for our use on Space Inventor products and have added tab-completion for commands.

authors: johandc perwulff

repo: libcsp/libcsp


text:
Driver performance warnings after recent shader unbinding change

The commit 01ea5b1 (#5944) has caused performance warnings to appear, and sometimes spam, when drawing. A minimal reproducible example is shown below which can be fixed by reverting to any previous commit, or unbinding the shader yourself.
These warnings show when using an Nvidia card. I have not yet tested any AMD cards. I am unsure which specific GL state is causing the shader to be recompiled, but it could be various combined.
This also occurs when using SpriteBatch, SpriteCache, and other drawing classes.
[LWJGL] OpenGL debug message
	ID: 0x20092
	Source: API
	Type: PERFORMANCE
	Severity: MEDIUM
	Message: Program/shader state performance warning: Vertex shader in program 3 is being recompiled based on GL state.

Lwjgl3ApplicationConfiguration options = new Lwjgl3ApplicationConfiguration();

options.enableGLDebugOutput(true, System.err);

new Lwjgl3Application(new ApplicationAdapter() {

    private ShapeRenderer shapeRenderer;

    @Override
    public void create() {
        shapeRenderer = new ShapeRenderer();
    }

    @Override
    public void render() {
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        shapeRenderer.begin(ShapeRenderer.ShapeType.Line);
        shapeRenderer.line(0.0f, 0.0f, 1.0f, 1.0f);
        shapeRenderer.end();
    }

    @Override
    public void dispose() {
        shapeRenderer.dispose();
    }
}, options);

Hi @Crunkle , i'm not able to reproduce it with my setup :
Linux / NVIDIA GTX 950m drivers: 384.130
I have few questions:

Could you tell us what's your setup? OS/version GPU Driver/version
How much it spams when drawing? like every frame, every seconds? in this example or in your project?
Did you noticed performance issues? FPS before / FPS after, glitches/freeze

I made some searches, and all i found so far might be related to some nvidia dirvers versions. It try to optimize rendering by compiling shaders based on various states (eg. blending, buffer masking). That is, a side effect because of current shader still bound.
Could you upgrade your driver and test again please? :-)

@mgsx-dev I just reproduced this here:
ArchLinux using 5.5.7-arch1-1 kernel
Java: 1.8.0_242
GTX 1070
NVIDIA 440.64 drivers
I get it without using the shaperenderer, I just took my existing application and told it to use the 1.9.11-SNAPSHOT. I'd actually suggest you might be getting away with it due to the older driver version you are on. (You also have to actually enable the GLDebug output on LWJGL3 which I hadn't realized was a thing before now, but this is the only message I've seen come out it so far.)

@mgsx-dev
I reproduced this using the exact example shown above on the very latest Nvidia driver 442.59 as well as various 400 drivers. It is not limited to Windows as far as I have tested. It is possibly due to depth masking being toggled whilst the shader is bound causing a recompilation.
I do agree that we should not need to constantly unbind shaders or textures with modern GL, but I do not see any performance improvement after your patch on my system. It is possible your older version does not optimize this, but later drivers do.
I have also noticed one other mention this outside of GitHub. It will always throw once at startup then, especially when using multiple drawing classes, can spam a few times.

Sounds like a driver bug if it wasn't the case for previous version
I personally don't have this issue on AMD gpu (RX 580)

libgdx needs a proper opengl state managements tbh, a cleanup needs to happen

@Crunkle few remaining questions :-) :

How much it spams when drawing? like every frame, every seconds? in this example or in your project?
Did you noticed performance issues? FPS before / FPS after, glitches/freeze (without debug logs enabled)

Sure, get rid of unbind won't improve performance so much since there are typically a few shader switches but if it has bad impact on performance, maybe we should reconsider and revert.
I don't know if driver really recompile or simply say it may recompile at next drawing. So it might not be an issue.

Sure, hope this helps:
On my system, in the example above, it outputs once on startup only. In more complex applications with multiple shaders it can output multiple messages with no set interval between them. It depends on state and so I can't give you any fixed timing.
Whilst running the latest driver I do not notice any performance difference. I am receiving identical frame times with or without the commit my larger application. I am unable to comment on performance for the example above as the frame time is too short to precisely measure.

Proper use of .dispose() can help a lot, except in the case of a Music object.  In that case, you have to set it to null to clear the Listener.
The new Typing-Label library should be interesting.  When compiled separately from LibGDX, it seems to cause memory leaks.  I will like to see how it handle in the next stable LibGDX version.

I decided to visit this issue because I got this same message when I recently updated my project to 1.9.11 and LWJGL 3.2.3. Even tho I got a new Geforce GTX 1660 SUPER graphic card with a lastest driver update (451.67 - July 9th, 2020), and it appears in my console log with enabled GL debug output. But good news, I found what causes it, and fix. (may not work on every GPU and drivers). How I found it? I traced the log by adding a breakpoint in System.err.println() to found what triggers it. From what I found, it caused by Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);. I added 'Gdx.gl.glUseProgram(0);' before the Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);. And what you know, the debug message is gone!

Does anyone here able to measure any performance issue?
Issue opener didn't notice any, so i think it could be closed.

I doubted this would affect any performance unless specific GL state (or various combined) causes the GPU's shader compiler compiles with less efficient code. GPU can't predict GL state changes and should the shader needs to recompile. The GPU might have multiple compiled shader code for specific or various combined GL state, but I can't confirm it.

Since nobody reported any performance issues, i'm closing it. Feel free to reopen if needed.

authors: AndEditor7 Crunkle RUSshy WickedShell mgsx-dev shatterblast

repo: libgdx/libgdx


text:
DefaultAndroidInput: delta is always zero for dragging events

Gdx.input.getDeltaX(pointer) and Gdx.input.getDeltaY(pointer) return 0 for pointer = 0.
It's a new behaviour appearing in version 1.12. I think the reason is these 4 lines. I don't understand for what kind of problems they should solve.
Another pointers don't have a similar reset and drag works correctly for them.
The demo project is attached. Run it  and check LogCat from a connected device,
inputbug.zip
Libgdx v1.12, Android

This definitely looks like a bug; I ran the demo project, and it only receives drag x and y input as 0 and 0. The only change I made was switching to Gdx.app.log() instead of System.out.println(), just because I am not very experienced with Android and I wasn't sure how to view various things. @Frosty-J , any thoughts on this catchy situation?

Did this work on desktop? I added those lines in Android because it seems equivalent to desktop.
https://github.com/libgdx/libgdx/blob/75612dae1eeddc9611ed62366858ff1d0ac7898b/backends/gdx-backend-lwjgl3/src/com/badlogic/gdx/backends/lwjgl3/DefaultLwjgl3Input.java#L207-L208

It does produce non-zero coordinates on Desktop. They seem to be relative; they're often small negative or positive values in my limited testing.

Did this work on desktop?

Yes, it does.

I added those lines in Android when implementing cursor-catching because it seems equivalent to desktop.

I'm not sure but touches and mouse should have different behaviours (and therefore event handlers). I don't think that the cursor catching for touches is needed (I didn't go deep in it, so maybe I'm wrong).

Hmm, yeah. I'm not sure if there's a good way to detect whether someone is using the touchscreen on an Android device or a mouse (more common on Chromebooks).

What's the plan to fix this? I'm not too bothered about cursor catching on Chromebooks but quite a bit on the regression bug. Shall we revert in the meantime?

I am definitely in favor of reverting the cursor-catching change on Android; I'm surprised this hasn't come up more often.

If we don't know why the other backends set delta to 0, reverting is probably the easiest course of action. Be sure to update the changelog to say the feature has been removed.

authors: Frosty-J little-brother obigu tommyettinger


text:
Make GTCredential from GTCredentialProviderBlock optional

Currently the credential is enforced as non-optional by the swift compiler.
This means that there is no way for the user to abort a remote operation that demands a credential.

We've only been adding the _Nullable annotations to the .h files as that's the only place I think they are required. Not sure which is the better practice.
I like that you use the newer _Nullable. It's probably time to change the rest of the uses of the old nullable annotation, but that can be done in another PR.

Ok, that's fixed. Any ideas to why the tests are failing?

Nice. Not sure what happened with that one build ¯_(ツ)_/¯

authors: alehed phatblat


text:
allow thermal channels

Currently it is impossible to encode a JXL_CHANNEL_THERMAL, we fix
this by adding the corresponding MakeBit.

@jonsneyers Can you double-check that this does the right thing wrt spec?

Why do we have such a weird MakeBit implementation of Enums in the first place? Is there no more elegant way to do that, so such accidents cannot happen in the first place because there are no two places that have to list the same values?

Why do we have such a weird MakeBit implementation of Enums in the first place? Is there no more elegant way to do that, so such accidents cannot happen in the first place because there are no two places that have to list the same values?

I don't believe that can really be done in C++ unless we just use one big macro...

Why do we have such a weird MakeBit implementation of Enums in the first place? Is there no more elegant way to do that, so such accidents cannot happen in the first place because there are no two places that have to list the same values?

I don't believe that can really be done in C++ unless we just use one big macro...

Why do we need to complicate Enums to have bitfields containing valid values? Just allowing any value between 0 and [last enum value] would be a lot simpler. Would there be a problem if we did that instead?

Why do we have such a weird MakeBit implementation of Enums in the first place? Is there no more elegant way to do that, so such accidents cannot happen in the first place because there are no two places that have to list the same values?

I don't believe that can really be done in C++ unless we just use one big macro...

Why do we need to complicate Enums to have bitfields containing valid values? Just allowing any value between 0 and [last enum value] would be a lot simpler. Would there be a problem if we did that instead?

In this particular case, there are "reserved" channels, which are not used and hence not allowed, we could just allow them.
Here I just wanted make thermal channels work, thinking about refactoring how MakeBit works with Enums should be done in a different pull request, if we decide to do so. (I think it is fine the way it is now.)
Perhaps it is a good idea to check that the missing-thermal-accident didn't creep into the spec.

The spec knows about kThermal, I'm on my phone atm so cannot check, but I remember we even specified that the channel values are to be interpreted in Kelvin.

Just for the record: yes, the spec has kThermal at enum value 6, and it is described as "Infrared thermography image. Sample values are in units of Kelvin."
Btw thinking about it a bit more, this might be unclear: how is scaling done when integer bit depths are used? Are 8-bit integer values to be interpreted as having

a nominal range from 0 to 255 Kelvin (but nothing prevents you from going outside that range in the bitstream and encode e.g. the value 273), or
a nominal range from 0 to 1 Kelvin (which would be more consistent with how we always do scaling; and then you'd have to go way outside the nominal range, e.g. the freezing temperature of water would be represented as the value 69653).

I think the latter maybe makes more sense, because range is always unbounded anyway (well, it's effectively limited by int32_t), so to me it makes more sense to have bit depth represent precision rather than range (which is consistent with how things are interpreted for RGB or alpha or anything else). So if the bit depth is 8, then the effective unit is 1/255 Kelvin. If you only want to represent temperatures that are integers in Kelvin, you could do it by setting the bit depth to 1.
Note that compression-wise, it doesn't matter much because in lossless compression, a channel palette can and will be used to bring the effective range of the encoded values to the integer interval [0, nb_distinct_values). And in lossy compression (quantized Squeeze), the quantization amount can just be adjusted. So either representation would have similar compression performance.
To me it seems like the second option is what is implied by the spec, but it's a bit ambiguous and should be clarified.

repo: libjxl/libjxl


text:
Add support for Corsair Ironclaw RGB

I have a Corsair Ironclaw RGB mouse. The model number is CH-9307011-EU.
It doesn't seem to be supported by libratbag because Piper says "no devices are connected" even though the mouse is connected and working.
Can you please add support for this mouse?
I also have a Logitech G502 Hero and the Corsair mouse seems very similar. It has a button for changing DPI, a button for changing config profiles, two configurable LEDs, a few extra buttons on the side... If anything it's a bit simpler, since there's no wheel paddle. So maybe this would make things easier.

This is similar to https://github.com/libratbag/libratbag/issues/444 but it's a different model of mouse. However probably #444 could be closed also if this issue was solved.

Since I have the mouse, I am interested in giving it a try and seeing if I can compose a PR. If it's successful, I would be interested in owning this particular device's support for the future.
However, I'm not familiar with libratbag code. From reading https://github.com/libratbag/libratbag#adding-devices-to-libratbag and skimming https://github.com/libratbag/libratbag/blob/master/data/devices/device.example it seems like creating a device file is not too complicated. But in #444 people are talking about writing C code. Is this a situation where the libratbag code needs to be extended as well, and just a device file won't be enough?

Is this a situation where the libratbag code needs to be extended as well, and just a device file won't be enough?

Yes. We don't have a driver for corsair devices, so this will require making one.

Thanks for the response @staticssleever668 ! Making a driver sounds complicated and hard - would that be a big task?
Also, I saw #174 which sounds like the driver exists already. But that was 5 years ago. What's the deal with that - can libratbag use https://github.com/ckb-next/ckb-next or not?

Also, for later readers - it looks like ckb-next IS able to customize various functions of this mouse, like remapping buttons and lights.

would that be a big task

I think it's quite fun, but it does take a lot of time and effort, so it is pretty hard.
Generally it comes down to using official software and looking at what USB packets it produces.
Since there is already an existing open source tool, you can try figuring out how it works instead, or, as the mentioned issue suggests, try to hook it up to libratbag.

can libratbag use https://github.com/ckb-next/ckb-next or not?

No. As it looks by the thread, there doesn't seem to have been any progress - it was just an idea.

I got confused also because that issue is talking about keyboards - but I thought libratbag was only for mice.

Although libratbag is designed for mice first, there isn't actually anything blocking from using it with other devices.
I think right now there are only device files for several Logitech keyboards.

Thanks again for the reply!
I'm afraid it's best if I do not attempt to add this driver right now. Sounds like it would be quite a big project for it, and I have an alternative option. I'm not confident enough in my C knowledge to port the code from ckb-next to libratbag.

repo: libratbag/libratbag


text:
Slack clear timestamps should match alerts

Fixes the mismatched timestamp formats as reported by @pcn in #115.

/cc @akahn @collinvandyck

:sake: :santa:

This is now live in production.

:fire: :fire: :fire: :fire: :fire: :fire: :fire: :fire:

authors: collinvandyck obfuscurity

repo: librato/librato-services


text:
Adjust Playback Speed (to listen to Podcasts at higher speed)

Thanks for developing librespot! It is awesome
I'm using ncspot as a lightweight interface with Spotify, from the command line.
I was looking for a way to increase the playback speed when listening to podcasts, stumbling upon this issue: https://github.com/hrkfdn/ncspot/issues/248
It seems that librespot does not currently provide an API for adjusting the playback speed.
Is this feasible?

I think this is a very good request, especially considered the official Spotify client supports this feature for podcasts.

Do other Connect implementations support the playback speed option? Or is only the official Desktop/Mobile clients that have it?

If I play a podcast on my connect receiver, the speed button is greyed out, but maybe it's supported on newer ones?
But since this request is about ncspot, it has originally nothing to do with connect. We need to expose a method/command for the Player to control speed.

Thanks for responding so positively and quickly to this feature request!  :heart_decoration:

If I play a podcast on my connect receiver, the speed button is greyed out, but maybe it's supported on newer ones?

Yep that was how I recall it as well - it's a Player (client) specific feature.

We need to expose a method/command for the Player to control speed.

Not sure if we want to go down that rabbit hole? The playback speed implementation might not be to hard to add,  but it is a completely new API surface - all current API is done only via spirc (connect). For better or for worse,  there aren't any local playback APIs exposed currently, as librespot's main focus has pretty much been a Connect implementation.
IMO, if we have available dev resources, it would be prudent to implement the new Connect API's and CDN loading among other things..

I've marked this as wontfix for now. As mentioned above, this is a client specific feature. If someone wants to do some reverse engineering around this to see if it can be controlled via spirc, then feel free. It would require some sort of command passthrough nonetheless though, or perhaps a playback speed event, since we are looking to move away from librespot handling the client side playback functionality, hence this would be handled externally to the library. Closing this for now, but feel free to open up a discussion thread if you decide to try to reverse engineer this feature.

repo: librespot-org/librespot


text:
More automated testing

workflows: Collect artifacts for all jobs, not just Linux

workflows: Exercise static linking with CMake
There are enough subtleties with the vendored libraries that it seems
worthwhile to test this.

cmake: Add a shortcut for setting most dependencies _SHARED or not

workflows: Run the automated test for CMake builds
We can't use dlopen() for the dependencies, because they won't be in
the search path at runtime, so link them statically here.

Ugh, sorry, I should have marked that as a draft - it's somewhat broken.

Oops. I'll ignore test failures for the moment then.

Ugh, sorry, I should have marked that as a draft - it's somewhat broken.

#251 resolves that, and I'll have another try another time. Sorry about that.
Now that we're starting to have meaningful CI, it's probably best to wait for it to pass before hitting merge.

authors: slouken smcv

license: Zlib


text:
linux: read CPU model information on ppc

Fixes: https://github.com/libuv/libuv/issues/3217

CI: https://ci.nodejs.org/view/libuv/job/libuv-test-commit/2177/

From the CI:
https://ci.nodejs.org/job/libuv-test-commit-linux/2246/nodes=centos7-ppcle/console
# uv_cpu_info:
#   model: POWER8 (architected), altivec supported
#   speed: 3425
#   times.sys: 180446900
#   times.user: 2463605550
#   times.idle: 22137774290
#   times.irq: 0
#   times.nice: 22230
#   model: POWER8 (architected), altivec supported
#   speed: 3425
#   times.sys: 182375160
#   times.user: 2503309330
#   times.idle: 22447230670
#   times.irq: 0
#   times.nice: 12110
...

repo: libuv/libuv


text:
Target .NET Core

.NET Core is new from Microsoft's new cross-platform solution to support Linux/Mac/Windows.  It would be great if this library could be used in that platform.

Yes please!

I hate these kinds of comments, but...
+1

I'll probably fork this later to at least try to do this, I could use this for one of my own projects... Hopefully, this doesn't really depend on anything that isn't in .NET Core

I also may end up having to make a compile-time flag to enable/disable encryption, with the flag disabled on netstandard, but enabled on netframework, which would allow building it for .net standard 1.6 (which is what I'm testing/porting it with)

Just got it to build!
Git repo URL: https://github.com/soccermitchy/lidgren-network-gen3

soccermitchy, I was able to compile your forked library into a DLL on my Core setup, but I'm having a hard time including the DLL, or a packed .nupkg file into a new project. Any tips for how to do that?

Not 100% sure how to do it, I can look up later how to upload a package to
nuget so you can just add a dep in your project.json file
On Tue, Dec 6, 2016 at 11:25 AM, Supergeek notifications@github.com wrote:

soccermitchy, I was able to compile your forked library into a DLL on my
Core setup, but I'm having a hard time including the DLL, or a packed
.nupkg file into a new project. Any tips for how to do that?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/lidgren/lidgren-network-gen3/issues/83#issuecomment-265195914,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAbDE5TO08zFbnCGf7Av6klIZzP79MhSks5rFYxigaJpZM4J-T1r
.

I just threw the whole library directory into my project to see if I
could get it to work that way. I ran into a lot of compile issues when I
did that, starting with NetUPnP, so I'm not sure if it's just me. I'm
not a professional developer, so I will be the first to admit it's very
likely to be operator error.
From what I'm reading, referencing a DLL is basically impossible in
Core right now (except for maybe the preview build tools which I haven't
tried), so people recommend making their own local nuget packages. But
I'm not even sure how to reference the local nuget file instead of the
internet-accessible version.
Anyway, just trying to give feedback and send encouragement on the Core
front. Core+Unity users do exist and some of us need socket libraries to
do all the heavy lifting for us! :)
On 12/6/2016 11:47 AM, Mitchell Monahan wrote:

Not 100% sure how to do it, I can look up later how to upload a package to
nuget so you can just add a dep in your project.json file
On Tue, Dec 6, 2016 at 11:25 AM, Supergeek notifications@github.com
wrote:

soccermitchy, I was able to compile your forked library into a DLL on my
Core setup, but I'm having a hard time including the DLL, or a packed
.nupkg file into a new project. Any tips for how to do that?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub

https://github.com/lidgren/lidgren-network-gen3/issues/83#issuecomment-265195914,

or mute the thread

https://github.com/notifications/unsubscribe-auth/AAbDE5TO08zFbnCGf7Av6klIZzP79MhSks5rFYxigaJpZM4J-T1r

.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/lidgren/lidgren-network-gen3/issues/83#issuecomment-265202814,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAPikjkwB5vViCJ40yGUXG1G_tEh7lC6ks5rFZG7gaJpZM4J-T1r.

If I remember correctly, there is a 'nuget.config' file (or similar) where
you can specify custom locations for packages, either local or remote.
On Tue, Dec 6, 2016 at 12:03 PM, Supergeek notifications@github.com wrote:

I just threw the whole library directory into my project to see if I
could get it to work that way. I ran into a lot of compile issues when I
did that, starting with NetUPnP, so I'm not sure if it's just me. I'm
not a professional developer, so I will be the first to admit it's very
likely to be operator error.
From what I'm reading, referencing a DLL is basically impossible in
Core right now (except for maybe the preview build tools which I haven't
tried), so people recommend making their own local nuget packages. But
I'm not even sure how to reference the local nuget file instead of the
internet-accessible version.
Anyway, just trying to give feedback and send encouragement on the Core
front. Core+Unity users do exist and some of us need socket libraries to
do all the heavy lifting for us! :)
On 12/6/2016 11:47 AM, Mitchell Monahan wrote:

Not 100% sure how to do it, I can look up later how to upload a package
to
nuget so you can just add a dep in your project.json file
On Tue, Dec 6, 2016 at 11:25 AM, Supergeek notifications@github.com
wrote:

soccermitchy, I was able to compile your forked library into a DLL on
my
Core setup, but I'm having a hard time including the DLL, or a packed
.nupkg file into a new project. Any tips for how to do that?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub

<https://github.com/lidgren/lidgren-network-gen3/issues/
83#issuecomment-265195914>,

or mute the thread

<https://github.com/notifications/unsubscribe-auth/
AAbDE5TO08zFbnCGf7Av6klIZzP79MhSks5rFYxigaJpZM4J-T1r>

.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<https://github.com/lidgren/lidgren-network-gen3/issues/
83#issuecomment-265202814>,
or mute the thread
<https://github.com/notifications/unsubscribe-
auth/AAPikjkwB5vViCJ40yGUXG1G_tEh7lC6ks5rFZG7gaJpZM4J-T1r>.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/lidgren/lidgren-network-gen3/issues/83#issuecomment-265207431,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAbDE37j3NB4_jM1XvbCViveSgApABJ5ks5rFZVfgaJpZM4J-T1r
.

I just uploaded a package to NuGet for this:
https://www.nuget.org/packages/Lidgren.Network.Core. For the version, I
just grabbed the version from the .csproj file from the official gh repo.
On Tue, Dec 6, 2016 at 3:20 PM, Mitchell Monahan soccermitchy@gmail.com
wrote:

If I remember correctly, there is a 'nuget.config' file (or similar) where
you can specify custom locations for packages, either local or remote.
On Tue, Dec 6, 2016 at 12:03 PM, Supergeek notifications@github.com
wrote:

I just threw the whole library directory into my project to see if I
could get it to work that way. I ran into a lot of compile issues when I
did that, starting with NetUPnP, so I'm not sure if it's just me. I'm
not a professional developer, so I will be the first to admit it's very
likely to be operator error.
From what I'm reading, referencing a DLL is basically impossible in
Core right now (except for maybe the preview build tools which I haven't
tried), so people recommend making their own local nuget packages. But
I'm not even sure how to reference the local nuget file instead of the
internet-accessible version.
Anyway, just trying to give feedback and send encouragement on the Core
front. Core+Unity users do exist and some of us need socket libraries to
do all the heavy lifting for us! :)
On 12/6/2016 11:47 AM, Mitchell Monahan wrote:

Not 100% sure how to do it, I can look up later how to upload a package
to
nuget so you can just add a dep in your project.json file
On Tue, Dec 6, 2016 at 11:25 AM, Supergeek notifications@github.com
wrote:

soccermitchy, I was able to compile your forked library into a DLL on
my
Core setup, but I'm having a hard time including the DLL, or a packed
.nupkg file into a new project. Any tips for how to do that?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub

<https://github.com/lidgren/lidgren-network-gen3/issues/83#
issuecomment-265195914>,

or mute the thread

<https://github.com/notifications/unsubscribe-auth/AAbDE5TO0
8zFbnCGf7Av6klIZzP79MhSks5rFYxigaJpZM4J-T1r>

.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<https://github.com/lidgren/lidgren-network-gen3/issues/83#
issuecomment-265202814>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/
AAPikjkwB5vViCJ40yGUXG1G_tEh7lC6ks5rFZG7gaJpZM4J-T1r>.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/lidgren/lidgren-network-gen3/issues/83#issuecomment-265207431,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAbDE37j3NB4_jM1XvbCViveSgApABJ5ks5rFZVfgaJpZM4J-T1r
.

Much appreciated, thank you. VS Code picked it up and installed it
without issue.
Then I took the Chat Server example
(https://github.com/lidgren/lidgren-network-gen3/blob/master/Samples/Chat/ChatServer/Program.cs)
and took out all of the Windows forms stuff and it compiled fine.
Looks good so far!
On 12/6/2016 6:39 PM, Mitchell Monahan wrote:

I just uploaded a package to NuGet for this:
https://www.nuget.org/packages/Lidgren.Network.Core. For the version, I
just grabbed the version from the .csproj file from the official gh repo.

I'm happy to help on this if needed. I am a professional developer and i have also been using lidgren since the original Gen1 back when we have to create our own heartbeat thread :)

Was your .net core code port ever merged into the mainline?

As far as I'm aware, it was not, but it also was never high enough quality of a port that I didn't really consider doing a PR with it.

authors: AlbinoGeek Supergeek cakeslice jaredthirsk lkingsford soccermitchy willthiswork89


text:
Sass compiler error. Failed to create instance of the V8JsEngine

After updating multiple nuget packages and the Ligershark packages our scss bundles are not compiled. We are getting this error:
During loading of Sass compiler error has occurred. Failed to create instance of the V8JsEngine. See the original error message: “V8 native assembly: loaded version 7.4.4 does not match required version 7.4.3”. Inner exception: Failed to create instance of the V8JsEngine. See the original error message: “V8 native assembly: loaded version 7.4.4 does not match required version 7.4.3”.
This happens occasionally and we can't reproduce it ourselfs.
First we updated the packages to 7.4.4 and we got the error, after reverting all the updates we still got the error.
Current packages in our project:
<PackageReference Include="JavaScriptEngineSwitcher.ChakraCore" Version="3.21.0" /> <PackageReference Include="JavaScriptEngineSwitcher.Extensions.MsDependencyInjection" Version="3.21.0" /> <PackageReference Include="JavaScriptEngineSwitcher.V8" Version="3.21.3" /> <PackageReference Include="LigerShark.WebOptimizer.Core" Version="3.0.384" /> <PackageReference Include="LigerShark.WebOptimizer.Sass" Version="3.0.99" /> <PackageReference Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" Version="7.0.12" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="7.0.12" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.ViewFeatures" Version="2.2.0" /> <PackageReference Include="Microsoft.ClearScript.V8.Native.win-x64" Version="7.4.2" /> <PackageReference Include="Microsoft.ClearScript.V8.Native.win-x86" Version="7.4.2" /> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.12" /> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.12" /> <PackageReference Include="Microsoft.Extensions.Azure" Version="1.7.0" /> <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="7.0.10" /> <PackageReference Include="X.PagedList.Mvc.Core" Version="8.4.7" />
Framework: net7.0
The weird part is is that we got this error on our test invironment and local, so we decided to revert the packages in case it breaks on our production env. After reverting we did an update to production and also got the error, but we never published the nuget updates to our production...

Hello!
It looks like versions of the Microsoft.ClearScript.V8 and Microsoft.ClearScript.V8.Native.win-* packages don't match.
Try to explicitly install the Microsoft.ClearScript.V8 package of the required version:
<PackageReference Include="Microsoft.ClearScript.V8" Version="7.4.4" />

Oke, so we forgot a package ;( ?
we now updated the packages to 7.4.4 and installed Microsoft.ClearScript.V8:
   <PackageReference Include="JavaScriptEngineSwitcher.Extensions.MsDependencyInjection" Version="3.21.0" />     <PackageReference Include="JavaScriptEngineSwitcher.V8" Version="3.21.5" />     <PackageReference Include="LigerShark.WebOptimizer.Core" Version="3.0.396" />     <PackageReference Include="LigerShark.WebOptimizer.Sass" Version="3.0.102" />     <PackageReference Include="Microsoft.ClearScript.V8" Version="7.4.4" />     <PackageReference Include="Microsoft.ClearScript.V8.Native.win-x64" Version="7.4.4" />     <PackageReference Include="Microsoft.ClearScript.V8.Native.win-x86" Version="7.4.4" />
Also deleted the JavaScriptEngineSwitcher.ChakraCore package because we already have: Microsoft.ClearScript.V8 right?
Works locally, we are now testing it on our test environment.

Oke, we are going to publish it to our production. Will close this issue when we have nog errors the next couple of days.

@Taritsyn Fixed, no more errors

authors: Taritsyn htodep


text:
Allow setting podUID to run as non-root

By default it is unset, as there is no sensible default for this.
We set it in our smoketests however, so we can verify all our pods can
run as non-root to support Openshift.
part of https://github.com/lightbend/es-backend/issues/331

It's failing across all the PRs for some reason. I've disabled the parallel smoketests (obfuscates the output) and added more debug output to try and figure it out. I also sent a request to travis to enable the debug mode for helm-charts.

Nothing obvious to me as to why things would start failing.  All looks reasonable to me.

@dbrinegar can you approve it please?

authors: jsravn marcoderama

repo: lightbend/helm-charts


text:
Update akka-actor, ... to 2.6.15

Updates

com.typesafe.akka:akka-actor
com.typesafe.akka:akka-actor-testkit-typed
com.typesafe.akka:akka-actor-typed
com.typesafe.akka:akka-protobuf
com.typesafe.akka:akka-slf4j
com.typesafe.akka:akka-stream
com.typesafe.akka:akka-stream-testkit

from 2.6.11 to 2.6.15.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.typesafe.akka" } ]

labels: library-update, semver-patch

Superseded by #256.

repo: lightbend/kafka-lag-exporter


text:
Version for Scala 2.13.0

Depends on:

https://github.com/scalatest/scalatest/issues/1601
https://github.com/mockito/mockito-scala/issues/119

https://github.com/lightbend/scala-logging/pull/171

Published scala-logging_2.13-3.9.2

authors: analytically dejan2609 xuwei-k

repo: lightbend/scala-logging


text:
🛑 Admonter Shop is down

In 5c4e356, Admonter Shop (https://shop.admonter.com) was down:

HTTP code: 403
Response time: 114 ms

Resolved: Admonter Shop is back up in 0fa0329.

repo: lightcyde/upptime


text:
update dbt schema

update dbt schema to version 2

Thanks @chaimt ! Just added a small change and seems to be working for me.

authors: chaimt owlas


text:
Sweep tx is not reflected in wallet balance.

Background
A channel was forced closed and the other side have managed to broadcast the sweep transaction, which is also confirmed on chain. The issue is that the wallet balance is zero and the 'listchaintxns' shows empty list.
Funding tx: https://blockstream.info/tx/bf973531b59ef39a517d1e86c941e3e5b2b3ab22821a332848e9ff2013c3e9e1?output:1
Closing tx
https://blockstream.info/tx/b508ca1e227de1970a25e2bf13c585991c86c3d48b06bc47acbef440496eb8e2
Other side sweep tx
https://blockstream.info/tx/389df9de60d04e3f9452bf292abc4fb60e530d76583ea58692d3776ad3b83283
I see these lines in the log:
--- Creating sweep transaction for 1 inputs (0 CSV, 0 CLTV) using 12500 sat/kw
--- Inserting unconfirmed transaction 389df9de60d04e3f9452bf292abc4fb60e530d76583ea58692d3776ad3b83283
--- No peers replied to inv message for transaction 389df9de60d04e3f9452bf292abc4fb60e530d76583ea58692d3776ad3b83283
So the transaction is clearly broadcasted ( and should have been added to the wallet relevant txs and also the address should be watched).
After this the wallet was restarted and I see attempts to rebroadcast the same transaction (probably because no reply was received from previous broadcast) with conflict failure:
--- Received reject (cmd tx, code REJECT_INSUFFICIENTFEE, reason replacement transaction f752aae46aca5a42c0950f9e956e3b221f929c7048a33a8b6592b40bdcffaa73 has an insufficient fee rate: needs more than 49881, has 49881, hash f752aae46aca5a42c0950f9e956e3b221f929c7048a33a8b6592b40bdcffaa73) from [2607:7700:0:1d:0:1:5e17:9aab]:8333 (outbound)
--- All peers rejected transaction f752aae46aca5a42c0950f9e956e3b221f929c7048a33a8b6592b40bdcffaa73 checking errors
--- Broadcast attempt failed: rejected by [2607:7700:0:1d:0:1:5e17:9aab]:8333: replacement transaction f752aae46aca5a42c0950f9e956e3b221f929c7048a33a8b6592b40bdcffaa73 has an insufficient fee rate: needs more than 49881, has 49881
--- Sending inv (witness tx f752aae46aca5a42c0950f9e956e3b221f929c7048a33a8b6592b40bdcffaa73) to [2607:7700:0:1d:0:1:5e17:9aab]:8333 (outbound)
--- Removed invalid transaction
It seems that the re-broadcast failed because the original transaction already existed in the mempool  and this one couldn't replace it without raising the fee (https://github.com/btcsuite/btcd/blob/e3d3088b80acb3d7943d38c495525d013a564892/mempool/mempool.go#L899). I also think this has caused removal of the transaction from the wallet which explains why it doesn't exist in the output of 'listchaintxns'.
What I don't yet understand is why the confirmation wasn't detected by the wallet as the address was generated by the wallet and therefore should have been added to the watch list.
To eliminate the case where a spent notification was missed (there were some issues at this area in the past) I have run manual rescan using this tool https://github.com/btcsuite/btcwallet/tree/master/cmd/dropwtxmgr but still the same results and the sweep utxo wasn't detected. No change to the wallet balance.
Your environment
lnd version 0.7.1 using neutrino and btcd backend.
running on iOS mobile.
Expected behaviour
The wallet balance and the listchaintxns output should be correct to include the sweep transaction.
Actual behaviour
wallet balance is zero and no transaction in listchaintxns output.

Removing the transaction f752aae46aca5a42c0950f9e956e3b221f929c7048a33a8b6592b40bdcffaa73 should not have caused the proper one 389df9de60d04e3f9452bf292abc4fb60e530d76583ea58692d3776ad3b83283 to be removed, but it looks like that was the case here. Are there any other instances in the logs of removing invalid transactions?
The recovery should've definitely picked it up, could you try again and increase the LNWL log level to trace?

@wpaulino there is another one entry for removal of a transaction which seems to be the same case of retrying while the original is still in the mempool:

---Received reject (cmd tx, code REJECT_INSUFFICIENTFEE, reason replacement transaction 07a253b078b9844a109b86c491cf3062fbe264ca1fe6a9615727cb1b9815843a has an insufficient fee rate: needs more than 49881, has 49881, hash 07a253b078b9844a109b86c491cf3062fbe264ca1fe6a9615727cb1b9815843a) from 94.23.154.171:8333 (outbound)
---All peers rejected transaction 07a253b078b9844a109b86c491cf3062fbe264ca1fe6a9615727cb1b9815843a checking errors
---Broadcast attempt failed: rejected by 94.23.154.171:8333: replacement transaction 07a253b078b9844a109b86c491cf3062fbe264ca1fe6a9615727cb1b9815843a has an insufficient fee rate: needs more than 49881, has 49881
2019-10-18 23:39:40.614 [INF] LNWL: Removed invalid transaction: (*wire.MsgTx)(0x4000b703c0)({

This case happened on one of the mobile users. I will work with him to run the recovery on his mobile in trace mode and get back with the logs.

@wpaulino attached is the log file for the last run after running the recovery tool. I also set the BTCN log level to DEBUG so we can see that the filter for the sweep tx confirmation block was fetched.
lnd.log

@wpaulino I am working with the user to get the walletdb and channeldb files, will inspect them first to observe the current state and try to understand what happened.
Will come back when I have results to share.

@wpaulino it turns out I used and old wallet.db, recovery with seed solved it. Thanks and closing this issue.

authors: roeierez wpaulino

repo: lightningnetwork/lnd


text:
panic during peer connection

Fix for #148

So as I described in ln-testers channel there is problem when:

we have two nodes A and B.
node A has a feature f.
node B has not feature f.
node A trying to connect to B.
because they are not compatible in terms of features B disconnects  from node A.
node A have no idea why connection was closed because it closed the connection faster than  receive the init message and for that reason connection manager keeps trying to connect node B.

With last commit I added the logic to wait for `init` message to be sent to remote peer before handling the incoming `init` message.

I'm not sure as to why the last commit is needed at all. If the connection is detected as being closed by the writeHandler, then it'll exit triggering a quit of all other goroutines. So rather than waiting on that timer, we can (additionally on in isolation) instead add the p.quit channel to the select loop.

I'm not sure as to why the last commit is needed at all.
Because if we not wait for init message to be sent, than we may receive remote init message and close the connection earlier than we send init message to remote side.

close the connection earlier than we send init message to remote side (because of the queue)

Why's this an issue (other than making logs possibly nicer)? If the new select statement is modified to have a case for the quit channel, then a close of the socket will result in a failure of starting the peer.

authors: AndrewSamokhvalov Roasbeef


text:
lnd: close the wallet unlock grpc server

The server was kept alive long after it stopped being used. This caused
problems for services using long-lived GRPC connections which might be
created before wallet unlocked. They got stuck connected to the wallet
unlock service needing a restart.
Pull Request Checklist

[x] If this is your first time contributing, we recommend you read the Code
Contribution Guidelines
[x] All changes are Go version 1.12 compliant
[x] The code being submitted is commented according to Code Documentation and Commenting
[x] For new code: Code is accompanied by tests which exercise both
the positive and negative (error paths) conditions (if applicable)
[x] For bug fixes: Code is accompanied by new tests which trigger
the bug being fixed to prevent regressions
[x] Any new logging statements use an appropriate subsystem and
logging level
[x] Code has been formatted with go fmt
[x] For code and documentation: lines are wrapped at 80 characters
(the tab character should be counted as 8 characters, not 4, as some IDEs do
per default)
[x] Running make check does not fail any tests
[x] Running go vet does not report any issues
[x] Running make lint does not report any new issues that did not
already exist
[x] All commits build properly and pass tests. Only in exceptional
cases it can be justifiable to violate this condition. In that case, the
reason should be stated in the commit message.
[x] Commits have a logical structure according to Ideal Git Commit Structure

Do the same to the main grpcServer?

@halseth hi! Any updates on this?

Sorry about the delay, I overlooked this. I've removed the comment and rebased against master.

authors: champo federicobond halseth


text:
build: update btcwallet dependency to only scan relevant key scopes

Depends on https://github.com/btcsuite/btcwallet/pull/682.

If we open and close a channel for a node before we start the main recovery itest, then we should be able to expand test coverage in a manner that would've likely caught this bug in the past.

I added a change address recovery case to the existing on-chain fund recovery test. I ran it for a few hours without the dependency update, but it never triggered. I confirmed that it was indeed choosing between multiple scopes at the btcwallet level through some additional logs I added though, so it was a matter of chance as expected.


text:
Identify websites for design inspiration

Identify a set of websites with different design languages as options to inspire our design.
Please list the websites in comments below, ideally with a screenshot or two. For example, BlueSky is one good option.

BlueSky (https://bsky.app/)

Threads

It's dark mode by default. Personally, I like dark mode, it's easier to read in my opinion, but it's not for everyone. If we are gonna redesign the UI (#80), we need to figure out which mode we will start working on first(light or dark).

Medium

Quora

Some useful design takeaways:

Upvote/downvote
Credentials/affiliation/fields column (on the right of the profile)
Notify Me (set notification for a specific user)

repo: lil-lab/recnet


text:
Please remove your version of django-background-task to avoid further confusion.

So, this is what happens... It confuses everyone, and not for the first time.
I want to encourage you to remove your version of django-background-task to avoid further confusion.
Of course we respect the copyright, your invested effort and will keep you mentioned in the README.

Django Background Task is a databased-backed work queue for Django, loosely based around Ruby's DelayedJob library. This project was adopted and adapted from lilspikey django-background-task.

👋

repo: lilspikey/django-background-task


text:
Add support for VNC, in addition to the current QEMU displays

Description
The qemu display might slow down the host, and the window be in the way...
But it is also possible to connect to the qemu virtual machine desktop using vnc
The parameters can be somewhat tricky, so give it a separate configuration.
This also clearly separates a display window with a network connection.

The recommended configuration only binds to localhost, not to the network.
It is also possible to add a password (8 char, clear text) to the VNC connection.
In addition, it is also possible to run the whole interface in a web browser with novnc.
It uses a websocket connection to port 5700+d, instead of the regular port 5900+d.

In order to provide a limactl viewer, one would have to embed a web server and some js (684K).
Like: http://localhost/vnc_lite.html?host=localhost&port=5700&path=#password=secret
More information about it at https://github.com/novnc/noVNC/blob/master/docs/LIBRARY.md
Then it would be possible to see the graphical lima window, without a local VNC client app.

Something like this, when using a basic go:embed.
func viewerAction(cmd *cobra.Command, args []string) error {
	http.Handle("/", http.FileServer(http.FS(novnc.Content)))
	browser.OpenURL("http://localhost:5800/vnc_lite.html?host=localhost&port=5700&path=")
	logrus.Fatal(http.ListenAndServe(":5800", nil))
	return nil
}

4.0K	./pkg/novnc/LICENSE.txt
4.0K	./pkg/novnc/AUTHORS
40K	./pkg/novnc/docs
4.0K	./pkg/novnc/content.go
396K	./pkg/novnc/core
228K	./pkg/novnc/vendor
8.0K	./pkg/novnc/vnc_lite.html

https://github.com/novnc/noVNC/blob/v1.3.0/LICENSE.txt

I think I got a bit carried away with the web viewer (?), so will leave that and websockets as a separate add-on.
You can still run the novnc wrapper, and it will start up a local websockets proxy (novnc_proxy) for you.

Now it is shown on the console, and saved to a file.
INFO[0000] [hostagent] VNC Password for 127.0.0.1:0 <vnc://127.0.0.1:5900> is:
INFO[0000] [hostagent]     "46479782" | `/home/anders/.lima/default/vncpassword`

In order to provide a limactl viewer, one would have to embed a web server and some js (684K).

I don't think this is necessary; you can just install a viewer using your local package manager if you don't already have one.
On macOS you can use the builtin Screen Sharing.app: Just run open vnc://127.0.0.1:5900 from your shell.
When you use iTerm you can also just ⌘-Click on it.

Just noticed that at least with Screen Sharing.app I can put the password into the URL to avoid the prompt:
open vnc://:06464996@127.0.0.1:5901

I don't think this is necessary;

Not necessary, but a feature ?
Will go with the URL for now, and if there is a demand to have something to open a GUI window we can add it later...
Similar to running limactl shell, instead of limactl ssh and executing it. I guess limactl viewer could open the url.

Just noticed that at least with Screen Sharing.app I can put the password into the URL

Looks like Remmina isn't as happy, about putting the password in the URL

I don't think this is necessary;

Not necessary, but a feature ?

Maybe, but you will have noticed that I usually argue against adding complexity for features that are easily constructed using already existing tools, especially if the use-case is not widely shared.

Will go with the URL for now, and if there is a demand to have something to open a GUI window we can add it later...
Similar to running limactl shell, instead of limactl ssh and executing it. I guess limactl viewer could open the url.

I can see the point for opening the URL in your default VNC viewer (is there a way to do this generically on Linux?), but I object to bundling a vnc viewer itself with Lima.
VNC is only really needed/useful when ssh doesn't work, e.g. because cloud-init failed in a new OS image you want to make work with Lima. So there is quite a limited audience for this, and these people should all be able to install their VNC viewer of choice.

VNC is only really needed/useful when ssh doesn't work, e.g. because cloud-init failed in a new OS image you want to make work with Lima. So there is quite a limited audience for this, and these people should all be able to install their VNC viewer of choice.

Actually it was more used when using Lima as a replacement for VirtualBox or Vagrant, as in a generic virtualization platform. For the regular "headless" deployment, there is probably less need for it - although that xterm.js web console did look rather nice... 😀
But I did back out that integrated noVNC viewer feature, and now it is just -display vnc left in the PR (with the password). If we want a console or a display based on WebSockets in the future, I would consider the proof-of-concept done (without any security).
The proxy clients are still there, for connecting to the regular VNC protocol or SSH protocol.
So if you just want to try it, you can install novnc_proxy or go-ssh-web-client yourself ?

Should put vnc next to the other displays, that would make it more obvious and also allow for a better default display...
video:
  # QEMU display, e.g., "none", "cocoa", "sdl", "gtk", "vnc", "default".
  # Choosing "none" will hide the video output, and not show any window.
  # Choosing "default" will pick the first available of: gtk, sdl, cocoa.
  # As of QEMU v6.2, enabling anything but none or vnc is known to have negative impact
  # on performance on macOS hosts: https://gitlab.com/qemu-project/qemu/-/issues/334
  # 🟢 Builtin default: "none"
  display: null
  # VNC (Virtual Network Computing) is a platform-independent graphical
  # desktop-sharing system that uses the Remote Frame Buffer protocol (RFB)
  vnc:
    # VNC display, e.g.,"to=L", "host:d", "unix:path", "none"
    # By convention the TCP port is 5900+d, connections from any host.
    # 🟢 Builtin default: "127.0.0.1:0,to=9"
    display: null

authors: afbjorklund jandubois

repo: lima-vm/lima


text:
Reduce excessive indentation of limactl ls --help output

I just noticed that the limactl ls --help output is badly formatted:
$ limactl ls --help
List instances of Lima.
		The output can be presented in one of several formats, using the --format <format> flag.

		  --format json  - output in json format
		  --format yaml  - output in yaml format
		  --format table - output in table format
		  --format '{{ <go template> }}' - if the format begins and ends with '{{ }}', then it is used as a go template.

		These functions are available to go templates:

		  indent <size>: add spaces to beginning of each line
		  missing <message>: return message if the text is empty

		The following legacy flags continue to function:
		  --json - equal to '--format json'

Usage:
  limactl list [flags] [INSTANCE]...

Aliases:
  list, ls

Flags:
  -f, --format string   output format, one of: json, yaml, table, go-template (default "table")
  -h, --help            help for list
      --json            JSONify output
      --list-fields     List fields available for format
  -q, --quiet           Only show names

Global Flags:
      --debug   debug mode

The first block of text (before the actual "Usage:") is indented by 16 spaces (2 tabs), whereas it should be indented just 2 spaces.
Originally posted by @jandubois in https://github.com/lima-vm/lima/pull/1267#pullrequestreview-1274627014

Apparently this multiline problem is common enough to have a whole library: https://github.com/lithammer/dedent


text:
TableDataEditor.js Updates

Changed allowable number of columns from 12 to 24

Hi @jattwood
This package is based on some code we had across different projects. I wasn't aware if this limitation in the code when converting our code to a package, and only found out about it recently. I had a chat about this with a coworker just last week, and our conclusion was to remove this entirely. I just haven't gotten around to updating the package yet.
The UI may not work that great as the table gets more columns, but this may among other things depend on the user's window width, so it's hard to know exactly at which column count should be the limit. And it's still possible to edit the table even though the user experience takes a hit as the column count grows. So let's just remove this limit entirely. Can you update your PR to reflect this?

Ok Done (I think). I also updated the V1 branch as well. Hope I did that correctly. Had some git issues earlier, but I think it should be ok. Still working off 11 currently but hope to migrate to 13 over the next few weeks.
Thanks!

Normally we can just cherry pick changes from one branch to another, but from a quick glance on GitHub, both your PRs look spot on 👍
I look into pushing a new release for either branch when I can find some time 😉

Ok great - much appreciated.

Any chance you would be able to merge and release this PR? Need to launch a site in the next week that's using the tables and it would be great to include this. Thanks!

Thanks a lot 👍

authors: abjerner jattwood


text:
datetime handling

Currently the datetime handling is inconsistent throughout the API. Some parts leave it as plain string, while e.g. navigation converts it into datetime without timezone.
Both is imho not optimal. Converting to datetime as in navigation does not preserve the timezone information. That might lead to issues. I darkly remember running into issues myself with that, when the API was returning different localized dates depending on locale settings etc.
Leaving it as string unparsed also leaves too much room for errors later on for my taste.
Personally I'd favor to convert anything that's a time into a unix timestamp /  seconds since epoch or at least a timezone aware datetime. What's your opinion?

Yep :100: on converting everything to UTC datetimes.
Anything that's not consistent is likely just things I'm not using - please feel free to call out anything and happy to fix.

Date is now consistently defined as datetime object with timezone required. Fixed somewhen along the last some commits.
Date = Annotated[datetime.datetime, msgspec.Meta(title="Date", tz=True)]


text:
手机端编辑器加强

手机端编辑器能否进行改进？很多 bbs 倒在这一块上，包括 DZ。

DZ是倒在没有盈利模式上的，哪怕是知乎，手机端也没有支持复杂文本编辑的。

Discourse 对于手机端编辑器就解决得很好。

authors: lincanbin t-hua

repo: lincanbin/Carbon-Forum


text:
Initialize junit5 extensions Before/AfterAll instead of Each.

I noticed that the junit5 extension starts / stops the server around every test method instead of the class. We almost always use @ClassRule with the old ServerRule since this is fairly resource intensive. Also I think it's better to guarantee these resources are set up before user's @BeforeEach type of callbacks. Does it make sense to change these to All?

+1 for All. Is there a way to make this configurable by the way?

It's just code, so we would need to add a constructor parameter to control the behavior. As some already have parameters, I would lean towards switching to a builder pattern for these though if we did so. Do you think it's worth it?

Ah also I guess we can have a protected boolean method instead. What do you think?

Ah also I guess we can have a protected boolean method instead. What do you think?

SGTM

Added a base class so extensions by default run around class but a method can be overridden to have them run around method instead.

Thanks, @anuraaga

authors: anuraaga trustin

repo: line/armeria


text:
Fix buffer leak on DNS query timeout

Motivation:
DefaultDnsNameResolver does not release the collected DnsRecords
when it failed to complete a future with them, which can happen when a
DNS query has timed out already. (Thanks to @kojilin for finding out the
cause of the leak.)
Modifications:

Release the collected DnsRecords when failed to complete a future.

Result:

No buffer leak on DNS query timeout.

I can write a slow DNS server, but I'm not sure how I can check if the records are released. 🤔

@trustin Don't we have logging of leaked references on CI? It's probably fine if that triggers even if not natively asserted.

Also curious about how to write test ByteBuf leak.
Not sure the implementation of promise.cancel(true),  does it have a possibility that DnsRecord is built but not calling the operationComplete here. Or even we call cancel, if the record is built and retain successfully, the complete of promise(operationComplete here) must be called with result.

Not sure the implementation of promise.cancel(true),  does it have a possibility that DnsRecord is built but not calling the operationComplete here. Or even we call cancel, if the record is built and retain successfully, the complete of promise(operationComplete here) must be called with result.(This is the cause this time?)

promise.cancel() will trigger operationComplete(), but we will have to release half-collected records. Let me tighten the release logic.

@anuraaga Yeah, let me write a test case with slow DNS server, and then send a follow-up PR that makes the build fail when a LEAK error message is logged.

send a follow-up PR that makes the build fail when a LEAK error message is logged.

Done in this PR

Once this is merged and we fixes all leaks during the build process, I'll try to add a new build profile that runs the build with -Pleak option, although it might not be possible due to high memory usage.

@kojilin Let me merge this for now. Please feel free to let us know if you have more information about the leak.

authors: anuraaga kojilin trustin


text:
Switch per-app settings from focused app to app under cursor

Previously: Settings based on focused app (using eventTargetUnixProcessID)
Now: Settings based on app under mouse cursor

This change makes per-app settings more intuitive. Users can now move
the cursor over an app and immediately use its specific settings (e.g.,
custom scrolling distances) without changing focus.

This merge helped me solve a big problem

authors: lujjjh pypykim

repo: linearmouse/linearmouse


text:
想用这个library做一个下载中心供系统的其他APP调用，使用AIDL遇到问题

IFileDownloadServiceHandler、FDServiceSeparateHandler的构造函数不是public的，因而不能在包外使用

不明白你的问题所在，为什么需要用到这些。
你可以试试demo project里面的使用。

demo里是在同一个app调用，我想要做的是发布一个下载的SDK，然后其他应用集成这个SDK就拥有了下载的能力。但是真正的下载工作是在下载中心这个APP完成。能加QQ请教一下吗？我的QQ是307141632

可以直接到我们的gitter中聊天的: https://gitter.im/lingochamp/FileDownloader

authors: Ernest-su Jacksgong

repo: lingochamp/FileDownloader


text:
Update README-zh.md

pause -> 暂停

👍 重新提一个，Commit message 遵循: AngularJS's commit message convention


text:
Loop notification sound

As this library main purpose is to provide phone-like experience, I suppose notification sound should be looped.

@degorov Thank you. Look good, i will check later.


text:
Suggestion: Resolve job instances from service scope

Hi there, it's an excellent idea to build a cron expression-enabled job scheduler for .NET 👍 I especially like how it aligns with modern, idiomatic .NET, and it looks like it's very low on ceremony. Many ⭐ in my book for that!
One, tiny thing I suggest get changed though, is the thing about jobs being singletons. From my point of view, there's absolutely NO reason why they should not be transient/scoped and then be resolved from a service scope, as each job execution lends itself PERFECTLY to the scoped model.
Maybe you have a good reason for this design decision? Or maybe it's one of those things that just turn out in one way or another because noone had a strong opinion about it, and that's why I'm here to make you aware that a modern .NET developer would absolutely expect a service scope around anything that can conceptually be thought of as a scope (which a job execution can).
Just my 2 cents. 🙂 Oh, and if you need help with this, I would be happy to submit a PR.

Maybe add an option to JobOption, ExecuteAsSingleton = true/false

That is a very valid reason - and on second look I am not sure what drove me to that decision to be very honest.
I started this project some months ago, stopped working on it, and picked it up.
My initial reasoning was that jobs should be as stateless as possible - and recurring jobs "benefit" from less allocations and setup if they are singleton.
That said, I am inclined to register them transient by default.
I also like @mdissel proposal to have a flag, indicating whether or not the job is a singleton, which is false by default.

@mookid8000 There is also the option to create a scope for the job itself - so every job would run as scoped and is registered AddScoped<TJob>.
Have to think about the benefits of that approach.

I released v0.9.3 that registers services as transient. I am open for discussion whether or not to implement a scope that is created for the job.

I think people will expect a new scope when the job is executed and properly destroyed.

Just a small comment, when jobs are executed on the same time, they share the same scope, but are run on different threads. I don't think you can assume that the used services are thread-safe (for example IDBConnection related services)

Yeah I agree with @mdissel that the new implementation is a little bit too in-between.
Every job execution (as in: one job that executes once) should be resolved in its own scope.  This way, the job can e.g. have a scoped Entity Framework data context and trust it to be shared throughout one single execution, committing changes at the end.
This would align with how e.g. ASP.NET Core executes each web request in its own scope and basically any other thing in .NET that  has something that can be thought of as a "request" (e.g. my own Rebus via Rebus.ServiceProvider will treat the handling of each incoming message as a scope).

Fair enoigh - I do a release now, that fixes that.

authors: linkdotnet mdissel mookid8000

repo: linkdotnet/NCronJob


text:
ACL path

Turns out I had correctly transcribed the code from gold into ldnode but go's Dir and node's dirname have different behaviour when the path has a trailing slash.
In gold
pathfile.Dir("/home/martinmr/) // returns "/home/martinmr

while in node
path.dirname("/home/martinmr/") // returns "/home"

Perfect

authors: martinmr nicola

repo: linkeddata/ldnode


text:
Reducing the Number of StoreExceptions for checking mount path

The disk healthchecker will check if the mount is accessible every 60s, so if a mount is inaccessible, the logs will be crowded with repeated exceptions of disks being inaccessible. With this change, we reduce the number of exceptions. So, we only throw an exception, if the previous state wasn't MOUNT_NOT_ACCESSIBLE.The initial state for diskHealthStatus will be null to trigger that initial Store Exception, if the mount isn't accessible. Build was successful

I'm not super familiar with this code - where do the 180 seconds come from?
It's actually 60 seconds. I had mistaken it for 180 seconds
https://github.com/linkedin/ambry/blob/master/ambry-api/src/main/java/com/github/ambry/config/DiskManagerConfig.java#L55

Codecov Report
Base: 53.49% // Head: 14.48% // Decreases project coverage by -39.01% :warning:

Coverage data is based on head (43d709d) compared to base (0cd86f7).
Patch coverage: 25.00% of modified lines in pull request are covered.

Additional details and impacted files
@@              Coverage Diff              @@
##             master    #2381       +/-   ##
=============================================
- Coverage     53.49%   14.48%   -39.01%
+ Complexity     7154     2333     -4821
=============================================
  Files           770      771        +1
  Lines         59742    59809       +67
  Branches       7316     7333       +17
=============================================
- Hits          31957     8665    -23292
- Misses        24960    50630    +25670
+ Partials       2825      514     -2311

Impacted Files
Coverage Δ

.../main/java/com/github/ambry/store/DiskManager.java
70.74% <25.00%> (-0.60%)
:arrow_down:

.../src/main/java/com/github/ambry/store/Message.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...rc/main/java/com/github/ambry/named/PutResult.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...rc/main/java/com/github/ambry/quota/QuotaMode.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...rc/main/java/com/github/ambry/quota/QuotaName.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...rc/main/java/com/github/ambry/rest/RestMethod.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...c/main/java/com/github/ambry/commons/Notifier.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...c/main/java/com/github/ambry/config/KMSConfig.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...c/main/java/com/github/ambry/config/SSLConfig.java
0.00% <0.00%> (-100.00%)
:arrow_down:

.../main/java/com/github/ambry/named/NamedBlobDb.java
0.00% <0.00%> (-100.00%)
:arrow_down:

... and 503 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

authors: codecov-commenter maskndafi-linkedin

repo: linkedin/ambry


text:
Cleanup replication code

Now that the wait time hack is out, take out the related code and configs.

Codecov Report

Merging #939 into master will decrease coverage by 0.02%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #939      +/-   ##
============================================
- Coverage     67.26%   67.24%   -0.03%
+ Complexity     4353     4348       -5
============================================
  Files           365      365
  Lines         28533    28515      -18
  Branches       3620     3616       -4
============================================
- Hits          19192    19174      -18
- Misses         8332     8336       +4
+ Partials       1009     1005       -4

Impacted Files
Coverage Δ
Complexity Δ

...va/com.github.ambry.replication/ReplicaThread.java
71.22% <ø> (-0.7%)
45 <0> (-3)

...ava/com.github.ambry/config/ReplicationConfig.java
100% <ø> (ø)
1 <0> (ø)
:arrow_down:

...b.ambry.network/BlockingChannelConnectionPool.java
62.6% <0%> (-3.05%)
7% <0%> (-1%)

.../src/main/java/com.github.ambry.store/Journal.java
89.83% <0%> (-1.7%)
20% <0%> (-1%)

.../main/java/com.github.ambry.store/HardDeleter.java
79.67% <0%> (-0.33%)
40% <0%> (-1%)

...in/java/com.github.ambry.store/BlobStoreStats.java
70.09% <0%> (ø)
81% <0%> (+1%)
:arrow_up:

...in/java/com.github.ambry.network/SocketServer.java
83.19% <0%> (+0.4%)
13% <0%> (ø)
:arrow_down:

...ain/java/com.github.ambry.router/PutOperation.java
90.43% <0%> (+0.59%)
83% <0%> (+1%)
:arrow_up:

...java/com.github.ambry.store/CompactionManager.java
90.54% <0%> (+2.7%)
19% <0%> (ø)
:arrow_down:

Continue to review full report at Codecov.

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

authors: codecov-io pnarayanan


text:
Hive Registration initial commit

This is the initial commit the outlines the approach.
HiveRegister is the main class. It registers a HiveRegistrable using a HiveRegistrationPolicy which specifies how the registration should be done, and a HiveStorageDescriptorManager to manage the storage. HiveStorageDescriptorManager uses a HiveSchemaManager to manage the schema.

@sahilTakiar @ydai1124 @vasanthrajamani can you review?

Can you add markers to all the interfaces (https://github.com/linkedin/gobblin/pull/551)

@chavdar  Sorry for the offtopic, but I have acquired the username @alpha as an inactive username, and I am most likely not the person you're looking for. Really sorry again for the inconvenience

authors: alpha sahilTakiar zliu41

repo: linkedin/gobblin