[$500] Web - Workspace - "Hmm... it's not here" error when creating workspaces

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: <IP_ADDRESS>
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/4405644&group_by=cases:section_id&group_id=296775&group_order=asc
Issue reported by: Applause - Internal Team
Action Performed:

Log in with a new Gmail account
Click on the "Choose a workspace" button
Click on the "Get Started" button
Click on the "Choose a workspace" button again
Click on "Expensify"
Click on the "New workspace" button
Repeat steps 4-6 until you have 5 workspaces
Click on the "Choose a workspace" button
Click on the "+" button next to the Workspaces text

Expected Result:
I shouldn't be getting an error.
I should be shown as the owner.
Actual Result:
"Hmm... it's not here" error when creating workspaces.
I'm not shown as the owner of the workspace if an error occurs while creating it.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/93399543/6719b470-179d-4cef-a16d-945933b0d284
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~012d4246a099f91460
Upwork Job ID:<PHONE_NUMBER>684294656
Last Price Increase: 2024-03-20

@JmillsExpensify I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors.

We think that this bug might be related to #wave-collect - Release 1
CC @trjExpensify

Hmm, yes I think this might potentially be related to the on-going simplified collect project. cc @mountiny and @luacmartins

hmm I'm not sure, those are all free workspaces and we didn't touch any of the logic for creating new workspaces. @kbecciv is there an error in your browser console?

I dont think its related to simplified collect but really odd reproductions steps too, I could not repro locally.
Mkaing this external though so we can see if there any contributor can help here

Proposal
Please re-state the problem that we are trying to solve in this issue.
The issue revolves around encountering a "Hmm... it's not here" error when attempting to create workspaces in the Expensify web application. Additionally, users are not shown as the owner of the workspace if an error occurs during the creation process.
What is the root cause of that problem?
The root cause of this problem likely lies in the workspace creation flow, specifically in the handling of errors and ownership assignment. It appears that there may be inconsistencies or issues with the validation and processing of workspace creation requests.
What changes do you think we should make in order to solve the problem?
To address this issue, we should thoroughly review the workspace creation logic and error handling mechanisms. This may involve improving error messages to provide more meaningful feedback to users and ensuring that ownership is correctly assigned even in the event of errors.
What alternative solutions did you explore? (Optional)
An alternative approach could involve implementing robust error logging and monitoring to track occurrences of the "Hmm... it's not here" error and identify patterns or underlying issues. Additionally, we could explore implementing retries or fallback mechanisms to gracefully handle errors and prevent disruptions in the workspace creation process.
By addressing the root cause and enhancing the error handling and ownership assignment mechanisms, we can ensure a smoother and more reliable workspace creation experience for users in the Expensify web application.
Please let me know if you need further clarification or assistance with implementing these solutions.
Best regards,
Mudassir Ali

Seems like this was tested on this PR ad hoc build https://github.com/Expensify/App/pull/37817 not in staging, not sure why it got reported like this

Asked for retest in staging https://expensify.slack.com/archives/C9YU7BX5M/p1710931652941519

So this seems to not be repro on staging anymore based on the discussion, it was repro in previous versions
I am going to close this one


Add "Last Updated" date to footer on docs pages

This is in reference to this Slack comment. https://rancher.slack.com/archives/C6U4L2DS9/p1573491931099400
Vince said there is a Hugo variable for the date the page was modified.
From the Hugo docs:

.Lastmod
the date the content was last modified. .Lastmod pulls from the lastmod field in a content’s front matter.

Closing this issue because I put the issue here instead https://github.com/rancherlabs/website/issues/1702


⚠ Bofrost.at has degraded performance

In 7356944, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2197 ms

Resolved: Bofrost.at performance has improved in ba2c240 after 9 minutes.


After Update to Version 3.4.4: ('Unexpected error:', <class 'audioop.error'>

Hello,
after update from 3.4.3 to 3.4.4 i always get this error when doing an ASR request from an audio file (independent on the recognition service):
 ('Unexpected error:', <class 'audioop.error'>
I tried several audio formats and sampling frequencies, everytime the same.
When doing the ASR request with microphone as audio source, everything works.
I am using Python 2.7.6 on Ubuntu 14.04.
Thanks.

Hi @jhoelzl,
Version 3.4.5 should fix this issue. Give it a try and re-open if it happens again!


[pulsar-proxy] add debug log + fix thread-factory name

Motivation
We are debugging issue where client is timing out lookup request and it helps to have debug log for successful lookup response. and fix thread-factory name for proxy.

run java8 tests
run integration tests

rerun integration tests


Heap configurable

Heap sizes should be configurable via helm values

Fixed via https://github.com/lightbend/reactive-sandbox/commit/c61ba14dd886186948875c62a92c0f7b4f89e7dc


Wrong port to access the registry in interdomain test

Hello,
I have been testing the FloatingKernel2Vxlan2Kernel usecase in the interdomain example and I have encountered an issue. The version of the kind used is 0.8.1 and the NSM version was 1.3.0 and all clusters are on one single VM in OpenStack. Apparently the registry proxy of cluster1 resolves the IP address of the registry in cluster2 correctly, however, uses the wrong port number to access it. Therefore fails to dial and the test also fails. The nodePort allocated to the registry in this example is 32209 which should be the port to be used in order to dial the registry in cluster2 from outside while cluster1 is using the port number 5002 which is the container port. I have also verified that the cluster2 registry is accessible using netcat with the port number 32209. Here is the reported logs from cluster1 registry and the active services in cluster2 after following the instructions for testing the mentioned usecase.

Taking a closer look, it appears that the port used to listen on and dial to are both retrieved from the value of an environment variable called REGISTRY_MEMORY_LISTEN_ON in the registry-memory.yaml file. However, these to ports may differ depending on a situation such as the one here.
Could you please help me find a solution to this?
Thanks in advance

Hi @denis-tingaikin
I checked the result of the IPAM and it seems like the CLUSTER_CIDRs are not included in that. I followed the provided instructions for the loadbalancer but should I add the IPAM subnets manually?
here's a partial output of the docker network inspect command

I checked the result of the IPAM and it seems like the CLUSTER_CIDRs are not included in that. I followed the provided instructions for the loadbalancer but should I add the IPAM subnets manually?

As. I can see everything is looking valid.
But this is defently requires a bit more diagnostics.
Could you please run/attach this:

Attach logs from nsc and nse containers
kubect describe nodes for each cluster
Try to run from nsc and nse followting things: nslookup kubernetes.default,  nslookup exposed-kube-dns.kube-system.my.cluster1, nslookup exposed-kube-dns.kube-system.my.cluster2, nslookup exposed-kube-dns.kube-system.my.cluster3

Sorry for the delay to reply, here are the logs:
NSC shell commands:

NSE shell commands:

kubectl descibe nodes for cluster 1:
cluster1.txt
kubectl descibe nodes for cluster 2:
cluster2.txt
NSC logs:
nsc.txt
NSE logs:
nse.txt


Blog on the Spack team working remotely

Elaine Raybourn interviewing Todd Gamblin

I've looked at it. It looks good. I'll go over it with the new style content in mind later today.


J9.6.0-beta1

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] This PR only modifies one (1) manifest
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.5 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Manual Validation ended with:

2:08:26 PM: 2024-01-05 14:08:26.666 [FAIL] Installer failed security check. Url: https://www.jsoftware.com/download/j9.6/install/j9.6.0-beta1_win64.exe Result: 0x80004005

(Automated response - build 522.)

Hi @cdburke,
The package didn't pass a Defender or similar security scan. This might be a false positive and we can rescan tomorrow.
(Automated response - build 525.)

/AzurePipelines run

Duplicate of https://github.com/microsoft/winget-pkgs/pull/132937


[C4GT] Creation of CRUD order management

Description
The Order Management for BPP should have CRUD operations (Create, Read, Update, Delete), and this project aims to develop a efficient system for managing customer orders within a business. The system will facilitate seamless interactions with order data, allowing authorized users, including sellers with their accounts, to perform essential CRUD operations. Sellers will have access to their inventory and should be able to view, update, and manage catalogs and items under their inventory.
Users, such as sellers, can create new orders, view existing orders, update order details, and remove orders as needed. Additionally, the system will provide sellers with the ability to access their inventory, view available stock, and manage their product catalogs and items efficiently. By implementing this comprehensive functionality, the project aims to streamline the order management process, empower sellers with inventory control, and deliver exceptional customer satisfaction.
Goals

Order Creation: Users will have access to an good interface to input relevant order details, including customer information, item selections, cart feature and delivery preferences and placing an order.
Order Retrieval: Users can access a search functionality that allows them to find orders based on specific criteria, making it easy to view and manage orders.
Order Update: Users to make necessary adjustments to existing orders while ensuring data consistency.
Order Deletion: Carefully controlled access will be provided to authorized users for safely removing orders.

Expected Outcome
Satisfy the above mentioned goals.
Acceptance Criteria
Acceptance Criteria

Acceptance Criteria 1: Order Creation (Create):

Users can place orders through a secure login process.
Users can input all required order details, including customer information, item selections, quantities, payment, and delivery preferences.
The system validates and displays appropriate error messages for incomplete or invalid order data.
Successfully created orders are saved with an unique order ID and accurate data.

Acceptance Criteria 2: Order Retrieval (Read):

Users can search for orders based on order number, customer name, date, or status.
Search results display relevant order details, including customer information, item list, and order status.
The system provides pagination and filtering options for managing large order volumes efficiently.
The search functionality handles various scenarios, such as displaying appropriate messages when no results are found.

Acceptance Criteria 3: Order Update (Update):

Users can modify existing orders by updating order quantities, adding or removing items, and changing delivery dates.
The system enforces data validation to prevent unauthorized or erroneous updates.
When an order is updated, the system maintains an audit trail that records the changes made, including user details and timestamps.

Acceptance Criteria 4: Order Deletion (Delete):

Users can delete specific orders from the system.
Deleted orders are permanently removed from the database.
An audit trail is maintained for the deletion event for respective logged in user.

Product Name
BecknOrder+
Project Name
Beckn-OMS (Beckn Order Management System)

Domain
Trade and Commerce

Mentor(s)

@viraj89
@faizmagic
@ravi-prakash-v

Complexity
High
Category

UI/UX/Design
Integrations
Features
Deployment
Test

Sub Category

API
Database
Analytics
Frontend
Backend

Can we integrate Sanity within it

@viraj89 can you assign me this issue


Allow inclusion of global styles

Describe the problem
Currently the recommended way to include global styles is to add it to root __layout.svelte, as was suggested by Rich and supported with this PR (https://github.com/sveltejs/kit/pull/726):
<!-- __layout.svelte -->
<script context="module">
import '../app.scss'
</script>

The issue is that these styles are not linked in rendered HTML (like start.css), but rather are included at runtime with JS.
This means that

the styles are loaded with delay resulting in FOUC
the app is completely unstyled when JS is disabled

Describe the proposed solution

There could be a convention for including global styles from app.[scss|less|css] done by SvelteKit

- src
  - app.html
  - app.scss

A more generalized solution would be to allow app.ts living alongside app.html, included by SvelteKit. This file may import global styles, but also some scripts, which wouldn't make sense to include in layouts.

- src
  - app.html
  - app.ts

// app.ts
import './lib/global.scss' // include global styles
import Sentry from '@sentry/browser' // run global scripts
Sentry.init()

Make app.htmlsmarter (Parcel style), allowing it to include files in whatever format, which would then be compiled to js/css

<!-- app.html -->
<html>
<script src="./app.ts"></script>
<link rel="stylesheet" href="./app.scss">
</html>

Alternatives considered
An alternative is to compile CSS separately from SvelteKit and include hashed filename in app.html during build.
Importance
nice to have
Additional Information
Related issues:
https://github.com/sveltejs/kit/issues/714

Ignore me. Just realized that layout.css IS included when not in SPA mode.

@ebeloded Hi, I have this problem too, the stylesheet file I import in __layout.svelte doesn't exist in the initial markup. How did you fix this?!

not quite sure where to put this -- there are several issues (open and closed) discussing this and (relatedly) possible changes to the root __layout.svelte -- but in case it helps anyone, or furthers the discussion, i did a bit of testing today on the different ways to load global styles, and how global styles in the root __layout.svelte worked with js on and off, in both dev and preview, and with a __layout.reset.svelte somewhere in the path to another route

loading via js import

vite feature https://vitejs.dev/guide/features.html#css
dev

FOUC
if in root layout, a layout reset won't reset styles
js off, styles won't be loaded

preview

if in root layout

js on, reset doesn't work
js off, reset works

css appears to be loaded via <link rel="stylesheet">

loading via a <style global lang="scss"> at the bottom of the file

dev

if in root layout

js on, reset doesn't work, but does cause FOUC
js off, reset works

preview

if in root layout

js on, reset doesn't work
js off, reset works

css appears to be loaded via <link rel="stylesheet">

loading via @use "..."; in a <style lang="scss"> in <svelte:head>

dev

if in root layout, reset works

preview

if in root layout, reset works
css appears to be inlined

notes

tested with safari 14.1.2 on macos 10.14.6 on 12 jan 2022
i'm using sass and typescript -- didn't test with plain css or javascript
if using plain css, another option would be to <link rel="stylesheet"> to the file in <svelte:head>

this isn't possible with sass -- it seems to work in dev, but fails to build

conclusion

for my setup, it looks best to @use "..."; the styles in a <style lang="scss"> in <svelte:head>

@benblazak honestly, that's really useful and it's really nice to see this posted somewhat relatively recent (in terms of bug searching online haha). Though I could've sworn there was already a global.scss file that sveltekit picked up automatically without the need of importing?

@ErraticFox it's been discussed (here's another open issue) and apparently there is something similar in sapper.  as far as i know you have to do it manually in sveltekit.  hopefully i'll notice if the team decides to change that :)

Going to close this in favour of #1530, as it's essentially the same feature request, the only difference being that this issue focus on CSS rather than including generic code

@ErraticFox it's been discussed (here's another open issue) and apparently there is something similar in sapper. as far as i know you have to do it manually in sveltekit. hopefully i'll notice if the team decides to change that :)

I don't check GitHub comment responses often, but I think I was getting a global.css file confused with my previous usage of using :global() in something like __layout.svelte as that's what I came around to (re)learning shortly after my previous comment haha.


in produces malformed query when called with an empty collection

Example code:
interface EmployeeRepository : JpaRepository<Employee, String>, KotlinJdslJpqlExecutor {
}

employeeRepository.findAll {
    select(entity(Employee::class))
        .from(entity(Employee::class))
        .where(path(Employee::id).`in`(ids))
}

When ids is a non-empty collection, the query is rendered correctly:
SELECT Employee FROM Employee AS Employee WHERE Employee.id IN (:param1){param1=asd}

However, when ids is an empty collection, the produced query is malformed (empty WHERE clause):
SELECT Employee FROM Employee AS Employee WHERE {}

This is probably a result of how JpqlIn is serialized - when compareValues is empty, the serializer just returns without doing anything, resulting in a malformed query.
For reference, Hibernate deals with similar situations by replacing the IN predicate with 1=0. For example,
@Query(
    """
        SELECT e FROM Employee AS e
        WHERE e.id IN :ids
    """
)
fun findAllEmployeesById(ids: Collection<String>): List<Employee>

turns into
select
    e1_0.id,
    e1_0.name
from
    employee e1_0
where
    1=0

when ids is an empty collection.
This bug has already been reported here, but I was requested to create a new issue.

There's some difference between Jpa Query Method and @Query annotation.
interface ExampleRepository: JpaRepository<ExampleEntity, Long> {
    fun findAllByIdIn(ids: List<Long>): List<ExampleEntity>
    fun findAllByIdNotIn(ids: List<Long>): List<ExampleEntity>

    @Query("select e from ExampleEntity e where e.id in :ids")
    fun findAllByIdInCustom(ids: List<Long>): List<ExampleEntity>

    @Query("select e from ExampleEntity e where e.id not in :ids")
    fun findAllByIdNotInCustom(ids: List<Long>): List<ExampleEntity>
}

exampleRepository.findAllByIdIn(emptyList())
exampleRepository.findAllByIdNotIn(emptyList())
exampleRepository.findAllByIdInCustom(emptyList())
exampleRepository.findAllByIdNotInCustom(emptyList())

As a result of the above code, the SQL is generated as below.
select e1_0.id, e1_0.name from example e1_0 where e1_0.id in (NULL); -- findAllByIdIn
select e1_0.id, e1_0.name from example e1_0 where e1_0.id not in (NULL); -- findAllByIdNotIn
select e1_0.id, e1_0.name from example e1_0 where 1=0; -- findAllByIdNotIn
select e1_0.id, e1_0.name from example e1_0 where 1=0; -- findAllByIdNotIn

But since either in (NULL) or not in (NULL) is false in the end, I think it doesn't matter much.

I deployed the 3.4.1 hotfix, please reopen this issue if you have similar issues.


Implement Centralized Product Scanner

This feature aims to provide users with a consistent and reliable tool for scanning product codes across various parts of the application, facilitating tasks such as inventory management, product lookup, and data entry. We will Develop a centralized Product Scanner component that can be seamlessly integrated into different DXP components. This component should be designed to work cohesively with various DXP elements.

We are focusing on product but this will scan any barcode right? What is the major value prop of this over the direct plug-in we use? @ravilodhi

The main idea behind moving the scanner component to dxp-components is its reusability, currently, it is used in receiving, inventory count, and picking apps. Initially, I thought we were using this to scan location, etc., as well, but that is not the case. We can rename this to ProductScanner instead of Scanner to be more specific.
@dt2patel

I guess my question is still what part of the usability are we aiming to improve with this? Like the modal UI will be handled? can you share details about that? @ravilodhi

The scanning part and decoding parts will be reused with this. So on button click modal will be created by the app, with this Scanner component. @dt2patel


text/template: not able to redefine template as an empty string

Please answer these questions before submitting your issue. Thanks!

Attempt to redefine a text/template as an empty string using parse, and then executed the template:
https://play.golang.org/p/gotXx8qF3e

What did you expect to see?

I expected the template to successfully execute and produce an empty string.
Alternatively, if it is expected behaviour to not allow redefining as an empty string, I expect an error to be returned on the "Parse" call.

What did you see instead?

The execute function returned the following error:
template: test: "test" is an incomplete or empty template; defined templates are: "test"

dibs

I ran into this as well, and I had a hard time figuring out if this was a bug or intended behavior, because when I tried to find documentation for template redefinition, I couldn't. It seems to be mentioned in passing on https://golang.org/pkg/text/template/#hdr-Actions and nowhere else:

The typical use is to define a set of root templates that are
then customized by redefining the block templates within.

Glad to see it was indeed a bug and is already fixed.


Updated data for Argentina female population %

Hi, I have added the requisite data for Argentina.
Closes #10

Thanks for the PR @hardik1511
The data looks good and I am going ahead with the merge.


Update README.md

This readme is shared across modalities and exercises, and doesn't make sense to add this content to the readme


Be verbose on failures in adhoc deployer

It'd be nice if Zopkio gave more detail when adhoc deployer fails.
We saw this recently:
2015-01-14 17:51:55,266 deployment [INFO] Deploying zookeeper_instance_0 on host: localhost
2015-01-14 17:51:58,150 deployment [INFO] Deploying yarn_rm_instance_0 on host: localhost
2015-01-14 17:52:03,546 zopkio.remote_host_helper [ERROR]
2015-01-14 17:52:03,548 zopkio.test_runner [ERROR] Aborting smoke-tests due to setup_suite failure:
Traceback (most recent call last):
  File "/tmp/samza-test2/samza-integration-tests/lib/python2.7/site-packages/zopkio/test_runner.py", line 107, in run
    self.deployment_module.setup_suite()
  File "/tmp/samza-test2/scripts/deployment.py", line 76, in setup_suite
    'hostname': host
  File "/tmp/samza-test2/samza-integration-tests/lib/python2.7/site-packages/zopkio/deployer.py", line 78, in deploy
    self.start(unique_id, configs)
  File "/tmp/samza-test2/samza-integration-tests/lib/python2.7/site-packages/zopkio/adhoc_deployer.py", line 212, in start
    chan = exec_with_env(ssh, command, msg="Failed to start", env=env, sync=configs.get('sync', False))
  File "/tmp/samza-test2/samza-integration-tests/lib/python2.7/site-packages/zopkio/remote_host_helper.py", line 86, in exec_with_env
    return better_exec_command(ssh, new_command, msg)
  File "/tmp/samza-test2/samza-integration-tests/lib/python2.7/site-packages/zopkio/remote_host_helper.py", line 115, in better_exec_command
    raise ParamikoError(msg, err_msg)
ParamikoError: Failed to start

Since adhoc deployer has the full channel when the failure occurs, it'd be nice if it dumped stderr and stdout so we knew what was going on. Right now it basically just says, "I got a non-zero exit code."

Relates to https://issues.apache.org/jira/browse/SAMZA-511


lokijs.org is down

I would like inform you about the website (lokijs.org) is down.

Duplicate of: #797
You can access the documentation at: https://rawgit.com/techfort/LokiJS/master/jsdoc/index.html

https://rawgit.com/techfort/LokiJS/master/jsdoc/index.html gives 404

It’s been moved to: http://techfort.github.io/LokiJS/

Homepage needs to be updated on https://www.npmjs.com/package/lokijs as this is what lead me to the old site today as well

I came here because I noticed the same. That new website points to the old website 😄

lokijs.org
yes - lokijs.org is now filled with spam nonsense content :(
this pages need an update not to point to lokijs.org:

at https://www.npmjs.com/package/lokijs
at http://techfort.github.io/LokiJS/

LokiSandbox
since rawgit is stop working in near feature the LokiSandbox @ https://rawgit.com/techfort/LokiJS/master/examples/sandbox/LokiSandbox.htm should be moved to github pages

https://github.com/techfort/LokiJS/wiki also points to lokijs.org

Might I suggest js.org free domain name? Unfortunetaly loki.js.org is taken, but lokidb is available.
Cheers

please don't close. this issue is still very relevant

agreed, this needs work.
On Sun, Feb 23, 2020 at 3:37 PM Luca Ban<EMAIL_ADDRESS>wrote:

please don't close. this issue is still very relevant
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/techfort/LokiJS/issues/804?email_source=notifications&email_token=ABHZ7SONPKBNRMZNR2UFFY3RELM7TA5CNFSM4IUUNDK2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMWGTIA#issuecomment-590113184,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABHZ7SOMNW4H7D52RYK6OSDRELM7TANCNFSM4IUUNDKQ
.

Oh dear!!! Issue still present

problem still exists
/cc @techfort ?

Problem was only partially fixed in #842


php artisan telebot:webhook issue

Hi,
I cant seem to get the webhook artisan command to work.. I can get the help command for it but it fails to execute no matter the options I try!
The error is more or less the same each time:
   WeStacks\TeleBot\Exception\TeleBotRequestException

  Not Found

  at vendor/westacks/telebot/src/Exception/TeleBotRequestException.php:17
     13▕             $parameters = ResponseParameters::create($result->parameters ?? null);
     14▕             $text .= '; Parameters: '.$parameters;
     15▕         }
     16▕
  ➜  17▕         return new TeleBotRequestException($text, $result->error_code);
     18▕     }
     19▕ }
     20▕

      +30 vendor frames
  31  artisan:37
      Illuminate\Foundation\Console\Kernel::handle()

Any help appreciated! :)

Am I supposed to add a route for the webhook to work?
I have the config and .env setup with my token and tried setting the webhook url to my domain/webhook but no luck there!

Hello!
This error tells that webhook url returns not found. To setup a webhook you need a route for that:
// WebhookController.php

public function webhook()
{
    TeleBot::bot('your_bot')->handleUpdate();
}

// routes/web.php

Route::post('/webhook', [WebhookController::class, 'webhook']);

// config/telebot.php

...
'your_bot' => [
    'token' => ...,
    'webhook' => [
        'url' => 'https://your-app.url/webhook'
    ]
]
...

Then when you run php artisan telebot:webhook -S your webhook should be set.
Also, be sure that your webhook url is accessible for telegram servers. If you want to work with your bot localy, use php artisan telebot:polling -S instead.

I think this guideline should be documented better or/and library should create routes by itself. Thanks for request!

Oh, also as I understand you are not able to even get webhook info. In this case, I think there is something wrong with your token.

Oh, also as I understand you are not able to even get webhook info. In this case, I assume there is something wrong with your token.

Thanks for your fast response and help! - I was able to get the artisan commands working by installing an earlier version of Laravel on a clean OS with properly configured permissions and the code you provided above! (Was running Laravel 8, now switched to 6.x and seems to be working far more stable.)

I think this guideline should be documented better or/and library should create routes by itself. Thanks for request!

Yes I agree! The documentation seems a little bit confusing and hard to work out the different steps to take while using Laravel vs the Standalone guides..
Once I'm able to verify the steps needed to get it working, I'd be more than happy to give updating the documentation a try. :)
I've been messing around trying to follow the documentation and see if I could figure out how to get it all working but I'm stumped and have a few questions if you don't mind!
How do I add commands to the bot? I get the following error after trying to add a command and register it in the handler section of my config file..
   WeStacks\TeleBot\Exception\TeleBotMehtodException  : Given update handler type "app\Telegram\Commands\StartCommand" is not valid update handler

  at /opt/bitnami/apache/htdocs/vendor/westacks/telebot/src/Exception/TeleBotMehtodException.php:14
    10|     }
    11|
    12|     public static function wrongHandlerType(string $type)
    13|     {
  > 14|         return new TeleBotMehtodException("Given update handler type \"{$type}\" is not valid update handler", 404);
    15|     }
    16| }
    17|

And lastly, how do I respond to "non-commands"?
Example:
User initiates bot with a command
/start
Bot runs the Start Command which has logic to respond to user with "Hello, what's your name?"
User is now expected to respond e.g "Brad"
Bot then responds "Hi, Brad! Nice to meet you."
In above scenario the user is not providing a "/" or command but rather just responding to an already executed command. How would I handle this?
Thanks again for your help! Great to see a well supported and documented php/laravel Telegram Bot Framework 💯

For bot commands - check out #3.
Non commands working almost the same as commands - you should extend your handler from UpdateHandler class instead of CommandHandler and specify the trigger function as shown in docs. For you it should be something like this:
<?php

namespace Somewhere\InYour\App;

use WeStacks\TeleBot\Interfaces\UpdateHandler;

class NameMessageHandler extends UpdateHandler
{
    public static function trigger(Update $update)
    {
        if (!$update->is('message')) return false; // Check if update is a message

        $user = User::where('telegram_id', $update->from()->id)->first();
        return ($user && $user->input == 'name_message'); // Checking user input state, which you should set after executing the command as you described
    }

    public function handle()
    {
        $name = $this->update->message->text;
        $this->sendMessage([
            'text' => "Hello, {$name}! Nice to meet you."
        ]);
    }
}

The idea here is simple - you store what user should input in the database and then validate it inside the handler.

Also I think my example kinda rought, User model probably should be used not only inside one handler, so in order not to provoke unnecessary calls to the database you should add a closure handler in first position of handlers array:
function () {
    $user = User::where('telegram_id', $update->from()->id)->first();
    if (!$user) {
        // Create user if needed
    }

    ...

    Auth::login($user);
}

Then you will be able to access user anywhere using:
$user = Auth::user();

For bot commands - check out #3. It seems like something is wrong with your namespace - app\Telegram\Commands\StartCommand. App should be capitalised in Laravel
Non commands working almost the same as commands - you should extend your handler from UpdateHandler class instead of CommandHandler and specify the trigger function as shown in docs. For you it should be something like this:
<?php

namespace Somewhere\InYour\App;

use WeStacks\TeleBot\Interfaces\UpdateHandler;

class NameMessageHandler extends UpdateHandler
{
    public static function trigger(Update $update)
    {
        if (!$update->is('message')) return false; // Check if update is a message

        $user = User::where('telegram_id', $update->from()->id)->first();
        return ($user && $user->input == 'name_message'); // Checking user input state, which you should set after executing the command as you described
    }

    public function handle()
    {
        $name = $this->update->message->text;
        $this->sendMessage([
            'text' => "Hello, {$name}! Nice to meet you."
        ]);
    }
}

The idea here is simple - you store what user should input in the database and then validate it inside the handler.

Hi, Thanks again for your help. That's my bad, I thought the namespace needed to be the same case as the folder. Changing it to a capital "App" as you suggested fixed the problem of registering my commands! :)
I'm still a little bit confused though, if I'm being honest... To begin with, so now I have the "StartCommand" registered and showing up if I type "/" on telegram along with the command names and descriptions so it's clearly communicating with the server now which is great!
What I don't understand is why if I send "/start" or "/s" I don't get a reply from the bot saying "hello world" like it seems it would from the handle() function..?
Have I missed something there needed to get it to work?

Also I think my example kinda rough, User model probably should be used not only inside one handler, so in order not to provoke unnecessary calls to the database you should add a closure handler in first position of handlers array:
function ($update) {
    $user = User::where('telegram_id', $update->from()->id)->first();
    if (!$user) {
        // Create user if needed
    }

    ...

    Auth::login($user);
}

Then you will be able to access user anywhere using:
$user = Auth::user();

Also I'm not sure if laravel checks if there is already loged in user, so in long polling this may not work, need to test it out.

I'm also not entirely sure how this part works? Are we basically creating a user in the DB if their telegram_id doesn't exist in there already along with the messages the user sends to us and then querying against it to determine what was sent?
If that's how it works, then I think that's incredibly smart, and something that definitely needs to be documented better! I was not aware that was a feature of this project...
Can you explain the Auth::login($user); part?
I know laravel comes with a user scaffolding etc but I didn't think it was being used here.
Also;

you should add a closure handler in first position of handlers array:
What file and where do you mean when you refer to the handlers array? Not the one in Config/TeleBot.php?

Thanks again for your help! In the meanwhile, I'll get started now on updating the documentation, with what I know and have done so far!
-Brad :)

I've submitted a pull-request with the changes I've made to the documentation so far.
I've still not figured out why the StartCommand isn't sending hello world back to the user but is registering the name and description on the telegram servers but once I figure out what I've missed, I'll add those steps to the documentation aswell so hopefully it's more clear how to get up and running! :D
-Brad

I'm also not entirely sure how this part works? Are we basically creating a user in the DB if their telegram_id doesn't exist in there already along with the messages the user sends to us and then querying against it to determine what was sent?
If that's how it works, then I think that's incredibly smart, and something that definitely needs to be documented better! I was not aware that was a feature of this project...

This actualy not the part of the project, it's a feature of Laravel itself - I just showed an example how you may use it to solve your task - we just attach telegram_id to any Authenticatable model and then use it as authorised user for our handlers, so we don't execute database query for each Telegram handler trigger function. The way handlers work is a simple foreach loop, so this is my optimization tip - it will slow down an application if you run User::get() in each handler's trigger function, so its a good practice to avoid it.

What I don't understand is why if I send "/start" or "/s" I don't get a reply from the bot saying "hello world" like it seems it would from the handle() function..?
Have I missed something there needed to get it to work?

I think you forgot to setup a webhook or long polling. Notice that you can't run a webhook for local domains, so try out testing with polling if you run app localy.

What file and where do you mean when you refer to the handlers array? Not the one in config/telebot.php?

Yes, in config/telebot.php. You may import it from other file in someway to make config cleaner.

I'm also not entirely sure how this part works? Are we basically creating a user in the DB if their telegram_id doesn't exist in there already along with the messages the user sends to us and then querying against it to determine what was sent?
If that's how it works, then I think that's incredibly smart, and something that definitely needs to be documented better! I was not aware that was a feature of this project...

This actualy not the part of the project, it's a feature of Laravel itself - I just showed an example how you may use it to solve your task - we just attach telegram_id to any Authenticatable model and then use it as authorised user for our handlers, so we don't execute database query for each Telegram handler trigger function. The way handlers work is a simple foreach loop, so this is my optimization tip - it will slow down an application if you run User::get() in each handler's trigger function, so its a good practice to avoid it.

What I don't understand is why if I send "/start" or "/s" I don't get a reply from the bot saying "hello world" like it seems it would from the handle() function..?
Have I missed something there needed to get it to work?

I think you forgot to setup a webhook or long polling. Notice that you can't run a webhook for local domains, so try out testing with polling if you run app localy.

What file and where do you mean when you refer to the handlers array? Not the one in config/telebot.php?

Yes, in config/telebot.php. You may import it from other file in someway to make config cleaner.

I'm on my phone right now so sorry if reply is poorly formatted!
Thanks for clarifying, I will try and add your suggestions to my code and see if I can get the commands working!
I did actually setup a webhook address and included it in my routes... (Using a web-domain with https enabled and configured so DNS points to my web server...) So not sure why it's not working as one would expect...
Take a look at my pull request, specifically the guide.md file because I included my routes/web.php webhook code there aswell as the StartCommand.php code and how it's being called in the handlers array in TeleBot.php config file so maybe you'll spot where I messed up?
I think we should add your suggestion for using Laravels authenticateable model to store the telegram_id into the documentation aswell as I feel it would help a lot of users with many different uses!
Thanks again 💯🙌

I think we should add your suggestion for using Laravels authenticateable model to store the telegram_id into the documentation aswell as I feel it would help a lot of users with many different uses!

This is totaly depends on how developer designing his app, database and bot, so I don't think that this needs to be in the docs. There are many ways to solve this task: cache user, store it in singleton, use the middleware for webhook request, etc; I just showed the first thing I thought about for task you described using Laravel's features.

By the way this is common task for bot development, so I will try to think about more automated sollution for this

Startign from version 1.5.0 route for webhook is being generated automatically.


start of work to add additional hosts (farmshare)

This should be start of work for the tool to handle multiple hosts. It comes down to:

providing ssh generation scripts that are resource specific (e..g, ssh_farmshare.sh is added). The resources are named by an identifier (farmshare) that is referenced in the scripts.
The parameter ($RESOURCE) is this ientifier for the host (e.g., "sherlock") that is added to the generation of the params.sh
then using the identifier in the various start / end / resume scripts.

I removed the reference to the BROWSER, since we aren't using that anywhere anymore.

okay, I've updated the PR to include subfolders within sbatches so that (cluster specific) sbatch scripts are honored. It isn't a hard requirement - what we basically do is use the $RESOURCE variable to intelligently search the subfolders for a sbatch script that the user might want. This means that the following two commands would both work:
bash start.sh singularity
bash start.sh sherlock/singularity

The difference is that we now have a "Search" step, e.g.:
== Finding Script ==
Looking for sbatches/sherlock/sherlock/singularity.sbatch
Looking for sbatches/sherlock/singularity.sbatch
Script      sbatches/sherlock/singularity.sbatch

and the user is told "Hey, we've found the script sbatches/sherlock/singularity.sbatch." That list also includes (at the end) searching outside of the sbatches folder (for the exact path provided by the user) so arguably the file could be located anywhere.
Also - I'm thinking now that this would be cool to use as a general submission tool for jobs, meaning all of the steps (without the port forwarding). This might be outside of the use case of the repo, or we would provide different start.sh entry points for this. For example:

start-forward.sh would port forward
start.sh would be a general start script that would give the user a command to ssh to the node.

Thoughts?


Company/Contact/Project custom file page - We can upload same file multiple time in custom file

Describe the bug

We can upload same file multiple times in custom file, there should be rename file or not accept same file multiple time

There is no way to stop this


GF_ACTION "Hold" fails to prevent geofence violation while in Hold-reposition

Describe the bug
When GF_ACTION is "Hold" and there's a geofence violation while the drone is in Hold-reposition (QGroundControl click on map and "Go to location"), the drone continues to the commanded location which is outside the geofence.
To Reproduce
Steps to reproduce the behavior:

Set GF_ACTION to Hold (Loiter).
Upload a geofence to the drone.
Takeoff, click somewhere outside the geofence (or inside if it's a keep-out fence) and select "Go to location".
Observe the drone violating the geofence and continuing to the destination position.

Expected behavior
The drone must reposition to the closest location on the geofence border, even if it's already in Hold/Loiter mode! Simply switching to Hold/Loiter isn't enough.

Hello @superware ,
Actually there was no problem with GF_ACTION when I tested with real flight.
Can you check GF_COUNT parameter to sure about problem is related to PX4 stack.

GF_COUNT
Geofence counter limitComment: Set how many subsequent position measurements outside of the fence are needed before geofence violation is triggered

Hello @bozkurthan ,

Actually there was no problem with GF_ACTION when I tested with real flight.

Did you try to violate the geofence while already in Hold (repositioning to another location)? This is easily reproducible with SITL.

Can you check GF_COUNT parameter to sure about problem is related to PX4 stack.

GF_COUNT: -1, I am using PX4.

Thanks for the issue. This sounds like the implementation is broken for this case.

@superware
Nope, you are right I just tried with manual mode.
I reproduced this behavior.
GF_ACTION

Fence limit

Violation by using "Go to Location"

its still relevant

This needs to be fixed :-(

related to: 'MC Geofence violation not easy to resolve #12320'

This has been fixed in the meantime (double actually: there is a check that doesn't allow you to set a goto outside of the fence, and upon hitting the fence the vehicle would now stop there).


moncar variable in Instrument class has no effect

The variable moncar has no effect on resolution calculation in Instrument class. This is due to a misnaming of the variable, it should be moncor.

Resolved by 36a91d60072cbd53fc621821db3c962533abac12


feat: add insert method on instruction table

Adds an insert helper method on the instruction table, and adds a test for creating and using a custom instruction

Made changes so i can merge it in next release


dat site conversion results in blank drives

Clicking the "Convert" button results in an empty hyperdrive with an index.json file.
To Reproduce

Go to the Home page and scroll down to the "You have xxx legacy Drives which can be converted to Hyperdrive" section.
Click on a dat side "Convert" button.
Click "Convert" on the next page.
The resulting page only displays an index.json file.

Expected behavior
A page that displays all the files with the dat repository, or the option to save existing files before  converting them.
Desktop (please complete the following information):

OS: Linux Mint 19
Version 1.0.0 prerelease 3

Sorry for (yet another) dat converter bug. I updated the stack and did some extensive testing, during which I ran into this and resolved it.


[BugFix] Multi invalid messages leads data lost in routine load

What type of PR is this：

[x] bug
[ ] feature
[ ] enhancement
[ ] refactor
[ ] others

Which issues of this PR fixes ：

Fixes #8545
Problem Summary(Required) ：

This fixes the data lost problem when there're multi invalid message in routine load.
The previous implement of JsonScanner::get_next() would return EOF when the chunk->num_rows == 0. However, if there's more than 1 invalid message, the 2nd invalid message would make the chunk empty, which leads that the left valid messages are abandonded.

run starrocks_be_unittest


main-styles.css cannot be loaded in remote context

Getting errors like:

Refused to load the stylesheet 'https://webview-3000-a96351c0-d111-42d1-b9b6-863439e1d244.ws-eu01.gitpod.io/webview/theia-resource/file/workspace/theia/plugins/vscode-gitlens/dist/webviews/main-styles.css' because it violates the following Content Security Policy directive: "style-src vscode-resource: 'nonce-nQlyH4xRXZ2pQAMKpiuYVQ=='". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.

Please see https://code.visualstudio.com/api/advanced-topics/remote-extensions#option-1-use-asexternaluri
const cspSource = panel.webview.cspSource; should be used

Fixed in GitLens 11


skip remaining seeding as well

This is a followup to https://github.com/ManageIQ/manageiq/pull/6672
We need to reboot rails s dozens of times a day as we run performance tests, often in production mode.
On appliance startup, the environment variable SKIP_PRIMORDIAL_SEED is consulted when booting the appliance to skip seeding the database. [
Using a docker db, local rails s takes 18s. Using this flag takes it down to 9s (50% savings).
For evm server, it was only skipping the first half of the seeding. This PR skips the second half of seeding
/cc @jrafanie @Fryguy @chrisarcand same actors as last round.

On appliance startup, the environment variable SKIP_PRIMORDIAL_SEED is consulted when booting the appliance to skip seeding the database. [

@kbrock Are you saying the appliance skips primordial seed by default?  I don't see it being set here
Is this setting only for performance and development testing?

@jrafanie that setting is only used for performance and development
It is a hidden lever that would allow high latency customers to boot up.

@kbrock My only problem is this SKIP_PRIMORDIAL_SEED would basically skip all seeding if you have it set and the MiqDatabase has been seeded.  It makes the env variable name wrong.  😢

@jrafanie Ok. As it stands, the environment variable will skip the primordial seeding but not skip the other seeding. Not good.
This PR is a minimal change to fix the problem and buy us time before we properly seed the database. Not on every evm start.

@jrafanie Ok. As it stands, the environment variable will skip the primordial seeding but not skip the other seeding. Not good.

@kbrock yeah, but it's called SKIP_PRIMORDIAL_SEED, that's what is does.  If you change it to do all seeds, the variable needs to be renamed.  If you want to have a ENV to skip it all, create SKIP_ALL_SEED right or we'll have to rename it.  I'm not sure how many places know about the existing variable. Maybe just rename variable.

Maybe the simpler SKIP_SEEDING will do

Maybe the simpler SKIP_SEEDING will do

hehe, naming is hard.  Great idea, @chessbyte

thanks. I was told that was too short ;) https://github.com/ManageIQ/manageiq/pull/6672#issuecomment-184351306 🚌

@kbrock maybe because that's when we were just skipping primordial but not the rest.  Maybe it's fine if we skip all of the seeding if MiqDatabase is present?
We should go with WE_STINK_AND_OUR_SEEDS_ARE_SLOW from here
😆

@chessbyte thanks. changed name to SKIP_SEEDING
Any other changes?


[Backport] [v2.9]  CIS: Unexpected Failures in scans for gke 1.6.0 profile

backport : https://github.com/rancher/rancher/issues/48112

Tested the CIS Scan on GKE cluster v1.30.7-gke.1084000. There are few scan failures however, the scan number 3.1.1, 3.1.2 are fixed. Hence closing the issue.


Support up-scaling of media to meet requirements.

I tried to upload a video of smaller width but it just rejected it. Kindly support up scaling to meet the requirements.

You can now specify a custom min_size argument in prepare_image()/prepare_video(). The default min_size values should also work.

Sorry to necro this one, but it seems that with rounding error, scaling is not working properly. At least I got an image scaled to default max ratio (0,75) which ended with a ratio of 0,7501.... and got rejected by Instagram


fix technical issue in android device

by increase the com.amazon:fortpayment to 2.1.1 rather than 2.1.0

Successfully uploaded https://pub.dev/packages/amazon_payfort version 1.1.1, it may take up-to 10 minutes before the new version is available.

Successfully uploaded https://pub.dev/packages/amazon_payfort version 1.1.1, it may take up-to 10 minutes before the new version is available.


Unable to post

I am unable to post. Using macOS 10.12.6. TOKEN is set. Using custom webhook URL does not change result.
INFO: /tmp/ip.txt is less than 2 hours old. We will use the cached IP in /tmp/ip.txt...

INFO: The Slack API TOKEN was passed via the command line (-k)
WARNING: You do not have any TEXT (-t) specified in the message.
WARNING: You do not have a TITLE (-T) specified for the message.
WARNING: You do not have a PRETEXT (-p) specified for the message.
INFO: CHANNEL is set to '#notificaciones'
echo INFO: STATUS (-s) was not set. Setting a default STATUS to INFO...
INFO: A ENV (-e) was not set. Using the default ENV...
INFO: A FOOTERICON (-f) was not set. Using the default FOOTERICON...
INFO: A FOOTER (-F) was not set. Using the default FOOTER...
OK: All tests passed, sending message to Slack API...
ERROR: The POST to the Slack API failed ()```

Greetings,
So I tested this a little more and had no issues. Did you go through the process at Slack? https://api.slack.com/slack-apps
The format of the token is a little different than the past, so make sure that is correct. See the XXX below
sh -x ./slack.sh -c "#general" -u "hacky-slack" -i "apple" -a "Macbook" -b "http://www.apple.com/" -t "Where are the new 2016 Macbook models?"
+ [[ -n XXXXXXX/XXXXXXXX/XXXXXXXXX ]]
+ echo 'INFO: The Slack API WEBHOOK was passed via the command line (-w)'
INFO: The Slack API WEBHOOK was passed via the command line (-w)
++ hostname -s
+ HOSTNAME=Thomass-MacBook-Pro
++ date +%s
+ EPOCH=1536812854
+ CONFIG=/etc/slack.d
+ IPCONFIG=/tmp/ip.txt
+ [[ ! -f /tmp/ip.txt ]]
+ echo 'INFO: /tmp/ip.txt does not exist. Creating...'
INFO: /tmp/ip.txt does not exist. Creating...
++ curl -s checkip.dyndns.org
++ sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
+ IP=xxx.48.130.xxx
+ touch /tmp/ip.txt
+ echo IP=xxx.48.130.xxx
+ source /tmp/ip.txt
++ IP=xxx.48.130.xxx
+ [[ 12 -eq 0 ]]
+ getopts :a:A:b:B:c:C:e:h:i:I:m:N:p:s:Z:T:L:k:u:w opt
+ case ${opt} in
+ CHANNEL='#general'
+ getopts :a:A:b:B:c:C:e:h:i:I:m:N:p:s:Z:T:L:k:u:w opt
+ case ${opt} in
+ USERNAME=hacky-slack
+ getopts :a:A:b:B:c:C:e:h:i:I:m:N:p:s:Z:T:L:k:u:w opt
+ case ${opt} in
+ ICON=apple
+ getopts :a:A:b:B:c:C:e:h:i:I:m:N:p:s:Z:T:L:k:u:w opt
+ case ${opt} in
+ ATTACHMENT=true
+ getopts :a:A:b:B:c:C:e:h:i:I:m:N:p:s:Z:T:L:k:u:w opt
+ case ${opt} in
+ AUTHORICON=http://www.apple.com/
+ getopts :a:A:b:B:c:C:e:h:i:I:m:N:p:s:Z:T:L:k:u:w opt
+ case ${opt} in
+ getopts :a:A:b:B:c:C:e:h:i:I:m:N:p:s:Z:T:L:k:u:w opt
+ echo ''

+ [[ -n '' ]]
+ [[ -n '' ]]
+ echo 'ERROR: No Slack API TOKEN was found. Can not proceed with posting messages to the API without one.'
ERROR: No Slack API TOKEN was found. Can not proceed with posting messages to the API without one.
+ exit 1

/Github/ob_hacky_slack on  master on 🐳 v18.06.1-ce
•100% ➜ export WEBHOOK=https://hooks.slack.com/services/

/Github/ob_hacky_slack on  master on 🐳 v18.06.1-ce
•100% ➜ export SLACK_TOKEN=xxxx/xxxxx/xxxxxxx

/Github/ob_hacky_slack on  master on 🐳 v18.06.1-ce
•100% ➜ sh -x ./slack.sh -c "#general" -u "hacky-slack" -i "apple" -a "Macbook" -b "http://www.apple.com/" -t "Where are the new 2016 Macbook models?"
+ [[ -n https://hooks.slack.com/services/ ]]
+ echo 'INFO: The Slack API WEBHOOK was passed via the command line (-w)'
INFO: The Slack API WEBHOOK was passed via the command line (-w)
++ hostname -s
+ HOSTNAME=Thomass-MacBook-Pro
++ date +%s
+ EPOCH=1536812972
+ CONFIG=/etc/slack.d
+ IPCONFIG=/tmp/ip.txt
+ [[ ! -f /tmp/ip.txt ]]
+ test 'find '\''/tmp/ip.txt'\'' -mmin +120'
+ echo 'INFO: /tmp/ip.txt is less than 2 hours old. We will use the cached IP in /tmp/ip.txt...'
INFO: /tmp/ip.txt is less than 2 hours old. We will use the cached IP in /tmp/ip.txt...
+ source /tmp/ip.txt
++ IP=xxxx.48.130.xxxx
+ [[ 12 -eq 0 ]]
+ getopts :a:A:b:B:c:C:e:h:i:I:m:N:p:s:Z:T:L:k:u:w opt
+ case ${opt} in
+ CHANNEL='#general'
+ getopts :a:A:b:B:c:C:e:h:i:I:m:N:p:s:Z:T:L:k:u:w opt
+ case ${opt} in
+ USERNAME=hacky-slack
+ getopts :a:A:b:B:c:C:e:h:i:I:m:N:p:s:Z:T:L:k:u:w opt
+ case ${opt} in
+ ICON=apple
+ getopts :a:A:b:B:c:C:e:h:i:I:m:N:p:s:Z:T:L:k:u:w opt
+ case ${opt} in
+ ATTACHMENT=true
+ getopts :a:A:b:B:c:C:e:h:i:I:m:N:p:s:Z:T:L:k:u:w opt
+ case ${opt} in
+ AUTHORICON=http://www.apple.com/
+ getopts :a:A:b:B:c:C:e:h:i:I:m:N:p:s:Z:T:L:k:u:w opt
+ case ${opt} in
+ getopts :a:A:b:B:c:C:e:h:i:I:m:N:p:s:Z:T:L:k:u:w opt
+ echo xxxx/xxxxx/xxxxxxx
xxxx/xxxxx/xxxxxxx
+ [[ -n '' ]]
+ [[ -n xxxx/xxxxx/xxxxxxx ]]
+ echo 'INFO: The Slack API TOKEN was set as a system variable'
INFO: The Slack API TOKEN was set as a system variable
+ TOKEN=xxxx/xxxxx/xxxxxxx
+ [[ -n '' ]]
+ test '' = OK
+ test '' = INFO
+ test '' = WARN
+ test '' = ERROR
+ test -z hacky-slack
+ [[ -z '' ]]
+ echo 'WARNING: You do not have any TEXT (-t) specified in the message.'
WARNING: You do not have any TEXT (-t) specified in the message.
+ TEXT=''\''This message is missing TEXT'\'''
+ [[ -z '' ]]
+ echo 'WARNING: You do not have a TITLE (-T) specified for the message.'
WARNING: You do not have a TITLE (-T) specified for the message.
+ TITLE='This message is missing a TITLE'
+ [[ -z '' ]]
+ echo 'WARNING: You do not have a PRETEXT (-p) specified for the message.'
WARNING: You do not have a PRETEXT (-p) specified for the message.
+ PRETEXT='This message is missing a PRETEXT'
+ [[ -z x ]]
+ echo 'INFO: CHANNEL is set to '\''#general'\'''
INFO: CHANNEL is set to '#general'
+ [[ -z '' ]]
+ echo echo 'INFO: STATUS (-s) was not set. Setting a default STATUS to INFO...'
echo INFO: STATUS (-s) was not set. Setting a default STATUS to INFO...
+ PRIORITY=INFO
+ ICON=apple
+ COLOR='#439FE0'
+ [[ -z '' ]]
+ echo 'INFO: A ENV (-e) was not set. Using the default ENV...'
INFO: A ENV (-e) was not set. Using the default ENV...
+ ENV=Development
+ [[ -z '' ]]
+ echo 'INFO: A FOOTERICON (-f) was not set. Using the default FOOTERICON...'
INFO: A FOOTERICON (-f) was not set. Using the default FOOTERICON...
+ FOOTERICON=https://platform.slack-edge.com/img/default_application_icon.png
+ [[ -z '' ]]
+ echo 'INFO: A FOOTER (-F) was not set. Using the default FOOTER...'
INFO: A FOOTER (-F) was not set. Using the default FOOTER...
+ FOOTER=
+ SEND
+ [[ true = \t\r\u\e ]]
+ PAYLOAD='payload={       "channel": "#general",       "username": "hacky-slack",       "pretext": "This message is missing a PRETEXT",       "color": "#439FE0",       "icon_emoji": ":apple:",       "text": "'\''This message is missing TEXT'\''",       "mrkdwn": "true",       "attachments": [{
      "fallback": "",       "color": "#439FE0",       "pretext": "This message is missing a PRETEXT",       "author_name": "",       "author_link": "",       "author_icon": "http://www.apple.com/",       "title": "This message is missing a TITLE",       "title_link": "",       "text": "'\''This message is missing TEXT'\''",       "mrkdwn_in": ["text","pretext","fields"],       "fields": [{"title": "Status","value": "INFO","short": "true"}, {"title": "Host","value": "xxxx.48.130.xxxx","short": "true"}, {"title": "Environment","value": "Development","short": "true"} ],       "image_url": "",       "footer": "",       "footer_icon": "https://platform.slack-edge.com/img/default_application_icon.png",       "ts": "1536812972"
    }]}'
+ echo 'OK: All tests passed, sending message to Slack API...'
OK: All tests passed, sending message to Slack API...
++ curl -s -S -X POST --data-urlencode 'payload={       "channel": "#general",       "username": "hacky-slack",       "pretext": "This message is missing a PRETEXT",       "color": "#439FE0",       "icon_emoji": ":apple:",       "text": "'\''This message is missing TEXT'\''",       "mrkdwn": "true",       "attachments": [{
      "fallback": "",       "color": "#439FE0",       "pretext": "This message is missing a PRETEXT",       "author_name": "",       "author_link": "",       "author_icon": "http://www.apple.com/",       "title": "This message is missing a TITLE",       "title_link": "",       "text": "'\''This message is missing TEXT'\''",       "mrkdwn_in": ["text","pretext","fields"],       "fields": [{"title": "Status","value": "INFO","short": "true"}, {"title": "Host","value": "xxxx.48.130.xxx","short": "true"}, {"title": "Environment","value": "Development","short": "true"} ],       "image_url": "",       "footer": "",       "footer_icon": "https://platform.slack-edge.com/img/default_application_icon.png",       "ts": "1536812972"
    }]}' https://hooks.slack.com/services/xxxx/xxxxx/xxxxxxx
+ POST=ok
+ test ok '!=' ok
+ echo 'OK: Message successfully sent to the channel #general via the Slack API'
OK: Message successfully sent to the channel #general via the Slack API
+ exit 0


Increase recovery benchmark iterations

The ReadWriteWorkload and HighStress recovery benchmarks seem to only be running for 2 iterations each on jenkins. Bumping these up as anomalies (such as disk slowdowns) will sometimes produce low numbers.

New parameters result in the following new iteration counts:

HighStress: 2 -> 5
ReadWriteWorkload: 2 -> 6


QC: SPARQL query does not work

$(ONT)-test.owl: $(SRC)
	$(ROBOT) query -i $(SRC) --update ../sparql/remove-filler-defs-for-qc.ru -o $@

Does not delete anything.

closing due to age and inactivity


Updated podspec to 1.12 - Swift 4 migration.

Checklist

[ ] New Extension
[ ] New Test
[ ] Changed more than one extension, but all changes are related
[x] Trivial change (doesn't require changelog)

http://cocoapods.org/pods/EZSwiftExtensions


[SPARK-12555][SQL] Validate correct data is returned when input data is reordered

What changes were proposed in this pull request?
This PR add test case described in SPARK-12555 to validate that correct data is returned when input data is reordered and to avoid future regressions. This test actually pass in trunk code, but is failing in 1.6.0/1.6.1. Will update the issue and check if there is a need to backport the fix to 1.x release.
How was this patch tested?
Unit tests

Can one of the admins verify this patch?

Can you update the description to actually describe the problem? It'd be great if it is understandable without having to cross-reference the JIRA ticket.

@rxin Updated the PR with more details

Jenkins test this please

Test build #2628 has started for PR 11623 at commit 4ec02e1.

Test build #2628 has finished for PR 11623 at commit 4ec02e1.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

@rxin Please review this and merge/close the JIRA as I have checked with author and having the fix on 2.0 is ok (so no need to backport it).

Jenkins test this please

retest this please.

Test build #54112 has started for PR 11623 at commit f41687b.

Test build #54112 has finished for PR 11623 at commit f41687b.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54112/
Test FAILed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54189/
Test FAILed.

Merged build finished. Test FAILed.

add to whitelist

Test build #54192 has started for PR 11623 at commit c0e73cd.

Test build #54192 has finished for PR 11623 at commit c0e73cd.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54192/
Test PASSed.

Test build #54860 has started for PR 11623 at commit fe664c4.

Test build #54860 has finished for PR 11623 at commit fe664c4.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54860/
Test PASSed.

@cloud-fan could you please review

Test build #54936 has started for PR 11623 at commit f894f31.

Test build #54936 has finished for PR 11623 at commit f894f31.

This patch fails MiMa tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54936/
Test FAILed.

Merged build finished. Test FAILed.

Test build #54941 has started for PR 11623 at commit 1bd9b28.

Test build #54941 has finished for PR 11623 at commit 1bd9b28.

This patch fails MiMa tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54941/
Test FAILed.

Jenkins retest this please

Test build #54949 has started for PR 11623 at commit 3884645.

Test build #54950 has started for PR 11623 at commit 3884645.

Test build #54949 has finished for PR 11623 at commit 3884645.

This patch fails MiMa tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54949/
Test FAILed.

Merged build finished. Test FAILed.

Test build #54950 has finished for PR 11623 at commit 3884645.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54950/
Test FAILed.

Merged build finished. Test FAILed.

Test build #54954 has started for PR 11623 at commit 36f739d.

Test build #54956 has started for PR 11623 at commit fbac709.

Test build #54954 has finished for PR 11623 at commit 36f739d.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54954/
Test PASSed.

Test build #54956 has finished for PR 11623 at commit fbac709.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54956/
Test PASSed.

Merged build finished. Test PASSed.

@cloud-fan Tested the latest commit in both 1.6 branch and trunk... fails in 1.6 and works fine in trunk.

Test build #55127 has started for PR 11623 at commit a11ac28.

Test build #55127 has finished for PR 11623 at commit a11ac28.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/55127/
Test PASSed.

LGTM, merging to master, thanks!


hotfix: only conditionally disable output

Codecov Report

Merging #412 (33dfe70) into main (8010c2f) will decrease coverage by 0.00%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main     #412      +/-   ##
==========================================
- Coverage   47.03%   47.02%   -0.01%
==========================================
  Files          88       88
  Lines        6034     6035       +1
==========================================
  Hits         2838     2838
- Misses       2873     2874       +1
  Partials      323      323

Impacted Files
Coverage Δ

cmd/utils.go
20.00% <0.00%> (-2.23%)
:arrow_down:

Continue to review full report at Codecov.

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

Rebased to resolve conflict and merging.


Add tests for caching.

always import modules instead of classes
and move TestExtractor into its own module to be re-used for other tests
+@pcorpet

This change is

+@pcorpet

Review status: 0 of 6 files reviewed at latest revision, all discussions resolved.

Comments from the review on Reviewable.io

Reviewed 6 of 6 files at r1.
Review status: all files reviewed at latest revision, 5 unresolved discussions.

tests/collection_test.py, line 11 [r1] (raw file):
I suggest we use the mock module: https://docs.python.org/3/library/unittest.mock.html instead.

tests/collection_test.py, line 40 [r1] (raw file):
this function is very hard to read: please add blank lines and comment for each block so we can follow what's happening.

tests/collection_test.py, line 48 [r1] (raw file):
use another variable name so that it's easier to understand that it's completely different
collection2 = ...

tests/collection_test.py, line 52 [r1] (raw file):
Nit: here you're are doing 3 tests.

You are checking that when you use collection.run the text_extractor.extract is called exactly once.
You check that creating another collection doesn't call the extract method again.
You check that changing the source code and changing the collection calls the extract method again.

What I suggest to reduce that:

Don't assertEquals on the number of calls for 1. Instead just store the number (so that if in the future your code calls it twice or three times extract, this test won't fail)
In 2, instead of checking it's 1, just check that it's the same number as above (i.e. that there are no new calls).
opt - move 3 to another test, and only check that is greater than before (not necessary exactly 2).

tests/collection_test.py, line 54 [r1] (raw file):
modifying inner properties of an object is usually considered as bad testing practice (as the test need to be updated if you change how the object works internally).
Can you try using reflection to somehow actually modify the source code?

Comments from the review on Reviewable.io

Review status: all files reviewed at latest revision, 5 unresolved discussions, some commit checks failed.

tests/collection_test.py, line 11 [r1] (raw file):
I cannot use the mock library because it does not work with pickling. I mention this in the docstring, but that's probably not the most visible place. I will add a comment right above the class definition

tests/collection_test.py, line 40 [r1] (raw file):
Done.

tests/collection_test.py, line 48 [r1] (raw file):
Done.

tests/collection_test.py, line 52 [r1] (raw file):
Great advice. Testing is really not my strength.
I reduced it to testing only 1 and 2 for now, because that's also what the name of the function says

tests/collection_test.py, line 54 [r1] (raw file):
argh, I already had a strong feeling that that's probably not allowed.
I will remember it when I will write a test for the changed hash, but I removed this case for now anyways (see above)

Comments from the review on Reviewable.io

Reviewed 3 of 3 files at r2, 1 of 1 files at r4.
Review status: all files reviewed at latest revision, 2 unresolved discussions.

tests/collection_test.py, line 11 [r1] (raw file):
got it. Please make this class protected to this module (prefix by _)

tests/collection_test.py, line 53 [r4] (raw file):
put the expected first:
assertEqual(counter_first_run, test_extractor...counter)
so that if there's a failure the error message will show it correctly.

Comments from the review on Reviewable.io

Review status: all files reviewed at latest revision, 2 unresolved discussions.

tests/collection_test.py, line 11 [r1] (raw file):
Done.

tests/collection_test.py, line 53 [r4] (raw file):
Done.

Comments from the review on Reviewable.io


Fix screenshot

The previous screenshot was cropped, but had a huge white border to it.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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 1.187%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
4

Relevant Lines:
337

💛  - Coveralls


⚠ ClamAV has degraded performance

In c8503fc, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 66 ms

Resolved: ClamAV performance has improved in 8a99816.


How can i print the tag name that is being created

how can do this
i want to get the tag name that is getting created so to further use in docker container tagging

The tag name is provided as an output (see tag): https://github.com/christophebedard/tag-version-commit#outputs
You can use it like this:
    - uses: christophebedard/tag-version-commit@v1
      id: tag-version-commit
      with:
        token: ${{ secrets.GITHUB_TOKEN }}
    - run: echo "${{ steps.tag-version-commit.outputs.tag }}"


4.2 achievements

Hello could you please check the section Wonders of the World there is an issue in 4,2 achievements for example Deianeira of Snezhevna  is duplicated and there is Semnai Sans Shadow both in wonders and Fontaine: Dance of the Dew-White Springs (III)

Duplicate of https://github.com/MadeBaruna/paimon-moe/issues/488

(https://github.com/MadeBaruna/paimon-moe/assets/93338950/51421c0a-61aa-4738-bdb6-a1c2f29ac541)


Typo page 250?

Hi Sebastian,
On page the first section ends with "... (step 4)". I would believe that should be "(step 3)" for prediction, since the algorithm ends with step 3.

Ah, good catch! Thanks a lot!


Add explanation of using Papermill parameterized notebooks

For the key notebooks we are using, we should have documentation/preamble describing how they are parameterized, and some basic instructions on how to use them (e.g., example papermill command line), in the opening text cell of the notebook.

Sure. There are three ways one can use a notebook.

Colab..just need to uncomment some cells to install some packages
as a Jupyter notebook: Steps for Colab+install more packages that are pre-installed in colab env
Inside a docker container/terra/sb-cgc: papermill command

I can add these instructions to all notebooks

and the instructions on what should be the format of the input parameters (ie, provide a snippet of a sample input CSV).

I think we can close this issue now that #35 is merged.


fix: rollback set incorrect LastHeightValidatorsChanged

Closes: #1074
Solution:

persist the new validator set if changed.

PR checklist

[ ] Tests written/updated
[ ] Changelog entry added in .changelog (we use unclog to manage our changelog)
[ ] Updated relevant documentation (docs/ or spec/) and code comments

Unstale, it's a bug

Hey @yihuang do you know of any way to test this, or any way to reproduce the bug? That would help us a lot to feel confident about merging this PR.

when rollback, the just rollback-ed LastHeightValidatorsChanged field could be wrong, according to the code logic, validator set in the state could be skipped if not changed, it'll reference the height that actually stored the validator set in the field LastHeightValidatorsChanged, in current rollback logic, the rollback-ed LastHeightValidatorsChanged could be wrong, because it don't guarantee that height do stored the validator set, the patched version will force the rollback-ed version to store the validator set.

@yihuang, would you mind?

Writing a UT that exposes the problem, and demonstrates that this PR fixes it (i.e., UT fails without the fix, and passes with it)
Adding the info you provided in this PR in the isue itself (#1074) for traceability purposes? (Including this comment in the issue's description should suffice)

I try add a case for last height > 2, see if it helps to reproduce.


Enable MIME type detection if libmagic is not available

The goal of this issue is to enable MIME type detection if libmagic is not available. We can use filetype as a fallback if libmagic is not present. libmagic is still preferred if it's available since it's more accurate and covers more file types.
If libmagic is not available, you'll get the following error if your run import magic:
ImportError: failed to find libmagic.  Check your installation

@Coniferish is going to take a look at this one.

This is the only test I have failing right now with my local changes:
def test_detect_filetype_from_file_raises_without_libmagic(monkeypatch):
    monkeypatch.setattr(filetype, "LIBMAGIC_AVAILABLE", False)
    filename = os.path.join(EXAMPLE_DOCS_DIRECTORY, "fake-text.txt")
    with open(filename, "rb") as f, pytest.raises(ImportError):
        detect_filetype(file=f)

The ImportError comes from this conditional:
elif file is not None:
        extension = None
        # NOTE(robinson) - the python-magic docs recommend reading at least the first 2048 bytes
        # Increased to 4096 because otherwise .xlsx files get detected as a zip file
        # ref: https://github.com/ahupp/python-magic#usage
        if LIBMAGIC_AVAILABLE:
            mime_type = magic.from_buffer(file.read(4096), mime=True)
        else:
            mime_type = ft.guess_mime(file.read(4096))
        if mime_type == None:
            raise ImportError(
                "libmagic is unavailable. "
                "Filetype detection on file-like objects requires libmagic. "
                "Please install libmagic and try again.",
            )

Should filetype.py still raise an ImportError if Libmagic is unavailable (and filetype is unable to guess the mimetype)?

@MthwRobinson This is the only test I have failing right now with my local changes:
def test_detect_filetype_from_file_raises_without_libmagic(monkeypatch):
    monkeypatch.setattr(filetype, "LIBMAGIC_AVAILABLE", False)
    filename = os.path.join(EXAMPLE_DOCS_DIRECTORY, "fake-text.txt")
    with open(filename, "rb") as f, pytest.raises(ImportError):
        detect_filetype(file=f)

The ImportError comes from this conditional:
elif file is not None:
        extension = None
        # NOTE(robinson) - the python-magic docs recommend reading at least the first 2048 bytes
        # Increased to 4096 because otherwise .xlsx files get detected as a zip file
        # ref: https://github.com/ahupp/python-magic#usage
        if LIBMAGIC_AVAILABLE:
            mime_type = magic.from_buffer(file.read(4096), mime=True)
        else:
            mime_type = ft.guess_mime(file.read(4096))
        if mime_type == None:
            raise ImportError(
                "libmagic is unavailable."
                "Filetype detection on file-like objects requires libmagic."
                "Please install libmagic and try again.",
            )

Should filetype.py still raise an ImportError if Libmagic is unavailable (and Filetype is unable to guess the mimetype)? I'm unsure what kind of error to raise here since we're using Filetype as a fallback (making Libmagic not technically required any more).

Yeah I don't think we need to raise an error there anymore since this will be the fallback if libmagic isn't available. For files we can probably return FileType.UNK if mime_type is None after trying both methods. If libmagic isn't installed and mime_type turns out as None, if would be nice to have a logger.warning statement that suggest installing libmagic for better results. Check out this test for an example of how to test that the warning was logged.


execute Ocean Marketplace transaction through button extension

Currently the extension has two available buttons, one for connecting  a Metamask wallet and another for sending a predefined transaction.
A good next step would be to add a button that executes a predefined Ocean Marketplace transaction (e.g. buying a datatoken from the generative art pool)

should we close this? it seems like we want to avoid OCEAN right?

Yeah this is no longer relevant, the ocean transaction takes place as a function call in the cell.


add a task like issue template

add a task like issue template to acommodate this new way of tracking changes

Addressed in:

https://github.com/semanticdata/dotfiles/commit/e981d005340e43f8fc6df7eb270574e2248dd10f


Alpha Vantage Acknowledgement

Hello Team IBM,
We are the support team of Alpha Vantage. Huge fan of the Watson Stock Advisor - we are honored to be part of the journey!
The title of the project home page reads "Use Watson Discovery, Cloudant NoSQL DB, and Node.js to create a web app to monitor sentiment, price, and news for individually listed stocks."
Would it be possible to include Alpha Vantage in the title as well? If you see fit, please feel free to drop us a note at<EMAIL_ADDRESS>anytime.
Sincerely,
Team Alpha Vantage

@team-alphavantage that sounds like a completely reasonable ask. I updated the page to reflect that: https://developer.ibm.com/code/patterns/create-a-web-app-to-get-stock-information-prices-and-sentiment/


Add cookie preferences form

This PR adds a cookie page with a  "form" for users to be able to update their cookie consent preferences.
As the Design System website is a static site without a backend to process form submissions, this page uses JavaScript to process the form input, show errors or notification banners, and update the cookies.  We only use cookies with JavaScript, so it is acceptable for users to not be able to update their cookie preferences if they do not have JavaScript enabled. In the case where JavaScript is not available the form is not visible.
The cookie page has several dynamic components that are controlled by JavaScript:

a success notification banner which is shown only after cookie
settings have been saved

an error summary which is shown if the user has not selected an option
for all form inputs

a set of radios for each cookie type

a button which is used to submit the form

Currently only one cookie type is supported, analytics, but the JavaScript in src/javascripts/components/cookies-page.js should be flexible enough to be expanded to support multiple cookie types without too much additional code.

Note that this PR does not contain the cookie page content; I thought it would be better to put that in a separate PR to keep the amount to review down for both. See https://github.com/alphagov/govuk-design-system/pull/1747 for the content changes.

@36degrees @hannalaakso Would appreciate a review on this PR - Laurence did the bulk of the work, but I've made some changes based on my own comments, so it'd be good to get another dev to pick up the review now.


Move base images tag info into its own file

This makes it possible to run tests through pycharm or nosetests
without fiddling with environment variables.

looks good

Rebased and merged


Get remote ip address as a property for session

Required for telemetry https://github.com/microsoft/basis-planning/issues/481
and
rate limiting https://github.com/microsoft/basis-planning/issues/482

Closing this PR as we will not be needing it as we are doing it in the service


Turns compatible with sprockets 4

Sprockets 4 deprecated the usage of regex on precompile paths: https://github.com/rails/sprockets-rails/issues/269

Thank you for contributing and submitting this PR! 💯


Follow-up work from main "Recent topics" PR review

This is the master issue for follow-up tasks from the major PR that migrates "Recent topics" to replace "All messages" as the default view in Zulip, while also making it no longer a modal (https://github.com/zulip/zulip/pull/15650#issuecomment-780212164, skipping items resolved before merging):

[x] I think we should create a more declarative exported function for "Messages not visible in center pane" that handles overlays, "recent topics", and anything of that form we might use in the future, that can be called from places like hotkeys.js.  We should keep in mind that anything we do in hotkey.js needs to be fast if it's a code path before we've decided we're not in the compose box (and other input elements), to avoid slowing down typing actual messages.
[ ] We probably will also want to think about simplifying the hotkey.js list of exceptions for recent_topics -- it's generally undesirable to have a list of specific widgets where we shouldn't eat input; better would be to only eat input relevant to the target widget.  E.g. I think if we added a new text box in a sidebar, we'd need to remember to adjust that list.
[x] We will probably want to rename the #all_messages URL to something more similar to other message views.  Probably a broader discussion because we may want to bundle that into a larger/deferred plan to e.g. replace /#narrow/ with /messages/ and/or other migrations to avoid churning what users see too much; I'm not sure.  Start a chat.zulip.org thread about naming as the next step for this one.
[x] From recently playing with "recent topics", I really want to be able sort by number of unreads (at least with my current data set with 1500 unread messages -- basically it'll let me quickly find the longest threads I'm not caught up on). Issue  #17347
[ ] For issues like MessageListView: Don't reselect message_id if RT is open., should we instead by making current_message_list undefined when showing "Recent topics"?  That's likely a bigger refactor since we'd need to audit for what changing that invariant might impact, but that might be more correct logically.  Until then, I think the current code will DTRT in all existing cases, so it's mergeable, just a potential liability.
[ ] We should do testing for how this view works for users creating a new account in a large organization like chat.zulip.org.  I think ONBOARDING_TOTAL_MESSAGES being 1000 means that users should see the last 1K messages in their default streams in "Recent topics", and that's probably enough history to be able to scroll to the bottom.  But we should test, and maybe think about having text when you hit the bottom of the table that makes it possible to discover that "Recent topics" only provides limited history from before you joined.  (We may later want to have some way to "Fetch more from before one joined" using streams:public type narrows, but that's certainly a flourish we don't need to block on).  Because we'll be dropping new users into this view pretty quickly, we want to make sure it doesn't make them think it's impossible to read messages older than 2 days ago in a community like chat.zulip.org that might do 1K messages in 2 days.
[x] I kinda want "Recent topics" to be the top item on the left sidebar, but I think it might end up messing up the conceptual structure (where having the "All messages" unread count at the top signals clearly that it's the grand total).
Discussion for this on https://chat.zulip.org/#narrow/stream/6-frontend/topic/Recent.20Topics.20button.20position
[x] Think about whether we structurally want to have "Recent topics" always rendered in the DOM (in the background) in order to optimize navigating back and forth to it, like we do for "All messages".

I imagine we'll clear out most of these relatively quickly and then close this in favor of individual issues for outstanding items.

Think about whether we structurally want to have "Recent topics" always rendered in the DOM (in the background) in order to optimize navigating back and forth to it, like we do for "All messages".

Recent Topics is always already faster to render narrow to compared to all message or any other stream / topic narrow.
So, this doesn't seem like a real issue to me.

How do I get rid of the "Recent topics (beta)" display that now appears when I launch Zulip?

Hi @cormullion see discussion in https://chat.zulip.org/#narrow/stream/137-feedback/topic/all_messages.20as.20home.20view.20again

I want to work on the third part of issue.

Hi @ritikchauhan-01, for the third part, we will wait for #16961 to be merged first before starting work on it.

@alya @amanagr I think it's worth talking through this, checking off what's complete, and deciding to what extent we think the others are actually useful/necessary, and then moving them to dedicated issues.  Thoughts?

I think the remaining checkboxes here are likely all useful, but we should consider splitting this into individual issues in the "recent topics" label; I feel like nobody is in practice going to work on an issue with this state.

I filed #21858 for the first unchecked point.


subsquid

hello

hello sir
On Sun, Oct 8, 2023 at 13:35 iyke1k @.***> wrote:

hello
—
Reply to this email directly, view it on GitHub
https://github.com/subsquid-quests/single-chain-squid/issues/16#issuecomment-1751937284,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AT24GNGRWZPXEPWSS5NIWXDX6JCSZAVCNFSM6AAAAAA5T6MVGSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJRHEZTOMRYGQ
.
You are receiving this because you authored the thread.Message ID:
@.***>


Adding jquery helpers for Selenium testing

I wrote this little tidbit today at work while working with Selenium.  It's not a substantial enhancement, but I think it kicks the Selenium DSL story up a notch.  With this enhancement you can write tests like this:
class BlogSpec extends FlatSpec with ShouldMatchers with WebBrowser with Eventually {
  implicit val webDriver: WebDriver = new HtmlUnitDriver
  import jquery._

  go to "https://twitter.com"
  $("#signin-email").click()
  pressKeys("joescii")
  $(".primary-btn").click()

  eventually {
    $$(".tweet-text").foreach(tweet => // ...
    )
    // OR
    $("#timeline").findAll(".tweet-text").foreach(tweet => // ...
    )
  }
}

Anyway, it's here if you decide you'd like to include it in scalatest.  I'll gladly contribute to updating the Using Selenium section of the guide.  Thanks for all of the great work!

@cla-bot[bot] check


Exporting Items hangs

Debug log ID
LDU6KSNK-euc/6.7.238-7
What happened?
I right click on a collection and "export collection..."  using format "better bibtex" with only "worker" checked.  It then goes ask for filename, I select one, and then shows "exporting items..." for ever.  All data should be in debug log.  This appears to happen on all collections, even those that had been previously exported correctly.

I just uploaded other issue with exactly the same issue!

Sorry I should have searched.  Will +1 your issue
-seth
Sent from<PHONE_NUMBER>. Please excuse brevity and typos.
On Sat, Sep 28, 2024 at 9:08 PM juanpedroross @.***>
wrote:

I just uploaded other issue with exactly the same issue!
—
Reply to this email directly, view it on GitHub
https://github.com/retorquere/zotero-better-bibtex/issues/3002#issuecomment-2381045401,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAM5RNVTFKGA2MY2PKUEUWLZY5HIVAVCNFSM6AAAAABPBCQTQOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGOBRGA2DKNBQGE
.
You are receiving this because you authored the thread.Message ID:
@.***>

Do not +1 issues. Just subscribe.


the live demo can't fetch data from your backend-api

Hi, the live demo seems not work because it can't fetch data through your backend-api.

Hey thanks for pointing that out. I recently attempted to change my website to use https, but ran into some technical issues with my server. I then decided to revert back to http, but the certificate had already been installed to some people's machines which causes Chrome to not load "unsafe scripts" (i.e. anything from my http web server).
Check the browser url, and if it's https, change it to http and things should load 👍


Switch FrameIterator to use PyAV instead of OpenCV

Switch FrameIterator to use PyAV instead of OpenCV, fixing bugs in set_pos()
Also remove other uses of cv2 package
Remove opencv-python-headless as a dependency

This change is


simulation mode / skeleton keys

Add simulation mode / skeleton keys to help with debugging and testing.
A command line only option --skeleton-key should put nodeos into a "simulation mode". The option can be specified multiple times and adds the specified public keys into the set of "skeleton keys".
There should be eye catching warning messages printed if nodeos has started in simulation mode. Mainnet node operators should never run the node in simulation mode, otherwise they put themselves at risk of forking from the mainnet.
When nodeos is in simulation mode:

All authorizations checks are automatically satisfied if the transaction is signed using a skeleton key.
A block signed by a skeleton key is considered signed properly in the consensus logic.
If a transaction has a pair in its transaction_extensions with a tag value of std::numeric_limits<uint16_t>::max(), the payload data of that extension should be interpreted as a vector of public_key_types, and those public keys should be treated as the recovered public keys from the transaction's signatures.
If a transaction has a pair in its transaction_extensions with a tag value of std::numeric_limits<uint16_t>::max()-1, the payload data of that extension should be interpreted as a fc::microseconds and that value should be set as the new time_offset right after the end of the block including that transaction (see remarks below). If multiple transactions like this exist in the same block, the time_offset is determined from the last of such transactions in the block.

The values std::numeric_limits<uint16_t>::max()-1 and std::numeric_limits<uint16_t>::max() should be reserved from being used in any future transaction_extensions tag accepted on a mainnet so that there is no ambiguity when replaying a mainnet block log in simulation mode.
All usage of now in the code used for determining timestamps (e.g. for block timestamps) should be modified to use a simulated time when running in simulation mode. In simulation mode, the timestamp returned from now calls should be the real clock time shifted by the current time_offset.

Was the idea ditched in favor of some other procedure? If so, what is the replacement?

The idea hasn't been abandoned yet. It's just not a priority at the moment. There is however an alternative way of simulating a fork of an existing chain that is being explored here: https://github.com/EOSIO/eos/pull/7413. The approach in that draft pull request does not provide all the capabilities described in this issue, but it may be good enough for most simulation/testing needs.


Physics2DServer.body_set_state() Not setting state immediately

Godot version:
3.0.3
Issue description:
When the state of a KinematicBody2D is set using Physics2DServer.body_set_state() it is not updated immediately, when called Physics2DServer.body_get_state() still returns the old state. It seems to only be updated the next physics frame.
Steps to reproduce:
Set state of KinematicBody2D using the physics server and then request the current state.
Minimal reproduction project:
Physics2DTest.zip
Press the button, it will set the state and print whether it is equal to the value it was set to.

Modifying the transform of the result of body_get_direct_state also do not work, if this is not possible then Kinematic Bodies will need a safe method for warping it around the screen.

Still valid in 4e52c75a9, although it's probably a documentation issue.


Rename veneer_yaml arg to gapic_yaml

Thanks @chrisdunelm. Can you also fix similar issues in test/testdata/?

test/testdata/ files also updated, PTAL

OK, never mind, I see that PR#10 has already done all this.

Oh, sorry @chrisdunelm. I forgot to circle back on you regarding that. I did a global veneer -> gapic replace in the the toolkit repo a couple days ago, so did the same yesterday for artman.


Fix doc for NODE column

Swarm docker ps output nolonger have NODE column, So this updates the doc
Fixes: #2081
Signed-off-by: Kai Qiang Wu(Kennan<EMAIL_ADDRESS>

LGTM


bug(MatCheckbox/MatSlideToggle): the component is included in the form control validators when using Reactive Forms

Is this a regression?

[ ] Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was
I don't know if this behavior was present in previous versions, but I'm sure it happens in Angular v17 as well because that's where I first reproduced it.
Description
When using MatCheckbox or MatSlideToggle with Reactive Forms (let's say we are using it with a FormControl named control), when one inspects control.validator it always contains an array with at least one validation function, even if control has no validator defined.
If we set a breakpoint in the _setValidators method of AbstractControlDirective we will see that it receives an instance of _MatCheckbox/MatSlideToggle (see screenshot).

Reproduction
StackBlitz link: https://stackblitz.com/edit/stackblitz-starters-xpcrvu
Steps to reproduce:

Check the console logs to verify what is described in the description.

Expected Behavior
checkboxControl.validator and slideToggleControl.validator must be null.
Actual Behavior
checkboxControl.validator/slideToggleControl.validator are [compose(control) { ... }] (after the view has been initialized) when using MatCheckbox/MatSlideToggle with FormControlDirective.
Environment
@angular-devkit/architect       0.1800.6
@angular-devkit/build-angular   18.0.6
@angular-devkit/core            18.0.6
@angular-devkit/schematics      18.0.6
@angular/cli                    18.0.6
@schematics/angular             18.0.6
rxjs                            7.8.1
typescript                      5.4.5
zone.js                         0.14.7

The component is included in order to support the required input. This shouldn't be an issue, because if the component isn't required, it won't produce any validation errors.

I created the issue because I needed to find out if a form control had at least one validator associated with it. Since AbstractControl does not have a method to find this out, I had to resort to control.validator and control.asyncValidator, and I came up with a solution similar to the following:
function hasValidators(control: AbstractControl): boolean {
	return control.validator !== null || control.asyncValidator !== null;
}

But since MatCheckbox and MatSlideToggle include the component in control.validator, I had to modify the solution using _rawValidators:
function hasValidators(control: AbstractControl, isCheckboxOrSlideToggle: boolean): boolean {
	if (isCheckboxOrSlideToggle && '_rawValidators' in control && Array.isArray(control['_rawValidators'])) {
		return control['_rawValidators'].length > 1 || control.asyncValidator !== null;
	}

	return control.validator !== null || control.asyncValidator !== null;
}