text:
Return "Temporary Channel Failure" for offline peer

Change Description
This fixes #6603. If a forwarding request cannot be processed because the next hop currently is offline, without this patch lnd  returns a permanent "unknown next peer" error. Instead, if the requested channel is known, with this patch lnd returns a "temporary channel failure".
Steps to Test
Send forwarding request that should go out through an inactive channel (peer is offline).
Pull Request Checklist
Testing

[ ] Your PR passes all CI checks.
[x] Tests covering the positive and negative (error paths) are included.
[x] Bug fixes contain tests triggering the bug to prevent regressions.

Code Style and Documentation

[x] The change obeys the Code Documentation and Commenting guidelines, and lines wrap at 80.
[x] Commits follow the Ideal Git Commit Structure.
[x] Any new logging statements use an appropriate subsystem and logging level.
[x]  There is a change description in the release notes, or [skip ci] in the commit message for small changes.

📝 Please see our  Contribution Guidelines for further guidance.

I don't understand enough of this code and sadly the tests also didn't help much (I'm used to tests with 10 lines max...). I'm closing this PR as I noticed the actual error is determined in another place, and I'm unable to differentiate between "offline" and "unknown".


text:
itest: continued itest refactor and fix - III

Please check #6825 for more context.
Depending on #6822, this PR continues the fix of the tests.
This PR starts at commit lntemp+itest: refactor testEtcdFailover

@bhandras: review reminder
@sputn1ck: review reminder

@sputn1ck: review reminder

@sputn1ck: review reminder

@positiveblue: review reminder
@sputn1ck: review reminder

Looks like all of the new tests (all but one) are failing at send_to_route_error_propagation.

source: gharchive/pull-request

repo: lightningnetwork/lnd

license: MIT

license_type: permissive

license_source: github-api


text:
itest+lntest: make sure states are cleaned when tests end

Fixed a case where the cleanup is missed and validated the state when the tests end.

hmm should this be based on master or 0.16.1? I guess on master since other branches need this fix?

Changed the base!


text:
Use pkgs.k8s.io instead of apt.k8s.io for k8s

The package hosting is moving from Google to OBS.
https://kubernetes.io/blog/2023/08/15/pkgs-k8s-io-introduction/
There is now one repository per release version.
It is the exact same binary content, as is available on dl.k8s.io

The 1.28.1 release has been delayed on Google, and is only available through OpenSUSE.

repo: lima-vm/lima


text:
Remove add_node, add_edge in favor of add_nodes and add_edges

Remove the add_node, add_edge functions in favor of add_nodes and add_edges functions from the python medrecord as well as the rustmodels medrecord (the rust-to-python bindings) - including the _medmodels.pyi interface

Also, changing all singular to plural naming, i.e., add_node_to group into add_nodes_to_group

source: gharchive/issue

authors: JabobKrauskopf MarIniOnz

repo: limebit/medmodels


text:
Unable to repeat Confirm when closeOnConfirm: false

I have a sweetalert2 with an input field that I wish to validate before performing an AJAX submit. Because of the THEN promise being returned, the Confirm button only works the first time. i.e. If I show the user a validation error and he corrects the input, he cannot Confirm a second time. Nothing happens because the THEN only runs the first time.
Please provide an example of using sweetalert2 using a callback in the Promise to allow repeated Confirms in case of validation fail, AJAX fail, etc.

Thank you @cormip for reporting this. I released v2.0.0 which solves your issue. Take a look on the AJAX request example, it should help in your case.

Awesome job! Thanks.

authors: cormip limonte

license: mit

license_source: bigquery


text:
dont remove mediaquery if its not existing

@limonte it throws an annoying error everytime someone calls close and its all ready closed. As there is no public method to check the status it should not throw an error

Thank you @nerdmed !

https://github.com/limonte/sweetalert2/releases/tag/v0.2.7

@limonte wow never seen this fast progress! Compliment!

authors: limonte nerdmed


text:
Add pytest-cov

Add pytest coverage to the list of dev dependencies, pre-commit hook, and GitHub workflow.

Added pytest coverage with this commit: e52e4a95799edb0019a31a370297d09b6712e411


text:
Current visualization with max value

Hi,
The current visualization using the same y-axis for all graphs results in a way too big scale for most graphs .
This in turn makes differences seems negligent.
Will you accept a PR for changing this?

There was some discussion on this in #11. Since then, it looks like Poetry's performance has degraded significantly, making this more of a permanent issue. I'd be open to a PR that scales each graph independently.


text:
Issue-Agrega archivos .sql y actualiza .gitignore

Automated Review Comments
Issues in src/dpersonales.sql:

(66, 'Line exceeds 80 characters')
(66, 'Hardcoded string found')
(67, 'Line exceeds 80 characters')
(67, 'Hardcoded string found')
(68, 'Line exceeds 80 characters')
(68, 'Hardcoded string found')
(69, 'Line exceeds 80 characters')
(69, 'Hardcoded string found')
(70, 'Line exceeds 80 characters')
(70, 'Hardcoded string found')
(71, 'Line exceeds 80 characters')
(72, 'Line exceeds 80 characters')
(72, 'Hardcoded string found')
(73, 'Line exceeds 80 characters')
(73, 'Hardcoded string found')
(74, 'Line exceeds 80 characters')
(75, 'Line exceeds 80 characters')
(75, 'Hardcoded string found')
(76, 'Line exceeds 80 characters')
(77, 'Line exceeds 80 characters')
(78, 'Line exceeds 80 characters')
(78, 'Hardcoded string found')
(79, 'Line exceeds 80 characters')
(79, 'Hardcoded string found')
(80, 'Line exceeds 80 characters')
(80, 'Hardcoded string found')
(81, 'Line exceeds 80 characters')
(81, 'Hardcoded string found')
(82, 'Line exceeds 80 characters')
(82, 'Hardcoded string found')
(83, 'Line exceeds 80 characters')
(83, 'Hardcoded string found')
(84, 'Line exceeds 80 characters')
(84, 'Hardcoded string found')
(85, 'Line exceeds 80 characters')
(85, 'Hardcoded string found')
(86, 'Hardcoded string found')
(87, 'Line exceeds 80 characters')
(87, 'Hardcoded string found')
(88, 'Line exceeds 80 characters')
(88, 'Hardcoded string found')
(89, 'Line exceeds 80 characters')
(89, 'Hardcoded string found')
(90, 'Line exceeds 80 characters')
(90, 'Hardcoded string found')
(91, 'Line exceeds 80 characters')
(92, 'Line exceeds 80 characters')
(92, 'Hardcoded string found')
(93, 'Line exceeds 80 characters')
(93, 'Hardcoded string found')
(94, 'Line exceeds 80 characters')
(95, 'Hardcoded string found')
(96, 'Line exceeds 80 characters')
(96, 'Hardcoded string found')
(97, 'Hardcoded string found')
(98, 'Line exceeds 80 characters')
(98, 'Hardcoded string found')
(99, 'Line exceeds 80 characters')
(99, 'Hardcoded string found')
(100, 'Line exceeds 80 characters')
(100, 'Hardcoded string found')
(101, 'Line exceeds 80 characters')
(101, 'Hardcoded string found')
(102, 'Line exceeds 80 characters')
(102, 'Hardcoded string found')
(103, 'Line exceeds 80 characters')
(103, 'Hardcoded string found')
(104, 'Line exceeds 80 characters')
(104, 'Hardcoded string found')
(105, 'Line exceeds 80 characters')
(105, 'Hardcoded string found')
(106, 'Line exceeds 80 characters')
(106, 'Hardcoded string found')
(107, 'Line exceeds 80 characters')
(107, 'Hardcoded string found')
(108, 'Line exceeds 80 characters')
(108, 'Hardcoded string found')
(109, 'Line exceeds 80 characters')
(109, 'Hardcoded string found')
(110, 'Line exceeds 80 characters')
(110, 'Hardcoded string found')
(111, 'Line exceeds 80 characters')
(111, 'Hardcoded string found')
(112, 'Line exceeds 80 characters')
(112, 'Hardcoded string found')
(113, 'Line exceeds 80 characters')
(113, 'Hardcoded string found')
(114, 'Line exceeds 80 characters')
(114, 'Hardcoded string found')
(115, 'Line exceeds 80 characters')
(115, 'Hardcoded string found')
(116, 'Hardcoded string found')
(117, 'Line exceeds 80 characters')
(117, 'Hardcoded string found')
(118, 'Line exceeds 80 characters')
(118, 'Hardcoded string found')
(119, 'Line exceeds 80 characters')
(119, 'Hardcoded string found')
(120, 'Line exceeds 80 characters')
(120, 'Hardcoded string found')
(121, 'Line exceeds 80 characters')
(121, 'Hardcoded string found')
(122, 'Line exceeds 80 characters')
(122, 'Hardcoded string found')
(123, 'Line exceeds 80 characters')
(123, 'Hardcoded string found')
(124, 'Line exceeds 80 characters')
(124, 'Hardcoded string found')
(125, 'Line exceeds 80 characters')
(125, 'Hardcoded string found')
(126, 'Line exceeds 80 characters')
(126, 'Hardcoded string found')
(127, 'Line exceeds 80 characters')
(127, 'Hardcoded string found')
(128, 'Line exceeds 80 characters')
(128, 'Hardcoded string found')
(129, 'Line exceeds 80 characters')
(129, 'Hardcoded string found')
(130, 'Line exceeds 80 characters')
(130, 'Hardcoded string found')
(131, 'Line exceeds 80 characters')
(131, 'Hardcoded string found')
(132, 'Line exceeds 80 characters')
(132, 'Hardcoded string found')
(133, 'Line exceeds 80 characters')
(133, 'Hardcoded string found')
(134, 'Line exceeds 80 characters')
(134, 'Hardcoded string found')
(135, 'Line exceeds 80 characters')
(135, 'Hardcoded string found')
(136, 'Line exceeds 80 characters')
(136, 'Hardcoded string found')
(137, 'Line exceeds 80 characters')
(137, 'Hardcoded string found')
(138, 'Line exceeds 80 characters')
(138, 'Hardcoded string found')
(139, 'Line exceeds 80 characters')
(139, 'Hardcoded string found')
(140, 'Line exceeds 80 characters')
(140, 'Hardcoded string found')
(141, 'Line exceeds 80 characters')
(141, 'Hardcoded string found')
(142, 'Line exceeds 80 characters')
(142, 'Hardcoded string found')
(143, 'Line exceeds 80 characters')
(143, 'Hardcoded string found')
(144, 'Line exceeds 80 characters')
(144, 'Hardcoded string found')
(145, 'Line exceeds 80 characters')
(145, 'Hardcoded string found')
(146, 'Line exceeds 80 characters')
(146, 'Hardcoded string found')
(147, 'Line exceeds 80 characters')
(147, 'Hardcoded string found')
(148, 'Line exceeds 80 characters')
(148, 'Hardcoded string found')
(149, 'Line exceeds 80 characters')
(149, 'Hardcoded string found')
(150, 'Line exceeds 80 characters')
(150, 'Hardcoded string found')
(151, 'Line exceeds 80 characters')
(151, 'Hardcoded string found')
(152, 'Line exceeds 80 characters')
(152, 'Hardcoded string found')
(153, 'Line exceeds 80 characters')
(153, 'Hardcoded string found')
(154, 'Line exceeds 80 characters')
(154, 'Hardcoded string found')
(155, 'Line exceeds 80 characters')
(155, 'Hardcoded string found')
(156, 'Line exceeds 80 characters')
(156, 'Hardcoded string found')
(157, 'Hardcoded string found')
(158, 'Line exceeds 80 characters')
(158, 'Hardcoded string found')
(159, 'Line exceeds 80 characters')
(159, 'Hardcoded string found')
(160, 'Line exceeds 80 characters')
(160, 'Hardcoded string found')
(161, 'Line exceeds 80 characters')
(161, 'Hardcoded string found')
(162, 'Line exceeds 80 characters')
(162, 'Hardcoded string found')
(163, 'Line exceeds 80 characters')
(163, 'Hardcoded string found')
(164, 'Hardcoded string found')
(165, 'Line exceeds 80 characters')
(165, 'Hardcoded string found')
(166, 'Line exceeds 80 characters')
(166, 'Hardcoded string found')
(167, 'Line exceeds 80 characters')
(167, 'Hardcoded string found')
(168, 'Line exceeds 80 characters')
(168, 'Hardcoded string found')
(169, 'Line exceeds 80 characters')
(169, 'Hardcoded string found')
(170, 'Line exceeds 80 characters')
(170, 'Hardcoded string found')
(171, 'Line exceeds 80 characters')
(171, 'Hardcoded string found')
(172, 'Line exceeds 80 characters')
(172, 'Hardcoded string found')
(173, 'Line exceeds 80 characters')
(173, 'Hardcoded string found')
(174, 'Line exceeds 80 characters')
(174, 'Hardcoded string found')
(175, 'Hardcoded string found')
(176, 'Line exceeds 80 characters')
(176, 'Hardcoded string found')
(177, 'Line exceeds 80 characters')
(177, 'Hardcoded string found')
(178, 'Line exceeds 80 characters')
(179, 'Line exceeds 80 characters')
(180, 'Line exceeds 80 characters')
(180, 'Hardcoded string found')
(181, 'Line exceeds 80 characters')
(181, 'Hardcoded string found')
(182, 'Line exceeds 80 characters')
(182, 'Hardcoded string found')
(183, 'Line exceeds 80 characters')
(184, 'Line exceeds 80 characters')
(184, 'Hardcoded string found')
(185, 'Line exceeds 80 characters')
(185, 'Hardcoded string found')
(186, 'Line exceeds 80 characters')
(187, 'Line exceeds 80 characters')
(187, 'Hardcoded string found')
(188, 'Line exceeds 80 characters')
(188, 'Hardcoded string found')
(189, 'Line exceeds 80 characters')
(190, 'Line exceeds 80 characters')
(191, 'Line exceeds 80 characters')
(191, 'Hardcoded string found')
(192, 'Line exceeds 80 characters')
(192, 'Hardcoded string found')
(193, 'Line exceeds 80 characters')
(193, 'Hardcoded string found')
(194, 'Line exceeds 80 characters')
(194, 'Hardcoded string found')
(195, 'Line exceeds 80 characters')
(195, 'Hardcoded string found')
(196, 'Line exceeds 80 characters')
(196, 'Hardcoded string found')
(197, 'Hardcoded string found')
(198, 'Line exceeds 80 characters')
(198, 'Hardcoded string found')
(199, 'Line exceeds 80 characters')
(199, 'Hardcoded string found')
(200, 'Line exceeds 80 characters')
(200, 'Hardcoded string found')
(201, 'Line exceeds 80 characters')
(201, 'Hardcoded string found')
(202, 'Line exceeds 80 characters')
(202, 'Hardcoded string found')
(203, 'Line exceeds 80 characters')
(203, 'Hardcoded string found')
(204, 'Line exceeds 80 characters')
(204, 'Hardcoded string found')
(205, 'Line exceeds 80 characters')
(205, 'Hardcoded string found')
(206, 'Line exceeds 80 characters')
(206, 'Hardcoded string found')
(207, 'Hardcoded string found')
(208, 'Line exceeds 80 characters')
(208, 'Hardcoded string found')
(209, 'Hardcoded string found')
(210, 'Line exceeds 80 characters')
(210, 'Hardcoded string found')
(211, 'Hardcoded string found')
(212, 'Line exceeds 80 characters')
(212, 'Hardcoded string found')
(213, 'Line exceeds 80 characters')
(213, 'Hardcoded string found')
(214, 'Line exceeds 80 characters')
(214, 'Hardcoded string found')
(215, 'Line exceeds 80 characters')
(215, 'Hardcoded string found')
(216, 'Line exceeds 80 characters')
(216, 'Hardcoded string found')
(217, 'Line exceeds 80 characters')
(217, 'Hardcoded string found')
(218, 'Line exceeds 80 characters')
(218, 'Hardcoded string found')
(219, 'Line exceeds 80 characters')
(219, 'Hardcoded string found')
(220, 'Line exceeds 80 characters')
(220, 'Hardcoded string found')
(221, 'Line exceeds 80 characters')
(222, 'Line exceeds 80 characters')
(222, 'Hardcoded string found')
(223, 'Line exceeds 80 characters')
(223, 'Hardcoded string found')
(224, 'Line exceeds 80 characters')
(225, 'Line exceeds 80 characters')
(225, 'Hardcoded string found')
(226, 'Line exceeds 80 characters')
(226, 'Hardcoded string found')
(227, 'Line exceeds 80 characters')
(227, 'Hardcoded string found')
(228, 'Line exceeds 80 characters')
(229, 'Line exceeds 80 characters')
(229, 'Hardcoded string found')
(230, 'Line exceeds 80 characters')
(230, 'Hardcoded string found')
(231, 'Line exceeds 80 characters')
(231, 'Hardcoded string found')
(232, 'Line exceeds 80 characters')
(232, 'Hardcoded string found')
(233, 'Line exceeds 80 characters')
(233, 'Hardcoded string found')
(234, 'Line exceeds 80 characters')
(234, 'Hardcoded string found')
(235, 'Line exceeds 80 characters')
(235, 'Hardcoded string found')
(236, 'Line exceeds 80 characters')
(236, 'Hardcoded string found')
(237, 'Line exceeds 80 characters')
(237, 'Hardcoded string found')
(238, 'Line exceeds 80 characters')
(238, 'Hardcoded string found')
(239, 'Line exceeds 80 characters')
(239, 'Hardcoded string found')
(240, 'Line exceeds 80 characters')
(240, 'Hardcoded string found')
(241, 'Line exceeds 80 characters')
(241, 'Hardcoded string found')
(242, 'Line exceeds 80 characters')
(242, 'Hardcoded string found')
(243, 'Line exceeds 80 characters')
(243, 'Hardcoded string found')
(244, 'Line exceeds 80 characters')
(244, 'Hardcoded string found')
(245, 'Line exceeds 80 characters')
(245, 'Hardcoded string found')
(246, 'Line exceeds 80 characters')
(246, 'Hardcoded string found')
(247, 'Line exceeds 80 characters')
(247, 'Hardcoded string found')
(248, 'Line exceeds 80 characters')
(248, 'Hardcoded string found')
(249, 'Line exceeds 80 characters')
(249, 'Hardcoded string found')
(250, 'Line exceeds 80 characters')
(250, 'Hardcoded string found')
(251, 'Line exceeds 80 characters')
(252, 'Line exceeds 80 characters')
(252, 'Hardcoded string found')
(253, 'Line exceeds 80 characters')
(254, 'Line exceeds 80 characters')
(254, 'Hardcoded string found')
(255, 'Line exceeds 80 characters')
(255, 'Hardcoded string found')
(256, 'Line exceeds 80 characters')
(256, 'Hardcoded string found')
(257, 'Line exceeds 80 characters')
(257, 'Hardcoded string found')
(258, 'Line exceeds 80 characters')
(258, 'Hardcoded string found')
(259, 'Line exceeds 80 characters')
(259, 'Hardcoded string found')
(260, 'Line exceeds 80 characters')
(260, 'Hardcoded string found')
(261, 'Line exceeds 80 characters')
(261, 'Hardcoded string found')
(262, 'Line exceeds 80 characters')
(262, 'Hardcoded string found')
(263, 'Line exceeds 80 characters')
(263, 'Hardcoded string found')
(264, 'Hardcoded string found')
(265, 'Line exceeds 80 characters')
(266, 'Line exceeds 80 characters')
(267, 'Line exceeds 80 characters')
(267, 'Hardcoded string found')
(268, 'Line exceeds 80 characters')
(269, 'Line exceeds 80 characters')
(269, 'Hardcoded string found')
(270, 'Line exceeds 80 characters')
(270, 'Hardcoded string found')
(271, 'Line exceeds 80 characters')
(271, 'Hardcoded string found')
(272, 'Line exceeds 80 characters')
(272, 'Hardcoded string found')
(273, 'Line exceeds 80 characters')
(273, 'Hardcoded string found')
(274, 'Line exceeds 80 characters')
(274, 'Hardcoded string found')
(275, 'Line exceeds 80 characters')
(275, 'Hardcoded string found')
(276, 'Line exceeds 80 characters')
(276, 'Hardcoded string found')
(277, 'Line exceeds 80 characters')
(277, 'Hardcoded string found')
(278, 'Line exceeds 80 characters')
(278, 'Hardcoded string found')
(279, 'Line exceeds 80 characters')
(279, 'Hardcoded string found')
(280, 'Line exceeds 80 characters')
(280, 'Hardcoded string found')
(281, 'Line exceeds 80 characters')
(281, 'Hardcoded string found')
(282, 'Line exceeds 80 characters')
(282, 'Hardcoded string found')
(283, 'Line exceeds 80 characters')
(283, 'Hardcoded string found')
(284, 'Line exceeds 80 characters')
(284, 'Hardcoded string found')
(285, 'Line exceeds 80 characters')
(285, 'Hardcoded string found')
(286, 'Line exceeds 80 characters')
(286, 'Hardcoded string found')
(287, 'Line exceeds 80 characters')
(287, 'Hardcoded string found')
(288, 'Line exceeds 80 characters')
(288, 'Hardcoded string found')
(289, 'Line exceeds 80 characters')
(290, 'Line exceeds 80 characters')
(291, 'Line exceeds 80 characters')
(292, 'Line exceeds 80 characters')
(293, 'Line exceeds 80 characters')
(293, 'Hardcoded string found')
(294, 'Hardcoded string found')
(295, 'Line exceeds 80 characters')
(295, 'Hardcoded string found')
(296, 'Line exceeds 80 characters')
(296, 'Hardcoded string found')
(297, 'Line exceeds 80 characters')
(298, 'Line exceeds 80 characters')
(299, 'Line exceeds 80 characters')
(299, 'Hardcoded string found')
(300, 'Line exceeds 80 characters')
(300, 'Hardcoded string found')
(301, 'Line exceeds 80 characters')
(302, 'Line exceeds 80 characters')
(303, 'Line exceeds 80 characters')
(303, 'Hardcoded string found')
(304, 'Line exceeds 80 characters')
(304, 'Hardcoded string found')
(305, 'Line exceeds 80 characters')
(305, 'Hardcoded string found')
(306, 'Line exceeds 80 characters')
(306, 'Hardcoded string found')
(307, 'Line exceeds 80 characters')
(307, 'Hardcoded string found')
(308, 'Line exceeds 80 characters')
(308, 'Hardcoded string found')
(309, 'Line exceeds 80 characters')
(309, 'Hardcoded string found')
(310, 'Line exceeds 80 characters')
(310, 'Hardcoded string found')
(311, 'Line exceeds 80 characters')
(312, 'Line exceeds 80 characters')
(313, 'Line exceeds 80 characters')
(314, 'Line exceeds 80 characters')
(315, 'Line exceeds 80 characters')
(316, 'Line exceeds 80 characters')
(317, 'Line exceeds 80 characters')
(317, 'Hardcoded string found')
(318, 'Hardcoded string found')
(319, 'Hardcoded string found')
(321, 'Hardcoded string found')
(322, 'Hardcoded string found')
(323, 'Hardcoded string found')
(324, 'Hardcoded string found')
(325, 'Hardcoded string found')
(328, 'Hardcoded string found')
(330, 'Hardcoded string found')
(331, 'Hardcoded string found')
(332, 'Hardcoded string found')
(333, 'Hardcoded string found')
(334, 'Hardcoded string found')
(335, 'Hardcoded string found')
(336, 'Hardcoded string found')
(337, 'Hardcoded string found')
(338, 'Hardcoded string found')
(339, 'Hardcoded string found')
(340, 'Hardcoded string found')
(341, 'Hardcoded string found')
(342, 'Hardcoded string found')
(343, 'Hardcoded string found')
(344, 'Hardcoded string found')
(345, 'Hardcoded string found')
(346, 'Hardcoded string found')
(347, 'Hardcoded string found')
(348, 'Hardcoded string found')
(349, 'Hardcoded string found')
(350, 'Hardcoded string found')
(351, 'Hardcoded string found')
(352, 'Hardcoded string found')
(353, 'Hardcoded string found')
(354, 'Hardcoded string found')
(355, 'Hardcoded string found')
(356, 'Hardcoded string found')
(357, 'Hardcoded string found')
(358, 'Hardcoded string found')
(359, 'Hardcoded string found')
(360, 'Hardcoded string found')
(361, 'Hardcoded string found')
(362, 'Hardcoded string found')
(363, 'Hardcoded string found')
(364, 'Hardcoded string found')
(365, 'Hardcoded string found')
(366, 'Hardcoded string found')
(368, 'Hardcoded string found')
(369, 'Hardcoded string found')
(371, 'Hardcoded string found')
(373, 'Hardcoded string found')
(374, 'Hardcoded string found')
(375, 'Hardcoded string found')
(376, 'Hardcoded string found')
(377, 'Hardcoded string found')
(378, 'Hardcoded string found')

I got it.


text:
Support binary user dictionary on CLI.

Support binary user dictionary on CLI.

Thanks!

@johtani
It contains the resources used in the tests and examples.

authors: abetomo mosuka

repo: lindera-morphology/lindera


text:
Does armeria supports compression over http/2?

In my business scenario, I  usually deal with large bunches of strings, which consume a lot of bandwidth. So I'm very interested whether armeria supports compression over http/2 now. If it supports, could you show me how to use it? Or if not, do you have any plan to support it in the near future?  As far as I know, gRPC has supported compression already. And thank you very much for checking my question :)

Currently armeria has HTTP compression in the server - https://github.com/line/armeria/blob/master/core/src/main/java/com/linecorp/armeria/server/http/encoding/HttpEncodingService.java
If the client is the browser, compression will happen automatically.
The armeria client currently doesn't support compression - I don't think it would be hard to implement it and might be nice for server/client symmetry. In my experience, internal network capacity has grown much faster than CPU and enabling compression for internal requests tends to be a loss - but maybe not for specific workloads of course.
Just wondering, is your use case for internal requests (not browser)?

Yeah, my use case is for internal requests (RPC).

It seems there is a bug: HttpEncodingService only encode when the content length is larger than 1kb, see in HttpEncodedResponse:
 if (headers.contains(HttpHeaderNames.CONTENT_LENGTH)) {             // We switch to chunked encoding and compress the response if it's reasonably             // large as the compression savings should outweigh the chunked encoding             // overhead.             if (headers.getInt(HttpHeaderNames.CONTENT_LENGTH) < minBytesToForceChunkedAndEncoding) {                 return false;             }         }
howerver, the new HttpDecodingClient will always decode the content. So if the httpData content is less than 1kb and it has the "content-length" parameter, the HttpDecodingClient will throw an exception when decoding.

Thanks for reporting - #466 adds a fix and test for the non-encoded case.

authors: anuraaga xyzker

repo: line/armeria


text:
Investigate GrpcClientTest.serverStreamingShouldBeFlowControlled

https://ci.appveyor.com/project/trustin/armeria/build/master.1680#L1814
com.linecorp.armeria.client.grpc.GrpcClientTest > serverStreamingShouldBeFlowControlled FAILED
    org.junit.ComparisonFailure: expected:<[payload {
      body: "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\00
...(edited)...
0\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
    }
    ]> but was:<[Status{code=UNKNOWN, description=null, cause=com.linecorp.armeria.common.ClosedSessionException
    	at com.linecorp.armeria.common.ClosedSessionException.get(ClosedSessionException.java:34)
    	at com.linecorp.armeria.client.Http2ResponseDecoder.onStreamClosed(Http2ResponseDecoder.java:102)
    	at io.netty.handler.codec.http2.DefaultHttp2Connection.notifyClosed(DefaultHttp2Connection.java:349)
    	at io.netty.handler.codec.http2.DefaultHttp2Connection$ActiveStreams.removeFromActiveStreams(DefaultHttp2Connection.java:985)
    	at io.netty.handler.codec.http2.DefaultHttp2Connection$ActiveStreams$2.process(DefaultHttp2Connection.java:946)
    	at io.netty.handler.codec.http2.DefaultHttp2Connection$ActiveStreams.decrementPendingIterations(DefaultHttp2Connection.java:1007)
    	at io.netty.handler.codec.http2.DefaultHttp2Connection$ActiveStreams.forEachActiveStream(DefaultHttp2Connection.java:962)
    	at io.netty.handler.codec.http2.DefaultHttp2Connection.forEachActiveStream(DefaultHttp2Connection.java:209)
    	at com.linecorp.armeria.internal.AbstractHttp2ConnectionHandler.close(AbstractHttp2ConnectionHandler.java:120)
    	at io.netty.channel.AbstractChannelHandlerContext.invokeClose(AbstractChannelHandlerContext.java:624)
    	at io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:608)
    	at io.netty.channel.ChannelDuplexHandler.close(ChannelDuplexHandler.java:73)
    	at io.netty.channel.AbstractChannelHandlerContext.invokeClose(AbstractChannelHandlerContext.java:624)
    	at io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:608)
    	at io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:465)
    	at io.netty.channel.DefaultChannelPipeline.close(DefaultChannelPipeline.java:973)
    	at io.netty.channel.AbstractChannel.close(AbstractChannel.java:238)
    	at com.linecorp.armeria.internal.Http2GoAwayListener.onGoAwayReceived(Http2GoAwayListener.java:58)
    	at io.netty.handler.codec.http2.DefaultHttp2Connection.goAwayReceived(DefaultHttp2Connection.java:232)
    	at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder.onGoAwayRead0(DefaultHttp2ConnectionDecoder.java:166)
    	at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder$FrameReadListener.onGoAwayRead(DefaultHttp2ConnectionDecoder.java:495)
    	at io.netty.handler.codec.http2.DefaultHttp2FrameReader.readGoAwayFrame(DefaultHttp2FrameReader.java:592)
    	at io.netty.handler.codec.http2.DefaultHttp2FrameReader.processPayloadState(DefaultHttp2FrameReader.java:272)
    	at io.netty.handler.codec.http2.DefaultHttp2FrameReader.readFrame(DefaultHttp2FrameReader.java:160)
    	at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder.decodeFrame(DefaultHttp2ConnectionDecoder.java:118)
    	at io.netty.handler.codec.http2.Http2ConnectionHandler$FrameDecoder.decode(Http2ConnectionHandler.java:388)
    	at io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:448)
    	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489)
    	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:428)
    	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265)
    	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
    	at io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:241)
    	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
    	at com.linecorp.armeria.internal.FlushConsolidationHandler.channelRead(FlushConsolidationHandler.java:108)
    	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
    	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
    	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
    	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1359)
    	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:935)
    	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:138)
    	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:645)
    	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580)
    	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497)
    	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459)
    	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
    	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
    	at java.lang.Thread.run(Thread.java:748)
    }]>
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at

/cc @anuraaga

There's this weird log about stream not existing - @trustin do you have any idea what might cause it?
04:03:13.066 [armeria-eventloop-nio-5-1] WARN  c.l.a.internal.Http2GoAwayListener - [id: 0x2ce39238, L:/127.0.0.1:1688 - R:/127.0.0.1:1690] Sent a GOAWAY frame: lastStreamId=15, errorCode=PROTOCOL_ERROR(1), debugData="type: io.netty.handler.codec.http2.Http2Exception, message: Stream 17 does not exist, cause: io.netty.handler.codec.http2.Http2Exception: Stream 17 does not exist
at io.netty.handler.codec.http2.Http2Exception.connectionError(Http2Exception.java:85)
at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder$FrameReadListener.verifyStreamMayHaveExisted(DefaultHttp2ConnectionDecoder.java:569)
at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder$FrameReadListener.onRstStreamRead(DefaultHttp2ConnectionDecoder.java:341)
at io.netty.handler.codec.http2.DefaultHttp2FrameReader.readRstStreamFrame(DefaultHttp2FrameReader.java:516)
at io.netty.handler.codec.http2.DefaultHttp2FrameReader.processPayloadState(DefaultHttp2FrameReader.java:260)
at io.netty.handler.codec.http2.DefaultHttp2FrameReader.readFrame(DefaultHttp2FrameReader.java:160)
at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder.decodeFrame(DefaultHttp2ConnectionDecoder.java:118)
at io.netty.handler.codec.http2.Http2ConnectionHandler$FrameDecoder.decode(Http2ConnectionHandler.java:388)
at io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:448)
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder

Worked around by #919

authors: anuraaga hyangtack trustin


text:
@Id, @EmbeddedId에 대해 궁금한 점이 있습니다.

안녕하세요. jpa를 공부하면서 jdsl를 익히기 위해 example 폴더를 보다가 궁금한 점이 있어 질문드립니다.
@Entity
@Table(name = "book")
class Book(
    @Id
    @EmbeddedId
    @AttributeOverride(name = "value", column = Column(name = "isbn"))
    val isbn: Isbn,

    @Column(name = "title")
    var title: String,

    @Column(name = "image_url")
    var imageUrl: String,

@EmbeddId를 사용하는 Book 클래스에서 추가적으로 @Id 어노테이션을 사용하신 이유가 있는지 궁금합니다.

JPA 2.2 명세서에 따라 @Id 어노테이션이 추가적으로 필요하지 않은 것 같아서 질문드립니다.

안녕하세요! 이 부분은 제가 인지하지 못 했습니다.
Id에 해당하는 필드에 제가 습관적으로 Id 어노테이션을 붙였는데, 이는 잘못된 사용법이었군요. example에서 Id 어노테이션을 제외하도록 하겠습니다.
저의 잘못을 확인해주셔서 감사합니다.

Id 어노테이션을 제거하고 테스트가 정상 동작하는 것을 확인한 뒤에 머지하였습니다.
혹시 제가 잘못 사용한 다른 어노테이션이 있으면 이 이슈를 다시 오픈해서 언제든지 말씀주세요!
이 이슈는 close 하겠습니다. JDSL에 관심을 주셔서 감사합니다.

혹시 이 내용으로는 컨트리뷰션이 되기 어렵나요?🥹

authors: devbelly shouwn

repo: line/kotlin-jdsl


text:
Multiple app states

I came across a problem trying to build a complex GUI application.
In my application I need a way to create a detail window out of a part of the app state extracted to its own state.
The main problem is the part of the state may not always exist or may not always be the way it is. The detail window must be operating on a snapshot of that application sub-state.
Is there any plan to support multiple windows with different app states?

I fixed the problem with a combination of std::collections::HashMap, a custom container based on im::Vector and a Lens trick.

repo: linebender/druid


text:
Route id

Adds Notification::route

so route only has id of the immediate child, not the full route. can you explain the usecase and how this will help? Also why not use Vec for the widgets it traveled

The immediate child ID is useful, since it is easily accessible from the current widget.
For an example, if we want to implement the correct scroll_to behavior for enum_switcher, we need to know whether the notification came from within the active widget, if not we should discard it.
In the linked issue are more examples.


text:
功能增加：持久化保存文本、文件上传状态，增加文件中转站

试用了一下，感觉分享功能做的很好，希望能增加以下两个feature：

可以将管理员文本、文件上传状态写入KV存储状态，使得每一次登陆管理员账户都不用手动进行开启。
增加一个类似于文件中转站的功能，可以在不用生成在分享链接的前提下，实现文件的临时保存。

感谢为项目的付出

1.已完成
2.功能和普通的感觉有点冲突，可能不考虑。


text:
Resume downloaded files throws( java.lang.IllegalArgumentException: Unexpected char )

Could not resume files if the default device language does not belong to Arabic numbers Locale (such as Eastern  Arabic or Persian numbers ).
this exception happens because okhttp3 expected ascii code characters for http headers.
i fixed this issue by using :
String.format(Locale.ENGLISH,........) rather than String.format(........).

💯  Thanks so much. I will cover this exception as soon as possible.

Fixed in v0.2.8.

authors: AhmedAsser Jacksgong

repo: lingochamp/FileDownloader


text:
we need a quickstart

Maybe we need a quickstart, thanks.

Good idea, I don't have much time now though, so if you want you can submit a PR for this

repo: lingxz/er


text:
ACL guidelines

Little more guidance on ACL would help with understanding it and people deploying solid making sure not to compromise access to information on the server.

I understand that ACL works per instance of ldp:Resource (ldp:Container) and one should not allow queries on the whole dataset.

Can one add ldp:member (ldp:contains) triple to include data accessible via certain instance of ldp:Resource in responses of queries made on ldp:Container (used as subject of ldp:member)

how setting access on ldp:Container compares to OAuth scopes? https://tools.ietf.org/html/rfc6749#section-3.3 @aaronpk

Fixed 1) in 2a6eda14c4a0030479e4304894203c2e96980833.
Not sure what you mean by 2).

It doesn't really compare.

Conversation about using Bearer token and app permissions with OAuth scopes started in https://github.com/w3c-social/Social-APIs-Brainstorming/issues/8
I will soon add examples there which show distinction between OAuth based app authorization (permissions) with scopes. User specific access control with Web Access Control. As well as authentication with WebID-*, IndieAuth, OpenID Connect, Persona, Identity Credentials, whatever, independent from former two - app permissions and user access control.
To my understanding, currently SoLiD apps have full / unlimited access to the workspace which person authenticated in using those apps. Control over permissions granted to specific app seems very important and relevant to https://github.com/w3c-social/Social-APIs-Brainstorming/issues/9

authors: deiu elf-pavlik

repo: linkeddata/SoLiD


text:
Change Request queue to bounded

This PR:

Changes Ambry server request queue to bounded
Rejects the response from NettyRequestResponseChannel immediately when queue is full

Codecov Report
Patch coverage has no change and project coverage change: -53.13% :warning:

Comparison is base (9c685c5) 72.62% compared to head (f410c38) 19.49%.

Additional details and impacted files
@@              Coverage Diff              @@
##             master    #2571       +/-   ##
=============================================
- Coverage     72.62%   19.49%   -53.13%
+ Complexity    11354     2725     -8629
=============================================
  Files           804      804
  Lines         64423    64439       +16
  Branches       7864     7865        +1
=============================================
- Hits          46785    12561    -34224
- Misses        15076    50698    +35622
+ Partials       2562     1180     -1382

Files Changed
Coverage Δ

...in/java/com/github/ambry/config/NetworkConfig.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...ava/com/github/ambry/cloud/AmbryCloudRequests.java
0.00% <ø> (ø)

.../main/java/com/github/ambry/cloud/VcrRequests.java
0.00% <ø> (-91.67%)
:arrow_down:

...rc/main/java/com/github/ambry/cloud/VcrServer.java
0.00% <0.00%> (-84.94%)
:arrow_down:

.../network/AdaptiveLifoCoDelNetworkRequestQueue.java
0.00% <0.00%> (ø)

.../github/ambry/network/FifoNetworkRequestQueue.java
0.00% <0.00%> (-96.97%)
:arrow_down:

...bry/network/NettyServerRequestResponseChannel.java
0.00% <0.00%> (-70.00%)
:arrow_down:

...hub/ambry/network/ServerRequestResponseHelper.java
0.00% <ø> (ø)

...ub/ambry/network/SocketRequestResponseChannel.java
0.00% <0.00%> (-88.58%)
:arrow_down:

...main/java/com/github/ambry/router/RouterUtils.java
0.00% <ø> (-83.53%)
:arrow_down:

... and 3 more

... and 583 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

authors: Arun-LinkedIn codecov-commenter

repo: linkedin/ambry


text:
DataTasks

Checklist

[x] The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
[x] Links to related issues (if applicable)
[x] Tests for the changes have been added/updated (if applicable)
[x] Docs related to the changes have been added/updated (if applicable)

Hey can you please add more details to this PR? "DataTasks" isn't very descriptive. Please detail what this is and why you're adding it. Thanks!

@portintegration Hi there! Thanks for the PR. Will you be continuing to update this?

@shirshanka Can we close this due to inactivity?
cc. @portintegration
We now have mainlined helm charts which should be able to aid you in your deployment to GKE. cc. @dexter-mh-lee who has worked on this.

Closing this due to inactivity and presence of helm charts.

authors: jjoyce0510 jplaisted portintegration shirshanka

repo: linkedin/datahub


text:
docs: Improve architecture docs

Checklist

[x] The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
[ ] Links to related issues (if applicable)
[ ] Tests for the changes have been added/updated (if applicable)
[x] Docs related to the changes have been added/updated (if applicable)

Adds more accessible architecture docs compared to the current versions. Moves the detailed dev-oriented content to a developer guide page.
Rendered versions:
https://github.com/shirshanka/datahub/blob/arch-docs/docs/architecture/architecture.md
https://github.com/shirshanka/datahub/blob/arch-docs/docs/architecture/metadata-ingestion.md
https://github.com/shirshanka/datahub/blob/arch-docs/docs/architecture/metadata-serving.md
https://github.com/shirshanka/datahub/blob/arch-docs/docs/how/build-metadata-service.md

Merging this in, because build failures are not related.


text:
bug(seedData): adds a key to the root user seed data and fixes corner case check for missing key aspects

Checklist

[X] The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
[X] Links to related issues (if applicable)
[X] Tests for the changes have been added/updated (if applicable)
[X] Docs related to the changes have been added/updated (if applicable)

Build failing due to rate exceeded 😞 I can try pushing out a merge commit to master to re-force an execution


text:
Include annotations along with method names to allow filtering

Since instrumentation allows filtering by annotation, it would be useful to include list of all annotations for each test method and the whole test class.
Also, in what format should the data be stored? CSV with different separators for columns and lists, or maybe JSON?

Any update on this? This would indeed be useful.

@sander-m, I've implemented it on my fork (https://github.com/kirillzh/dex-test-parser/commit/9b8d473d24a9f91dff099be835e2680733d015b8). I had to disable JUnit 3 tests though (I don't need them). Tests will be saved JSON format:
[
   {
      "class":"com.app.tests.SomeFeatureTests",
      "method":"fooTest",
      "annotations":[
         "com.app.annotations.Smoke",
         "org.junit.Ignore",
         "org.junit.Test"
      ]
   },
   {
      "class":"com.app.tests.SomeOtherFeatureTests",
      "method":"barTest",
      "annotations":[
         "com.app.annotations.Regression",
         "org.junit.Test"
      ]
   }
]

Sorry for not responding earlier....I'm not quite clear what the benefit of this would be. We do lots of filtering internally, but we just run the test anyway and let AndroidJUnitRunner decide to run or skip the test. The benefit of this approach is that the skipped tests will still show up in the JUnit test report as skipped, rather than missing entirely.

No problem!
So how do you guys group your test cases? For example if I categorize my test cases as smoke, regression, etc. or maybe by feature A, feature B, etc., how do I run only smoke tests, or only feature A tests?

We group our tests by package and run them that way (e.g. com.example.smoke.featureA, com.example.regression.featureB. Then if you wanted to run all the featureA tests, you'd just regex for .featureA., or similarly package=com.example.smoke and run all the matching tests individually.
I was thinking you could choose to run a specific test (e.g. -e class com.example.smoke.MyTest#foo) and also specify an annotation filter (e.g. -e annotation com.android.foo.MyAnnotation)
Now that I think about it, I'm not sure if that would actually work or not. I'd be hopeful that it does, and it won't trigger a classpath scan by AndroidJUnitRunner, but if that doesn't work, then I understand why this feature would be needed.

I see, com.example.smoke.featureA and com.example.regression.featureB is a pretty good idea, didn't think about it haha.
I group my tests by feature only though, so it's easier for me to convert test say from smoke to regression simply by changing annotation instead of moving it from one class to another.
And you're right, I could just run all tests with annotation filter, it won't run the tests without this annotation:
INSTRUMENTATION_RESULT: stream=

Time: 0

OK (0 tests)

INSTRUMENTATION_CODE: -1

But I guess I'd have to parse and ignore this test in reports somehow...

Thanks @kirillzh I will have a look at that branch.
Currently our tests use class-level annotations to group them by type (Unit/Integration/UI etc), and I plan to use this dex-parsing for sharding test runs with Firebase Test Lab(https://cloud.google.com/sdk/gcloud/reference/firebase/test/android/run), which doesn't take annotation filters.

It would be really nice to have annotations support. As mentioned, the Firebase Test Lab expects a list of tests to run.

I'm not opposed to adding that if it's useful. Do you all think it's a requirement to have it write the data to a file? If we only expose this through the Java/Kotlin api, then we don't need to worry about the file format.
I'm guessing you'll want it as a file though, if your test harness isn't written in a JVM language (for us, our test harness is a gradle plugin, so we don't even use the file output from this project).

I just checked with the Firebase team and they support filtering by annotations. It's just undocumented.

adb shell am instrument -w -e annotation com.android.foo.MyAnnotation

gets translated to something like:

--environment-variables annotation=com.android.foo.MyAnnotation

AndroidJUnitRunner
running subset of espresso tests

If we only expose this through the Java/Kotlin API

I think exposing via the API makes sense. It's not that difficult to create a wrapper jar which outputs in the desired format.

I found a use case. The default AndroidJUnitRunner only allows running a single annotation. If you want to run multiple annotations (SmallTest & LargeTest), then you'd have to write a custom test runner.
If the dex-test-parser API offered annotation support, then it'd be easy to build a list of tests using custom logic to mix and match instead of being limited by the test runner.

I believe I have this working locally for both JUnit 3 and JUnit 4. I'll put up a PR either tomorrow or sometime next week, after doing some more testing. I might implement #5 first, to have better regression coverage, because this is a fairly significant change.
One thing to note, gathering all this extra annotation information does have a performance overhead. I've been testing against an apk with ~5000 JUnit 4 test methods (I don't currently have a large scale JUnit 3 test apk to profile against). Prior to these annotation changes, dex-test-parser took ~300ms to process this apk. With annotation collection, it takes ~500ms. I'm assuming that 5k methods is on the high end of test apk sizes, so 500ms is not that bad of an absolute time, but I don't have many data points for how these times scale for others (especially JUnit 3 users).
I think this is probably fine, given the benefits of this feature, but just wanted to make sure it's called out here since I know I monitor my own build and test speeds very closely.

This is checked in and released in 1.1.0! 😄

Awesome. Thank you!!
On Thu, Jul 13, 2017, 6:50 PM Drew Hannay notifications@github.com wrote:

This is checked in and released in 1.1.0! 😄
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/linkedin/dex-test-parser/issues/1#issuecomment-315223155,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABHmQS-h5qpY6SBWnoDeA7cLB-cHuA0oks5sNp9QgaJpZM4NL87Q
.

authors: bootstraponline drewhannay kirillzh sander-m

repo: linkedin/dex-test-parser


text:
Moved AbstractJobLauncher.postProcessTaskStates to before commit

Signed-off-by: Yinan Li liyinan926@gmail.com

@zliu41 can you review?

Why put it before job commit? This was intended to be invoked after job committed successfully, e.g., publish job level metrics. If a job fails to commit, the metrics shouldn't be published

I actually have a use case in Lynda data ingestion: the data publisher needs to know the value of a metric. What's the side effect if the Kafka ingestion job reports metrics in case of commit failure?

In Kafka ingestion, postProcessTaskStates will create counters such as number of records pulled. Will these counters be published if the job commit fails? If not then it's fine. It doesn't make sense to publish the counter if the job actually didn't commit those records.

Makes sense. OK, I will try a different approach for the Lynda use case.

repo: linkedin/gobblin


text:
Fix documentation on this repo and integrate with main linkml repo

The README has us installing cruft via poetry - is this our preferred route?
This leads to issues like:

#28

We need to have one source of truth on how to set up a linkml project, and all docs should be integrated. We have the README here, the ICBO tutorial docs, and the docs on the main site

We now have a how-to:
https://linkml.io/linkml/howtos/linkml-project-cookiecutter.html
but there isn't a link from the README in this repo back to the how-to
Also it's not clear the how-to adds much beyond what is already in the README?

repo: linkml/linkml-project-cookiecutter


text:
Rename IsEquals to AreEqual

https://github.com/linksplatform/Collections.Methods/blob/c73ec9577e3aa58eea9ba615a534fe6eac13229b/Platform.Collections.Methods/GenericCollectionMethodsBase.cs#L18

Closed by https://github.com/linksplatform/Collections.Methods/commit/b5e94d31693e06091b10d3ce758cc9f2e2478fdd

license: Unlicense


text:
fix(config): make ctags and workspace opt overwriteable

This PR is just a proposal.
It's not that convenient that we "lock" some default options. For example, under my circumstance, I mainly use this pulgin for a meta-project that only consist of some sub-projects which is managed by VCS separately, and meta-project doesn't have any VCS folder. Without this patch, i can't properly gen one tagfile for the whole project since every  sub-project have a VCS folder.

I accept the proposal.
Thanks to your contributions! @KortanZ


text:
作者出一份中文版 wiki 吧

希望出一份中文版wiki

sorry, 写文档工作量太大


text:
fix: Ensure user linger is closed on EL10

Cause: There is an issue with loginctl on EL10 - doing cancel-linger
will leave the user session in the closing state.
Consequence: User sessions accumulate, and the test user cannot
be removed.
Fix: As suggested in the systemd issue, the fix is to shutdown and
restart systemd-logind in this situation.
Result: User cancel-linger works as expected.
Signed-off-by: Rich Megginson rmeggins@redhat.com

workaround for https://github.com/systemd/systemd/issues/26744

[citest]

repo: linux-system-roles/podman


text:
可以为getPostScriptForStartConversation增加注释吗？

getPostScriptForStartConversation有关response的handle case，可以提供注释吗？

其实里面有注释，用了 //
其他感觉顾名思义的，就没写，因为有些所谓注释就是把英文翻译成中文，好像没必要（没别的意思）
流程就是根据 AJAX 请求的不同状态，然后再根据 HTTP 状态码来判断正常处理还是报错，应该挺清晰的
你可以本地跑打个断点，或者输出下 ChatGPT 返回的数据，就一目了然了
或者看重说说哪里不清楚的

我想重构下代码的，因为里面出现了很多魔鬼数字，以及api经过了转换并不一定与openai的相兼容，但POST request部分，那些处理非200的response分支我没有遇到过，着实下不去手。

是的。还有dataArray.pop().substring(6)的6，这
conversationResponseDataString[0:1] == strconv.Itoa(4) || conversationResponseDataString[0:1] == strconv.Itoa(5) {
				statusCode, _ := strconv.Atoi(conversationResponseDataString[0:3])

4xx 5xx 其实是 HTTP 状态码，有报错就额外处理
substring(6) 就是把 "data: {ChatGPT 实际数据的}" 的"data: " 去掉，因为 API 返回 SSE 有额外的处理返回 "data: "
然后你引用那段就是取出 HTTP 状态码如果有错误（不是 200 就是错）就返回异常
这些是基础设施的代码，如果你重构这里提 PR 我是不合并的

authors: linweiyuan time-river

repo: linweiyuan/go-chatgpt-api


text:
Add BDE, BDE_repository and Landonline documentation

Closes #1
Closes #2
[ci skip]

I'll assume the information in this PR is correct and merge it. Feel free to point out any mistake whenever you'll have time to review.

Yup this PR is good. Thanks @strk

authors: palmerj strk


text:
全屏修改亮度问题

全屏模式调节视频亮度，退出全屏时亮度为视频调节的亮度，系统的亮度调节也改不了亮度了，看了Demo，也有这个问题，只有有视频播放的activity生命周期结束后才能恢复系统全局亮度，但系统的亮度调节无论怎么修改，亮度也不变化了。
荣耀V9
8.0.0

可以自定义，用你的代码替换修改亮度的代码。因为这部分代码是从头条中取得的，所以没必要修改。

多谢，下午试试！

退出全屏 亮度无法回到系统亮度

这个改的是app的亮度，你可以自定义复写onTouch函数，将修改亮度的代码替换成修改系统亮度。

authors: HLMODRIC chenka321 lipangit

repo: lipangit/JiaoZiVideoPlayer


text:
listener finish video

Hello, how to listener finish video?

extends  JCVideoPlayerStandard
Override
onComplete(){
super.onComplete();
//your logic
}

onSeekComplete onAutoComplete 没有看到onComplete？
4.6.2

authors: AkashiWen lipangit secfabregas0

repo: lipangit/JieCaoVideoPlayer


text:
gr.svg - flag lines are wrong

The blue area under the white cross should be without the white lines.
See https://en.wikipedia.org/wiki/Greece.
https://github.com/lipis/flag-icon-css/blob/master/flags/4x3/gr.svg

Can you expand on what exactly is the difference? I don't really see much when comparing the 4x3/gr.svg with the svg from wikipedia (converted to PNG below)
from this repo

from wikipedia

The only potential issue I see is a very thin blue line at the bottom end of the white cross.

It only seems to be on GitHub when rendering. If you downloaded the svg, it looks good. Issue will be closed for this reason. Sorry.

There might be some rounding issues that cause the thin lines depending on the SVG renderer and resolution.

repo: lipis/flag-icon-css


text:
Fix liqoctl install on AzureCNI

Description
This pr fixes the Liqo installation on AzureCNI clusters
How Has This Been Tested?

[x] on Azure

/test

/test

/test

/rebase test=true

/merge

repo: liqotech/liqo


text:
Adds management of extra inputs and outputs

Addresses #60 and #62

@lisad not complete yet, but it is at a place where your input will be helpful

@jeffkole I added a few comments, seems like the right direction

Goal for the employee pipeline is to have it fit all on one page.
Add additional pipelines that can show the complexities.

File with multiple kinds of events that are emitted as separate streams that are pushed to different phases (employee events -- promotion, pay raise, job change)
Traffic incidents or even bicycle and pedestrian counts
Retail events -- purchasing services or consumable things

authors: jeffkole lisad

repo: lisad/phaser


text:
listen1 pc版本和apk版本如何同步歌单？

如题。listen1上自己创建的歌单没有链接，不能再其他平台的Listen1导入

同样遇到这样的问题。

pc版歌单导出到本地，歌单文件用txt打开，内部文本复制进apk版导入

pc版歌单导入到本地，歌单文件用txt打开，内部文本复制进apk版导入

不行，这个方式不行。

@vt2744 的方法应该是可以的。不知道实际过程中遇到什么问题

歌曲太多，剪贴版放不到。什么时候apk加上gist导入吧


text:
Synchronous update

I've got a code like this:
updated(changedProperties) {
        if (changedProperties.has("value")) {
            this.doubledvalue = this.value * 2;
            this.requestUpdate();
        }
    }
}

I want to trigger an update of the template after (and only after) I change this.doubledvalue. It seems, using updated()  I update the template twice, asynchronously (update() as well is asynchronous). In my understanding internally lit-element might merge the update requests and perform just one, but also it might not (have I got it right?).
Is there a way to make sure no update is being performed before the change of this.doubledvalue?

updated() runs after an update, so any change of a reactive property or call to requestUpdate() will necessarily enqueue another asynchronous update. If you want to compute values before an update, you have to override update() instead, and do the work before super(...), like:
update(changedProperties) {
  if (changedProperties.has('value')) {
    this.doubledvalue = this.value * 2;
  }
  super(changedProperties);
}

Looks like this approach needs to be documented at https://lit-element.polymer-project.org/guide/lifecycle#update
BTW, the code snippet above should be changed to use super.update instead of super.

I could try it then, all the discussions here about synchronous update (https://github.com/Polymer/lit-element/issues/643, https://github.com/Polymer/lit-element/issues/365, and few others) maybe have misled me.

@arthurevans It does look like we need to update the lifecycle docs to include info about when an update will be triggered. Specifically, we should discuss that derived properties can be computed in update before calling super and this will not trigger an additional update. However, setting properties after super.update or in firstUpdated/updated will trigger an additional update.  Maybe this is documented somewhere but it seems reasonable to include in the lifecycle section.

At some point (in #365) there were some mentions of a custom scheduler for chunked rendering. @sorvell could you elaborate a bit on that or give a basic example? I'm interested in rendering a large data array (stored as a property) as rows in a table and it seems that the delay between the DOM rendering in memory and the actual painting is several (5-10) seconds. The whole table is dumped at once on the screen after this delay. Any idea if it's possible to render each array item with requestAnimationFrame or in some other progressive manner? Thanks.

@hadriann you might look at lit-virtualizer (https://github.com/PolymerLabs/uni-virtualizer/tree/master/packages/lit-virtualizer). It manages a virtual list, so it's not just chunked rendering, but it's designed for problems like the one you describe.

@arthurevans thanks, that's an interesting project in and of itself - however it seems too much for what I need. What I'm trying to do is find a pattern that I can apply, rather than another library. Or, ideally, some built-in method to achieve that. I remember that the old Polymer library had a nice way to do just that with dom-repeat. From the old docs:

By default, dom-repeat tries to render all of the list items at once. If you try to use dom-repeat to render a very large list of items, the UI may freeze while it's rendering the list. If you encounter this problem, enable "chunked" rendering by setting initialCount. In chunked mode, dom-repeat renders initialCount items at first, then renders the rest of the items incrementally one chunk per animation frame. This lets the UI thread handle user input between chunks. You can keep track of how many items have been rendered with the renderedItemCount read-only property.
dom-repeat adjusts the number of items rendered in each chunk to try and maintain a target framerate. You can further tune rendering by setting targetFramerate.

That would be exactly what I need with lit-html and lit-element.

@hadriann lit-virtualizer mostly is that for LitElement. We've decided to factor things to keep the core as small as possible w/ no keyed repeat at all. Then add keyed repeat with the repeat() directive, and for most other things jump straight to virtualization which addresses large data sets lists in a number of ways.
You could definitely write a directive that schedules slices of a list to render over time like dom-repeat. You can look at the asyncAppend directive which has most of what's needed, but renders each element as soon as it's available.

@justinfagnani thanks, I managed to use asyncAppend to render each array item with a promisified requestAnimationFrame in the generator. The only caveat is that if the data array is a LitElement property it keeps getting re-rendered when other properties change (even if the array itself doesn't change). The solution was to make use of the guard directive as well, and it seems ok so far.

Closing as these use cases should be covered by willUpdate and scheduleUpdate which are documented here: https://lit.dev/docs/components/lifecycle/#reactive-update-cycle

authors: antonioaltamura arthurevans hadriann justinfagnani sorvell web-padawan

repo: lit/lit-element


text:
Autosave bug

Hi
(should I post this here or in the plugins page?)

for me, 'autosaveonfocuslost' plugin doesn't work.
'autosave' plugin works, but if change focus before autosaving, it doesn't autosave anymore until another change in the code, even after refocus on tab.

I don't understand, do you mean my steps for unfocusing the tab? just by changing the tab or clicking on the left pane items and so on.

The focus the plugin works on, is the window focus, not the tab focus.
I guess it could be improved to handle that too...

The problem is that even when the tab returns to focus, the autosave doesn't work until the next change, as if it forgot that the tab remained unsaved. perhaps each tab could have some 'unsaved flag' so that the autosave plugin saves tabs with this flag when focus is lost or refocused or the app is closed.

It's because the save command was sent to the tab that was selected when the timeout expired. So yeah, it's just that the plugin should keep track of which doc to save.

And it would have been better to have the option to save unsaved tabs when closing the tab or application, instead of the confirmation dialog for closing unsaved tabs.

Yeah I guess that could be improved. If you open an issue about it in the main repo, we'll keep track of that.

The focus the plugin works on, is the window focus, not the tab focus.
I guess it could be improved to handle that too...

ok, sorry, I misunderstood, and it's clear in the plugin description.

Yeah I guess that could be improved. If you open an issue about it in the main repo, we'll keep track of that.

thanks again, and can you re-transfer it? :)

ok, sorry, I misunderstood, and it's clear in the plugin description.

No worries. The idea of saving on tab change could be implemented too.

Yeah I guess that could be improved. If you open an issue about it in the main repo, we'll keep track of that.

thanks again, and can you re-transfer it? :)

Might be better to create a new issue about it to avoid confusion, and to keep this here as a feature request about autosaveonfocuslost as well as bug report about autosave.

Hi.
autosaveonfocuslost doesn't work for me, even if I change window focus.
I'm running on Hyprland wm.

It's possible that Hyprland doesn't let the window know that it lost focus.
Try running Lite XL in full Wayland mode like this: SDL_VIDEODRIVER=wayland lite-xl.

authors: BartolomeyKant Guldoman ravaq

repo: lite-xl/lite-xl-plugins


text:
Character misalignment in calendar[LVGL_V6.0]

Is v6.0.1 a solution to this problem?
I haven't had a chance to try it out yet.
Are there any plans to update lv_arduino recently?
Thank you

Please fill out the bug template, either here or on the forum. With the information you've described I don't see any issue... the numbers are all centered if you draw a line down the center. I think the behavior you've described is intentional.


text:
Set up calendar prepends on date fields (and clocks on time fields.)

Also tweaked discount form to make availability a little more obvious.
Resolved #491.

This'll need to be fixed

authors: harrislapiroff melinath

repo: littleweaver/django-brambling


text:
Is it possible to prevent activity to finish while scroll up in recyclerview?

Hello
I am using swipe back activity in one of my project activity. My activity layout contains recyclerview and other components as well. So the problem is when I scroll up my recyclerview items then activity get finished.
So is there any way to prevent activity to finish while recyclerview is visible ?

Add || child instanceof RecyclerView in the if-clause in line 217 of SwipeBackLayout and the RecyclerView will be scrollable like the ListView, WebView ... . You also need to add the recyclerview support library as dependency to the build.gradle file of the library.

OK, thanks for your comments.

it not working ,
I have a hierarchy like this
SwipeBackLayout     FrameLayout       ConstraintLayout             RecyclerView

I solved by adding a scroll listener.
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
int firstVisibleItem = layoutManager.findFirstCompletelyVisibleItemPosition();
if (firstVisibleItem == 0) {
setEnableSwipe(true);
} else {
setEnableSwipe(false);
}
}
});
I don't know if this is the best solution. But it works  :)

authors: 4qn VaseemSathar liuguangqiang ronakinheritx svendroid

repo: liuguangqiang/SwipeBack


text:
About - LiuHouzhi的博客

https://liuhouzhi23.today/about/?
做最好的自己.

测试评论功能

Test

authors: KyotooToday liuhouzhi


text:
markdown-plugin 1.0 包没法 down 下来

markdown-plugin 1.0 包没法 down 下来

方便说一下您的使用方式么，是另外的项目依赖这个包无法引入，还是这个工程down下来之后引入有问题？

<repositories>
    <repository>
        <id>yihui-maven-repo</id>
        <url>https://raw.githubusercontent.com/liuyueyi/maven-repository/master/repository</url>
    </repository>
</repositories>

<dependency>
    <groupId>com.github.hui.media</groupId>
    <artifactId>markdown-plugin</artifactId>
    <version>1.0</version>
</dependency>

添加源之后，试一下能下这个包么

repo: liuyueyi/quick-media


text:
Toolbar refinements, neutral colour palette, modal tidy-up, new project templates grid, new welcome dialog

What type of PR is this? (check all applicable)

[ ] ✨ Feature
[ ] 🐛 Bug Fix
[ ] 📝 Documentation Update
[x] 🎨 Style
[ ] ♻ Code Refactor
[ ] 🔥 Performance Improvements
[ ] ✅ Test
[ ] 🤖 Build
[ ] 🔁 CI
[ ] 📦 Chore (Release)
[ ] ⏩ Revert

Description
Ok, another go at a PR!
Refines toolbar, particularly spacing of top toolbar buttons, cleaner language tabs
Implements a more neutral colour scheme on dark mode
Cleaner modals without redundant inner container
Completely subjective changes, but I made these amends for myself and thought I would submit for consideration if you preferred this scheme too :)
No bad feelings at all if you'd prefer to tackle theming differently. Would love to collaborate @hatemhosny!
Related Tickets & Documents

Mobile & Desktop Screenshots/Recordings

Added tests?

[ ] 👍 yes
[x] 🙅 no, because they aren't needed
[ ] 🙋 no, because I need help

Added to documentations?

[ ] 📓 docs (./docs)
[ ] 📕 storybook (./storybook)
[ ] 📜 README.md
[x] 🙅 no documentation needed

[optional] Are there any post-deployment tasks we need to perform?
[optional] What gif best describes this PR or how it makes you feel?

https://github.com/live-codes/livecodes/assets/6561655/1dd90996-e30f-4e19-be8c-cac13a30f0dd
@hatemhosny Templates grid proposal

Updated welcome dialog option here too, can still definitely be much better but think this is a nicer first impression already! Would love your thoughts/feedback

Nice!
This is starting to look great. It does need some refinements, but it is very elegant indeed.
Let's see where this goes.
To be clear, I do not promise to accept merging these changes. However, I like the exploration, specially the changes in the welcome screen. I hope you are also enjoying that. I see you are already getting familiar with the codebase and how things are organized.
I also see this as a nice exercise for planning about custom themes and where to allow customizations.
I would like to know your views.

I have also enabled preview deploys by Netlify, since Cloudflare preview deploys did not work from forks.
https://github.com/live-codes/livecodes/pull/418#issuecomment-1684805796

by the way, you may want to run npm run fix to fix lint errors (prettier, eslint & stylelint) and commit before you push your changes to fix failing tests

hi @adamgreenough
I'm sorry, I've been busy the past period. Also there were lots of changes happening in LiveCodes.
However, I have managed to implement your suggestion about editor themes and it is planned to be live in the next release. I did use the themes you suggested. Thank you 💯
You may have a preview here: https://next.livecodes.io/?screen=editor-settings
Regarding changes to app design, I do plan to implement the ability to have multiple app themes (each with light/dark modes). There can be multiple themes for users to select from or they can even supply their own custom theme.
If you are still interested I would really value your contribution in helping to implement this. Please let me know if you are in, then I would open a new issue to discuss implementation details there.
have a nice day :)

authors: adamgreenough hatemhosny

repo: live-codes/livecodes


text:
🛑 lesta.ru is down

In b9825ef, lesta.ru (https://lesta.ru) was down:

HTTP code: 500
Response time: 4080 ms

Resolved: lesta.ru is back up in 1b83492.


text:
Add table view on Hub/Secrets

:green_heart: :blue_heart: :purple_heart: :yellow_heart: :heart:

authors: josevalim paulo-valim

repo: livebook-dev/livebook


text:
Stack too deep: Error when running bundle exec rails c in app including draftsman

Hey @chrisdpeters, I'm not sure how to fix this one, and thought you could help.
My application includes the draftsman gem, and I'm running Bundler version 1.9.9.  When I run bundle exec rails c in my application, I get the following error:
Bundler is using a binstub that was created for a different gem.
This is deprecated, in future versions you may need to `bundle binstub railties` to work around a system/bundle conflict.

However, this shows up thousands of times, until I eventually get a "stack too deep" error, and the rails console never launches:
<path to rbenv>/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/spec_set.rb:111:in `each': stack level too deep (SystemStackError)
	from <path to rbenv>/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/spec_set.rb:111:in `find'
	from <path to rbenv>/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/spec_set.rb:111:in `sorted'
	from <path to rbenv>/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/rubygems_integration.rb:315:in `find'
	from <path to rbenv>/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/rubygems_integration.rb:315:in `block in replace_bin_path'
	from <local path to draftsman>/draftsman/bin/rails:16:in `<top (required)>'
	from <local path to draftsman>/draftsman/bin/rails:16:in `load'
	from <local path to draftsman>/draftsman/bin/rails:16:in `<top (required)>'
	from <local path to draftsman>/draftsman/bin/rails:16:in `load'
	 ... 10065 levels...
	from <local path to draftsman>/draftsman/bin/rails:16:in `load'
	from <local path to draftsman>/draftsman/bin/rails:16:in `<top (required)>'
	from <path to rbenv>/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/bin/rails:23:in `load'
	from <path to rbenv>/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/bin/rails:23:in `<main>'

I can run rails c locally just fine, but our staging and production environments require calling bundle exec, so they fail when trying to run.  I'm a little out of my depth here, and not quite sure how these binstubs are used.  This may fail for you too, on Bundler 1.9.9.  Not sure if something changed in that release.
Thanks!

Tagging @glosie -- he's interested in this fix as well.

I think I should probably just remove the bin folder altogether. I took a look at some other gems' sources, and I have yet to see binstubs included with them.

@npafundi @glosie Can you give that a try and see if it alleviates the issue?

Thanks for the quick fix @chrisdpeters!
The recursive warnings are gone, and the rails console loads properly.  I do still get the original warning, but only once:
Bundler is using a binstub that was created for a different gem.
This is deprecated, in future versions you may need to `bundle binstub draftsman` to work around a system/bundle conflict.

At this point, it's no big deal.

Is it in a Rails app?
Maybe look at the solution proposed here?
http://stackoverflow.com/a/23658355/175981

authors: chrisdpeters npafundi

repo: liveeditor/draftsman


text:
怎么做出最左侧的是斜线表头？

例如这个效果：https://blog.csdn.net/qq_42006353/article/details/84135914

@lclovingness 他不是给你代码了吗  你就想这样写啊

authors: lclovingness livelyPeng

repo: livelyPeng/pl-table


text:
Add SRT Ingest URL to Dashboard

We now have SRT ingest! We should include the SRT ingest URL on the dashboard.
SRT URLs look like this:
srt://rtmp.livepeer.com:2935?streamid={stream-key}
The stream key field should be auto-populated with the stream key. The stream key should be hidden on the dashboard view, as we do with the playback URL. However, when the copy button is clicked the full URL is used.
Like this:

Tooltip should read:

SRT ingest is currently in beta. Ensure that your encoder and player is compatible with SRT.

How to get this port number? @victorges @pglowacky

@FullStackTiger Port number should stay the same for all ingest URLs, no matter what the stream key is.

authors: FullStackTiger pglowacky

repo: livepeer/livepeer-com


text:
Show round number  with txn reward history

What's the problem? (required)
On a transcoder's transaction history page, we can see when they call reward on a round. However, it's not as straightforward to determine which round that call applies to. For example, some days reward is called twice, some days are skipped, etc. This may be due to skew, but it's hard to tell. Being able to see the round number along with the reward call would help when gauging a transcoder's reliability.
What's the current behavior? (required)
No round number is shown along with the reward transaction.

Describe a possible solution you've considered (optional)
Change the message to Claimed inflationary token reward for round <N>

The new explorer displays the round number that a transaction occurred in in the history tab.

repo: livepeer/livepeerjs


text:
what's the purpose of this projet ?

Could you translate the description for non chinese speaking ?
thanks !

MeepoPs == Socket services！
MeepoPs can easily build chat, games, video streaming media and so on.
MeepoPs listen 80  is like nginx, apache。

authors: lixuancn pitpit

repo: lixuancn/MeepoPS

license: WTFPL


text:
Create abstract factory for AttributeCodes

In addition to \LizardsAndPumpkins\Product\AttributeCode::fromString($code), add methods for specific attributes like \LizardsAndPumpkins\Product\AttributeCode::price().
These new methods will return the specific attributes. Reference Issue #365

Shouldn't it be implementation specific? I can imagine catalogs which have no prices, even easier no stocks.

authors: Vinai tim-bezhashvyly

repo: lizards-and-pumpkins/catalog


text:
Consider reversing date ordering

I propose reversing the year sorting for each section, starting with most recent and then going back.

Fixed with https://github.com/lizmat/App-Raku-Log/commit/b500b9cad201f145e5db10d4f888cd296a1c06b6 and already put live

authors: coke lizmat

repo: lizmat/App-Raku-Log


text:
Add option to choose alternative floating flags for XHFW

There're bugs with an old floating flag as it's now official android intent flag. So let's make it customizable for the new XHFW3 mod etc.

Thanks


text:
fix(text): Edit grammar in var autoresponder

To be honest I'm not sure what semantic commit type this falls under.

thanks :)

authors: ljosberinn ronvoluted

repo: ljosberinn/webdev-support-bot


text:
fixed parsing of files where there are commas embedded in ""

for Rick's new data file

fixed

fixed

repo: ljramones/trips


text:
中文数据集复现配置问题

您好，我想复现一下中文MSRA、OntoNotes 4.0和Weibo数据集上结果，能否提供一下相关的config文件，谢谢。
这是我的邮箱：947764325@qq.com

大佬，我目前用自己配置的参数在MSRA、OntoNotes 4.0和Weibo上的结果不是很好，应该是某些参数没配好，可否麻烦共享一下相关的配置，不胜感激。947764325@qq.com

邮件已发送，请注意查收

您好，我想复现一下中文MSRA、OntoNotes 4.0和Weibo数据集上结果，能否提供一下相关的config文件，谢谢。
这是我的邮箱：15574364821@163.com

您好，我想复现一下中文MSRA、OntoNotes 4.0和weibo数据集上结果，使用RESUME的配置效果不佳，能否提供一下相关的config文件，谢谢。
这是我的邮箱：minskiter@qq.com

您好，我想复现一下中文MSRA、OntoNotes 4.0和Weibo数据集上结果，能否提供一下相关的config文件，谢谢。 这是我的邮箱：947764325@qq.com
可以发给我一下中文MSRA、OntoNotes 4.0和Weibo数据集相关的config文件，想要复现一下，谢谢。
这是我的邮箱：752040517@qq.com


text:
[Request] Evernus

https://github.com/slysmoke/evernus Up to date fork of evernus, eve market software with analysis
https://github.com/slysmoke/evernus/releases/download/V4.0/Evernus-4.0-win64.zip portable zip

Thanks for the suggestion @superusercode! I'll take a look at adding this.
Adding the forum topic for my reference (issues are closed): https://forums.eveonline.com/t/evernus-3-8-release-the-ultimate-market-tool/6031/775

Evernus does not have a portable release. Both .exe files linked on the release page start a custom installer.
Happy to revisit this if Evernus adds a portable version.

authors: lkhrs superusercode

repo: lkhrs/eve-tools


text:
🛑 신세계 프라퍼티 www.shinsegaeproperty.com is down

In 1a8e715, 신세계 프라퍼티 www.shinsegaeproperty.com (http://www.shinsegaeproperty.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 신세계 프라퍼티 www.shinsegaeproperty.com is back up in 869df80 after 3 minutes.

repo: lksjames/monitoring


text:
cand[-1] in get_filtered_cands of attack_manager.py may cause error

https://github.com/llm-attacks/llm-attacks/blob/355b2ad245f8723b0f78e04d421eb8d13c90def8/llm_attacks/base/attack_manager.py#L622-L638
This means that if control_cand.shape[0] is 1 and not decoded_str != curr_control and len(worker.tokenizer(decoded_str, add_special_tokens=False).input_ids) == len(control_cand[i]),
count+=1 wiil be execute. However cands will be [] and below will occur:
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
Cell In[47], line 1
----> 1 attack.run(
      2     n_steps=params.n_steps,
      3     batch_size=params.batch_size,
      4     topk=params.topk,
      5     temp=params.temp,
      6     target_weight=params.target_weight,
      7     control_weight=params.control_weight,
      8     test_steps=getattr(params, 'test_steps', 1),
      9     anneal=params.anneal,
     10     incr_control=params.incr_control,
     11     stop_on_success=params.stop_on_success,
     12     verbose=params.verbose,
     13     filter_cand=params.filter_cand,
     14     allow_non_ascii=params.allow_non_ascii,
     15 )

File /kewei-ai/36 Universal and Transferable Adversarial Attacks on Aligned Language Models/kewei-attack/attack_manager.py:1610, in IndividualPromptAttack.run(self, n_steps, batch_size, topk, temp, allow_non_ascii, target_weight, control_weight, anneal, test_steps, incr_control, stop_on_success, verbose, filter_cand)
   1595     attack = self.managers['MPA'](
   1596         self.goals[i:i+1],
   1597         self.targets[i:i+1],
   (...)
   1606         **self.mpa_kewargs
   1607     )
   1609     # personal prompt attack
-> 1610     attack.run(
   1611         n_steps=n_steps,
   1612         batch_size=batch_size,
   1613         topk=topk,
   1614         temp=temp,
   1615         allow_non_ascii=allow_non_ascii,
   1616         target_weight=target_weight,
   1617         control_weight=control_weight,
   1618         anneal=anneal,
   1619         anneal_from=0,
   1620         prev_loss=np.infty,
   1621         stop_on_success=stop_inner_on_success,
   1622         test_steps=test_steps,
   1623         log_first=True,
   1624         filter_cand=filter_cand,
   1625         verbose=verbose
   1626     )
   1628 return self.control, n_steps

File /kewei-ai/36 Universal and Transferable Adversarial Attacks on Aligned Language Models/kewei-attack/attack_manager.py:1018, in MultiPromptAttack.run(self, n_steps, batch_size, topk, temp, allow_non_ascii, target_weight, control_weight, anneal, anneal_from, prev_loss, stop_on_success, test_steps, log_first, filter_cand, verbose)
   1016 start = time.time()
   1017 torch.cuda.empty_cache()
-> 1018 control, loss = self.step(
   1019     batch_size=batch_size,
   1020     topk=topk,
   1021     temp=temp,
   1022     allow_non_ascii=allow_non_ascii,
   1023     target_weight=target_weight_fn(i),
   1024     control_weight=control_weight_fn(i),
   1025     filter_cand=filter_cand,
   1026     verbose=verbose
   1027 )
   1028 runtime = time.time() - start
   1029 keep_control = True if not anneal else P(prev_loss, loss, i+anneal_from)

File /kewei-ai/36 Universal and Transferable Adversarial Attacks on Aligned Language Models/kewei-attack/gcg_attack.py:190, in GCGMultiPromptAttack.step(self, batch_size, topk, temp, allow_non_ascii, target_weight, control_weight, verbose, opt_only, filter_cand)
    188     control_cand = self.prompts[j].sample_control(grad, batch_size, topk, temp, allow_non_ascii)
    189     print("kewei:",control_cand)
--> 190     control_cands.append(self.get_filtered_cands(j, control_cand, filter_cand=filter_cand, curr_control=self.control_str))
    191 del grad, control_cand ; gc.collect()
    193 # Search

File /kewei-ai/36 Universal and Transferable Adversarial Attacks on Aligned Language Models/kewei-attack/attack_manager.py:952, in MultiPromptAttack.get_filtered_cands(self, worker_index, control_cand, filter_cand, curr_control)
    950 print(control_cand.shape[0],"get_filter_cands", cands)
    951 if filter_cand:
--> 952     cands = cands + [cands[-1]] * (len(control_cand) - len(cands))

    955 return cands

IndexError: list index out of range

I ran into this issue earlier, and solved it by checking the consistency of tokenizer's decoding/encoding; e.g. x_str vs. encode(decode(x_str)). This was mentioned by the authors in one of the other issues.
decoded_str = worker.tokenizer.decode(control_cand[i], skip_special_tokens=True,
 clean_up_tokenization_spaces = False)
# print ("attack_manager.py line 631: control_cand[i] - ", control_cand[i])
# print ("attack_manager.py line 632: decoded_str - ", decoded_str)
# print ("attack_manager.py line 633: encoded - ", worker.tokenizer(decoded_str, add_special_tokens=False))

^ worked for me, by adding to get_filtered_cands function

@hoy021  Thanks for your help. However:

I changed as it shows above, and this still occurs
attack_manager.py:962, in MultiPromptAttack.get_filtered_cands(self, worker_index, control_cand, filter_cand, curr_control)
    960 print(control_cand.shape[0],"get_filter_cands", cands)
    961 if filter_cand:
--> 962     cands = cands + [cands[-1]] * (len(control_cand) - len(cands))
    965 return cands

IndexError: list index out of range

@hoy021  Besides, I found that I can't use a way to make encoding and decoding match:

Hey @Ethan-Chen-plus what you have found is the issue we were faced with for a while. It is basically that tokenizer is not invertible (which is not the purpose it is designed for) so that is why in the code we need to do re-tokenization to make sure the length does not change.
If you aren't able to get any string that has a fixed length and run into a runtime error, I would suggest to 1) increase the size of the batch and 2) try to directly truncate the strings so after tokenization it has the same length.
The setup in our code is shown to work when we run the experiment but it could be that under random conditions they will run into some edge cases like you are showing above.

I ran into this issue earlier, and solved it by checking the consistency of tokenizer's decoding/encoding; e.g. x_str vs. encode(decode(x_str)). This was mentioned by the authors in one of the other issues.
decoded_str = worker.tokenizer.decode(control_cand[i], skip_special_tokens=True,
 clean_up_tokenization_spaces = False)
# print ("attack_manager.py line 631: control_cand[i] - ", control_cand[i])
# print ("attack_manager.py line 632: decoded_str - ", decoded_str)
# print ("attack_manager.py line 633: encoded - ", worker.tokenizer(decoded_str, add_special_tokens=False))

^ worked for me, by adding to get_filtered_cands function

I faced this issue today and it was solved by adding this parameter(clean_up_tokenization_spaces = False), thanks!!!

clean_up_tokenization_spaces = False

Same here! Worked for llama3.1, for which i changed scripts inside the fastchat libraries to make it compatible

repo: llm-attacks/llm-attacks


text:
After today's update (0.202.14 Hearth & Home), my world will not load

Discussed in https://github.com/lloesche/valheim-server-docker/discussions/393

Originally posted by Joeaculberson September 16, 2021
I have a very basic setup on a linux server with pretty much all default settings. This is my first update since I started using this container.
When I go to login into my world, the game drops me in a completely new world. I've tried coping the backup files into /etc/valheim/worlds, but it just overwrites them when I join the world (except the .old files). It's worth mentioning if I copy these files on to my local machine into C:\Users<username>\AppData\LocalLow\IronGate\Valheim\worlds, everything loads fine.
If anyone knows how to fix this, I'd really appreciate it. Thanks!

It's working for me, so my guess is that you're running into the outdated version bug. This docker is out of date on the official docker site. You need to use this now instead:
version: "3"
services:
valheim-server:
image: ghcr.io/lloesche/valheim-server:latest

How do I update to the latest version on linux? Will have I have to delete my current container and create a new one? If so, could you walk me through the deletion process?

How do I update to the latest version on linux?

Yeah with docker stuff you're supposed to have your important data safely retained outside of the container with the config file. Then, to update the container, you actually nuke the container and remake it. On my Synology NAS I do this according to the guides I read online:
docker-compose -f /volume1/docker/docker-compose.yml pull
docker-compose -f /volume1/docker/docker-compose.yml up -d
And that yml file I made by hand using the instructions in the valheim-server-docker github readme. In it, I had to change the container location from the official docker one to ghcr.io/lloesche/valheim-server:latest because apparently that's where the creator is updating it now.

I don't think this has anything to do with the age of the container. I haven't played the game or updated the container on our own server in quite a while (as in since May or so) and just tested it and was able to just log in and it loaded our old world.
CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS              PORTS                                                NAMES
0f8a154bbe38        lloesche/valheim-server:dev   "/usr/local/sbin/b..."   3 months ago        Up 3 months         80/tcp, 9001/tcp, 0.0.0.0:2456-2458->2456-2458/udp   valheim-server.service

REPOSITORY                                    TAG                 IMAGE ID            CREATED             SIZE
docker.io/lloesche/valheim-server             dev                 a9582bfd3a6d        4 months ago        509 MB

The container will update valheim-server to the latest version automatically and there haven't been any substantial changes to the container since Jun 10th 2021. So whatever the reason it's loading into a new world the container age shouldn't be the issue.

@ibex-are-goats good catch! I wasn't even aware Dockerhub isn't auto building the container anymore. When I log in they tell me that auto builds are only available to paying customers now. Since we've always built for both Dockerhub and Github container registry I'll just update all the docs to reference the Github image. Maybe I can set up a second workflow that'll push the image from Github  to Dockerhub. Either way it's not related to this issue.

I was able to get my server back up and running. What I ended up doing was nuking my docker container and changing the last line of my docker run command to ghcr.io/lloesche/valheim-server:latest. Not sure if was related, but redoing everything worked. I'll keep an eye on it for the next update. Here are the commands I ran to redo everything:
sudo docker rm /valheim-server
sudo docker run -d
--name valheim-server
--cap-add=sys_nice
--stop-timeout 120
-p 2456-2457:2456-2457/udp
-v $HOME/valheim-server/config:/config
-v $HOME/valheim-server/data:/opt/valheim
-e SERVER_NAME="<server_name>"
-e WORLD_NAME="<world_name>"
-e SERVER_PASS=""
-e ADMINLIST_IDS="76561198037107426 76561198015387437"
-e BACKUPS_MAX_AGE="7"
-e DISCORD_WEBHOOK=""
-e VALHEIM_LOG_FILTER_CONTAINS_Spawned="Got character ZDOID from"
-e ON_VALHEIM_LOG_FILTER_CONTAINS_Spawned='{ read l; l=${l//ZDOID from /}; l=${l// :/}; msg="Player $l spawned into the world"; curl -sfSL -X POST -H "Content-Type: application/json" -d "{"username":"Valheim","content":"$msg"}" "$DISCORD_WEBHOOK"; }'
ghcr.io/lloesche/valheim-server:latest
I got:
docker: Error response from daemon: driver failed programming external connectivity on endpoint valheim-server (5d6762b7216433866cf2b8ac929af12855b5606dd53dcac14c6563900447d90b): Error starting userland proxy: listen udp 0.0.0.0:2457: bind: address already in use.
So I did this to resolve the issue:
sudo lsof -i -P -n | grep
sudo kill -9 <process_id>
I also had to do:
ip link delete docker0
sudo systemctl restart docker
Only then was I able to run the docker run command.
Not sure if any of this was entirely necessary, but it works and maybe it'll help someone else down the road. I appreciate the responses!

The bind: address already in use would mean that there was still another valheim-server running - or at least something was bound on udp port 2457 which would very likely be valheim-server. Did you check with docker ps if the previous container was no longer running? The kill -9 might have stopped it. If it wasn't running and it still threw that bind message it's likely that Docker's networking got out of whack. Maybe the old userland proxy was still running and occupying that port.
That said none of these networking issues should be related to the server starting up with an empty world. Also none of the steps you described gives me any idea of what might have been the issue. As long as the WORLD_NAME corresponds to the .db file in the config directory the server should load up that world. Also it is important not to rename those files. We had reports where users tried to rename the .db file as well as change the WORLD_NAME to the same value and that didn't work. I believe the issue was that Valheim also stored that name inside of those files not just in the file name, but I don't remember the details.
Anyhow I'm glad it worked out!

authors: Joeaculberson ibex-are-goats lloesche

repo: lloesche/valheim-server-docker


text:
No android version.

An android version of the corruptor would be a good thing.

i'm not sure if that's possible right now, seeing as the project relies on Microsoft .NET and seems to be built exclusively for windows. An android version may require a complete rewrite depending on how heavily the current version relies on Windows-only tools.

authors: MakeSureDudeDies TheoCGaming


text:
Fix doc backslash

The docstring with equations in needed to be marked as raw strings, due to the presence of backslashes.
I verified this works by manually creating the documentation with Sphinx.

Pull Request Test Coverage Report for Build 59

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

Totals

Change from base Build 56:
0.0%

Covered Lines:
1902

Relevant Lines:
2054

💛  - Coveralls

authors: coveralls jlmelville

repo: lmcinnes/pynndescent


text:
Added uniqueness flag to intersect1d

Given the nature of the two arrays, this might offer consistently faster intersection computation.

Hello @SkBlaz! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file umap/plot.py:

Line 209:89: E501 line too long (106 > 88 characters)

Thanks.

authors: SkBlaz lmcinnes pep8speaks

repo: lmcinnes/umap


text:
Buyer and Seller both mails going to seller account

As title says, both mails are going to seller. Even when I resend receipt from my store, it comes to my own mail address.

Hello,
That is expected and should happen  only in the  "Test mode".

Got it, thanks!

authors: brankoconjic mlbrothers

repo: lmsqueezy/nextjs-billing


text:
Replace entrypoint with functionality that creates a wallet instead

Replace entrypoint with functionality that creates a wallet instead.

TODO: Add functionality that adds a seed file

In testing.
Also want to add restore functionality

repo: lncm/joinmarket


text:
Offers: send invoice request

This PR adds the step of the offers flow where we send the invoice request to the offer creator.
This relies on the addition of this offers RPC call to our ldk-sample fork, if anyone would like to take a look: https://github.com/lndk-org/ldk-sample/pull/6
I left a couple of high level questions inline as well.

Oi, now that I'm working on waiting for the invoice to be returned... I think I coded things a bit backwards here. Feel free to hold off on review while I rethink and rework this a bit. :)

repo: lndk-org/lndk


text:
Promblems about FPGA source occupancy

Is there any files allow me to check my FPGA source occupancy quickly?

@Mistal1999 Can  you elaborate your question? I did not get the pain point here.
@ganeshgore Do you have any insights?

How many LEs and memory are used in FPGA is very important.  I can quickly check related information in  software like vivado, is there such a file in OpenFPGA?

repo: lnis-uofu/OpenFPGA


text:
added basic tests for times plugin

As proposed in Issue #75

Thanks!

authors: loadfive mjastrzebowski


text:
build-clients: run init commands for contracts

Follow-up to #73
If environments.toml specifies an init script for a contract, then we need to run that script, as the default account, when the contract is first deployed. If the contract has already been deployed (that is, if we already have an alias saved), then we should assume that the init script was already run.
Some open design considerations:

Maybe we should have a way to run the init script for a specific contract, so people can retry that part of the build run if their script is malformed? Not sure what this would look like. As of #58, you can't run build-clients directly, it gets run at the end of build. So would "just run init for contract-a" functionality get added to build? Not sure. Maybe this is too complicated, and we should just tell people to remove the alias for the problem contract, and re-run loam build, which is otherwise idempotent.
Maybe we should continue with the rest of the build_clients logic, even if one of these fails, and mention how to re-run just this init logic, based on whatever we decide above?

For 1: I have 2 ideas, first is a --force-init <name> arg to build. The other is have a separate command, loam-init <name>
For 2: We could add a  --continue-on-error    Continue building and initializing other contracts if one fails command. Perhaps this defaults to true. Then when this is true we will collect the names of the contracts whose initialization failed and list the appropriate command to rebuild (ie loam-init <name>) depending on what we decide for 1. (or we could implement both options in 1)

Since the whole thing is more-or-less idempotent, I think maybe we just do 2, and mention to re-run the whole loam build process if one of the contract init steps fails. I think that keeps it pretty simple?
The SIMPLEST thing to do would be neither of them. Maybe we just start there and see how big of a problem this is, unless you think 2 is pretty easy. We could also make a follow-up issue for 2.

2 sounds pretty easy but I'll know more once I'm implementing it.

authors: BlaineHeffron chadoh

repo: loambuild/loam-sdk


text:
Fix bundle vendor directory

Bundler's vendored gems were located at /srv/lobste.rs/http/http/vendor/bundle instead of /srv/lobste.rs/http/vendor/bundle. This PR fixes it. Carefull, because with the next install, it might reinstall the dependencies.
If you want to be sure, just previous ones are used: mv -v /srv/lobste.rs/http/http/vendor/bundle/ /srv/lobste.rs/http/vendor/.

Thanks! I noticed that extra http dir creep into /srv/lobste.rs/http after c86bb29. I was puzzled by it but bundler was acting fiddly enough I didn't really want to track it down. I really appreciate you fixing this.

authors: jstoja pushcx

repo: lobsters/lobsters-ansible

license: ISC


text:
Connection outside US Region - Unable to pull data

When I tried using LocalTunnel outside US region, the application was unable to respond back with the data as the query to pull the data from localhost was taking longer than usual and errors out. Is there any limitation on the data size or anything specific outside US region?
Has anyone seen this behavior? If so, is it possible to fix this problem using any LocalTunnel settings to address this?

What region are you connecting from? There shouldn't be any limits. If you're in countries like china or Iran with strict country wide censorship then that could be interfering.
Would you mind sharing the output from the command: taceroute localtunnel.me

Region we are connecting from is APAC, the machine is located in Singapore. Will share the traceroute shortly.

Here is the output for traceroute:

Thanks for sharing!
I don't see anything wrong with your traceroute other than high latency (~200ms) which is kind of normal for packets travelling to the other side of the world. If you add some packetloss into the equation then I can definitely see requests timing out and erroring :/
Can you run ping localtunnel.me for like 10-15min and then when you ctrl+c to exit tell me what the % packet loss stats and average response time was for you guys? Also if you're able to ping your WAN IP from the outside, you can try pinging yourself via https://ping.pe and let me know what locations have decent ping to you (less than 100ms is ok, 50ms would be awesome).
Random... but do you happen to know of any cheap vps provider in or near the APAC region that provides unlimited bandwidth by any chance?

I ran ping localtunnel.me for 15 minutes and here are the results:

I don't believe we can ping WAN IP from outside.
Unfortunately, I don't have much clue about cheap vps providers in APAC. A quick check on Bing Chat listed these options:

authors: TheBoroer nikhildere vgurusa

repo: localtunnel/localtunnel