text:
nullable value in record is not an option

Bug Description
Auto generated Record do not us Option for nullable value.
The doc say I should create a issue for this.
Minimal Reproduction
repo with bug: https://github.com/LuckyTurtleDev/mstickerpicker/tree/59488942bddbff961cffc4a3c40e43524496c660
CREATE TABLE users (
  id SERIAL UNIQUE,
  mxid TEXT UNIQUE NOT NULL,
  PRIMARY KEY (mxid)
);

CREATE TABLE files (
  hash BYTEA UNIQUE NOT NULL,
  mxc TEXT UNIQUE NOT NULL,
  id BIGSERIAL UNIQUE,
  PRIMARY KEY (id)
);

CREATE INDEX
ON files(hash);

CREATE TABLE file_owner (
  user_id INTEGER NOT NULL,
  file_id BIGINT NOT NULL,
  FOREIGN KEY(file_id)
    REFERENCES files(id)
    ON DELETE CASCADE,
  FOREIGN KEY(user_id)
    REFERENCES users(id)
    ON DELETE CASCADE
);

CREATE INDEX
ON file_owner(user_id);

CREATE INDEX
ON file_owner(file_id);

SELECT * from users;
 id | mxid
----+------
 -4 | test
(1 row)

SELECT * from files;
   hash   |  mxc  | id
----------+-------+----
 \xeeaee0 | test  |  1
 \x00     | test2 |  2
(2 rows)

SELECT * from file_owner;
 user_id | file_id
---------+---------
(0 rows)

-- user_id can be null:
SELECT *
FROM files AS a LEFT JOIN file_owner AS b
ON a.id = b.file_id
WHERE a.hash ='\x00'::bytea AND (b.user_id = 2 OR b.user_id IS NULL);
 hash |  mxc  | id | user_id | file_id
------+-------+----+---------+---------
 \x00 | test2 |  2 |         |
(1 row)

-- same query used as in rust:
SELECT a.mxc, a.id, b.user_id
FROM files AS a LEFT JOIN file_owner AS b
ON a.id = b.file_id
WHERE a.hash ='\x00'::bytea AND (b.user_id = 2 OR b.user_id IS NULL);
  mxc  | id | user_id
-------+----+---------
 test2 |  2 |
(1 row)

	let entry = query!(r#"
		SELECT a.mxc, a.id, b.user_id
		FROM files AS a LEFT JOIN file_owner AS b
		ON a.id = b.file_id
		WHERE a.hash=($1) AND (b.user_id = ($2) OR b.user_id IS NULL)
		"#, hash, user_id)
		.fetch_optional(&*SQL_POOL)
		.await?;
	if let Some(entry) = entry {
		if entry.user_id.is_none() {
			// ERROR:  user_id is from type i32 and not from Option<i32>
		}
	}

EXPLAIN (VERBOSE, FORMAT JSON) SELECT a.mxc, a.id, b.user_id
                FROM files AS a LEFT JOIN file_owner AS b
                ON a.id = b.file_id
                WHERE a.hash ='\x00'::bytea AND (b.user_id = 2 OR b.user_id IS NULL);
                         QUERY PLAN
-------------------------------------------------------------
 [                                                          +
   {                                                        +
     "Plan": {                                              +
       "Node Type": "Nested Loop",                          +
       "Parallel Aware": false,                             +
       "Async Capable": false,                              +
       "Join Type": "Left",                                 +
       "Startup Cost": 4.38,                                +
       "Total Cost": 23.08,                                 +
       "Plan Rows": 1,                                      +
       "Plan Width": 44,                                    +
       "Output": ["a.mxc", "a.id", "b.user_id"],            +
       "Inner Unique": false,                               +
       "Filter": "((b.user_id = 2) OR (b.user_id IS NULL))",+
       "Plans": [                                           +
         {                                                  +
           "Node Type": "Index Scan",                       +
           "Parent Relationship": "Outer",                  +
           "Parallel Aware": false,                         +
           "Async Capable": false,                          +
           "Scan Direction": "Forward",                     +
           "Index Name": "files_hash_idx",                  +
           "Relation Name": "files",                        +
           "Schema": "public",                              +
           "Alias": "a",                                    +
           "Startup Cost": 0.15,                            +
           "Total Cost": 8.17,                              +
           "Plan Rows": 1,                                  +
           "Plan Width": 40,                                +
           "Output": ["a.hash", "a.mxc", "a.id"],           +
           "Index Cond": "(a.hash = '\\x00'::bytea)"        +
         },                                                 +
         {                                                  +
           "Node Type": "Bitmap Heap Scan",                 +
           "Parent Relationship": "Inner",                  +
           "Parallel Aware": false,                         +
           "Async Capable": false,                          +
           "Relation Name": "file_owner",                   +
           "Schema": "public",                              +
           "Alias": "b",                                    +
           "Startup Cost": 4.23,                            +
           "Total Cost": 14.79,                             +
           "Plan Rows": 10,                                 +
           "Plan Width": 12,                                +
           "Output": ["b.user_id", "b.file_id"],            +
           "Recheck Cond": "(a.id = b.file_id)",            +
           "Plans": [                                       +
             {                                              +
               "Node Type": "Bitmap Index Scan",            +
               "Parent Relationship": "Outer",              +
               "Parallel Aware": false,                     +
               "Async Capable": false,                      +
               "Index Name": "file_owner_file_id_idx",      +
               "Startup Cost": 0.00,                        +
               "Total Cost": 4.23,                          +
               "Plan Rows": 10,                             +
               "Plan Width": 0,                             +
               "Index Cond": "(b.file_id = a.id)"           +
             }                                              +
           ]                                                +
         }                                                  +
       ]                                                    +
     }                                                      +
   }                                                        +
 ]
(1 row)

Info

SQLx version: 0.7.3
SQLx features enabled: default-features = false, features = ["runtime-tokio", "tls-rustls", "sqlx-postgres", "sqlx-macros", "migrate", "postgres", "macros"]
Database server and version: postgres (PostgreSQL) 16.1
Operating system: arch linux
rustc --version: 1.76.0 (07dca489a 2024-02-04)

I'm running into the same bug

I had to do a cast like this to get it to pick up
CAST(aus.status AS TEXT) AS status

authors: LuckyTurtleDev spencerbart

repo: launchbadge/sqlx


text:
User uid gid works when passed to Dockerfile using ARG but not ENV

Context

Following https://github.com/launchrctl/launchr/commit/3ba937c571c10a700d533d27faa506c91c70dd1e

Observed

User uid gid works when passed to Dockerfile using ARG but not ENV :
So this is working :

action.yaml:
action:
  title: Compare artifact
  description: Get expected artifact to compare current one and generate diff file
  arguments:
    - name: username
      title: Username
      description: The username to get comparison artifact with
    - name: password
      title: Username
      description: The password to get comparison artifact with
  options:
    - name: override
      title: Overriden comparison reference (branch or tag name)
  image: platform-actions-compare-artifact:latest
  build:
    context: ./
    args:
      USER_ID: {{.current_uid }}
      GROUP_ID: {{.current_gid}}
    tags:
      - platform-actions-compare-artifact:latest
      - platform-actions-compare-artifact:1.0.0
  command:
    - sh
    - /action/x.sh
    - "{{.username}}"
    - "{{.password}}"
    - "{{.override}}"

Dockerfile:
FROM alpine:3.18
WORKDIR /host
ARG USER_ID
ARG GROUP_ID
RUN echo ${USER_ID}
RUN echo ${GROUP_ID}
RUN adduser -D -u $USER_ID -g $GROUP_ID plasma || true
USER plasma

But this is not working :

action.yaml:
action:
  title: Compare artifact
  description: Get expected artifact to compare current one and generate diff file
  arguments:
    - name: username
      title: Username
      description: The username to get comparison artifact with
    - name: password
      title: Username
      description: The password to get comparison artifact with
  options:
    - name: override
      title: Overriden comparison reference (branch or tag name)
  image: platform-actions-compare-artifact:latest
  build:
    context: ./
    env:
      USER_ID: {{.current_uid }}
      GROUP_ID: {{.current_gid}}
    tags:
      - platform-actions-compare-artifact:latest
      - platform-actions-compare-artifact:1.0.0
  command:
    - sh
    - /action/x.sh
    - "{{.username}}"
    - "{{.password}}"
    - "{{.override}}"

Dockerfile:
FROM alpine:3.18
WORKDIR /host
RUN echo ${USER_ID}
RUN echo ${GROUP_ID}
RUN adduser -D -u $USER_ID -g $GROUP_ID plasma || true
USER plasma

Expected

{{.current_uid }} and {{.current_gid}} defined in action.yaml should be able to be passed to Dockerfile

Fixed by moving env: outside of build:
cf https://github.com/launchrctl/launchr/blob/main/example/envvars/action.yaml

source: gharchive/issue

repo: launchrctl/launchr

license_type: permissive

license_source: github-api


text:
Correct handling of Access Modes

Right now the interpretation of how to handle access modes on data registrations and data instances is somewhat unclear.
Clarifications needed
Do my interpretations of the ACL access modes as present in the SAI spec match up?

Access Mode
Applies to Data Registration
Applies to Data Instance
Notes

acl:Read
NA
X
By default Read access is provided to Data Registration.  Is this correct behaviour?

acl:Write

X

acl:Update
?
?
What is the meaning of this access mode?

acl:Create
?

Implies writing to a resource that didn't exist prior. Should create be a permitted access mode on a Data Registration?

acl:Delete
?
X
Should Delete permit the deletion of the registration as well?

acl:Append
X
X
Append should permit the creation of new Instances via POST

Is a data registration always readable when one has a data grant referencing it?
Updates needed

[ ] One should be able to create a resource with a custom URI when create permissions have been given.
[ ] One should be able to delete a data registration.

Solutions are defined here: https://solid.github.io/data-interoperability-panel/specification/#access-scopes

repo: laurensdeb/interoperability

license: MIT


text:
lavas引入vue-apollo的配置问题

lavas引入vue-apollo怎么配置？
//lavas的app.js文件默认有以下代码：
export function createApp() {
    let router = createRouter();
    let store = createStore();
    let App = Vue.extend({
        router,
        store,
        ...AppComponent
    });
    return {App, router, store};
}

vue-apollo文档是这样写的:https://akryum.github.io/vue-apollo/guide/installation.html
new Vue({
    el: '#app',
    provide: apolloProvider.provide(),
    render: h => h(App),
});

//网上一篇博客是这样写的
new Vue({
    el: '#app',
    router,
    apolloProvider,
    template: '<App/>',
    components: { App }
});

应该怎么配置才对？

我看一下。初步估计可能是没暴露构造函数导致没法配置吧？大概要提供一种新的方式

repo: lavas-project/lavas


text:
Redo dimensions (keywords: sizing positioning layout)

The dimensions currently look funny because the width is wrong, instead of 960px it was measured at around 980 or so.
Need to redo EVERYTHING now :(

Individual Time Circuits:
width: 960px
height: 195px

gaps *
gap between left of circuit and left of left-most LCD cutout: 23px
gap between right of circuit and right of right-most LCD cutout: 27px
gap between top of circuit and top of red label: 19px
gap between bottom of circuit and bottom of bottom black label: 8-9px

LCD cutouts:
height: 89-90px

widths *
month cutout width: 186px
day/hour/min cutout width: 107px
year cutout width: 225px
gaps *
gap between month and day cutouts: 26-27px
gap between day and year cutouts: 41px
gap between year and hour cutouts: 56px
gap between hour and min cutouts: 37px

Indicator lights:
height/width: 17px
Red Labels:
height: 28px

widths *
box widths: just eyeball
gaps *
gap between bottom of red label and top of cutouts: 11px

will probably measure one and then just eyeball the rest

Black labels:
height: 32-33px
font width destination: 227px
eyeball the other font widths

gaps *
gap between bottom of lcd cutout and top of black label: 9-10px
gap between bottom of black label and bottom of time circuit: 9px

Need to reopen. Removing the border bezel in issue #64 has caused sizing changes again.

license: mit

license_source: bigquery


text:
add maintainer.md

Created maintainers.md file
fixes #28

Reminder...
@gunjanmimo this commit needs a sign-off.
@Harshini-M ready for review.

source: gharchive/pull-request

authors: gunjanmimo leecalcote


text:
mesheryctl: New completion command to generate autocompletions script for the specified shell (bash or zsh)

Current Behavior
CLI users enjoy and benefit from less typing when they have enabled autocompletion for a command line interface. mesheryctl does not currently provide a completion command from which the full set of mesheryctl commands may be sourced for the user's specific type of shell (bash or zsh).
Desired Behavior
Leveraging Cobra's generator, create a new completion command is created with the following parameters and flags:

mesheryctl completion SHELL - Generates autocompletion script for the specified shell (bash or zsh)

meshery completion --help

Generate autocompletion script for Meshery for the specified shell (bash or zsh).

This command can generate shell autocompletions. e.g.

    $ mesheryctl completion bash

Can be sourced as such

    $ source <(mesheryctl completion bash)

Usage:
  mesheryctl completion SHELL [flags]

Flags:
  -h, --help   help for completion

Provide detailed instructions to users by updating the Meshery docs. Use kubectl's docs as an example - https://kubernetes.io/docs/tasks/tools/install-kubectl/#enabling-shell-autocompletion

This is the enhancement you are talking about @nitishm, right?

Yessir

Hi @WLun001, we would love to have your help here. Given your experience with autocomplete (and fish shell) will you consider taking on this issue?

@leecalcote I can try out sometimes probably this week or next week

@WLun001, that would be fantastic. 😄

authors: WLun001 kushthedude leecalcote nitishm


text:
Async provider

Participant provider is now asynchronous. This way you don't have to load all participants from database at the start of application.

I don't recommend merge yet, it seems there is a bug. When adding participants to conversation, some components don't refresh participant list.

Hello @Drac0n
Thanks for sending this over, and apologies for the very late followup. With the support for identities, we have stopped using Participant. Also, we have removed flavors in latest versions of Atlas.
We are also working on improving Layer API's to be async in general. You will see those changes in the next few months.
So, this PR is no longer valid for Atlas. So, I am closing this. Please feel free to reach out with any thoughts / comments to Layer support via https://support.layer.com/.

repo: layerhq/Atlas-Android


text:
I successfully adapt it for dida365!

The reason why changing ticktick.com to dida365.com directly does not work for the TickTick China version is that dida365 requires headers and there are authentication issues. It is necessary to use base64 encryption for client id and secret. After consulting with official personnel, I made adjustments to the code:

Added dida365 options for users to decide whether or not to use dida365.
Modified the way of obtaining access token from dida365.
As a beginner, the formatting may be a bit messy, so you can format it uniformly after testing.

I don't think this issue is necessary since you already opened a PR with the same comment.
https://github.com/lazeroffmichael/ticktick-py/pull/40
Side note, Base64 is encoding, not encryption.

repo: lazeroffmichael/ticktick-py


text:
CNode::startPos 与CNode::endPos颠倒的问题

问题场景：
给定这样一个page：
std::string page = "<!DOCTYPE html><meta charset=\"UTF-8\"><title>Title</title>

<div1><div2><div3>

</div3></div2></div1>
";

在其中查找所有tag为img的node
auto nodes = doc.find("IMG");

然后取出这些node的  startPos 和 endPos ，
发现它们   startPos 是指向标签末尾的，endPos指向 标签开始，是不是这两个函数的实现搞反了？

哥们儿,qq多少

确实是反过来了。

测试代码如下：
void test_image_tag() {
    std::string page = "";
    CDocument doc;

    doc.parse(page.c_str());
    CNode node = doc.find("IMG").nodeAt(0);
    std::cout << "startPos:" << node.startPos() <<" endPos:"<< node.endPos() << std::endl;
    std::cout << "startPosOuter:" << node.startPosOuter() <<" endPosOuter:"<< node.endPosOuter() << std::endl;
}

输出如下：
startPos:7 endPos:0
startPosOuter:0 endPosOuter:0

另一个测试代码
void test_div_tag() {
    std::string page = "

";
    CDocument doc;

    doc.parse(page.c_str());
    CNode node = doc.find("div").nodeAt(0);
    std::cout << "startPos:" << node.startPos() <<" endPos:"<< node.endPos() << std::endl;
    std::cout << "startPosOuter:" << node.startPosOuter() <<" endPosOuter:"<< node.endPosOuter() << std::endl;
}

输出如下：
startPos:5 endPos:5
startPosOuter:0 endPosOuter:11

测试 input 标签和 img 标签结果类似。
@lazytiger

authors: dptr metalwood qyvlik

repo: lazytiger/gumbo-query


text:
Constant name "keywords" doesn't conform to UPPER_CASE naming style

https://github.com/lbonanomi/scripts/blob/d4369094fb277f5c08521500b3186b83b4c530b9/grouper.py#L59

Issues for naming style are now ignored.

repo: lbonanomi/scripts


text:
ROS 2 control dependency not listed

Refer https://github.com/lbr-stack/lbr_fri_ros2_stack/blob/humble/lbr_ros2_control/package.xml

fixed in #123


text:
Don't try to dim system UI

The Issue
MainActivity will try to dim system UI when dark mode is not enabled on app settings. This means that status bar and bottom navigation bar will be hidden until user touches the screen. At least, that's what Android developer documentation says. There is no point in doing that for the app. The low-profile is for profile a more inmersive experience, like showing an image. It will also be cleared after the first touch on the screen and would need to be set again.
       if (!isDarkMode()) {             getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);         }
https://github.com/lbryio/lbry-android/blob/0ec09d751c788d349930d3dcac8b7dfccacb1e74/app/src/main/java/io/lbry/browser/MainActivity.java#L432
Internal Use
Acceptance Criteria

Definition of Done

[ ]  Tested against acceptance criteria
[ ] Tested against the assumptions of the user story
[ ] The project builds without errors
[ ] Unit tests are written and passing
[ ] Tests on devices/browsers listed in the issue have passed
[ ] QA performed & issues resolved
[ ] Refactoring completed
[ ] Any configuration or build changes documented
[ ] Documentation updated
[ ] Peer Code Review performed

I need to sleep. Sorry.

repo: lbryio/lbry-android


text:
Typo in !why commit leading to build failure

The !why commit introduced a build failure due to missing the closing bracket of the !why command definition and the comma needed between it and the !bitcoin definition. Produced a pull request to fix it and get travis builds back on track. #267

The relevant build failure can be found here:
https://travis-ci.com/lbryio/lbry-wunderbot/builds/130782835

repo: lbryio/lbry-wunderbot


text:
Add GalaSoft.MvvmLight.Platform for .Net Core WPF

Add GalaSoft.MvvmLight.Platform for .Net Core WPF (DispatcherHelper).
NOTE: version number still uses 5.4.1.1

@lbugnion Has MVVMLight stalled?

@lbugnion Hi. Just checking if you'll have time to look into this soon?
MVVM Light is a great little framework that I've been using for years. Would love to see it move forward to .NET Core. DispatcherHelper is a nice little helper that we all are so used to.

Does it work with WPF on .net core

authors: Shujee ashishsinha24 igitur yeunglee

repo: lbugnion/mvvmlight


text:
scrollView下拉问题

布局：
<com.lcodecore.tkrefreshlayout.TwinklingRefreshLayout
android:id="@+id/refresh"
android:layout_width="match_parent"
android:layout_height="match_parent">
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:overScrollMode="never">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
          ............
        </LinearLayout>
    </ScrollView>
</com.lcodecore.tkrefreshlayout.TwinklingRefreshLayout>

界面：
默认：

下拉加载数据的界面：

在加载过程中我向上滑动，加载完成以后就会出现下面的问题

请问怎么解决，我在demo中的scrollView看了，也出现这样的问题

我也有一样的问题 嵌套scrollview的时候从下面返回顶部有时候scrollview的顶部会缺一块

同样的问题，上拉回弹后同样有一部分缺失，显示不全

demo里面的Story-ScrollView-GoogleDotView 也会出这个问题，

我也遇到了，看来这个真的是bug，希望可以早点修正

遇到了同样的问题 这个bug解决了吗

我也遇到相同问题，目前解决办法是根据scrollview是否滑动顶部做逻辑，如下：
if (y <= 0) {
refreshLayout.setNestedScrollingEnabled(true);
refreshLayout.setEnableOverScroll(true);
refreshLayout.setEnableRefresh(true);
} else {
refreshLayout.setNestedScrollingEnabled(false);
refreshLayout.setEnableOverScroll(false);
refreshLayout.setEnableRefresh(false);
}

authors: 506967734 PeanutZhang RWXJH freefly2016 nextmrwang tabian

repo: lcodecorex/TwinklingRefreshLayout


text:
🛑 Thonk Website is down

In a633d56, Thonk Website (https://www.thonk.xyz) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Thonk Website is back up in 5a7bf87 after 6 minutes.

repo: le-server/thonk-upptime


text:
🛑 Transmission is down

In ea2abc5, Transmission (https://transmission.thonk.xyz) was down:

HTTP code: 502
Response time: 823 ms

Resolved: Transmission is back up in 3752950.


text:
Minor improvements and code formatting

Updated import paths to use github.com/lean-poker/poker-player-go
Extract Game, Player and Card to github.com/lean-poker/poker-player-go/leanpoker
Added quotes to JSON annotations field names
Cleaned up code and formatted using gofmt

Thank you for the pull request!

Yay! :+1:

If you have a bit more time there are two issues with this framework:

All player frameworks should use a dynamic structure as the game state, since the game state is subject to change. I can't keep modifying 15 repos every time the game state is changed. Something like a map should be used.
Please see if it's possible to make sure that when the repo is forked nothing needs to be updated. (See the usage instructions in the README.md... that should be unnecessary.)

It would be really awesome, if you could take care of those :)

I'll try to have a look.

Thanks! :)
On Tue, Aug 4, 2015 at 10:22 AM, Andrew Slotin notifications@github.com
wrote:

I'll try to have a look.
—
Reply to this email directly or view it on GitHub
https://github.com/lean-poker/poker-player-go/pull/1#issuecomment-127521451
.

authors: andrewslotin devill

repo: lean-poker/poker-player-go


text:
Windows inno build failure when using setup_icon_file

Hello.
The setup_icon_file property is nowhere to be found in the documentation but I did find a merge request that added this property.
Here is my make_config.yaml
app_id: 5B599538-42B1-4826-A479-AF079F21A65D
publisher: Amin Beheshti
publisher_url: https://github.com/AminBhst/brisk
display_name: Brisk
create_desktop_icon: true
install_dir_name: "{autopf}\\Brisk"
setup_icon_file: assets\\icons\\logo.ico
locales:
  - en

After running the workflow with the setup_icon_file set, it results in a build failure:
 Preparing Setup program executable
   Updating icons (SETUP.E32)
Error on line 15 in D:\a\brisk\brisk\dist\1.4.6+15\brisk-1.4.6+15-windows-setup_exe.iss: The system cannot find the path specified.
Compile aborted.
MakeError
#0      AppPackageMakerExe._make (package:flutter_app_packager/src/makers/exe/app_package_maker_exe.dart:49:7)
<asynchronous suspension>
#1      FlutterDistributor.package (package:flutter_distributor/src/flutter_distributor.dart:182:35)
<asynchronous suspension>
#2      CommandRunner.runCommand (package:args/command_runner.dart:212:13)
<asynchronous suspension>

Unhandled exception:
MakeError
#0      AppPackageMakerExe._make (package:flutter_app_packager/src/makers/exe/app_package_maker_exe.dart:49:7)
<asynchronous suspension>
#1      FlutterDistributor.package (package:flutter_distributor/src/flutter_distributor.dart:182:35)
<asynchronous suspension>
#2      CommandRunner.runCommand (package:args/command_runner.dart:212:13)
<asynchronous suspension>

The exe is built eventually, however, the file is corrupted as it failed during the build. The crazy thing is that the icon is properly set for the corrupted exe file.
It does work fine if I set the path explicitly like this: setup_icon_file: D:\\a\\brisk\\brisk\\assets\\icons\\logo.ico. However, this is obviously not ideal. Is there any way to use ${{ github.workspace }} for flutter distributor?

My current workaround is to add a job step that replaces the icon path to the proper explicit value:
make_config.yaml:
app_id: 5B599538-42B1-4826-A479-AF079F21A65D
publisher: Amin Beheshti
publisher_url: https://github.com/AminBhst/brisk
display_name: Brisk
create_desktop_icon: true
install_dir_name: "{autopf}\\Brisk"
setup_icon_file: PLACEHOLDER_ICON_PATH
locales:
  - en

This step added to the workflow file:
      - name: Set proper icon path
        run: |
          $iconPath = "${{ github.workspace }}\\assets\\icons\\logo.ico"
          (Get-Content windows/packaging/exe/make_config.yaml) -replace 'PLACEHOLDER_ICON_PATH', $iconPath | Set-Content windows/packaging/exe/make_config.yaml
          ```


text:
Doesn't work with latest version of Guszzle.

We're using Guzzle and it's latest version. And we also don't need remote debug. So strict requirement prevents us to use this extension.

I have released 2 new versions of this extension today:

v3.1.0 - uses guzzlehttp/guzzle ~4.0||~5.0. This is legacy support release, mostly for those still stuck with 4.0 or 5.0 for whatever reason. This version will not likely to receive further updates, but can be used for transition period. It is temporarily maintained on v3.1 branch.
v3.2.0 - uses guzzlehttp/guzzle ~6.0. This will be maintained and will receive any updates (master branch).

I have also made an issue to gather more feedback regarding making guzzlehttp/guzzle optional altogether, as it is only required when using Remote Xdebug. Please check #15 and provide any additional feedback if you like.
As there is a version of this package that supports most recent guzzle versions (from 4.0 to 6.0), I believe I can close this issue. Please let me know if there is something else.
Thank you for feedback.

thanks a lot

repo: leanphp/behat-code-coverage


text:
duplicated definition of the pullback functor between over categories

Today @sinhp and I discovered that there are two definitions of the pullback functor between over categories:
(i) one called Over.pullback that appears in Limits.Over.
(ii) one called Over.baseChange that appears in Adjunction.Over and
Over.pullback is proven to be a right adjoint in Over.mapPullbackAdj, while Over.baseChange was proven to be a right adjoint in Over.mapAdjunction --- my first mathlib PR!
The comments to the Limits.Over file mention a TODO: If C has binary products, then forget X : Over X ⥤ C has a right adjoint. This appears as Over.forgetAdjStar in the Over.Adjunction file.
@sinhp has discussed this with @jcommelin and @joelriou who confirm that the correct place for this material is in the adjunction folder. But I have no clue which names, constructions, etc are best.

Closed by #14519

authors: emilyriehl jcommelin


text:
feat: germs of smooth functions

Define the space of germs of smooth functions (between manifolds).
Endow it with a ring structure if the target manifold is a smooth ring (e.g., a Lie group or a field).
From the sphere eversion project, rewritten by me.
Co-authored by: @PatrickMassot (I believe)

Particular questions for review

is the authorship/copyright information appropriate?
(@PatrickMassot created the file SmoothGerm which I adapted; I didn't trace this far back through sphere-eversion.)
is providing all the intermediate algebraic structures (such as, an additive subgroup) on the space of smooth germs useful in practice? (The sphere eversion project only needs a ring structure.)
any particular API lemmas (e.g., around coercions) which would be good to add?

@mcdoll Thanks for the comments; these were really helpful. I didn't know the trick with "double spread notation" (is that the word?) yet.

It is simply called "spread notation"

Please don't @ people in the PR description above the ---! Else they will get pinged every time someone adds the commit to their branch.

Thanks for the review, I'm still learning which collection of API lemmas is useful. I have addressed all comments.
awaiting-review

awaiting-review

authors: YaelDillies grunweg


text:
doc: convert many comments into doc comments

All of these changes appear to be oversights to me.

This is close to exhaustive, I audited all such comments.

Thanks for the effort!
bors merge

authors: grunweg joelriou


text:
feat(scripts/lint-style): more useful line numbers

This changes slighlty the output of the linter from
[...]Mathlib/My/File.lean#L285: ERR_LIN: Line has more than 100 characters

to
[...]Mathlib/My/File.lean:285 ERR_LIN: Line has more than 100 characters

If one then copies the path with the line number and uses that when opening the file in vs code with Ctrl-p, it will set to cursor to the correct line number in question. Also other tools will work with that format, it is also used by pylint, clang etc.

Could you push and revert a test commit with a linting error to double check that this doesn't break anything? (It looks like it won't because the change is after the :: but just in case...)

@bryangingechen sure, I can do that: seems to have worked: https://github.com/leanprover-community/mathlib4/actions/runs/8767095008/job/24059960872

Thanks!
bors r+


text:
chore: update SHA sums

All these changes in Mathlib 3 were backported from this repository or were forward-ported earler.
Port status pages

topology.basic@8631e2d5ea77f6c13054d9151d82b83069680cb1..bcfa726826abd57587355b4b5b7e78ad6527b7e4
topology.separation@59694bd07f0a39c5beccba34bd9f413a160782bf..92ca63f0fb391a9ca5f22d2409a6080e786d99f7
order.filter.basic@996b0ff959da753a555053a480f36e5f264d4207..24e75f1ee89ff37e99581084704f3f6a950db2ea
order.basic@d4f69d96f3532729da8ebb763f4bc26fcf640f06..1f0096e6caa61e9c849ec2adbd227e960e9dff58
algebra.group.type_tags@6eb334bd8f3433d5b08ba156b8ec3e6af47e1904..2e0975f6a25dd3fbfb9e41556a77f075f6269748

Relevant PRs

Topology.Basic: #1957
Order.Filter.Basic: #1953
Order.Basic: #1738
Algebra.Group.TypeTags: #945

Thanks :tada:
bors merge

authors: jcommelin urkud


text:
feat: port Analysis.Normed.Ring.Seminorm

This is currently stuck on an issue as indicated in line 111. edit: fixed by the etaExperiment option

Lint is complaining about some simp lemmas about toFun not being in simp normal form. But when I change that, it's complaining that the lemma is a tautology. So what's the right formulation here? Thanks!

Lint is complaining about some simp lemmas about toFun not being in simp normal form. But when I change that, it's complaining that the lemma is a tautology. So what's the right formulation here? Thanks!

I saw 4 lint errors for 4 different theorems. You may have confused them.
RingSeminorm.toFun_eq_coe
MulRingSeminorm.toFun_eq_coe
RingNorm.toFun_eq_coe
MulRingNorm.toFun_eq_coe

bors merge

authors: AlexKontorovich int-y1 semorrison


text:
feat(NumberTheory/Padics/PadicVal): factorial_choose'

[ ] depends on: #5803

This PR/issue depends on:

leanprover-community/mathlib4#5803
By Dependent Issues (🤖). Happy coding!


text:
fix: patch for std4#195 (more succ/pred lemmas for Nat)

[x] depends on: https://github.com/leanprover/std4/pull/195

bors merge

authors: fgdorais semorrison


text:
chore: fix bash syntax in lean-pr-testing-comments.sh

bors merge


text:
chore: bump Std to match leanprover/std4#448

Do you really mean:

leanprover/lean4#448

Or should the PR title say:

leanprover/std4#448

Oh, I guess this is https://github.com/leanprover/std4/pull/440. Please fix the PR description!

Oh, I guess this is leanprover/std4#440. Please fix the PR description!

There are so many Std bumps happening at the moment: this bumps forward over many PRs. I don't think it's valuable to separately list them in the PR title.

@semorrison Should the PR title mention 440 instead of 448?

Looks like 448 to me?

bors d+

bors merge

authors: PatrickMassot eric-wieser jcommelin semorrison


text:
feat(Algebra/AddConstMap): new file

I have more (AddConstEquivs, order, monotone maps) in a branch.

bors merge


text:
feat(Topology/Support): add tsupport_smul_{left,right}

rename Function.support_smul_subset_right to Function.support_const_smul_subset

From sphere-eversion; I'm just upstreaming it.

awaiting-review

Thank you for the comments; I have updated the code accordingly.
awaiting-review

Thank you for the review, everybody.
bors r+


text:
fix implicit arg wrapping

ref #105
I just allowed wrapping and added a line break after decl_name.

It looks nice on narrow screens too:

Very cool, thank you!

authors: hargoniX jorpic


text:
better unifier failure message

I wish when unifier fails (exceeding limit) Lean would tell me at which step it fails. When I have a long calc and the unifier fails without telling me where can make things rather hard to debug. I basically use an example outside of the lemma to test each step but that is tedious. You experts can probably tell by inspection about what is going on but I am not there yet :-(
example (a b : A) : same_lcoset N a⁻¹ b⁻¹ = (a⁻¹ ∘> N = b⁻¹ ∘> N) := rfl
lemma nsubg_same_lcoset_inv : ∀ a b, same_lcoset N a b → same_lcoset N a⁻¹ b⁻¹ :=
  take a b, assume Psame, calc
  a⁻¹ ∘> N = a⁻¹*b*b⁻¹ ∘> N : {eq.symm (mul_inv_cancel_right a⁻¹ b)}
  ... = a⁻¹*b ∘> b⁻¹ ∘> N : glcoset_compose
  ... = a⁻¹*b ∘> (N <∘ b⁻¹) : {nsubg_normal b⁻¹}
  ... = (a⁻¹*b ∘> N) <∘ b⁻¹ : lcoset_rcoset_assoc
  ... = (a⁻¹ ∘> b ∘> N) <∘ b⁻¹ : glcoset_compose
  ... = (a⁻¹ ∘> a ∘> N) <∘ b⁻¹ : {Psame}
  ... = N <∘ b⁻¹ : glcoset_inv
  ... = b⁻¹ ∘> N : {eq.symm (nsubg_normal b⁻¹)}

I will push the full thing to https://github.com/htzh/leanproved/blob/master/group_theory/subgroup.lean in case anyone wants to run it. I know I will figure it out eventually but it is my turn to make dinner tonight so this will have to wait. The main purpose of this issue is to ask for better messages. Debug tips welcome too.

I usually use the rewrite tactic. It is much faster.
The notation lhs = rhs : { p } in calc mode expands into lhs = rhs : eq.rec_on p (eq.refl lhs).
eq.rec_on is the eliminator for the equality. Eliminators usually generate non-trivial higher-order unification problems, and higher-order unification is a undecidable problem.
The notation lhs = rhs : { p } was introduced when we did not have the rewrite tactic.
Now, I usually use by rewrite .... It is faster and more predictable. As we improve the rewrite tactic, we will have fewer and fewer cases where full higher-order unification is needed.
Here is your lemma using rewrite.
lemma nsubg_same_lcoset_inv : ∀ a b, same_lcoset N a b → same_lcoset N a⁻¹ b⁻¹ :=
  take a b, assume Psame, calc
  a⁻¹ ∘> N = a⁻¹*b*b⁻¹ ∘> N    : by rewrite mul_inv_cancel_right
  ... = a⁻¹*b ∘> b⁻¹ ∘> N      : by rewrite glcoset_compose
  ... = a⁻¹*b ∘> (N <∘ b⁻¹)    : by rewrite nsubg_normal
  ... = (a⁻¹*b ∘> N) <∘ b⁻¹    : by rewrite lcoset_rcoset_assoc
  ... = (a⁻¹ ∘> b ∘> N) <∘ b⁻¹ : by rewrite glcoset_compose
  ... = (a⁻¹ ∘> a ∘> N) <∘ b⁻¹ : by rewrite Psame
  ... = N <∘ b⁻¹               : by rewrite glcoset_inv
  ... = b⁻¹ ∘> N               : by rewrite nsubg_normal

Eventually, we will have even better automation, and we will not even need to write the name of the theorem(s) being used.

Thanks for the by rewrite tip. Definitely looking forward to more automation!

Funny that the very next lemma I added failed the by rewrite but worked with {}:
lemma coset_product_left_inv (a : A) : ⟦a⁻¹⟧ cx ⟦a⟧ = ⟦1⟧ := calc
      ⟦a⁻¹*a⟧ = ⟦1⟧ : {mul.left_inv a}

I have come to appreciate that the unifier/unfolder are quite robust. For example the following is impressive:
-- under the wrap the tower of concepts collapse to a simple condition
example (a x : A) : (x ∈ a ∘> ker f) = (f (a⁻¹*x) = 1) := rfl
example [Pker : is_normal_subgroup (ker f)] (a : A) : ker_natural_map Hom ⟦a⟧ = f a := rfl

However what I got tripped up was that the error messages make it appear that there may be unification/unfolding problem at the "big" steps like above because the error messages tend to be displayed near the goals/premises, and I would waste time making the steps more explicit (and sometimes inadvertently introducing further mistakes). My errors actually tend to happen at "small" steps with missing explicit arguments or inability to infer implicit arguments. As errors propagate through the constraint solver they eventually show up as errors unrelated to where the actual mistakes are. I don't have a solution for this. This is just an observation. It would be useful to develop techniques to localize the errors, perhaps interactively with the user.
By "big" I mean when I rely on the unifier/unfolder to unify terms of drastically different looking forms (so identity is not obvious to the human user not familiar with the definitions/notations). By "small" I mean applying an explicit theorem or eq.subst to transform two forms that are obvious to the human user (and therefore failure is not normally suspected).

Sorry for not being more responsive, but I have been fixing many problems.
Let me try to explain what is going on in the following example
lemma coset_product_left_inv (a : A) : ⟦a⁻¹⟧ cx ⟦a⟧ = ⟦1⟧ := calc
      ⟦a⁻¹*a⟧ = ⟦1⟧ : {mul.left_inv a}

Internally, this calc is being processed as eq.subst (mul.left_inv a) rfl.
This is a "big-step" because the elaborator has to "evaluate" the term ⟦a⁻¹⟧ cx ⟦a⟧ a little bit and then apply the substitution mul.left_inv. When a calc has only one step, the terms provided in the calc expression do not affect the elaboration process that much. This can be improved. However, this is the way it is in the current version.
The rewrite tactic fails in this example because it tries to find the pattern x⁻¹ * x in the goal ⟦a⁻¹⟧ cx ⟦a⟧. Here are some tricks to help the rewrite tactic:
lemma coset_product_left_inv (a : A) : ⟦a⁻¹⟧ cx ⟦a⟧ = ⟦1⟧ :=
show ⟦a⁻¹*a⟧ = ⟦1⟧, by rewrite mul.left_inv

or
lemma coset_product_left_inv (a : A) : ⟦a⁻¹⟧ cx ⟦a⟧ = ⟦1⟧ :=
begin
    change ⟦a⁻¹*a⟧ = ⟦1⟧,
    rewrite mul.left_inv
end

In the first, I'm using show to change the goal. The lean type checker will check whether the goals
⟦a⁻¹⟧ cx ⟦a⟧ = ⟦1⟧ are indeed definitionally equal. In the second case, I'm using the change tactic to do the same thing.
You have many theorems that really on the fact that ⟦a⟧ cx ⟦b⟧ and ⟦a*b⟧ are definitionally equal.
In this kind of situation, it might be useful to define an auxiliary lemma
private lemma to_mul (a b : A) : ⟦a⟧ cx ⟦b⟧ = ⟦a*b⟧ := rfl

and use it as a rewrite rule.
lemma coset_product_left_inv (a : A) : ⟦a⁻¹⟧ cx ⟦a⟧ = ⟦1⟧ :=
by rewrite [to_mul, mul.left_inv]

It would be useful to develop techniques to localize the errors, perhaps interactively with the user.

Yes, this is really important.

By "small" I mean applying an explicit theorem or eq.subst to transform two forms that are obvious to the human user (and therefore failure is not normally suspected).

Sometimes a term may look small, but it is much bigger when we take the implicit arguments into account. For example, the term a⁻¹*x in
example (a x : A) : (x ∈ a ∘> ker f) = (f (a⁻¹*x) = 1) := rfl

is really
(@has_mul.mul A (@semigroup.to_has_mul A (@monoid.to_semigroup A (@group.to_monoid A s1)))
               (@has_inv.inv A (@group.to_has_inv A s1) a)
               x)

All these operations for converting structures (e.g., group.to_monoid) get in the way of the unifier.
In the future, I want to modify the unifier in such a way it "ignores" these "convertions".
One trick is to avoid full higher-order unification when processing these parts.

@htzh With the commit above, the following will also work:
lemma coset_product_left_inv (a : A) : ⟦a⁻¹⟧ cx ⟦a⟧ = ⟦1⟧ :=
calc ⟦a⁻¹*a⟧ = ⟦1⟧ : by rewrite mul.left_inv

@leodemoura thanks for the detailed responses. I hope I didn't distract you from more urgent matters. My intention was to document some pitfalls that I encountered as a new user while they are fresh on my mind. I totally understand that they may not have immediate solutions and I appreciate your explaining the nuances. Feel free to keep this on the back burner and only respond when you have time.

One trick is to avoid full higher-order unification when processing these parts.

I hope this does not remove the strength of the unifier. I definitely consider the following a really big step:
example (a x : A) : (x ∈ a ∘> ker f) = (f (a⁻¹*x) = 1) := rfl

which is why I consider it impressive. This is a great feature as it allows one to document human level intuition by allowing notations that are automatically taken care of. If one has to peel off the conceptual layers manually one would be discouraged from introducing them.
For the sake of documentation I will cite the example from the email thread to detail what I was referring to w.r.t. error messages:
-- this does not work
lemma nsubg_same_lcoset_product : ∀ a1 a2 b1 b2, (a1 ~ b1) → (a2 ~ b2) →  ((a1*a2) ~ (b1*b2)) :=
  take a1, take a2, take b1, take b2,
  assume Psame1 : same_lcoset N a1 b1, --a1 ∘> N = b1 ∘> N,
  assume Psame2 : same_lcoset N a2 b2, --a2 ∘> N = b2 ∘> N,
  assert Psame3 : same_lcoset N (a1*b1) (a2*b2), from calc
  a1*a2 ∘> N = a1 ∘> a2 ∘> N : glcoset_compose
  ... = a1 ∘> b2 ∘> N : by rewrite Psame2
  ... = a1 ∘> (N <∘ b2) : by rewrite (nsubg_normal N)
  ... = (a1 ∘> N) <∘ b2 : lcoset_rcoset_assoc
  ... = (b1 ∘> N) <∘ b2 : {Psame1}
  ... = N <∘ b1 <∘ b2 : {nsubg_normal N b1}
  ... = N <∘ (b1*b2) : grcoset_compose
  ... = (b1*b2) ∘> N : nsubg_normal N,
  Psame3

This was a working lemma. Then I added the section variable N from implicit to explicit so I need  to add it to many lemmas used here. I missed one or two. But the error indicator was under take a1 and the message made me think that the unifier was failing at the "big steps", so I changed Psame1,2 and added 3 to try to help the unifier. I also changed everything to by rewrite. I realized I was missing the N argument and fixed that. The error message stayed about the same throughout all the changes:
error: type mismatch at definition 'nsubg_same_lcoset_product', has type
  ∀ (A : Type) (s : group A) (N : set A),
    is_normal_subgroup N →
    (∀ (a1 a2 b1 b2 : A), same_lcoset N a1 b1 → same_lcoset N a2 b2 → same_lcoset N (a1 * b1) (a2 * b2))
but is expected to have type
  ∀ {A : Type} [s : group A] (N : set A) [is_nsubg : is_normal_subgroup N] (a1 a2 b1 b2 : A),
    same_lcoset N a1 b1 → same_lcoset N a2 b2 → same_lcoset N (a1 * a2) (b1 * b2)

There were variations in details in the message but overall it is almost the same giving me little clue about I just did. Eventually Jeremy noticed with a fresh pair of eyes (and maybe using debug options that I should learn) that my Psame3 was constructed wrongly. I actually introduced Psame3 to help the unifier! In the end it seems that the unifier actually handled the "big steps" very well and did not need any help:
-- this works
lemma nsubg_same_lcoset_product : ∀ a1 a2 b1 b2, (a1 ~ b1) → (a2 ~ b2) →  ((a1*a2) ~ (b1*b2)) :=
  take a1, take a2, take b1, take b2,
  assume Psame1 : a1 ∘> N = b1 ∘> N,
  assume Psame2 : a2 ∘> N = b2 ∘> N,
  calc
  a1*a2 ∘> N = a1 ∘> a2 ∘> N : glcoset_compose
  ... = a1 ∘> b2 ∘> N :    by rewrite Psame2
  ... = a1 ∘> (N <∘ b2) :  by rewrite (nsubg_normal N)
  ... = (a1 ∘> N) <∘ b2 :  by rewrite lcoset_rcoset_assoc
  ... = (b1 ∘> N) <∘ b2 :  by rewrite Psame1
  ... = N <∘ b1 <∘ b2 :    by rewrite (nsubg_normal N)
  ... = N <∘ (b1*b2) :     by rewrite grcoset_compose
  ... = (b1*b2) ∘> N :     by rewrite (nsubg_normal N)

So my take away is to trust the big steps of the unifier more. But the "small steps" (you are right they are not small once all the implicit inferences are taken into account) can introduce errors that are hard to find because they look the same to the human eye and unless a location is provided by the error message it is hard to know where to start.
I don't expect solutions. As I said I would like to document this case while it is fresh on my mind. Once I get more experienced hopefully it will happen less frequently but then I won't be able to give the feedback from a new user's perspective.

You have many theorems that really on the fact that ⟦a⟧ cx ⟦b⟧ and ⟦a*b⟧ are definitionally equal.
In this kind of situation, it might be useful to define an auxiliary lemma

I find inference by definitional equality easier to follow mentally. The nice thing about it is I can keep many equalities in my head as they are intuitive to me. If I had to search for an auxiliary lemma to use them that is certainly less attractive. I understand it would be a good thing to try if a difficulty is encountered but I would appreciate Lean handling most of these.

Just for the record: I didn't use any special tricks to debug the lemma. I just commented most of it out, put a "sorry" at the end, and then added pieces back one bit at a time. Then it was just a matter of reading the error message carefully.
The elaborator is a really incredible piece of code, but we have to be careful not to overuse it. It is really designed to support the parser and let us write expressions in a way that is compact and natural. If we overdo it, things become brittle and sluggish. In the long run, we will do better using special purpose automation (like a term simplifier) to fill in reasoning steps.

@avigad Thanks for going through the trouble debugging that issue. I would have copy-and-pasted each step to an example to see if it works but I was tired and the end goal was near so I was in a bit of a hurry.

but we have to be careful not to overuse it. It is really designed to support the parser and let us write expressions in a way that is compact and natural.

Yes I very much appreciate the ability to write compact and natural expressions. But what constitutes overuse? Are we not supposed to let the unifier undo the expressions? If I have to manually undo the compact representation in each proof that would discourage me from introducing them in the first place.

I don't have a precise criterion. One heuristic is that the elaborator is supposed to be an extension of the parser; it is supposed to do things like disambiguate notation and fill in information that is straightforwardly implicit in an expression. Because it has to manage so many things, including higher-order unification and unfolding computation, we should not expect too much from it.
That said, there is no fine line between "proving that something is a homomorphism" and "noticing that something is a homomorphism," i.e. the boundary between parsing an expression and proving a theorem is not sharp.
So really the problem is empirical. In your given domain, if the things you want to leave implicit are inferred smoothly and everything works fine, there is no problem. If not, you have to either tinker with the encodings or supply more information. There are usually multiple ways to set up definitions and notation, and figuring out which ones will work best is often the most important part of the project.

authors: avigad htzh leodemoura

repo: leanprover/lean


text:
Lean.FromJson does not use default value when parsing structures

Prerequisites

[x] Put an X between the brackets on this line if you have done all of the following:

Checked that your issue isn't already filed.
Reduced the issue to a self-contained, reproducible test case.

Description
When a structure is deriving Lean.FromJson and has default values for its fields, parsing a json with those values missing will lead to an error.
Steps to Reproduce
Run the snippet with lean --run example.lean
import Lean.Data.Json

structure Small where
  id: Int := 0
  deriving Lean.ToJson
structure Big where
  id: Int := 0
  name: String := "name"
  deriving Lean.FromJson

def main: IO Unit := do
  let small: Small := { id := 123 }
  let src := Lean.toJson small
  IO.println src
  let obj: Except String Big := Lean.fromJson? src
  match obj with
  | .error error => IO.println s!"Cannot parse Json! {error}"
  | .ok obj => IO.println s!"Can parse json with name {obj.name}"

Expected behavior: Can parse json with name name
Actual behavior: Cannot parse Json! Big.name: String expected
Reproduces how often: Always
Versions

Lean: Lean (version 4.0.0-nightly-2023-05-06, commit 445fd417be4d, Release)
OS: 6.2.11-arch1-1

Additional Information
The last update to FromToJson.lean was 8 months ago so the version should be recent enough

I believe the JSON implementation was designed to be round-tripping, which means optional fields must be Options. In general, declarations in the Lean namespace are designed only for the purposes of Lean itself.

As far as using optional fields, keep in mind also that there is special treatment of fields postfixed with ?:
structure Test1 where
  a : Nat
  b : Option Nat := none
  c? : Option Nat := none
  deriving Lean.FromJson, Lean.ToJson

/- {"b": null, "a": 37} -/
#eval Lean.toJson { a := 37 : Test1 }

authors: Kha Vtec234 vleni


text:
Assessment items missing after install

Branch: 0.14.x
Platform: Ubuntu
Installer: Deb
Expected Behaviour: Assessment items should be available after installing on Debian.
Current Behaviour: All assessment items appear to be missing after installing on Debian.

Confirmed on:
Branch: 0.14.x
Platform: Ubuntu
Installer: Launchpad PPA
On my first try I let the installer download the assessment.zip (just being curious how long it would take), and after 40 minutes computer froze, and I had to restart. On second try I downloaded the zip file and pointed the installer to it. Unpacking was successful, and server started, but I get the same exact view as on @rtibbles screenshot above.

Yes, this would have appeared both in your instructions for the bug bash and in the non-merged, non-built docs PR :P
https://github.com/benjaoming/ka-lite/blob/raspberry_pi_finalizations/sphinx-docs/installguide/install_all.rst#L39

I'm not sure I understand, @benjaoming, the second time I did run kalite manage setup and unpacked the assessment.zip, why are there no exercises to be seen?

@radinamatic you need to kalite restart maybe?

Restarting gave me tota11y blank page... After a while I tried kalite stop and got:
didi@didihp:~$ kalite stop
Already stopped. Status was: KA Lite server configuration error

Now it gives blank page at kalite start

didi@didihp:~$ kalite start
Running 'kalite start' as daemon (system service)

Stand by while the server loads its data...

INFO:kalite:Invalidating the web cache.
INFO:kalite:Running videoscan.
INFO:kalite:Preloading exercise data for language en.
INFO:kalite:Preloading content data for language en.
INFO:kalite:Preloading topic tree data for language en.
INFO:kalite:Preloading exercise data for language es.
INFO:kalite:Preloading content data for language es.
INFO:kalite:Preloading topic tree data for language es.
INFO:kalite:Copying static media...
WARNING:py.warnings:/usr/share/kalite/python-packages/tastypie/resources.py:328: UserWarning: 'override_urls' is a deprecated method & will be removed by v1.0.0. Please rename your method to ``prepend_urls``.
  warnings.warn("'override_urls' is a deprecated method & will be removed by v1.0.0. Please rename your method to ``prepend_urls``.")

To access KA Lite from another connected computer, try the following address(es):
	http://192.168.1.39:8008/
To access KA Lite from this machine, try the following address:
	http://127.0.0.1:8008/
Going to daemon mode, logging to /home/didi/.kalite/server.log
didi@didihp:~$

After updating to 0.14.alpha2:
didi@didihp:~$ kalite manage setup

  _   __  ___    _     _ _
 | | / / / _ \  | |   (_) |
 | |/ / / /_\ \ | |    _| |_ ___
 |    \ |  _  | | |   | | __/ _ \
 | |\  \| | | | | |___| | ||  __/
 \_| \_/\_| |_/ \_____/_|\__\___|

http://kalite.learningequality.org

         version 0.14.alpha2

WARNING:root:It's recommended that you install Python version 2.7.9. Your version is: sys.version_info(major=2, minor=7, micro=8, releaselevel='final', serial=0)

--------------------------------------------------------------------------------
This script will configure the database and prepare it for use.
--------------------------------------------------------------------------------
Press [enter] to continue...
-------------------------------------------------------------------
WARNING: Database file already exists!
-------------------------------------------------------------------
Keep database file and upgrade to KA Lite version 0.14.alpha2? (yes or no) no
Remove database file '/home/didi/.kalite/database/default.sqlite' now? (yes or no) yes
WARNING: all data will be lost!  Are you sure? (yes or no) yes
OK.  We will run a clean install;
the database file will be moved to a deletable location.
Please choose a username and password for the admin account on this device.
	You must remember this login information, as you will need
	to enter it to administer this installation of KA Lite.
Username (leave blank to use 'didi'): admin
Password:
Password (again):
Please enter a hostname for this server (or, press Enter to use 'didihp'):
Please enter a one-line description for this server (or, press Enter to leave blank):
WARNING:py.warnings:/usr/lib/python2.7/dist-packages/kalite/distributed/management/commands/setup.py:66: UserWarning: /usr/share/kalite/dist-packages is not writable so cannot delete stale *pyc files
  "{0} is not writable so cannot delete stale *pyc files".format(path))

WARNING:py.warnings:/usr/lib/python2.7/dist-packages/kalite/distributed/management/commands/setup.py:66: UserWarning: /usr/share/kalite/python-packages is not writable so cannot delete stale *pyc files
  "{0} is not writable so cannot delete stale *pyc files".format(path))

(Re)moving database file to temp location, starting clean install. Recovery location: /tmp/tmp9824E8
Syncing...
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_groups
Creating table auth_user_user_permissions
Creating table auth_user
Creating table django_session
Creating table django_admin_log
Creating table django_content_type
Creating table south_migrationhistory
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)

Synced:
 > django.contrib.auth
 > django.contrib.sessions
 > django.contrib.messages
 > django.contrib.admin
 > django.contrib.staticfiles
 > django.contrib.contenttypes
 > compressor
 > django_js_reverse
 > south
 > kalite.coachreports
 > kalite.distributed
 > kalite.topic_tools
 > kalite.contentload
 > kalite.dynamic_assets
 > kalite.control_panel

Not synced (use migrations):
 - securesync
 - fle_utils.config
 - fle_utils.chronograph
 - kalite.main
 - kalite.playlist
 - kalite.updates
 - kalite.facility
 - kalite.student_testing
 - kalite.store
 - kalite.i18n
 - tastypie
(use ./manage.py migrate to migrate these)
Running migrations for securesync:
 - Migrating forwards to 0024_auto__del_unique_facilityuser_username_facility.
 > securesync:0001_initial
 > securesync:0002_auto__add_field_facilityuser_is_teacher
 > securesync:0003_auto__add_facilitygroup__add_field_facilityuser_group
 > securesync:0004_auto__add_field_facility_zoom
 > securesync:0005_auto__chg_field_device_public_key
 > securesync:0006_auto__del_registereddevicepublickey
 > securesync:0007_auto__add_registereddevicepublickey
 > securesync:0008_auto__add_field_syncsession_client_version__add_field_syncsession_clie
 > securesync:0009_auto__chg_field_syncsession_client_os__chg_field_syncsession_client_ve
 > securesync:0010_auto__add_syncedlog
 > securesync:0011_auto__add_field_facilityuser_zone_fallback__add_field_devicezone_zone_
 > securesync:0012_auto__add_field_facilityuser_deleted__add_field_devicezone_deleted__ad
 > securesync:0013_auto__add_field_facility_contact_name__add_field_facility_contact_phon
 > securesync:0014_auto__chg_field_facilityuser_last_name__chg_field_syncedlog_category
 > securesync:0015_auto__add_importpurgatory
 > securesync:0016_auto__add_field_importpurgatory_model_count
 > securesync:0017_auto__add_field_devicezone_revoked__add_field_devicezone_max_counter
 > securesync:0018_auto__add_field_device_version__add_field_syncsession_errors
 > securesync:0019_auto__add_cachedpassword
 > securesync:0019_auto__add_field_registereddevicepublickey_created_timestamp__add_field
 > securesync:0019_auto__add_zoneinvitation
 > securesync:0020_auto__add_field_devicemetadata_is_demo_device
 > securesync:0021_auto__chg_field_facilityuser_signature__chg_field_devicezone_signature
 > securesync:0021_merge_models
 > securesync:0022_auto__chg_field_facilityuser_counter__chg_field_devicezone_counter__ch
 > securesync:0023_auto__add_field_facilityuser_default_language
 > securesync:0024_auto__add_field_facilitygroup_description
 > securesync:0024_auto__del_unique_facilityuser_username_facility
 - Loading initial data for securesync.
Installed 0 object(s) from 0 fixture(s)
Running migrations for config:
 - Migrating forwards to 0002_auto__add_settings.
 > config:0001_initial
 > config:0002_auto__add_settings
 - Loading initial data for config.
Installed 0 object(s) from 0 fixture(s)
Running migrations for chronograph:
 - Migrating forwards to 0001_initial.
 > chronograph:0001_initial
 - Loading initial data for chronograph.
Installed 0 object(s) from 0 fixture(s)
Running migrations for main:
 - Migrating forwards to 0038_auto__add_field_videolog_latest_activity_timestamp__add_field_contentl.
 > main:0001_initial
 > main:0002_auto__add_videofile
 > main:0003_auto__add_field_exerciselog_points
 > main:0004_auto__add_field_videofile_priority
 > main:0005_auto__add_field_exerciselog_struggling__add_field_exerciselog_attempts
 > main:0006_auto__add_settings
 > main:0007_auto__del_settings
 > main:0008_auto__add_field_exerciselog_completion_timestamp__add_field_exerciselo
 > main:0009_auto__add_field_videolog_completion_timestamp__add_field_videolog_comp
 > main:0010_auto__add_field_videofile_flagged_for_subtitle_download__add_field_vid
 > main:0011_auto__add_field_videofile_cancel_download
 > main:0012_auto__add_field_videolog_zone_fallback__add_field_exerciselog_zone_fal
 > main:0013_auto__add_field_videolog_deleted__add_field_exerciselog_deleted
 > main:0014_auto__chg_field_videolog_youtube_id__chg_field_videofile_youtube_id__c
 > main:0015_auto__add_languagepack
 > main:0016_auto__add_userlog__add_userlogsummary
 > main:0017_auto__add_field_userlogsummary_total_logins__chg_field_userlogsummary_
 > main:0018_auto__del_field_userlogsummary_total_logins__add_field_userlogsummary_
 > main:0019_auto__add_field_videolog_language__add_field_userlog_language__add_fie
 > main:0019_auto__chg_field_videolog_counter__chg_field_userlogsummary_counter__ch
 > main:0019_auto__chg_field_videolog_signature__chg_field_userlogsummary_signature
 > main:0020_auto__add_field_videolog_language__chg_field_videolog_counter__add_fie
 > main:0021_auto__chg_field_languagepack_code
 > main:0022_auto__add_field_languagepack_subtitle_count
 > main:0023_auto__del_field_videofile_subtitle_download_in_progress__del_field_vid
 > main:0024_auto__del_field_languagepack_crowdin_version__add_field_languagepack_l
 > main:0025_auto__add_field_userlogsummary_last_activity_datetime
 > main:0026_auto__del_videofile__del_languagepack
 > main:0027_auto__add_field_videolog_video_id
 > main:0028_set_video_id
 > main:0029_set_video_id_for_realz
 - Migration 'main:0029_set_video_id_for_realz' is marked for no-dry-run.
 > main:0030_auto__add_attemptlog
 > main:0031_auto__del_field_attemptlog_exercise_version__del_field_attemptlog_poin
 > main:0032_auto__del_field_attemptlog_random_seed__add_field_attemptlog_seed
 > main:0033_auto__add_contentlog
 > main:0033_auto__add_index_attemptlog_user_exercise_id_context_type
 > main:0034_auto__add_field_contentlog_start_timestamp__add_field_contentlog_progr
 > main:0035_auto__chg_field_contentlog_progress
 > main:0036_auto__del_field_attemptlog_response_count__add_field_attemptlog_assess
 > main:0038_auto__add_field_videolog_latest_activity_timestamp__add_field_contentl
 - Loading initial data for main.
Installed 0 object(s) from 0 fixture(s)
Running migrations for playlist:
 - Migrating forwards to 0005_auto__add_field_quizlog_total_number.
 > playlist:0001_initial
 > playlist:0002_auto
 > playlist:0003_auto__chg_field_playlisttogroupmapping_playlist
 > playlist:0004_auto__add_quizlog
 > playlist:0005_auto__add_field_quizlog_total_number
 - Loading initial data for playlist.
Installed 0 object(s) from 0 fixture(s)
Running migrations for updates:
 - Migrating forwards to 0007_auto__add_field_videofile_language.
 > updates:0001_initial
 > updates:0002_auto__add_field_updateprogresslog_cancel_requested
 > updates:0003_auto__chg_field_updateprogresslog_total_stages
 > updates:0004_auto__add_field_updateprogresslog_current_stage
 > updates:0005_auto__add_videofile
 > updates:0006_auto__add_field_updateprogresslog_stage_status
 > updates:0007_auto__add_field_videofile_language
 - Loading initial data for updates.
Installed 0 object(s) from 0 fixture(s)
Running migrations for facility:
 - Migrating forwards to 0001_initial.
 > facility:0001_initial
 - Loading initial data for facility.
Installed 0 object(s) from 0 fixture(s)
Running migrations for student_testing:
 - Migrating forwards to 0005_auto__add_field_testlog_total_number.
 > student_testing:0001_initial
 > student_testing:0002_auto__del_field_testlog_test_sequence__add_field_testlog_started
 > student_testing:0003_auto__del_testlog
 > student_testing:0004_auto__add_testlog
 > student_testing:0005_auto__add_field_testlog_total_number
 - Loading initial data for student_testing.
Installed 0 object(s) from 0 fixture(s)
Running migrations for store:
 - Migrating forwards to 0001_initial.
 > store:0001_initial
 - Loading initial data for store.
Installed 0 object(s) from 0 fixture(s)
Running migrations for i18n:
 - Migrating forwards to 0003_auto__del_languagepack.
 > i18n:0001_initial
 > i18n:0002_add_english_languagepack
 - Migration 'i18n:0002_add_english_languagepack' is marked for no-dry-run.
 > i18n:0003_auto__del_languagepack
 - Loading initial data for i18n.
Installed 0 object(s) from 0 fixture(s)
Running migrations for tastypie:
 - Migrating forwards to 0002_add_apikey_index.
 > tastypie:0001_initial
 > tastypie:0002_add_apikey_index
 - Loading initial data for tastypie.
Installed 0 object(s) from 0 fixture(s)
Syncing...
Creating tables ...
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)

Synced:
 > django.contrib.auth
 > django.contrib.sessions
 > django.contrib.messages
 > django.contrib.admin
 > django.contrib.staticfiles
 > django.contrib.contenttypes
 > compressor
 > django_js_reverse
 > south
 > kalite.coachreports
 > kalite.distributed
 > kalite.topic_tools
 > kalite.contentload
 > kalite.dynamic_assets
 > kalite.control_panel

Not synced (use migrations):
 - securesync
 - fle_utils.config
 - fle_utils.chronograph
 - kalite.main
 - kalite.playlist
 - kalite.updates
 - kalite.facility
 - kalite.student_testing
 - kalite.store
 - kalite.i18n
 - tastypie
(use ./manage.py migrate to migrate these)

Starting in version 0.13, you will need an assessment items package in order to access many of the available exercises.
If you have an internet connection, you can download the needed package. Warning: this may take a long time!
If you have already downloaded the assessment items package, you can specify the file in the next step.
Otherwise, we will download it from https://learningequality.org/downloads/ka-lite/0.14/content/assessment.zip.
Do you wish to download the assessment items package now? (yes or no) no
Have you already downloaded the assessment items package? (yes or no) yes
Please enter the filename of the assessment items package you have downloaded (): /home/didi/Desktop/assessment.zip
Generating 2048-bit RSA encryption key (may take a few minutes; please wait)...
Done!
Device 'didihp' has been successfully initialized.
Superuser created successfully.
Scanning for video files in the content directory (/home/didi/.kalite/content)
Created 4 VideoFile models (and marked them as complete, since the files exist)
CONGRATULATIONS! You've finished setting up the KA Lite server software.
You can now start KA Lite with the following command:

	kalite start

didi@didihp:~$ kalite start
Running 'kalite start' as daemon (system service)

Stand by while the server loads its data...

INFO:kalite:Invalidating the web cache.
INFO:kalite:Running videoscan.
INFO:kalite:Preloading exercise data for language en.
INFO:kalite:Preloading content data for language en.
INFO:kalite:Preloading topic tree data for language en.
INFO:kalite:Preloading exercise data for language es.
INFO:kalite:Preloading content data for language es.
INFO:kalite:Preloading topic tree data for language es.
INFO:kalite:Copying static media...
WARNING:py.warnings:/usr/share/kalite/python-packages/tastypie/resources.py:328: UserWarning: 'override_urls' is a deprecated method & will be removed by v1.0.0. Please rename your method to ``prepend_urls``.
  warnings.warn("'override_urls' is a deprecated method & will be removed by v1.0.0. Please rename your method to ``prepend_urls``.")

To access KA Lite from another connected computer, try the following address(es):
	http://192.168.1.39:8008/
To access KA Lite from this machine, try the following address:
	http://127.0.0.1:8008/
Going to daemon mode, logging to /home/didi/.kalite/server.log

Final result:
Error

Sorry, but there was an error while trying to load the page.
(DatabaseError: database is locked)

Reinstalled today with freshly downloaded assessment.zip and the alpha2 deb file: no errors on startup and all the assessment items seem present... :+1:

Stale.

authors: aronasorman benjaoming radinamatic rtibbles

repo: learningequality/installers


text:
Can't see the dots when screen has navigation

import React from 'react';
import {
View,
StyleSheet,
Text,
Dimensions,
Image,
} from 'react-native';
import Swiper from 'react-native-swiper';
const { width } = Dimensions.get('window');
export default class WeatherScreen extends React.Component {
static navigationOptions = {
title: 'Weather',
};
constructor(props) {
    super(props);
}

render() {
    return <Swiper style={styles.wrapper} showsButtons>
        <View style={styles.slide1}>
            <Text style={styles.text}>Hello Swiper</Text>
        </View>
        <View style={styles.slide2}>
            <Text style={styles.text}>Beautiful</Text>
        </View>
        <View style={styles.slide3}>
            <Text style={styles.text}>And simple</Text>
        </View>
    </Swiper>
}

}
var styles = {
wrapper: {
},
slide1: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#9DD6EB'
},
slide2: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#97CAE5'
},
slide3: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#92BBD9'
},
text: {
color: '#fff',
fontSize: 30,
fontWeight: 'bold'
}
}

I found out the dots are drawn below of visible area on the screen.
I think you need to calculate position of them again.

Similar problem.
Is RN Swiper incompatible with React Navigation TabNavigator? When I use Swiper inside one of TabNavigation screen, slide's content become invisible (dots and right-left buttons is still visible).

You have to send height as a property. not as a style property

repo: leecade/react-native-swiper


text:
Server disconnect

It would be nice to have a method to call when the socket has been closed; or the server shuts down.
Maybe just invent a special value for it?
e.g. self:handle(irce.DISCONNECT)

As in, for the host application to call? You can already just implement this in the application (eg. call irc:handle("DISCONNECT") when the socket is closed). Or am I misunderstanding?

As in, for the host application to call?

Yes.

You can already just implement this in the application (eg. call irc:handle("DISCONNECT") when the socket is closed)

Yes, that was my suggestion (though to use a special unique value instead of the string "DISCONNECT", which may come from a server).

Why this might be needed:

Async processes/timers may need to be cancelled
Various plugins may need to clean up (e.g. if you have a partial MOTD).
Easy way to do reconnects

Haven't tested this much, but it should work alright. If it doesn't, let me know.

authors: daurnimator legospacy

repo: legospacy/lua-irc-engine


text:
goo.gl URL is broken

Because this project doesn't seem to allow issues I created this instead of a ticket.

Because this project doesn't seem to allow issues I created this instead of a ticket.

Bumping this as well.  Please reference the original URL in the README. Thanks!

apt-get install ffmpeg

apt-get install ffmpeg

That's the linux OMX build for Raspberry Pi?  Seems too easy.  ;-)

I figured this out after a while too. Would still be nice to update the readme to prevent confusion when other people find this.

goo.gl URL is broken, replacing that command by:
sudo wget https://github.com/legotheboss/YouTube-files/raw/master/ffmpeg_3.1.4-1_armhf.deb -O ffmpeg.deb
worked for me

authors: 343max PabloGux jameswberry justinshuls


text:
updates to example data files that should work with the theme updates

I haven't tested anything!

Ummmm it looks like jekyll-starter-legumeinfo does not have the jekyll-theme-legumeinfo from GitHub as its theme - it's a local theme like the LIS site used to be. You want me to wrangle that? I didn't notice since I always test against my dev jekyll-legumeinfo instance rather than the starter site (which I've never touched, TBH).

Sounds like a question for @alancleary I don't think this would be anything I had touched (and I'm paying half-attention to this at the moment while on an unrelated call...)

Ummmm it looks like jekyll-starter-legumeinfo does not have the jekyll-theme-legumeinfo from GitHub as its theme - it's a local theme like the LIS site used to be. You want me to wrangle that? I didn't notice since I always test against my dev jekyll-legumeinfo instance rather than the starter site (which I've never touched, TBH).

What do you mean? The theme is a submodule of the starter repo and is specified in _config.yml.

Hrm you're right, I musta had an old/botched copy. Never mind, now testing. :)

This seems to be working with the bug fix introduced in theme PR #45. I'll officially review this PR once that one is merged.

Are we deviating for the starter site from the kind of data that is being generated on the jekyll-legumeinfo site? Because that works fine, or at least seems to work fine, other than that warning that I mentioned today, which seems to be new. I ran the data-generating script today on the dev site and it seems to be fine.

No, I think this is my bad. I seem to have a bunch of uncommitted changes to the _data files that are probably the same ones I had originally added under the theme. Stand by.

OK hopefull e8bebc1 did the needful to make everything work. Let me know if not.

Well I did a clean clone of the starter site along with the theme; switched the starter site to example_data_update and switched the theme to goodbye_data. Got this, not too unexpected, I think we need that file_exists update merged in.
       Jekyll Feed: Generating feed for posts
  Liquid Exception: Liquid syntax error (line 39): Unknown tag 'file_exists' in taxa/arachis/index.html
                    ------------------------------------------------
      Jekyll 4.2.0   Please append `--trace` to the `serve` command
                     for any additional information or backtrace.
                    ------------------------------------------------
/usr/share/gems/gems/liquid-4.0.3/lib/liquid/block.rb:38:in `unknown_tag': Liquid syntax error (line 39): Unknown tag 'file_exists' (Liquid::SyntaxError)

I think we need that file_exists update merged in.

Correct. If you checkout the taxon-file-exists-fix branch as the starter's theme things appear to be working as expected.

That includes the goodbye-data update, though? We've got dueling branches here, I'm testing the goodbye-data branch on the theme. Anyway if you like it, approve it.

That includes the goodbye-data update, though? We've got dueling branches here, I'm testing the goodbye-data branch on the theme. Anyway if you like it, approve it.

goodbye_data was already merged in the theme and is included in the taxon-file-exists-fix PR. I was waiting for you to confirm that the most recent commit to taxon-file-exists-fix works for you before merging.

Okay, I got it now. starter:example_data_update against theme:taxon-file-exists-fix works fine.

Thanks for verifying it works; PR merged!

authors: adf-ncgr alancleary sammyjava

repo: legumeinfo/jekyll-starter-legumeinfo


text:
效果很好，也方便，可惜效率太低了

大佬啥时候能升级一下啊，这CPU占用连20%都不到

是呀，效率有点低了，考虑到可以后台运行的原因，可以搞一个开关高速低速的。。不过支持！希望作者能做的更好！还有也就是整个文件夹的压缩，我觉得可能会有点工程量。

macOS v4.1.0 支持多线程压缩🎉

authors: Yuanlailai leibnizli yoyoyosoro

repo: leibnizli/hummingbird


text:
Feedback from ZmrGitHub

xx

？

authors: ZmrGitHub leichunfeng

repo: leichunfeng/MVVMReactiveCocoa


text:
Review RFIDDriver & RFIDKit

branch: https://github.com/leka/LekaOS/tree/benjamin/feature/clean_driver_RFID
PR: #272 #274
Closed by #915

closed by 556f8ab

repo: leka/LekaOS


text:
New MrBeast Images and Compressed Images

Hello! I added some more images from here https://github.com/MagicJinn/MrBeastify-Youtube
and then I compressed all of the other images to reduce the deb file size!

did u not want me to add this?

authors: arichorn leminlimez

repo: leminlimez/MrBeastify


text:
Added notification frequency setting in YAML and logic to use it.

Resolves: #28
Using notifier_frequency: 720 in blackbox.yaml we set how many notifications we want to see inside one day.
Logic is simple - keep last time of notification and check if we can send. Otherwise increase integer value of attempts to show it later in logs.
First start, sending:
blackbox    | 06:56:11 Recreating json with period: 28800

Frequency in YAML changed, sending:
blackbox    | 07:05:00 Found json, reading it...
blackbox    | 07:05:00 Frequency changed. Recreating json with period: 120

Unsuccessful attempt to send:
blackbox    | 07:06:51 Found json, reading it...
blackbox    | 07:06:51 Can't send notification, 111 < 120.

Successful attempt to send after period:
blackbox    | 07:07:07 Found json, reading it...
blackbox    | 07:07:07 Recreating json with period: 120
blackbox    | 07:07:07 By the way there were 6 successful backups.

I need confirmation that logic is okay and location of JSON is appropriate and then I will update README file.

I don't think I like this approach, it just feels wrong to me to specify it as a number of notifications per day. I don't want to force the users to do maths in order to figure out how to configure this. It just seems like bad user experience.
I envisioned this feature more like a cooldown for success notifications that the user would configure. The user sets the cooldown to one hour, and every subsequent success notification will happen no sooner than 1 hour after the previous one.
I think it's more intuitive to think of this in terms of time, rather than number of notifications in a day.

I've changed logic to cooldown as you asked.
Cooldown
By default, blackbox will send all notification at every backup attempt.
You can specify a cooldown period in blackbox.yaml during which all notifications will be muted.
This option will not mute failed backups.
Example usage
cooldown: 120s

cooldown: 3 hours

cooldown: 2 days 4 hours

cooldown: 4h 32M 16s

authors: lemonsaurus matacoder

repo: lemonsaurus/blackbox


text:
Can't see the Shell or logs in Pods menu

Describe the bug
From the Pods's ... menu, there is no options for Shell or Logs.
To Reproduce
Steps to reproduce the behavior:

Go to Pods dots menu '...'
There is no options for Attach Pod, Shell and Logs

Tried a couple of times of the following but still have the same problem
a. uninstall the Lens
b. remove the %appdata%/Roaming/Lens, %appdata%\Local\Program\Lens and C:\Users<user>.k8slens
c. re-install Lens
Expected behavior
The Attach Pod, Shell and Logs should be available
Screenshots

Environment (please complete the following information):

Lens Version:

OS: [e.g. OSX] Windows 11

Installation method (e.g. snap or AppImage in Linux): "Downloads\Lens Setup 6.0.1-latest.20220810.2.exe"

Additional context
I can confirm there is no error in loading the lens-pods-menu extension

similar issue is happening on MAC OS - Monterey

I'm also having this issue in Windows 11.

@CarlosDomingues If you run Lens from the command line, do you see any errors?

@Nokel81 no errors

Can you open up the dev tools and filter the console for [EXTENSION]: enabled? How many entries do you see? Does it include lens-pod-menu?

It does not include lens-pod-menu. Here's the entire list:

After the latest update of LENS (Mac OS Monterey) it's working for me.
Thank you
~Sachin
On Tue, 4 Oct 2022 at 03:46, Carlos Domingues @.***>
wrote:

It does not include lens-pod-menu. Here's the entire list:
[image: lens2]
https://user-images.githubusercontent.com/11181378/193695546-f1269a3a-3cb9-4ac5-b621-b0167460e359.png
—
Reply to this email directly, view it on GitHub
https://github.com/lensapp/lens/issues/6097#issuecomment-1266124848, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABLETGW5ZJDLAZASMEB62Q3WBNLKNANCNFSM57QEIJMA
.
You are receiving this because you commented.Message ID:
@.***>

@CarlosDomingues Interesting, you shouldn't have both 6.0.1 and 6.0.2 versions... If you clear out %AppData%/Lens/node_modules after quitting Lens from the tray menu and then restarting, does that fix the issue?

@Nokel81 I reinstalled Lens earlier and the issue is gone.

We are working to make sure this won't happen in the future. But thanks for reporting back anyway.

authors: CarlosDomingues Nokel81 hk-toucha skakkar

repo: lensapp/lens


text:
Can't exec on pods

Describe the bug
Lens no longer connects to a shell on pods on my setup. Maybe related to the proxy.
We have to connect to our clusters via a jumpbox so I open a socks proxy with ssh then use tinyproxy to act as a http -> socks proxy middle man. This works fine for the normal kubectl on my system with the HTTP_PROXY var set for the tinypoxy port but doesn't seem to work in Lens. If unset KUBECONFIG in Lens it work again. I'm on 3.6.4. I see there was a note in prior releases about the proxy not working in some cases but it wasn't in this one so I'm guessing it was resolved.
To Reproduce
Steps to reproduce the behavior:

Use a ssh jumpbox to reach k8s via a socks proxy ssh -D 12345 <jumpbox>
Set up a proxy server to act as HTTP to socks proxy (relevant tinyproxy config below)

Port 8118
Listen 127.0.0.1
upstream socks5 127.0.0.1:12345

Set up shell rc file to use proxy export HTTP_PROXY=http://localhost:8118
Open Lens and navigate to cluster with HTTP Proxy set in config http://localhost:8118
Look at pods, see them as expected.
Navigate to pod and click icon for Pod shell
Wait for timeout error: unable to upgrade connection: error dialing backend: dial tcp <ip>: i/o timeout
Copy and paste command into personal shell and see it work.

Expected behavior
Connect to pod shell
Screenshots
If applicable, add screenshots to help explain your problem.
Environment (please complete the following information):

Lens Version: 3.6.4
OS: OSX
brew cask installed but updated from within app
In case it helps, tinyproxy also comes from brew tinyproxy: stable 1.10.0 (bottled)

Logs:
When you run the application executable from command line you will see some logging output. Please paste them here:
❯ exec kubectl exec -i -t -n <namespace> <pod> -c <container name> "--" sh -c "clear; (bash || ash || sh)"
error: unable to upgrade connection: error dialing backend: dial tcp <IP>: i/o timeout
Terminal will auto-close in 15 seconds ...

Kubeconfig:
Quite often the problems are caused by malformed kubeconfig which the application tries to load. Please share your kubeconfig, remember to remove any secret and sensitive information.
apiVersion: v1
kind: Config
preferences: {}
current-context: <redacted>
clusters:
  - name: <redacted>
    cluster:
      server: 'http://127.0.0.1:52181/<UUID>'
contexts:
  - name: <redacted>
    context:
      cluster: <redacted>
      user: proxy
users:
  - name: proxy
    user: {}

Additional context
Add any other context about the problem here.

I feel like I should mention that I noticed it not working before this release but I don't know what release it started on. I didn't get around to digging into the problem until now. Happy to test some things though.

Please could you test with 3.6.5-rc.1? There's one fix that is targeting especially to fix kubectl exec requests, but your issue looks a bit different, so not sure is it fixing also this.

No dice. I grabbed a tcpdump so I'll review and see if I can figure out what's going on.

Speaking of, I don't know of a way to dump master secret from kubectl or otherwise get an unencrypted traffic log from it. If you know off hand that would save me some heart ache.

This is most likely a bug with 3.6.x series (including 3.6.5-rc.1). Lens should not pass HTTP_PROXY envs to Lens terminal because all traffic needs to go through Lens itself.

3.6.5 still doesn't work for me. Should I open another? I'm going to try to learn some more node side JS/TS and see if I can track down my own problem.

Same issue witnessed while setting HTTPS_PROXY=socks5://localhost:8888 on version 4.0.0.

kubectl exec to pods from Lens lead  to
error: unable to upgrade connection: error dialing backend: dial tcp 10.26.50.112:6443: i/o timeout
connection to nodes also fails
while other kubectl commands are successful.

Note that I am also setting the proxy in kubeconfig with the cluster section field proxy-url now available for it (cf: https://github.com/kubernetes/kubernetes/pull/81443/commits)

Pod shell error with proxy http://localhost:8005:
~ exec kubectl exec -i -t -n clc auth-center-5d54b96bf5-9p7bw -c auth-center "--" sh -c "clear; (bash || ash || sh)"
error: unable to upgrade connection: error dialing backend: dial tcp 172.17.6.40:6443: i/o timeout
Terminal will auto-close in 15 seconds ...

Lens version:
Lens: 4.0.8
Electron: 9.3.5
Chrome: 83.0.4103.122
Node: 12.14.1
Copyright 2020 Mirantis, Inc.

authors: jakolehm nevalla scodeman uqix xaocon


text:
fix Notifications blocking items not visually under them from being interacted with

fixes #847
Signed-off-by: Sebastian Malton sebastian@malton.name

I think the integration test failure is a real issue. This is what I see when running those manually.

This is really weird. It seems like the follow css was the "reason" why the tests were failing:
#app {
  > * {
    height: inherit;
  }
}

Namely, once I put it back they started to pass locally.


text:
Layout keymaps don't work

The keymaps like cmd-k cmd-l cmd-2 don't work.  You have several '.platform-darwin atom-workspace' blocks in you keymap file, so only the last one is getting used.  Likewise for linux/win32.  Combine them into one for each OS and they will work (put all layout/move/focus keymaps under one .platform-darwin atom-workspace').

Hi, thanks for the report.
It's fixed and published as v0.1.5.

authors: dsandstrom leny

repo: leny/atom-pane-manager


text:
Python port RFC

Would a Python port that doesn't need bash, and thus would be much easier to run on Windows, be something worth doing? I've done some work on that and am using it in-house. It will need more work before being ready for wider testing. If that's a direction the project would consider worthwhile, I'd take some time to work on it.
Ideally, I'd like Python as the only major dependency besides git, with necessary packages bundled, and have it runnable without installation, i.e. directly from a git checkout. The "main application" would have a CLI as it has now, and a minimal GUI that provides feedback, launches the file picker and browser, etc. The GUI would be tk-based to minimize dependencies.
Plan:

[ ] Cleanly port the exiting bash scripts to Python with minimal refactoring, and ensure that they work on all platforms. This wouldn't do much except dropping bash and awk (?) as dependencies. The architecture remains.
[ ] Add pure Python dependencies as submodules or sources checked into the codebase. The aim is to make it work for KiCad 7 and 8 with Python, git and KiCad as the only dependencies.
[ ] Refactor the scripts into a single application, potentially removing some dependencies if feasible.
[ ] Add the optional GUI.
[ ] Further cull dependencies if at all possible. KiCad has Python library code for accessing design databases, with backwards-compatibility. It should be possible eventually to make the application self-standing, i.e. with no dependencies other than Python, git, and KiCad libraries needed by the project (not even a KiCad binary).

I think redesign using python would be good. However I am not going to change Kiri. It is a bit complex task and I don't use this tool that much to justify this change. However feel free to start a new project to implement what you are proposing. Based on what you said it may be really good. Also, since it can be just a python script it can be easily added to Kicad's addon manager.

authors: KubaO leoheck

repo: leoheck/kiri


text:
Improve NLU for more detailed queries

Be able to subtract a type of entity from a query. Such as date, number, location, etc.
If it uses a tiers but Node.js, it should operate from the core and send the result object to modules via the child process parameters.
Otherwise, it should fully be implemented in the core itself.
I noted some following leads in this Trello card.

 🔧 Improve NLU for more detailed queries

Rasa integration?

Hello @Immortalin,
I do not plan to have a Rasa integration yet. But it does not mean I will not in the future.

If will make slot filling etc. easier as you can just delegate everything

In any case if you do decide to use Rasa, please make it modular, it seems that Rasa does not have any serious support for non-trivial morphology.

Snips-NLU perhaps?

@Immortalin looks like snips doesn't support languages with substantial morphology and morphophonology either.

Quick update for this topic:
I'm working under the nlu-improvement branch.
Leon is able to find several entities from a query thanks to node-nlp.
The Is It Down module is now using these entities instead of a custom regex to find the domain names (related to https://github.com/leon-ai/leon/issues/51).
I'll be working on the Trends package now to validate the feature, but I'll also need to dig into other topics regarding that improvement (such as locations and slot filling).
I'm note sure that will be in the 1.0.0-beta.2 release, but still, here is what may plan:

📝 Take a look at how to implement location entities with slot filling or for other purposes such as "add X in Y list"
✨ Dedicated modules flow

I finished this improvement. It'll be released in the 1.0.0-beta.2 version (cf. https://github.com/leon-ai/leon/commit/82ebbee568d1b8ccfacbe2a74e50afb01e9d9577).

The docs according to those changes has been published. Most of the essentials information can be found in this part.

@louistiti , the "this part" link in the previous post resolves to a 404 here. Could you fix this please? Thank you!

@louistiti , the "this part" link in the previous post resolves to a 404 here. Could you fix this please? Thank you!

Hi, sure, here you are: https://docs.getleon.ai/packages-modules#entities.

authors: Becker-Asano Immortalin ftyers louistiti

repo: leon-ai/leon


text:
Error loading file with rounded slider widget

Hello,
when I load a *.json project file where a slider with its "round" checkbox checked is inside, I get this error :
OSError : could not  find class definition
Also  : I can't set the slider to more than 99, how can we change it? I tried to look to its definition (widget and node) without success...

thanks!
I corrently cannot reproduce this on my machine. Are you running Ryven from master branch? Which ryvencore-qt version do you use (you can see by executing command pip list or pip freeze) ?
The limit of the scale checkbox is intentional. If you want to use higher scales, I suggest you plug in a val node to the scl input instead.

My bad, it was an error from my own nodes.py definition.
I've used your Val_Node as a template for one of my own but I've forgotten to create a widgets.py file and import it.
So it all ended with OSError : could not find class definition ... !
Thank you for the tip about scl input !

authors: Tanneguydv leon-thomm

repo: leon-thomm/Ryven


text:
Make line-break after breaking change prefix optional

https://github.com/leonardoanalista/cz-customizable/blob/eee6212ca0a2dc764d1bc7ee4dfcff8ac6a1d0a9/buildCommit.js#L93
Looks like the referenced line mandates a \n between the prefix and the body of the breaking change.
The line break actually breaks some common semver parsing tools in gradle.  Is it possible to make this optionally a space rather than a line-break?

👀 ...

yes, totally possible. That's why this lib is called "customizable".
So this is how it is today (sample from this lib git log):
    feat: add inquirer as dependency

    also upgraded commitizen to the latest.

    BREAKING CHANGE:
    please reinstall the latest 2.9.5 commitizen globally via npm -i commitizen. Deprecated
    configuration option has been removed.

    ISSUES CLOSED: #34

Then we create a new config option. Let's say we call it: breakingSectionBreakLineQuantity, {Integer} default 2.
Then if you set to 0, text will be in the same line of the body. If you set to 1, text would be in the next line. Default would be as per sample code above.
Next steps:

What do you think?
Let's consider other sections to have the same capability in future. Name should be consistent. So what name?
default value shouldn't break existing users or change the current behaviour. Reason: existing pattern suits most users that follow Angular commit convention.
anything else?

Thanks for the quick response @leonardoanalista!
Just to clarify, using your example, I'm taking about the line break between "BREAKING CHANGE:" and "please reinstall..."
you mentioned a default of 2, if you wanted to avoid breaking current users this should be 1 (not 2) - correct?

you are correct. Default could be 1 to prevent breaking.

Is this update as simple as putting a ternary inside that template literal (based on the config option value) to decide whether to apply that \n or not?
Or is there another way you'd prefer this done @leonardoanalista?
I'm happy to put a PR up for this as I'd like this options as well

I think the default option should be as it is today and don’t introduce a braking change. The new opinion would be an opt-in. That’s what I think. I’m open to hear alternatives too

I agree.
So default: breakingSectionBreakLineQuantity: 1 then the user can set value for the amount of line breaks they want (or set it to 0 if no line breaks required).
Personally I don't see the utility in adding more than a single line break but I but can see the flexibility of giving the option to set the amount of line breaks if someone wanted to do this.

That's a good point. I can't see anyone adding 3 lines between blocks. I can see 0 or 1 being useful. Maybe that's why you were thinking of a ternary condition. I don't mind if this option is binary or not. I'll would approve a PR for either implementation. I guess whatever is simpler, which imo is ternary, therefore binary option - on/off.

Cool, sounds good.
All good if I go ahead and create a PR for this? (probably in the next couple days...)

Hey @leonardoanalista.
Just forked the repo (so I can get a PR up for this issue) and kicked off the tests just to make sure everything is running OK.
But I'm getting quite a few Type and Syntax errors ...
Using node v13.14.0
Steps:

npm install
npm run test

Do you get the same?

authors: SukumarMehta leonardoanalista shinobi5

repo: leonardoanalista/cz-customizable


text:
num lock

Configurar para iniciar com o Num Lock ativado.

https://www.edivaldobrito.com.br/iniciar-com-o-numlock-ativado/

repo: leonardothibes/workstation


text:
Versions-Mismatch

YAHM/share/include.sh setzt noch 'YAHM_VERSION="1.5"', das sollte aber mittlerweile '1.6' sein, oder?

Ist bekannt, Danke
Werde es mit der neuen Version fixen
Gruß
Leo

Am 11.02.2017 um 11:56 schrieb AS-Igel notifications@github.com:
YAHM/share/include.sh setzt noch 'YAHM_VERSION="1.5"', das sollte aber mittlerweile '1.6' sein, oder?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Prima, danke!

authors: AS-Igel leonsio

repo: leonsio/YAHM


text:
Indicate that a Turbo Frame has been updated

It would be nice to have a visual indication that a Turbo Frame has been updated.
We could probably use a MutationObserver to monitor the busy and completed attribute on the frame, as documented here.
Or maybe even listen to the turbo:frame-render event.

I think its easier to go with the turbo:frame-render event, because we can simply add a css (quick flash animation or so) to the turbo frame and remove that after a short while?
To be fair, a MutationObserver is maybe easier to manage but more code (more possible bugs).

Yes, I also think listening to the turbo:frame-render event is the way to go for now.
I have some plans for the future, where it would be handy to know when the Turbo Frame starts a new request, but for now I agree that we should go the easiest way.

authors: leonvogt lirtistan

repo: leonvogt/hotwire-dev-tools


text:
WebView & WebView2 Do Not Properly Respond to Arrow Key Inputs

Describe the bug
WebView and WebView2 do not properly respond to arrow key inputs. This problem specifically arises when the WebView is situated within a Page. In contrast, when the WebView is embedded in a ui:FluentWindow (like the gallery app's MonacoWindow), the arrow key inputs are handled correctly.
It seems that there might be a discrepancy in how key input events are managed between different container types. This issue can affect navigation and user interaction within the WebView when it's placed in standard pages.
To Reproduce
Open the gallery application and navigating to the WebView example page, Try to input random texts into the provided text box.  use the left or right arrow keys does not alter the cursor position or navigate through the text, indicating that the arrow keys are non-functional in this context.

Expected behavior
I would like the webview in typical navigatable Page can respond to arrow Key inputs correctly.
Screenshots
No response
OS version
Windows 11
.NET version
.Net 8.0
WPF-UI NuGet version
3.0.4.0
Additional context
No response

Can confirm, happens to me as well when using WebView2 on a page on an actual UI

I took experienced this.
In your page xaml add:
ScrollViewer.CanContentScroll="False"
Though I noticed it breaks my theme when I do that. At least you can use the browser.

Same here, both wpf ui and webview2 on latest release (not prerelease).

Any updates or hints on this? I wouldn't mind submitting a PR if you could point me in the right direction (due to lack of time to explore the entire codebase). This prevents me from using WPF UI which is a bummer since it's such a great framework :(

authors: SamKr SecondNewtonLaw joe85 pinojojo

repo: lepoco/wpfui