Add ability to interact with terminal output

Is your feature request related to a problem? Please describe.
When using Lapce for web development, when i start a webserver from my terminal, many tools will print the url where the server is running. The problem is that I cannot click the link from the terminal or even select the text to copy and paste.
This could also be a problem for debugging when some langauges/tools will output links for documentation for warnings/errors.
Describe the solution you'd like.
Make the terminal output selectable so that I can copy/paste from the terminal and text clickable if a link is detected. VSCode has a great implementation for this

I cloned the project and built from source on MacOS (Apple Silicon M1) and I see that this features is actually implemented already and works when built from source locally.
The issue seems to happen when installing via the .dmg file.
I will update this issue from a feature request to a bug

Make the terminal output selectable so that I can copy/paste from

Duplicate of https://github.com/lapce/lapce/issues/871


Add a memory usage profiler (w/ C background thread)

I'd like to put more work into this, but I think it's ready to merge since it only runs when explicitly enabled as a hook.


[target.'cfg(target_os = "macos")'.dependencies] is used on Windows 10 during compile

Problem
Can't build project with dependency specified via cfg-expression on Windows 10.
Steps

cargo new win-10-issue
cd win-10-issue
add depenencies (from Notes) to Cargo.toml.
cargo run
Got: Get error: failed to run custom build command for gfx-backend-metal v0.3.3

Notes
Dependencies:
[target.'cfg(target_os = "macos")'.dependencies]
rendy = {git = "https://github.com/amethyst/rendy", rev = "08df51d", features=["metal"]}

[target.'cfg(windows)'.dependencies]
rendy = {git = "https://github.com/amethyst/rendy", rev = "08df51d", features=["vulkan"]}

Installation details:
cargo --version
cargo 1.37.0 (9edd08916 2019-08-02)

When trying to build cargo itself on my machine (which uses these cfg-expressions) everything works as expected.
Also removing macos-specific dependency makes mentioned Error go away.

Thanks for the report!  This is essentially a duplicate of #1197, so I'm going to close in favor of that.


CI: Add test to ensure all Tags are in X-Tag-Groups. RD-21094

I added a test to make sure all tags are in x-tag-groups for spec generation (otherwise newly added doc can't be reached from navigation bar on the website)
Fail
ylecuyer@hawk:~/Projects/engage-digital-api-docs$ go test -v -covermode=count ./...
=== RUN   TestSpecs
    specs_test.go:30: SPEC_IS_VALID [engage-digital_openapi3.yaml] TITLE [RingCentral Engage Digital API] OP_COUNT [137] OP_PARAM_WO_DESC [208/592] SCH_PROP_WO_DESC [580/631]
--- PASS: TestSpecs (0.07s)
=== RUN   TestTags
    specs_test.go:78: [engage-digital_openapi3.yaml] [RingCentral Engage Digital API]: [{Webhooks}] Tag is missing in x-tag-groups
--- FAIL: TestTags (0.03s)
FAIL
coverage: [no statements]
FAIL	github.com/grokify/engage-digital-api-docs/specs	0.102s
FAIL

Pass
=== RUN   TestSpecs
    specs_test.go:30: SPEC_IS_VALID [engage-digital_openapi3.yaml] TITLE [RingCentral Engage Digital API] OP_COUNT [137] OP_PARAM_WO_DESC [208/592] SCH_PROP_WO_DESC [580/631]
--- PASS: TestSpecs (0.08s)
=== RUN   TestTags
    specs_test.go:83: SPEC_IS_VALID [engage-digital_openapi3.yaml] TITLE [RingCentral Engage Digital API]
--- PASS: TestTags (0.02s)
PASS
coverage: [no statements]
ok  	github.com/grokify/engage-digital-api-docs/specs	0.107s	coverage: [no statements]

I'm not used to writing go, I hope it is idiomatic and good enough

@CoCraig could you have a look?


How to change the default setup for using res.plot()

Is your feature request related to a problem? Please describe.
Hi all,
I am fitting my data with a poisson distribution, and I use the commond res.plot to visualize my result.
How can I change the line color or hist color for the default setting up?
for example, I want set the color of fitted PMF as red want to increase the linewidth.

Hope can get your suggestion. Thanks
Describe the solution you'd like.
No response
Describe alternatives you've considered.
No response
Additional context (e.g. screenshots, GIFs)
No response

This seems to be about the plot method of the object returned by stats.fit.
SciPy provides no features for customizing the plot directly. However, it returns the Matplotlib axis object, and you should be able to modify the attributes using the features of Matplotlib.


feat: add better range slider

Fixes Issue
**My PR closes #315
👨💻 Changes proposed(What did you do ?)

change the tertiary colour
made the range input look better

✔ Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] This PR does not contain plagiarized content.
[x] The title and description of the PR is clear and explains the approach.

Note to reviewers

📷 Screenshots

:tada: This PR is included in version 2.32.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


WMS ID: 11445 - OAS SSO With IAM Domain via App Gateway

Add here your WMS ID
General requirements

Information in the workshop is adequate and updated
Code is correct and working
Links are correct
Make sure you enter the help email link in your manifest.json
Please make sure WMS URLs are updated as needed after your PR is approved

Checklist - Refer to the QA document for the complete list
Please confirm that the following is completed before submitting your PR

[x] All filenames are lower case (including folders, images, files, etc.)
[x] Filenames are descriptive
[x] Your workshop folder structure should be similar to the one used in the sample workshop (https://github.com/oracle-livelabs/common/tree/main/sample-livelabs-templates/sample-workshop)
[x] Are you using multiple versions (desktop/, sandbox/, tenancy/)? Make sure that each of them contains a manifest.json and an index.html
[x] Image references in markdown contain an alternate text

Please resolve the current conflicts

Hello Hope,
Could you please let me know what are the conflicts and where I can go ad resolved them
Thanks and regards,
Sagar Takkar
From: Hope Fisher @.>
Sent: 14 November 2023 23:26
To: oracle-livelabs/security @.>
Cc: Sagar Takkar @.>; Author @.>
Subject: [External] : Re: [oracle-livelabs/security] WMS ID: 11445 - OAS SSO With IAM Domain via App Gateway (PR #148)
Please resolve the current conflicts
—
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https:/github.com/oracle-livelabs/security/pull/148*issuecomment-1810828930__;Iw!!ACWV5N9M2RV99hQ!LLYeMv1SdpCmRY0gm4emVwy9fMQKXyeL3FuyUfzeDXL2z5yQw5mAmWbL8aiU-RkBSe7KtugrYEcQnva_2PxEEoPMtn4$, or unsubscribehttps://urldefense.com/v3/__https:/github.com/notifications/unsubscribe-auth/BATY7RBQXORYXOR7QBU6IRTYEOWBHAVCNFSM6AAAAAA7KPU2TOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMJQHAZDQOJTGA__;!!ACWV5N9M2RV99hQ!LLYeMv1SdpCmRY0gm4emVwy9fMQKXyeL3FuyUfzeDXL2z5yQw5mAmWbL8aiU-RkBSe7KtugrYEcQnva_2PxE4VwZBUw$.
You are receiving this because you authored the thread.Message ID: @.***>

@hope-fisher, Completed and pushed the changes you recommended, Please let us know the next steps.


MM-13384 Fix clicking username in profile popover

Summary
Fix clicking username in profile popover.
Ticket Link
https://mattermost.atlassian.net/browse/MM-13384

@jwilander Now there are few conflicts for the PR.


Can't see images of slider when routing to it

Cordova CLI: 6.1.1
Gulp version:  CLI version 3.8.11
Gulp local:   Local version 3.9.0
Ionic Framework Version: 1.3.1-nightly-4219
Ionic CLI Version: 2.1.0
Ionic App Lib Version: 2.0.0-beta.20
ios-deploy version: 1.8.3
ios-sim version: 5.0.1
OS: Mac OS X El Capitan
Node Version: v0.12.0
Xcode version: Xcode 8.0 Build version 8A218a

First of all, hi!
I have a rather odd problem that I want to fix. I've made a splashscreen that works. Great. I have also a homepage that works. Also great. My homepage has a slider... it works. But....
Problem: my slider's images are not showing, when I first visit the splashscreen. When I route a button (that is situated on my splashscreen) to my homepage, I can't see the images in the slider.
app.controller('SlideboxModule', function ($scope) {
    $scope.options = {
        loop: false,
        effect: 'fade',
        speed: 1000,
        slidesPerView: 3,
        centeredSlides: false
    }
});

This is the code for the slidebox.
My images in the slider do work though, when I change this to home, instead of the splashscreen:
$urlRouterProvider.otherwise("/home");
I truly don't get it. The things is: it doesn't work on the view or the lab... so can't see my home.html at all anymore. It just says "Cannot GET /home.html". I tried checking it in the console, but no errors at all...

This issue was moved to driftyco/ionic-v1#85


ci(*): 👷 use node v20 to publish

Pull Request Checklist
🚨 Please review the guidelines for contributing to this repository.

[ ] Appropriate label or labels have been added
[ ] ✅ Tests for the changes have been added (for type:fix / type:feat)
[ ] 📝 Docs have been reviewed, added or updated if needed (for type:fix / type:feat)
[ ] 🏁 Issue number has been linked if this PR closes one

Description
Please describe your pull request.
Breaking Change?

[ ] 💥 Yes
[ ] No

❤ Thank you for contributing!

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (86f5555) 97.46% compared to head (a0e1d4c) 97.46%.

:exclamation: Current head a0e1d4c differs from pull request most recent head b3c1a3c. Consider uploading reports for the commit b3c1a3c to get more accurate results

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##           master     #405   +/-   ##
=======================================
  Coverage   97.46%   97.46%
=======================================
  Files          31       31
  Lines         394      394
  Branches       67       67
=======================================
  Hits          384      384
  Misses          8        8
  Partials        2        2

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


⚠ Bofrost.es has degraded performance

In 37223c1, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1537 ms

Resolved: Bofrost.es performance has improved in 88c55c5 after 6 minutes.


Running Redis fails

Hi Jerko!
I tried to add Redis as store, and I get an error.
My docker ps

My config

My error

Maybe I make the wrong config?

Are you running a local redis instance?
What happens when you run:
redis-cli

or
redis-cli -h <IP_ADDRESS> -p 6379

bash: redis-cli: command not found

Also, you won't be able to use a local redis from a docker instance. You'd have to create a network and link the containers, or use docker-compose for this:
version: '3.1'

services:
  redis:
    image: redis:5-alpine
    restart: always
  peercalls:
    image: peer-calls:latest
    restart: always
    links:
      - redis
    ports:
      - 3000:3000

Now you should be able to use host: redis and port: 6379.

Added new docker-compose.yml, changed the config to :
version: '3.1'

services:
  redis:
    image: redis:5-alpine
    restart: always
  peercalls:
    image: peer-calls:latest
    restart: always
    links:
    - redis
    ports:
    - 3000:3000

Rebuilded all an up.

Now you should be able to use host: redis and port: 6379.

Change the redis host to redis

Like this ?

yes, it has to be the same as the name of the container in a docker-compose file.

Nothing changes :(

What happens if you run only this, without any config files?
version: '3.1'

services:
  redis:
    image: redis:5-alpine
    restart: always
  peercalls:
    image: jeremija/peer-calls:latest
    restart: always
    environment:
      PEERCALLS__STORE: '{"type":"redis","host":"redis","port":"6379"}'
    links:
    - redis
    ports:
    - 3000:3000

It works for me too. But is it ok to put store config into docker-compose.yml?

It depends. You might want to use a separate file like .env.
If you want to use a local config file using docker-compose, the easiest way is to write the file to ./config/local.yaml, and then add the config/ directory as a volume:
services:
  peercalls:
    volumes:
      - './config:./config'

I understand. Thank you for good advice.

@litashg how can i contact you?


[Question]: using generated chat API key to get dialog list got 401 Unauthorized

Describe your problem
when using generated chat API key to get dialog list got 401 Unauthorized  error .
and does the chat API key is authorized  to v1/dialog/list  ?
thanks.

No.

No.
then. how  to get  an authorized API key to access   it?

No.

and I saw the codebase  with  @login_required  decorations, how long does this valid session?

From copilot

@yangboz The session validity for @login_required in Flask is typically managed by the session configuration in your Flask application. By default, Flask sessions are valid until the browser is closed or the session cookie expires. You can configure the session duration using the PERMANENT_SESSION_LIFETIME setting in your Flask configuration.
To bypass or authenticate the @login_required decorator when using the API directly, you can use API tokens. Here’s how you can do it:
Step-by-Step Plan

Generate an API Token: Use the /new_token endpoint to generate a new API token.
Use the API Token: Include the generated token in the Authorization header of your API requests.

Example Code
Generate an API Token
import requests

# Replace with your actual URL and user credentials
url = 'http://your-flask-app-url/new_token'
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token'
}
response = requests.post(url, headers=headers, json={})
api_token = response.json().get('data').get('token')
print(f"Generated API Token: {api_token}")

Use the API Token
import requests

# Replace with your actual URL and the generated API token
url = 'http://your-flask-app-url/some_protected_endpoint'
headers = {
    'Content-Type': 'application/json',
    'Authorization': f'Bearer {api_token}'
}
response = requests.get(url, headers=headers)
print(response.json())

Flask Configuration for Session Lifetime
In your Flask configuration file (e.g., config.py), set the session lifetime:
from datetime import timedelta

class Config:
    # Other configurations...
    PERMANENT_SESSION_LIFETIME = timedelta(days=7)  # Set session lifetime to 7 days

This configuration ensures that the session is valid for 7 days. Adjust the timedelta as needed for your application.

tried the code base , bu got
#res.json(): {'data': None, 'retcode': 100, 'retmsg': "<NotFound '404: Not Found'>"}

any idea ? thanks.

From copilot

@yangboz The session validity for @login_required in Flask is typically managed by the session configuration in your Flask application. By default, Flask sessions are valid until the browser is closed or the session cookie expires. You can configure the session duration using the PERMANENT_SESSION_LIFETIME setting in your Flask configuration.
To bypass or authenticate the @login_required decorator when using the API directly, you can use API tokens. Here’s how you can do it:
Step-by-Step Plan

Generate an API Token: Use the /new_token endpoint to generate a new API token.
Use the API Token: Include the generated token in the Authorization header of your API requests.

Example Code
Generate an API Token
import requests

# Replace with your actual URL and user credentials
url = 'http://your-flask-app-url/new_token'
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token'
}
response = requests.post(url, headers=headers, json={})
api_token = response.json().get('data').get('token')
print(f"Generated API Token: {api_token}")

Use the API Token
import requests

# Replace with your actual URL and the generated API token
url = 'http://your-flask-app-url/some_protected_endpoint'
headers = {
    'Content-Type': 'application/json',
    'Authorization': f'Bearer {api_token}'
}
response = requests.get(url, headers=headers)
print(response.json())

Flask Configuration for Session Lifetime
In your Flask configuration file (e.g., config.py), set the session lifetime:
from datetime import timedelta

class Config:
    # Other configurations...
    PERMANENT_SESSION_LIFETIME = timedelta(days=7)  # Set session lifetime to 7 days

This configuration ensures that the session is valid for 7 days. Adjust the timedelta as needed for your application.

any example of your-flask-app-url ?   such as http://api_host_IP/v1 , right ?

some time may happen as following
#res.json(): {'data': None, 'retcode': 101, 'retmsg': 'required argument are missing: dialog_id; '}

some time may happen as following
#res.json(): {'data': None, 'retcode': 101, 'retmsg': 'required argument are missing: dialog_id; '}

does it means  API token related to dialog_id ? if not offering , the data got None ?  but we needs the whole project's API token .   that's  odd.

Unfortunately, you may have to debug the frontend and backend to see what APIs are called and the requests' payload to find out the restful API format.

Unfortunately, you may have to debug the frontend and backend to see what APIs are called and the requests' payload to find out the restful API format.

just previous  codebase ,man.

From copilot

@yangboz The session validity for @login_required in Flask is typically managed by the session configuration in your Flask application. By default, Flask sessions are valid until the browser is closed or the session cookie expires. You can configure the session duration using the PERMANENT_SESSION_LIFETIME setting in your Flask configuration.
To bypass or authenticate the @login_required decorator when using the API directly, you can use API tokens. Here’s how you can do it:
Step-by-Step Plan

Generate an API Token: Use the /new_token endpoint to generate a new API token.
Use the API Token: Include the generated token in the Authorization header of your API requests.

Example Code
Generate an API Token
import requests

# Replace with your actual URL and user credentials
url = 'http://your-flask-app-url/new_token'
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token'
}
response = requests.post(url, headers=headers, json={})
api_token = response.json().get('data').get('token')
print(f"Generated API Token: {api_token}")

Use the API Token
import requests

# Replace with your actual URL and the generated API token
url = 'http://your-flask-app-url/some_protected_endpoint'
headers = {
    'Content-Type': 'application/json',
    'Authorization': f'Bearer {api_token}'
}
response = requests.get(url, headers=headers)
print(response.json())

Flask Configuration for Session Lifetime
In your Flask configuration file (e.g., config.py), set the session lifetime:
from datetime import timedelta

class Config:
    # Other configurations...
    PERMANENT_SESSION_LIFETIME = timedelta(days=7)  # Set session lifetime to 7 days

This configuration ensures that the session is valid for 7 days. Adjust the timedelta as needed for your application.

@learnerLj

From copilot

@yangboz The session validity for @login_required in Flask is typically managed by the session configuration in your Flask application. By default, Flask sessions are valid until the browser is closed or the session cookie expires. You can configure the session duration using the PERMANENT_SESSION_LIFETIME setting in your Flask configuration.
To bypass or authenticate the @login_required decorator when using the API directly, you can use API tokens. Here’s how you can do it:
Step-by-Step Plan

Generate an API Token: Use the /new_token endpoint to generate a new API token.
Use the API Token: Include the generated token in the Authorization header of your API requests.

Example Code
Generate an API Token
import requests

# Replace with your actual URL and user credentials
url = 'http://your-flask-app-url/new_token'
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token'
}
response = requests.post(url, headers=headers, json={})
api_token = response.json().get('data').get('token')
print(f"Generated API Token: {api_token}")

Use the API Token
import requests

# Replace with your actual URL and the generated API token
url = 'http://your-flask-app-url/some_protected_endpoint'
headers = {
    'Content-Type': 'application/json',
    'Authorization': f'Bearer {api_token}'
}
response = requests.get(url, headers=headers)
print(response.json())

Flask Configuration for Session Lifetime
In your Flask configuration file (e.g., config.py), set the session lifetime:
from datetime import timedelta

class Config:
    # Other configurations...
    PERMANENT_SESSION_LIFETIME = timedelta(days=7)  # Set session lifetime to 7 days

This configuration ensures that the session is valid for 7 days. Adjust the timedelta as needed for your application.

From copilot

@yangboz The session validity for @login_required in Flask is typically managed by the session configuration in your Flask application. By default, Flask sessions are valid until the browser is closed or the session cookie expires. You can configure the session duration using the PERMANENT_SESSION_LIFETIME setting in your Flask configuration.
To bypass or authenticate the @login_required decorator when using the API directly, you can use API tokens. Here’s how you can do it:
Step-by-Step Plan

Generate an API Token: Use the /new_token endpoint to generate a new API token.
Use the API Token: Include the generated token in the Authorization header of your API requests.

Example Code
Generate an API Token
import requests

# Replace with your actual URL and user credentials
url = 'http://your-flask-app-url/new_token'
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token'
}
response = requests.post(url, headers=headers, json={})
api_token = response.json().get('data').get('token')
print(f"Generated API Token: {api_token}")

Use the API Token
import requests

# Replace with your actual URL and the generated API token
url = 'http://your-flask-app-url/some_protected_endpoint'
headers = {
    'Content-Type': 'application/json',
    'Authorization': f'Bearer {api_token}'
}
response = requests.get(url, headers=headers)
print(response.json())

Flask Configuration for Session Lifetime
In your Flask configuration file (e.g., config.py), set the session lifetime:
from datetime import timedelta

class Config:
    # Other configurations...
    PERMANENT_SESSION_LIFETIME = timedelta(days=7)  # Set session lifetime to 7 days

This configuration ensures that the session is valid for 7 days. Adjust the timedelta as needed for your application.

any example of your-flask-app-url ? such as http://api_host_IP/v1 , right ?

by MS  copilot AI ?  seriously .   did it know all of ragflow's context ?

请问最后解决了吗，我这里访问所有带@login_required的接口，输入了token之后还是会显示{'data': None, 'retcode': 401, 'retmsg': "<Unauthorized '401: Unauthorized'>"}

Please refer this for the autherization part of API.

import json
from login import encrypt
from flask_login import login_required, current_user, login_user, logout_user
base_url = 'http://<IP_ADDRESS>/v1/user/'
登录接口
login_url = base_url + 'login'
登出接口
logout_url = base_url + 'logout'
email =<EMAIL_ADDRESS>password = "123456"
encode_password = encrypt(password)
模拟用户登录的数据
login_data = {
'email': email,
'password': encode_password  # 注意：这里的密码应该是在客户端加密后发送的
}
发送登录请求
response = requests.post(login_url, json=login_data)
if response.status_code == 200:
# 如果登录成功，从响应中获取access token或session信息
response_data = response.json()
data = response_data.get('data', {})
access_token = data.get('access_token')
headers = {
'Authorization': f'Bearer {access_token}'
}
# 发送登出请求时带上认证头
logout_response = requests.get(logout_url, headers=headers)

print(f"Logout response status code: {logout_response.status_code}")
print(f"Logout response content: {logout_response.json()}")

else:
print("Login failed:", response.json())
返回{'data': None, 'retcode': 401, 'retmsg': "<Unauthorized '401: Unauthorized'>"}
打印中间步骤可以看到登录信息，说明可以登录。


Chat card background css overwrites whisper distinction

A line in the chat-card style sheet overwrites the backgrounds for all chat cards. While a minor change, and better for legibility, it's currently overwriting Foundry's default ability to visually distinguish between types of chat messages. In my game's use particular use case, it is impossible to tell when an incoming message is a single-target whisper. (A multi-target whisper includes a To: line indicating all recipients). There may be other scenarios this affects; for instance, different role types are also visually distinguished by the chat-card's background color.
Would you consider removing this change, or implementing other classes to maintain a visible difference between chat types?
Link To Relevant Code
https://github.com/Pjb518/FoundryVTT-Level-Up-Official/blob/63927255c800b6a3ca4301bac51158b6ffabbac0/src/scss/layout/_chat-card.scss#L4
Screenshots
Expected: Captured by using the development tools to nullify the background attribute in the #chat-log .message class. The lower card is a whisper, the top is not.

Current: Same cards, no modifications. The lower card is a whisper, the top is not.

Hey,
Thanks for the report. This issue is already on my radar, and I have fixes planned for the upcoming release 🙂
I won't be reverting the colour change, because this is to maintain colour consistency with the sheets, but I can provide additional styles to provide different colours for different message types. I'm also planning to add some sort of icon or other indicator for the different message types, as I don't think colours alone are sufficient.
I'll leave a message here when the relevant release goes out.

Sounds great! I'd definitely be happy to see icons or further differentiation, I agree relying on background colors isn't really an ideal solution.

 Restore chat card background colours for different roll modes and add a roll mod icon

Closing as this has been fixed in the upcoming 0.7.0 🙂


VSF modules can't extend router

Current behavior
This is example route added by "raw-output-example" module:
https://demo.vuestorefront.io/no-js.html   ---> It works
https://next.storefrontcloud.io/no-js.html ---> Doesn't work
Expected behavior
Modules should be able to extend router and add new routes
Steps to reproduce the issue
Problem appears on "develop" branch:
https://next.storefrontcloud.io/no-js.html

Thanks! Another one related to UrlDispatcher :)


Unexpected variable copy behavior

For such a tool, I would expect the y = x line to assign y the value of x and subsequently for the two variables to be completely independent of each other.

Hmm, I'm a bit uncertain about this. On one hand, it makes sense that you may just want to use the current value, but on the other hand, if you define that y is equal to x, you may want that to continue to be the case.  The way it works now is probably the easiest implementation-wise, since functions like sum mutate a variable to get different results in different iterations.
I'm not a mathematician though, so I'll see if I can get some input from some.

I have decided to not change this behaviour.


Remove explicit dependency on assertj-core

It's part of the starter-test.

Not sure I like this change. On the one hand it keeps the pom shorter. On the other hand I think your projects build should declare dependencies to everything it compiles against. Then again I would have to declare assertj version as well, to be in full control.

No offense taken :) I understand both positions. My point is pretty much clear on this slide: https://speakerdeck.com/michaelsimons/hinter-den-kulissen-die-magie-von-spring-boot?slide=13 I think that managing dependencies is one core feature of Spring Boot.

@michael-simons I've thought about this and I realized, that I for example don't declare Hibernate even though I sometimes use Hibernate APIs in my projects. So my argument of having an explicit dependency is invalid.


Clsx regex refinement

Hey,
Currently, clsx regex matches everything between clsx( and ), but if there is a comment right after that and ) is used, the regex considers this a valid pattern, for example:
clsx() // "ml-" ()
The above mentioned is valid and tailwind will auto suggest class there.
So I have updated the regex to fix it. (Regexr test)
Thanks,

Thanks for this @abhinnankit! :D


If "phenotype: normal" is set for samples , part of the pipeline is not run even if it's not a tumor/normal run

As the subject says: I recycled a template to do a germline analysis and forgot to leave "normal" out of the phenotypes. When the run completed, I realized that some steps (like GEMINI) did not get done, and "germline" data was being created, even.
Removing the stray phenotype lines allowed the processing to continue once re-run.

Luca;
Sorry about the issues. We have a fix in place for this in the latest development version:
https://github.com/chapmanb/bcbio-nextgen/commit/3532fb666aa011dd2cbdae1e75044c627dfb2b2e
and hope to have a new release soon that includes it. The underlying issue was that bcbio assumed a tumor/normal pair when normal was specified and attached the combined variant call to the tumor sample. When this was missing, it did the analysis but did not pass the file on to downstream steps. Thanks much for the heads up and sorry about the confusion.


Support for quads

Would it be within the scope of the project to also support quads for meshes? That would add tremendous utility.

@pathquester hey! yea, maybe i can slot that into my limited time left
what are quads? is it just building meshes out of rectangles?

as you can tell, i know nothing about the domain 🤣

@lucidrains Hi, awesome!! Yeah instead of triangular meshes, quad meshes make modeling a joy since you can add edge loops easily and subdivide further, among other benefits. If it remains limited to triangular meshes, that means we'll very often have to retopologize the mesh generated afterwards.

@pathquester if it just means adding an extra dimension to the vertices (4 points instead of 3), that would be easy. do people ever mix quads and triangles in the same mesh? that may complicate things

@pathquester also, because the paper never studied this, who knows, it could be extended to quads and just falls apart

@pathquester wait, i'm geometrically challenged, but isn't it true that every quad can be broken into two triangles?

@pathquester let me read up on the subject first to get a surface level understanding. will get back to this maybe near month's end, when i wrap up a project in flight

@lucidrains They can be mixed yes although quads-only is arguably better than mixed, supporting just that should be ideal. That is fantastic, I would be very happy to help with this. Yes that's true also more quads thus increase the resolution, subdivision surface modifiers are mostly associated with quads.

@pathquester maybe the issue is that when you have the attention net spit out the vertices, with 4 it may be difficult for it to maintain that they are within the same plane. yeah i'm not sure if it will work

anyways, i know nothing lol
i'll get back to you on this

@lucidrains Ah yeah there may be challenges. Anyhow, many thanks!!

@pathquester yea, let's just try
the benefit of this domain is you can just generate a ton of synthetic augmented quads and coax the network into learning that first

@lucidrains
I brought this up in previous conversations with you, I did some testing and it reduces the face/triangles count by 50%.
So this would also increase the performance and hardware requirements, and who knows maybe the quads are easier for the model to learn.
Most of the 3D work seems to be quad based and all the 3d meshes can be converted to quads using blender so it would be a extra step to convert the meshes.
I think it would be worth the hassle since it reduces the triangle count to 50% but adds additional vertex per face, but the transformer would save 6 tokens per triangle, e.g from 19 200 tokens to 9 600 tokens.
I don't think you can improve the transformer that much since this would also half the required context length.
Below is example of a 3200 triangle mesh convert into 1620 quads

@MarcusLoppe oh yes, now I recall
ok, I think I should be able to do this before mid March

@MarcusLoppe oh yes, now I recall
ok, I think I should be able to do this before mid March

@lucidrains
Is this something I can implement? Wouldn't this just require changing the einops expressions, 3's to 4 and the face edge generator?

yeah! and also when decoding from attention net, have to terminate on multiple of 4s

believe face edges logic stays the same

@MarcusLoppe  you'll be doing something no one has ever done. top of the line research 🤣

have a feeling quads will require synthetic pretraining, however

@MarcusLoppe you'll be doing something no one has ever done. top of the line research 🤣

@lucidrains
I'm sure that someone have tried this, I'll check and see if there is anyone that have compared triangle/quad generation.

have a feeling quads will require synthetic pretraining, however. also on sampling will need to snap malformed quads to nearest plane

Why synthetic pre-training and snapping? The data it generates would just contain a extra vertex, that doesn't seem such a dramatic change?

@MarcusLoppe with 4 vertices, you can generate invalid quads (4 points not in the same plane)

@MarcusLoppe i think with vertices, you can generate invalid quads (the 4 points do not lie in the same plane)

@MarcusLoppe you'll be doing something no one has ever done. top of the line research 🤣

@lucidrains I'm sure that someone have tried this, I'll check and see if there is anyone that have compared triangle/quad generation.

have a feeling quads will require synthetic pretraining, however. also on sampling will need to snap malformed quads to nearest plane

Why synthetic pre-training and snapping? The data it generates would just contain a extra vertex, that doesn't seem such a dramatic change?

I don't think so. this is the first work to autoregress triangles, so surely no one has tried quads

@lucidrains that's exactly why quads are interesting. By not lying on the same plane they allow you to describe more complex shapes.

forgive ignorance, but how do you render a quad that has vertices not in the same plane?

forgive ignorance, but how do you render a quad that has vertices not in the same plane?

@lucidrains
Not sure but blender seems to handle it fine, otherwise you can just convert the non-planarr to triangles. No biggie.
Thread about non-coplanar quads:
https://blenderartists.org/t/non-coplanar-quads-avoid/1113775
Converting:
https://developer.rhino3d.com/api/rhinocommon/rhino.geometry.collections.meshfacelist/convertnonplanarquadstotriangles?version=8.x

that's so cool! ok I'm more optimistic about quads now 🤣

@MarcusLoppe decided I'll just knock it out Sunday morning, if you don't get to it first

@MarcusLoppe decided I'll just knock it out Sunday morning, if you don't get to it first

I'll probably have tried and failed a couple times till then, but we'll see 😄
Any idea regarding the issue about not all triangles can be converted to quads? Are you going for the idea about adding a extra dimension on the face mask for padding or just force the triangles into quads with a duplicated vertex?

@MarcusLoppe decided I'll just knock it out Sunday morning, if you don't get to it first

@lucidrains
I'm trying to figure out the derive_face_edges_from_faces, is it supposed to generate face_edges to itself?
For example of a 6.2k triangle mesh, 6206 of 24706 of the edges are connected to itself like the below:
tensor([0, 0])
tensor([1, 1])
tensor([2, 2])
tensor([3, 3])
tensor([4, 4])

@MarcusLoppe hey, very good question! i think it should! investigated this before building out the autoencoder, and noticed this setting

without knowing graph neural net literature very well, i assume they usually add the self edges to it during loading of the data

let me know if you find otherwise

@MarcusLoppe decided I'll just knock it out Sunday morning, if you don't get to it first

I'll probably have tried and failed a couple times till then, but we'll see 😄
Any idea regarding the issue about not all triangles can be converted to quads? Are you going for the idea about adding a extra dimension on the face mask for padding or just force the triangles into quads with a duplicated vertex?

i didn't think that far haha, but duplicated vertex sounds like a good idea

@MarcusLoppe hey, very good question! i think it should! investigated this before building out the autoencoder, and noticed this setting

Ah, correct, it seems like the GCN's uses self-loops:
https://towardsdatascience.com/what-makes-graph-convolutional-networks-work-53badade0ce9

i didn't think that far haha, but duplicated vertex sounds like a good idea. the correct way is probably to have a dummy pad vertex that the transformer predicts, so a triangle would be a quad with a pad vertex. that would require an extra token on the transformer and some other engineering

I think I'd let you figure out if it's possible, I can't even get past the project_in layer 😢

just got it done this morning, at the expense of another project. hope this goes somewhere! i'll fix the derived features before mid March, for quads it is a bit different.
import torch

from meshgpt_pytorch import (
    MeshAutoencoder,
    MeshTransformer
)

# autoencoder

autoencoder = MeshAutoencoder(
    num_discrete_coors = 128,
    quads = True
)

# mock inputs

vertices = torch.randn((2, 121, 3))            # (batch, num vertices, coor (3))
faces = torch.randint(0, 121, (2, 64, 4))      # (batch, num faces, vertices (3))

# make sure faces are padded with `-1` for variable lengthed meshes

# forward in the faces

loss = autoencoder(
    vertices = vertices,
    faces = faces
)

loss.backward()

# after much training...
# you can pass in the raw face data above to train a transformer to model this sequence of face vertices

transformer = MeshTransformer(
    autoencoder,
    dim = 512,
    max_seq_len = 768,
    quads = True
)

loss = transformer(
    vertices = vertices,
    faces = faces
)

loss.backward()

# after much training of transformer, you can now sample novel 3d assets

faces_coordinates, face_mask = transformer.generate()

i really need to stop context switching on so many projects.

@MarcusLoppe if you want to still contribute, def welcome you to look into breaking up the derived features for triangles vs quads. based on the way you analyze things, i think you are on your way to becoming a great ML engineer. i'm thinking, perhaps for quads, it should be good for the network to know whether the 4 points are coplanar or not

ok, i got to leave this project for reals now. already done enough for it

ok, i got to leave this project for reals now. already done enough for it

Alright 😄  I thank you very much  @lucidrains  for the project and all that you have done, good luck on your other projects ❤

@MarcusLoppe if you want to still contribute, def welcome you to look into breaking up the derived features for triangles vs quads. based on the way you analyze things (and the way you code), i think you are on your way to becoming a great ML engineer. i'm thinking, perhaps for quads, it should be good for the network to know whether the 4 points are coplanar or not. as for normals, think you can get away by breaking the quad into two triangles and just offering the discretized normal for both triangles

Can't promise too much but I'll see if I can manage to get it done.
But I can report that quads works 😄 Instead of using 5688 tokens it just used 3792 tokens  which is about 36% token reduction 😮
So congrats! The first autoregressive quad generator! 🎉
Only downside is that using mixed quads and triangles doesn't work, it triggers some fatal cuda error so I can't provide any errors.
But I have around 60k meshes from Objaverse and Shapenet so the training dataset should be fine.
I got the autoencoder to 0.29 loss after 45 epochs, and the transformer to 0.03 after 10minutes.
I trained on 50 augmentation of the same model (jitter + scale), on the left is the ground truth and the middle is the autoencoder and on the right is the transformer generated
For the autoencoder I generated the codes and then let it decode them, it was very accurately (0.00002 MSE loss).

woohoo! thank you Marcus for the quick validation! more helpful to me than you know

there's actually enough new things in this repository for someone to write a MeshGPT2 paper haha
maybe that could be you Marcus!

That's really wonderful!! Kudos!

just out of curiosity on the 3d mesh field, has anyone tried even more vertices? say hexagons?


[Critical] - api-gateway crashing after mint > 1000 token

Problem description
After mint more than 1000 token on 1 policy, system keep crashing
 Error: guardians (get-block-data) send: Cannot run getMore on cursor<PHONE_NUMBER>246917294, which was created in session 80f16dc8-423f-4870-8c6f-20ff82d8a3e9 - 47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=, without an lsid at PolicyEngine.<anonymous> (/usr/api-gateway/dist/helpers/service-requests-base.js:58:23) at Generator.next (<anonymous>) at fulfilled (/usr/api-gateway/dist/helpers/service-requests-base.js:5:58) at processTicksAndRejections (node:internal/process/task_queues:96:5) NR-LINKING|MzQ5NzYzMXxBUE18QVBQTElDQVRJT058MTU4NjE1MjUxOQ|guardian-api-gateway-b698b766b-xrhpv|edc734ebab7ea1291137324a252189f0|d2fd934fde92ef6e|guardian-api-gateway|

this happen when open the policy to view list of all VP
Step to reproduce
Steps to reproduce the behavior:

run 2.3.1
Mint > 1000 token per policy
Bug will happen

Expected behavior

fix above issue
ideally, api-gateway should not crashed if any error happen when there an issue, error logs will be write into the log (if we have APM we can alarm & monitor them but should not crash the process

Screenshots
If applicable, add screenshots to help explain your problem.

@samuraitruong We have tried reproducing this error but couldn't do it. Can you please clarify us on the following things:

Do you have 1000 VPs? and can you see all of them? Or issue occurs when they are minting (or after mint) more than 1000 tokens and they have 1 VP and they can't see it.
Where is the issue occurring, is it at interfaceSourceBlock (grid with documents), or is it at filterAddonBlock (when you select in drop-down document to filter documents in the grid) or somewhere else.
Can you also let us know mongo version?
Also we would suggest you to use pagination block if problem is in interfaceSourceBlock.

@prernaadev01  this issue related to missing database index before I think it already fixed with the latest release

mongo v5
I believe the guardian crashed when we view VP list using DocumentSourceBlock. (our front-end connect via guardian API to get list of VP)

At the moment we believe this issue no longer happen on 2.6.1 since the index added to VP collection.


Polish documentation of dependency platforms

Closes #10456

Did you remove the alignment titles because they are not needed or covered elswhere?

My impression is that it's all already covered in this document. The initial split we did didn't work well with the "story" told in this doc.


[Suggestion] Extend to sheathing weapons

Would love if this was configurable for the option, per job, if they can have different durations for sheathing their respective weapon. Also, to outright auto sheathe or not per job.
Eg, In combat I want SAM to instantly sheath after 1 or 0 seconds after a fight.
Or, In town, I want DRG to never autosheathe.

+1


PayPal\Exception\PayPalConnectionException handling a 400 Httpstatus

I have successfully got all of the pieces working in order to do test transactions with PayPal. Now I am working on the exceptions and the first one I tried is an incorrect credit card number.
When I send in the transaction I get an error page:
PayPal\Exception\PayPalConnectionException
Got Http response code 400 when accessing https://api.sandbox.paypal.com/v1/payments/payment.
I have tried everything I can find on how to handle the exception so I can give the appropriate instructions to the user and get them to retry, but this error page always comes up.
Any ideas.
Thanks
Greg

I did a little bit of digging into how PayPal handles its exceptions and found a few changes to RestAPI fixes the issue (not elegant yet still trying to find the right solution).
In RestAPI

add
use PayPal\Exception\PayPalConnectionException;

at the bottom of getLinkCheckOut
$error_code="0";
$error_data=" ";
try {
$payment->create($this->config);
} catch (PayPalConnectionException $ex) {
//          throw new \DataErrorException($ex->getData(), $ex->getCode());+
//				Yii::warning($ex->getMessage());
$error_code = $ex->getCode();
$error_data = $ex->getData();
//			die($ex);
} catch (Exception $ex){
die ($ex);
}
// ### Get redirect url
if ($error_code=='0') {
$redirectUrl = $payment->getApprovalLink();
}
else
{
$redirectUrl = 'payment';
}
    return [
        'payment_id' => $payment->getId(),
        'status' => $payment->getState(),
        'redirect_url' => $redirectUrl,
        'description' => $transaction->getDescription(),
		'error_code' =>$error_code,
		'error_data' =>$error_data,
    ];
}

the addition of error_code and error_data allow the error information to be passed back to my controller action where I can filter out the user errors (bad card number, expiry dates etc) and have them reenter the information.
I will spend a little more time to refine. The one update that needs to be made in the original code is changing PPConnectionException to PayPalConnectionException.
Thanks
Greg

I was changed class PPConectionException to PayPalConnection
and some code for handle exception errors
Thanks @gursel58,


zero variadic arguments

I would like a command to take a variadic number of arguments, including 0 arguments. Besides this being required for my use case, I think its better to explicitly name required arguments (although I can see the appeal in some cases of avoiding this).
Is there any reason not to allow zero arguments? Should we also add a validator? i.e. command +ARGS+1: would require 1 or more args.
I am willing to help implement this if I can get sign-off on the design.

You can actually already do this using default arguments; for example:
foo +bar="default":
  echo {{bar}}

$ just foo
echo bar
bar
$ just foo a b c
echo a b c
a b c

I think I should add an example to the readme, so that it's more discoverable.

nice! I would like to provide zero arguments to echo though. I think it works to do
foo +ARGS='':
    variadic_command {{ARGS}}

Do you want me to send a PR with these 2 examples?

Yup, that's the way to do it. I'm about to land #285 which provides an example.


Cannot read property 'find' of undefined

 ERROR  Failed to compile.

./index.js
Module build failed: Thread Loader (Worker 0)
/Users/work1/Projects/LEMON/Lemon/index.js: Cannot read property 'find' of undefined

   at getReturnedId (/Users/work1/Projects/LEMON/Lemon/node_modules/haul/src/hot/babelPlugin.js:65:37)
   at Object.CallExpression (/Users/work1/Projects/LEMON/Lemon/node_modules/haul/src/hot/babelPlugin.js:99:26)
   at NodePath._call (/Users/work1/Projects/LEMON/Lemon/node_modules/babel-traverse/lib/path/context.js:76:18)
   at NodePath.call (/Users/work1/Projects/LEMON/Lemon/node_modules/babel-traverse/lib/path/context.js:48:17)
   at NodePath.visit (/Users/work1/Projects/LEMON/Lemon/node_modules/babel-traverse/lib/path/context.js:105:12)
   at TraversalContext.visitQueue (/Users/work1/Projects/LEMON/Lemon/node_modules/babel-traverse/lib/context.js:150:16)
   at TraversalContext.visitSingle (/Users/work1/Projects/LEMON/Lemon/node_modules/babel-traverse/lib/context.js:108:19)
   at TraversalContext.visit (/Users/work1/Projects/LEMON/Lemon/node_modules/babel-traverse/lib/context.js:192:19)
   at Function.traverse.node (/Users/work1/Projects/LEMON/Lemon/node_modules/babel-traverse/lib/index.js:114:17)
   at NodePath.visit (/Users/work1/Projects/LEMON/Lemon/node_modules/babel-traverse/lib/path/context.js:115:19)
@ ./index.ios.js 1:0-21
@ multi ./node_modules/haul/src/utils/polyfillEnvironment.js ./index.ios.js
GET /index.ios.bundle<PHONE_NUMBER> - 4542.397 ms
GET /index.ios.bundle<PHONE_NUMBER> - 9.383 ms
GET /index.ios.bundle<PHONE_NUMBER> - 10.703 ms
GET /index.ios.bundle<PHONE_NUMBER> - 11.286 ms
GET /index.ios.bundle<PHONE_NUMBER> - 12.633 ms
GET /index.ios.bundle<PHONE_NUMBER> - 10.598 ms
GET /index.ios.bundle<PHONE_NUMBER> - 10.740 ms
GET /index.ios.bundle<PHONE_NUMBER> - 10.968 ms
GET /index.ios.bundle<PHONE_NUMBER> - 11.548 ms
GET /index.ios.bundle<PHONE_NUMBER> - 13.369 ms

Can you post a repro? It's not really possible to know what's happening without a repro.

Sorry :/ don’t have time. Just gave up and went back to metro. It happens when adding the auto way for config HMR. Otherwise it works ok.
Still I couldn’t make  symlinks neither so. Had to rollback.
Thanks
Best,
Gaston
L
Sent from my iPhone

On Mar 9, 2018, at 5:06 AM, Satyajit Sahoo<EMAIL_ADDRESS>wrote:
Can you post a repro? It's not really possible to know what's happening without a repro.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


Investigate compose and Argo CD as an alternative to 'ec'

compose for individual server deploy and tutorials
Argo CD for cluster deployment.

This is now done and we have an approach that still uses ec.
Will open a new issue on switching the backends.


AlignNinToNout leaves undefined references

The code in vertexconstraints!(v::AbstractVertex, s::AlignNinToNout, data) kinda secretly assumes that every output vertext of a vertex in the set of vertices to solve the problem for is part of that set, and that is not the case.
If this assumption is not true for a vertex, it will have undefined references in its array of new nins.
MWE to run in edge testset in structure.jl below. Vertex vh is not in set as it is not affected by any size change and will therefore have an undef nin-variable.
            @testset "Add with hidden SizeStack" begin
                v0 = inpt(3, "v0")
                v1 = av(v0, 5, name="v1")
                v2 = av(v0, 4, name="v2")
                vh = av(v0, 5, name="vh")
                v3 = sv(v1, name = "v3")
                v4 = av(v3, 3, name="v4")
                v5 = sv(v4, vh, name="v5")
                v6 = av(v2, 2, name="v6")

                @test inputs(v3) == [v1]
                create_edge!(v2, v3)

                @test inputs(v3) == [v1, v2]
                @test nin(v4) == [nout(v3)] == [nout(v1) + nout(v2)] == [9]

                @test outputs(v2) == [v6, v3]
                @test inputs(v6) == [v2]
                @test nin(v6) == [nout(v2)] == [4]

                @test outputs(vh) == [v5]
                @test inputs(v5) == [v4, vh]
                @test nin(v5) == [nout(v4), nout(vh)] == [3, 5]
            end

Fixed in #58


⚠ Processors has degraded performance

In 06f2fcf, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 45 ms

Resolved: Processors performance has improved in 891567f.


Choose something besides 'Games' as an example scope for the demo app

There are many strange edge cases with Games sign in, there's no need to complicate the demo app by using GAMES as one of the example scopes.

@samtstern A thought occurred to me: what do you think of letting devs provide a list of permissions they want to request? It would make it a lot easier for them to test the sample app with different requested permissions. The EditText's hint would suggest some example perms to enter as comma separated values so I don't think it would complicate the sample app too much, but I'll understand if you don't want to go that route.

The issue is actually converting what they type in to valid scopes.  Theres the Scope(String val) constructor but it doesn't validate enough.  Most of them are long URLs.  I think checkboxes are easier and serve to demonstrate the idea, for now.  Honestly most people don't use anything but default scopes.

@samtstern Yup, makes sense. What about the Drive api?

Drive can stay, it's a very normal scope.  The reason Games is strange is because if it's a new device or account Games pushes you into a special sign-in flow which people might confuse with being part of FirebaseUI.

@samtstern Oh lol, I thought we didn't have an example with the drive api so I meant to ask if we could use that instead. 😆 Ok, back to looking for example api requests. 😄

@samtstern How about the gmail api, the Google+ api, or the Youtube Data api?

Let's go with "https://www.googleapis.com/auth/youtube.readonly", which you suggested.


Evidence for joepetrowski

Hello Joe,
Sorry, but this is only a WIP repo and not for actual use. 😬
PRs should be submitted here: https://github.com/polkadot-fellows/Evidences
Thanks.


Failed to generate one pagers when ts_validation is enabled in 3.9.0

Project Robyn
Describe issue
When enabling ts_validation for OutputModels, robyn_outputs doesn't output the one-pager plots in the plot folder with the following error in the stack trace
>> Exporting general plots into directory...
trace: robyn_plots
Failed exporting results, but returned model results anyways:
 Error in ts_validation(OutputModels, quiet = TRUE, ...): object 'OutputModels' not found

This is due to the lines in robyn_plots (shown below). robyn_plots is called by robyn_outputs where OutputModels is not explicitly supplied as an argument to robyn_plots:
  OutputModels$ts_validation_plot <- ts_validation(OutputModels, quiet = TRUE, ...)
  if (!is.null(OutputModels$ts_validation_plot)) {
    ggsave(
      paste0(OutputCollect$plot_folder, "ts_validation", ".png"),
      plot = OutputModels$ts_validation_plot, dpi = 300,
      width = 10, height = 12, limitsize = FALSE
    )
  }

I tried modifying the lines above to read from OutputCollect$OutputModels instead of OutputModels but OutputCollect$OutputModels was modified earlier in the robyn_outputs function, therefore, doesn't contain resultCollect anymore to extract from for the ts_validation function.
The quick fix where I changed the function signature of robyn_plot to function (InputCollect, OutputCollect, OutputModels, export = TRUE, ...)  and called it in robyn_outputs with all_plots <- robyn_plots(InputCollect, OutputCollect, OutputModels, export = export) worked out fine.
Running through demo.R as it is doesn't show this bug but we are orchestrating Robyn in another script like source(robyn_func.R) where we wrap robyn_run and robyn_outputs in functions.
Please see attached demo_debug.txt to see a reproducible example where I just wrap those two functions calls (robyn_run and robyn_outputs) into a function and the bug reveals.
Provide reproducible example
demo_debug.txt
Environment & Robyn version
Make sure you're using the latest Robyn version before you post an issue.

Check and share Robyn version: packageVersion("Robyn") ‘3.9.0’
R version (Please, check and share: sessionInfo() or R.version$version.string)  R version 4.2.2 (2022-10-31)

Morning team, just checking back in, is a fix almost there? :)

hi @yanhong-zhao-ef thank you for raising this issue and providing your code and example! Working on a fix this week. Stay tuned!

Hi alll,
@yanhong-zhao-ef, you can use  <<- to assing the OutputModels meanwhile they can solve the issue:
OutputModels  <<- robyn_run(...)
@michellegrushkometa,  maybe you can check the plot.R file.
In the line 225, the code fails because OutputModels is not defined (It isn't a function parameter). You can access to than with OutputCollect$OutputModels.
The code:
OutputModels$ts_validation_plot <- ts_validation(OutputModels, quiet = TRUE, ...)
if (!is.null(OutputModels$ts_validation_plot)) {
ggsave(
paste0(OutputCollect$plot_folder, "ts_validation", ".png"),
plot = OutputModels$ts_validation_plot, dpi = 300,
width = 10, height = 12, limitsize = FALSE
)
}

Hi alll,
@yanhong-zhao-ef, you can use <<- to assing the OutputModels meanwhile they can solve the issue: OutputModels <<- robyn_run(...)
@michellegrushkometa, maybe you can check the plot.R file.
In the line 225, the code fails because OutputModels is not defined (It isn't a function parameter). You can access to than with OutputCollect$OutputModels.
The code:

robyn_plots <- function(InputCollect, OutputCollect, export = TRUE, ...) { ...

    OutputModels$ts_validation_plot <- ts_validation(OutputModels, quiet = TRUE, ...)
       if (!is.null(OutputModels$ts_validation_plot)) {
        ggsave(
          paste0(OutputCollect$plot_folder, "ts_validation", ".png"),
          plot = OutputModels$ts_validation_plot, dpi = 300, width = 10, height = 12, limitsize = FALSE
    )
  }

Thanks @breogancid I can patch up the code locally but I would rather get the official release from the team. Btw I did try that one OutputCollect$OutputModels but then this object is modified in a previous step so a naive fix didn't work for me.

The bug was found and will be patched up later today. In short, OutputCollect$OutputModels (from robyn_outputs()) and OutputModels (from robyn_run()) are different and were being treated as equal. Fix on the way.

Hi @yanhong-zhao-ef, @breogancid thanks for your patience! I've just landed the fix for this issue. We tested for ts_validation TRUE and FALSE, both behaving and expected. Can you please confirm? Feel free to close this issue if everything's running smoothly now.

Thank you for the fix and can confirm that the whole thing runs now!


Actions type: play loops the animation when lottie player loop prop = false

So using the below code as an example, you can see that the action type is set to play. When the container comes into view, i'd just like the animation to play once and then end.
LottieInteractivity.create({
                mode: "scroll",
                player: "#get-involved-fireworks",
                container: "#get-involved-fireworks",
                actions: [
                    {
                        visibility: [0,1],
                        type: "play",
                    },
                ]
            });

<lottie-player id="get-involved-fireworks" src="https://assets9.lottiefiles.com/packages/lf20_yYFiWV.json"  background="transparent"  speed="1"></lottie-player>

However once the container comes into view, it just loops instead. Apologies if i've not set this up correctly as per documentation, but just needed to make sure this wasn't in fact an issue.
Thanks

I have the same issue. Would be great if the animation could stop/pause at its last frame as I'm using multiple lottie animations on the page and I don't want them all running at once.


git gutter and file status no longer working with git 2.25 on mapped network drive

I saw several filed issues related to casing differences with latest git for windows >2.25, but I believe this one is different.
I work on repositories mapped on a network drive, and after upgrading git to 2.25, gutter and file status in VScode file explorer are no longer updating on changes.
This is what's happening:

And I verified from command prompt that issuing (W: is amapped network drive)
W:\mti_sysadmin\ansible\misc-server>git rev-parse --show-toplevel
//centos7-kvm-dev/home_krs/mti_sysadmin/ansible

while with previous git versions (drive letter was used, instead of unc path)
W:\mti_sysadmin\ansible\misc-server>git rev-parse --show-toplevel
W:/mti_sysadmin/ansible

Does this issue occur when all extensions are disabled?: Yes

Damn it, Git 2.25 broke a lot of stuff.
As a workaround, I suggest you downgrade your git version.

Hi @joaomoreno thanks! I had already done it (downgraded git to 2.24) to be able to keep on working. And yes, I hear you! from developer to developer, they broke a lot of stuff, probably just changing an API call to improve some other things (I found something in the git for windows repository while investingating the issue). Anyway, thank you and keep up the good work!

I'm having exactly the same issues with repositories on mapped network drive after upgrading to Git 2.25.1, so I'll downgrade waiting for the next VSCode upgrade.

Opening the folder in VSCode using the UNC path in the folder dialog, is another work around. Just navigate to your project in the dialog using \\<IP_ADDRESS>\myshare\project etc instead of going through the mapped network drive letter.

To verify:
Open a repo over a network share and observe:

Timeline should work
Git "gutter" decorations should be displayed


3.1.1 docs incorrectly generated as text instead of HTML

On the page http://lifelines.github.io/lifelines/docs/manual-3.1.1/ there are links to the:

User Guide http://lifelines.github.io/lifelines/docs/manual-3.1.1/ll-userguide.html
Report Programming Manual http://lifelines.github.io/lifelines/docs/manual-3.1.1/ll-reportmanual.html

but both pages contain what appear to be text files despite the file extension (ie they contain no HTML markup)

HTML documents have been generated and uploaded.
Issue #409 is open to fix the makefile; while the rules look right, the HTML rules generate plain text.


onPageActivate event

Hello!
Some sort of onPageActivate event needed.
onPageAfterAnimation event does not always trigger—for example, when parameter reload: true is used (or maybe in other cases).
An event that triggers distinctly and necessarily when a page activates would be good.
Or maybe I missed something?
Which method can be used now, in current version of Framework7, to handle page activate event?

But in this case the pageInit and pageBeforeInit events will occur

I understand, yes. But the same page in a particular application in different places can be loaded with reload: true as well as without reload: true, and in the first case pageInit will work correctly, in the second case — no. In the second case user can go farther through the screens, the page will be removed from DOM, then he hits back, back — and pageInit will trigger even if page was not shown yet (it only was initialized again and inserted to the DOM).
(Practical example: I want to enable or disable side panel when one or another screens is shown.)
Or, for example, now I use parameter reload: true, and later I may want to remove it. I must remember that I need to move my code related to page activation from pageInit to pageAfterAnimation. That may be OK for a small application to remember everyting, but if an application is large enough, it becomes hard to do that. Just some convenient event is needed. That’s my vision.

pageCenter and pageRefresh events can be added like this. We need refresh because during refresh pageBeforeAnimation does not trigger. We can not use init because sometimes init occurs even we dont see the page.
`
function createPageCallback(callbackName) {
var capitalized = callbackName.replace(/^./, function (match) {
return match.toUpperCase();
});
myApp['onPage' + capitalized] = function (pageName, callback) {
return myApp.onPage(callbackName, pageName, callback);
};
}
var pageCallbacksNames = ('center refresh').split(' ');
for (var i = 0; i < pageCallbacksNames.length; i++) {
myApp.pageCallbacks[pageCallbacksNames[i]] = {};
createPageCallback(pageCallbacksNames[i]);
}
function addPageTrigger(callbackName,pageData){
var capitalized = callbackName.replace(/^./, function (match) {
	return match.toUpperCase();
});

myApp.pluginHook('page'+capitalized, pageData);
if (myApp.params['onPage' + capitalized]) myApp.params['onPage' + capitalized](myApp, pageData);
myApp.triggerPageCallbacks(callbackName, pageData.name, pageData);
$$(pageData.container).trigger('page'+capitalized, {page: pageData});

}
$$(document).on('pageBeforeAnimation pageReinit pageRefresh', function (e) {
var pageData=e.detail.page;
addPageTrigger('center',pageData);
});
$$(document).on('pageInit ', function(e){
var pageData=e.detail.page

var dataPageOnCenter=$$('.page-on-center').attr('data-page');

if(dataPageOnCenter==pageData.name){
	addPageTrigger('refresh',pageData);
}

});
$$(document).on('pageCenter', function (e){
var page=e.detail.page.name;
console.log(page+' activated');
myApp.hideIndicator();
});
$$(document).on('pageRefresh', function (e){
var page=e.detail.page.name;
console.log(page+' refreshed');
myApp.hideIndicator();
});
`


How to add cutscenes in psych engine 0.7.3

Describe your problem here.
Hello. I already know how to play cutscenes in lua, but i recently switched to source code and cannot understand how i play a cutscene. Can anyone help me out?
Are you modding a build from source or with Lua?
Source
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No, i didn't.

did you make it?

i did it, after a lil bit of research. give me your discord name and ill help you if u want to hehe


add property to show all multi options in the menu

Add property showAllOptions (disabled by default), which works only for multi select dropdown and allows to not remove selected options from the menu when user selects the option, but instead search among all options (including selected). Works very similar to bootstrap-select library ("Multiple select boxes" section).

I'll consider this. Incidentally, it looks like there's a PR to add this feature upstream: https://github.com/JedWatson/react-select/pull/882 You might want to express your support there.


feat: add Azure DevOps git push event

Added Azure DevOps code pushed event based on following definition: https://learn.microsoft.com/en-us/azure/devops/service-hooks/events?view=azure-devops#code-pushed

coverage: 88.69% (+0.05%) from 88.639% when pulling cd5c3921138b4d9d6f27d51153e164aa6a1259e5 on robinlieb:feat/azure-devops-push-event into c4072b5d206d3d9c26ae1f6498501b943fb5789d on go-playground:master.

Thank you @robinlieb ! Do you have an ETA when these changes will be released?

@alexmt just released with version 6.3.0.


no-redundant-clsx: add cssModuleNames option

Adds a feature to catch e.g. clsx(styles.foo) as redundant if the new cssModuleNames option is set to ['styles']

Adding cssModuleNames seems like a really narrow feature. I think we can achieve a more general solution with esquery selectors.
What do you think about something like this?
// eslint.config.js
module.exports = {
  // ...
  rules: {
    'clsx/no-redundant-clsx': [2, { selector: 'MemberExpression[object.type="Identifier"][object.name="styles"]' }]
  }
};

// no-redundant-clsx.ts
import { parse, match } from 'esquery';

// ...

                    if (
                        firstArg?.type === TSESTree.AST_NODE_TYPES.Literal ||
                        firstArg?.type === TSESTree.AST_NODE_TYPES.TemplateLiteral ||
                        (selector && matches(firstArg as import('estree').Node, parse(selector)))
                    ) {
                        context.report({
                            // ...
                        });
                    }

Or is it overkill?

Hey, thanks for all your recent work on the plugin, it's great to be able to have in our codebase.

Adding cssModuleNames seems like a really narrow feature. I think we can achieve a more general solution with esquery selectors.

Good point, I'm definitely focused on our use case with css modules.
The more advanced config you suggested is powerful and would meet our needs, but it'll be harder to use (documentation could help here though). I'm not sure how many other real use cases there are that people would want to configure this for. I suppose if you're calling a particular function to return class names.
What do you think about changing the option name to something more generic like objectNames? We could still add the more advanced config if someone brings up a different use case
Either one will work for us, so I'll defer to you if you want to introduce the more powerful option now or start with the simpler one

Closed in favor of #24

@YayC the feature you requested should be available in 0.0.8. Docs for no-redundant-clsx contain a selector for your case
If you encounter any issues with a new version please let me know


Create struct to store Data fetched from the API

What we Want?
We need to create a struct to map the values fetched in the variable respBody as below:
{
  CoinRanking: "Integer",
  CoinTicker: "String",
  Quotation: "Float"
}

*Coin data model.
How ?
Currently the respBody that currently must be decoded(Unmarshal) from byte to a custom type that must be defined via struct.
Acceptance criteria
A new data structure must be created having the *Coin data model as reference, so we can fetch the data from it in an easy manner.
References
[1] Unmarshal

Fixed, I've created a new data structure and fetched all the data through structs.


Typescript definition file error for ColDef

ColDef.field is mandatory in the d.ts file, while the documentation says it is optional (and the grid is working without it):
Columns & Cells / Column Definitions / colId: '(...) If both field and colId are missing, a unique ID will be generated.'

it's optional. this is the code:
        /** The field of the row to get the cells data from */
        field?: string;

https://github.com/ceolter/ag-grid/blob/master/src/ts/entities/colDef.ts

Oops, I found this in an older example. Sry


Dropin Transparency

After a user has a payment method in the vault, the Dropin iframe is transparent, and it looks fine over our black background:

However, the first time, it's white/opaque and looks poor on our black background:

The dropin does a lot for us, so I prefer to use it rather than write the customized forms.  Is there any chance that you will make the initial screen also transparent or else give us some minor customization options such as background color?

@jeffhoye, we have noted this feature request and have had a lot of discussion on the matter. As it stands today the background colors of the Drop-In UI are not customizable. In your case, when using a black background, we suggest styling your container div (maybe giving it a white background color) to help the Drop-In UI integrate a bit more seamlessly.

On the parent container div, the one which houses the braintree drop-in iframe, you can put some css like this:
iframe {   background-color: white !important; }
That seemed to work for me. Obviously insert your background color of choice.


performing audio data augmentation.

This task is done (with torch-audiomentation). Future work will include further work including

integration of audiomentation
specific API methods for all supported augmentation types
documentation


Create LICENSE

Please add a license to this repo.  Might I suggest an MIT license?

Wow I didn't see it.... My apologies.


支持阿里云的SDK吗？

Feature description

Your Feature

which one? qwen or ?

load DashScope SDK first ,then could switch anyone in this list


Rest framework 3.4

Coverage remained the same at 45.659% when pulling 036151efc5e5be675fb421a54e3361c234202602 on rest-framework-3.4 into cb22eb7743a604dc2fff284e138273bf1b12bce4 on master.

Coverage remained the same at 45.659% when pulling 1a8f103a9f02de63323a6b35a1510ca2346617b8 on rest-framework-3.4 into cb22eb7743a604dc2fff284e138273bf1b12bce4 on master.

Coverage remained the same at 45.61% when pulling 82f5837a7f17ad16a447f6b725deb73503263315 on rest-framework-3.4 into 5bb660511bba2c06bca5afda38908b77b9adc50c on master.


[Comment] There is no 'reply' button to 'my comment' block on the News single page

Environment: Windows 10 Pro (64-bit), Google Chrome 81.0.4044.138 (64-bit)
Reproducible: Always
Build: commit 0140903
Spets po reproduce:

Go to https://ita-social-projects.github.io/GreenCityClient/#/welcome and sign in with valid data (e.g. Email<EMAIL_ADDRESS>Password Qw@rt111)
Click on the 'Eco News' link on the header of the page.
Choose any news and add the comment to it.

Actual result:
There is no 'Reply' button to the comment.

Expected result:
The 'Reply' button is presented in the bottom of the comment.

Mockups: https://www.figma.com/file/K5qc43VjSkWVz8mobuovxs/ITA-Greencity?node-id=101%3A2508
User story: #763
Testcase

Reply button visible only, if comment isn't yours


Support inline rule

What is an inline rule
The inline rule is a phantom node.
If a node is too long or appears multiple times, the inline rule can be extracted.
For example:
Suppose the syntax ~rule is used.
assign_statement ::=
    | LET "(" ~assign_name ")" type_hint? SET assign_rhs eos?
    | LET "(" ~assign_name ")" type_hint? eos?
    | LET ~assign_name SET assign_rhs eos?
    | LET ~assign_name eos

assign_name ::= pair:assign_pair (Comma pair:assign_pair)* Comma?
assign_pair ::= MODIFIERS* Symbol type_hint?
assign_rhs ::= if_statement|match_statement|expr
LET ::=  "let"
SET ::=  "="

Equivalent to
assign_statement ::=
    | LET "(" pair:assign_pair (Comma pair:assign_pair)* Comma? ")" type_hint? SET assign_rhs eos?
    | LET "(" pair:assign_pair (Comma pair:assign_pair)* Comma? ")" type_hint? eos?
    | LET pair:assign_pair (Comma pair:assign_pair)* Comma? SET assign_rhs eos?
    | LET pair:assign_pair (Comma pair:assign_pair)* Comma? eos
// Ideally assign_name should be cleaned up by dead code elimination

Yeah, this looks like the same thing as Tatsu's "include operator": https://tatsu.readthedocs.io/en/stable/syntax.html#id29
The main goal would be to flatten the resulting structure, right?
I was thinking about implementing this feature, because I used it extensively back in the day, but by the current architecture converts rules independently from each-other, so a bunch of refactoring would be needed to do this. Or maybe a preprocessing step.
Out of curiosity, which PEG lib uses ~ for this?

By the way, for this specific case in peginator you could use an override rule to flatten the structure the same way by writing something like this:
assign_statement =
     LET "(" assign_pair_list ")" [type_hint] SET assign_rhs [eos] |
     LET "(" assign_pair_list ")" [type_hint] [eos] |
     LET assign_pair_list SET assign_rhs [eos] |
     LET assign_pair_list eos ;

assign_pair_list = @:assign_pair {Comma @:assign_pair} [Comma] ;
assign_pair = {MODIFIERS} Symbol [type_hint] ;
assign_rhs = if_statement|match_statement|expr ;
LET =  "let" ;
SET =  "=" ;

But I understand this does not solve the case where there are multiple fields in the inlined rule.

Yes, the main purpose is to get a flat structure and reduce redundant dot calls

I use a preprocessing to generate peginator ast to achieve inline
Can the grammar module be set to pub?
https://github.com/badicsalex/peginator/blob/a8368bbdb8dcb7c8b2d3e779d8bc3bb4cac3fbc0/src/lib.rs#L153

Sure I can, but I'm not sure if you want to go that low level (and I guess generate code directly from the AST), it will be pretty unstable.
Note that I'm working on this feature. The syntax will be:
ComplexRule = <OtherRule { <OtherRule2 };

OtherRule = x:Number "," y:Number;
OtherRule = "(" y:Number "," z:Number ")";

It will be preprocessed to be equivalent to the following:
ComplexRule = x:Number "," y:Number { y:Number "," z:Number };

OtherRule = x:Number "," y:Number;
OtherRule = "(" y:Number "," z:Number ")";

Note how the same field names are used.
I think "Dead" rules will not be automatically eliminated from the generated code, but instead I'll just disable the dead code warning for the generated part.


Cannot create a new database

So using a fresh ionic capacitor app - with all the latest versions of everything.
I using this section of code which i created following the examples.
`
const result: any = await this.sqlite.echo("Hello World from database Wakeup");
console.log("Database Service Echo " + result.value); // this returns a value
  let dbConn: SQLiteDBConnection;

  const ret = await this.sqlite.checkConnectionsConsistency();
  console.log(ret); // this returns false

  if ((await this.sqlite.isConnection('medida')).result) {
    console.log('DB Found ---');
    dbConn = await this.sqlite.retrieveConnection('medida');

  } else {
    console.log('DB not found');
    dbConn = await this.sqlite.createConnection('medida', false, 'no-encryption', 1); // this is not creating the database
  }

  console.log('dbConn ' + dbConn);
  this.myDB = await dbConn.open();

`
None of the sections actually do what they are supposed to do.
The database is not found and the createConnection returns undefined
I have no errors when i compile the code.
I using a physical device to do they testing and launching the app with: ionic cap run android -l --external
I seem to be stuck between having had it working and now not.
I have removed my android project and re-added it....
Any suggestions on what i may need to do or where to look.

Is the following still required using the latest capacitor<EMAIL_ADDRESS>As its showing an error on : CapacitorSQLite.class
`package io.ionic.starter;
import com.getcapacitor.community.database.sqlite.CapacitorSQLite;
import android.os.Bundle;
import com.getcapacitor.BridgeActivity;
import com.getcapacitor.Plugin;
import java.util.ArrayList;
public class MainActivity extends BridgeActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Initializes the Bridge
this.init(savedInstanceState, new ArrayList<Class<? extends Plugin>>() {{
  // Additional plugins you've installed go here
  add(CapacitorSQLite.class); // showing an error here
}});

}
}`

HAHAHHA - sorry
So the createConnection does not return a usefull result
And the open() function also does not return a usefull value....
await dbConn.open();
But if display the  dbConn i see the connection.
Oh somehow i must have edited it and then completly forgotten what i had done...


update templates to use exported parseConfigFile

Tested hello template by using current @dbos-inc/create command, updating generated knexfile.js to match the change in this PR and running npx dbos migrate. Still need to test typeorm and prisma templates

manually verified hello-typeorm and hello-prisma


Changing to custom titlebar while maximized on linux causes rendering issues and double titlebar

Issue Type: Bug
If select "window.titleBarStyle" as "custom", as recommend VS Code, then some time it cannot render window if you resize it.

VS Code version: Code 1.29.0 (5f24c93878bd4bc645a4a17c620e2487b11005f9, 2018-11-12T07:42:27.562Z)
OS version: Linux x64 4.4.0-138-generic

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz (4 x 3311)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: disabled_softwarevideo_decode: unavailable_softwarevideo_encode: unavailable_softwarewebgl: enabledwebgl2: enabled

Load (avg)
2, 1, 1

Memory (System)
7.70GB (0.20GB free)

Process Argv
--unity-launch

Screen Reader
no

VM
0%

Extensions (6)

Extension
Author (truncated)
Version

vscode-apache
mrm
1.1.1

vscode-language-pack-ru
MS-
1.29.2

sublime-keybindings
ms-
4.0.0

vscode-icons
rob
7.28.0

code-settings-sync
Sha
3.2.0

markdown-all-in-one
yzh
1.7.0

@joaomoreno as a long term user of the custom menus on Linux have you seen this behavior?

@umnovI I'm noticing something strange from your screen shot. You appear to have 2 title bars, both the native and custom. Can you provide info on your linux distro and version. Looks like Ubuntu MATE, which version?

@sbatten
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.5 LTS
Release:	16.04
Codename:	xenial

MATE Desktop Environment 1.12.1

@umnovI hmm, tried with that OS and can't seem to repro these issues. Do they persist after restarting VS Code? Can you share details on your screen resolution and scaling settings?

@sbatten sorry, but scale settings of what? Screen or VS Code?

Do they persist after restarting VS Code?

@sbatten  Not all the time. Sometimes it works correctly and there's only custom title bar. And window resize works properly.

@umnovI scaling settings of your OS and screen resolution

Not all the time. Sometimes it works correctly and there's only custom title bar. And window resize works properly.

but it comes back? after restarting VS Code again?

@sbatten resolution: 1920x1080. I only found fonts scale settings and it's 96

but it comes back? after restarting VS Code again?

Yes.

Never seen a window border when using custom title bars. Looks like an Electron issue :thinking:

I was able to reproduce this behavior on another PC with same OS configuration.

@umnovI woot! I've got a repro, though after restarting VS Code it goes away I can see both of your symptoms the first time around. Will continue investigating.

@umnovI there was an issue that was causing a cached version of the menu to be triggered which was resolved separately. after fixing that, I am no longer able to reproduce this issue on Ubuntu MATE with the steps above. can you confirm?

@sbatten do I need to install VS Code Insiders?
I can check this on Monday. I don't have this machine right now.

@sbatten still can repro. It's not that often tho.

Code version:
Version: 1.30.0-insider
Commit: 07202fbfb82bdada89472dd4b1c3c699b0eab0b4
Date: 2018-12-04T06:15:17.387Z
Electron: 2.0.12
Chrome: 61.0.3163.100
Node.js: 8.9.3
V8: 6.1.534.41
OS: Linux x64 4.4.0-140-generic

@umnovI I'm not exactly sure yet why this is happening, but so I can understand the severity for you, how often does this occur and does it continue to happen after you have had the custom title bar enabled for some time. in other words, if you change the setting, restart vs code (get into a good state), does it remain in a good state or go back and forth?

@sbatten I cannot say how often this happens for sure. In case with Insiders I didn't change settings because custom title bar by default. I just restarted it a several times and maximized/minimized it.
So it continue to happen after I have had the custom title bar enabled for some time.
I'll use Insiders today as my main editor, so I could say more specifically.

@sbatten If code start as maximized and then you unmaximize it, then bug happens.

@sbatten  After I updated VS Code stable to 1.30.0 I didn't have this behavior, but after restarting PC it appears again.Commit c6e592b2b5770e40a98cb9c2715a8ef89aec3d74

@sbatten

Version: 1.31.0-insider
Commit: d85a16f2e4354f2850b4171f84fe0c94b0cea338
Date: 2018-12-18T06:14:48.441Z
Electron: 3.0.10
Chrome: 66.0.3359.181
Node.js: 10.2.0
V8: 6.6.346.32
OS: Linux x64 4.4.0-140-generic

as the custom title bar is no longer going to remain the default, this will be de-prioritized

FWIW, I stumbled upon this issue after noticing it happening in Google Chrome as well when resizing from a maximized window.
I am using MATE 1.20.1. So I think this issue is larger than just VSCode (I was also able to replicate this in VSCode too).
In Chome, the workaround is to disable Settings > "Use system title bar and borders" and then re-enable.

@jrupac I appreciate the information. Is there a bug in chrome or chromium tracking this that you could link?

I looked for a while and couldn't find an existing Chromium bug for this. However, I did come across a few other instances of the same issue (e.g., with Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1482716).
Eventually, I stumbled upon a bug in Marco (the default window manager for MATE): https://github.com/mate-desktop/marco/issues/428. That bug pointed out that removing the (unnecessary for non-netbook users?) package mate-netbook seems to address the issue. The actual underlying issue is with mate-maximus which is a utility that makes all X windows maximized. See https://github.com/mate-desktop/mate-netbook/issues/14 for that bug.
I removed and purged mate-netbook and rebooted and it fixed the issue for me! Confirmed working for VSCode, Chrome, and Firefox.

closing this since the workaround is documented above and bug is filed upstream. thanks @jrupac


fix: button import

PR Fixes:

Bug: Button Import crash

Checklist before requesting a review

[x] I have performed a self-review of my code
[x] I assure there is no similar/duplicate pull request regarding same issue

Thank you @rushikeshg25 🙇


Snippet collections in admin

In a multi-tenant scenario it can be very useful to organise snippet objects in collections like images and documents in order to have edit/delete permissions based on site-specific groups. In addition to this, in the future it could be used to limit snippet chooser panel's choices.
Currently I couldn't find a sane way to do this without hacking into the Wagtail core. That is, a snippet model can be subclassed from the CollectionMember abstract but the generic snippet admin doesn't account for such a possibility and would ignore any limitations imposed by collections.
I propose adding collection based filtering to the snippet admin views in case a snippet model is a collection member. Additionally it should be possible to add snippets to current user's collections.

Reviewed today – assigning to @cnk to share alternatives to achieve similar results (foreign key to site record). @laymonage might have thoughts about this too.

In case it's interesting for someone:
A while ago I wrote an app for a Wagtail project that adds collection functionality to a Snippet base model, that can then be used for custom snippets. I was meaning to maybe make a proper MR for integrating it into Wagtail at some point, but never came around to it.
I've now put the code with just minimal adaptions in a github repo so it can be shared. It works well for the project it was developed for but is perhaps not generic enough to work for everyone. Still, I think it provides a good overview of the parts of code that need to be adapted to make Snippets work with the CollectionMember mixin.

I can see the appeal of 'collections' of snippets - the name makes sense and the wagtail admin already allows you to grant permissions to collections. But I think using collections for snippets is an overly complicated way to partition snippets by site - or some other rule. Collections puts you into the django-treebeard universe of a hierarchical tree. But so far the request has only been for one level of permissions. Snippets are just Django models and as such can have any fields you want - including a ForeignKey to the wagtailcore_site table. If someone wants to make a compelling argument for a permission hierarchy, I am interested to hear it. In the mean time you may want to see if the following code examples work for you.
I always limit models by site, so all my snippet viewsets inherit from a class that includes the site filter in its get_queryset method. Most of my choosers also limit things by site - though some allow choosing items from the current site plus the default site. I have detailed my approach in https://cynthiakiser.com/blog/2024/01/10/snippet-choosers.html

In our use case, we want to have snippets that belong to a specific site as well as snippets that are shared between multiple sites. With a many-to-one relationship to sites that wouldn't be possible. Besides, with many snippets, it could also be useful to organize them into "folders". I understand the value of the site approach (it was also what I started off with) but I also do see use cases for a hierarchical tree.


does not support "@apollo/datasource-rest": "^6.0.0"

attempted to upgrade the @apollo/datasource-rest package to latest (6.0.0), but receive this error:

The PR #51 solved this issue


Go 1.8 context supports for struct validation

Enhances #292.
Make sure that you've checked the boxes below before you submit PR:

[ x] Tests exist or have been written that cover this particular change.

Change Details:

Add StructCtx(ctx context.Context, s interface{}) which receives a context.Context as a param
FuncCtx(ctx context.Context, fl FieldLevel) custom validation which receives a context.Context as a param

@go-playground/admins

Hey @thaonx added this + more in release 9.5.0, don't know why this didn't automatically get merged, I made all changes based off of this request...


Better error handling

In mvp we do almost nothing with errors except unwrapping and panic
There are some cool materials about error handling
https://nick.groenen.me/posts/rust-error-handling/
https://www.youtube.com/watch?v=NHaWAWLgtAw&list=WL&index=14&t=0s

And more cool materials https://www.youtube.com/watch?v=rAF8mLI0naQ


Warnings about Service Account Key for gcloud in CI

Description
CI/CD is producing the following warning when we login to gcloud:
"service_account_key" has been deprecated. Please switch to using google-github-actions/auth which supports both Workload Identity Federation and Service Account Key JSON authentication. For more details, see google-github-actions/setup-gcloud#authorization

I think this is related to https://cloud.google.com/blog/products/identity-security/enabling-keyless-authentication-from-github-actions
Value / benefit

Keeping our CI/CD pipeline up to date will reduce future toil
Less noise

Implementation details
No response
Tasks to complete

[ ] https://github.com/2i2c-org/infrastructure/pull/1059

Updates
No response

Merging #1059 caused our GCP deployments to fail in CI with the following message
Activated service account credentials for<EMAIL_ADDRESS>Fetching cluster endpoint and auth data.
ERROR: (gcloud.container.clusters.get-credentials) ResponseError: code=403, message=Required "container.clusters.get" permission(s) for "projects/two-eye-two-see/zones/us-central1-b/clusters/pilot-hubs-cluster".
Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/runner/work/infrastructure/infrastructure/deployer/__main__.py", line 8, in <module>
    cli.main()
  File "/home/runner/work/infrastructure/infrastructure/deployer/cli.py", line 111, in main
    deploy_support(args.cluster_name)
  File "/home/runner/work/infrastructure/infrastructure/deployer/deploy_actions.py", line 66, in deploy_support
    with cluster.auth():
  File "/usr/lib/python3.8/contextlib.py", line 113, in __enter__
    return next(self.gen)
  File "/home/runner/work/infrastructure/infrastructure/deployer/cluster.py", line 28, in auth
    yield from self.auth_gcp()
  File "/home/runner/work/infrastructure/infrastructure/deployer/cluster.py", line 316, in auth_gcp
    subprocess.check_call(
  File "/usr/lib/python3.8/subprocess.py", line 364, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess

Seems like the change caused something to go wrong with us using a different service account key to gain access to the cluster in CI.
I tried PR #1060 to attempt to fix this, but it didn't work - so now I'm not really sure what's going on.
I reverted PRs #1059 and #1060 so we are at least back to working CI.

Second attempt made in #1063 implementing @consideRatio's suggestion here: https://github.com/2i2c-org/infrastructure/pull/1059#discussion_r821644968

@sgibson91 hmmm... The issue as I understand it, is that of the following two gcloud calls, only the first succeeds after our changes.
https://github.com/2i2c-org/infrastructure/blob/bf6b319de625e6eedfb745ecc3807d32e53d1575/deployer/cluster.py#L306-L327
What can we conclude?

That we successfully used the GCP SA to do sops decryption against GCP's KMS
That we fail to make use of the decrypted GCP SA to deploy.
That we have permissions needed on the GCP SA to deploy, so it seems like its not used, even though we ran gcloud auth activate-service-account just recently with the GCP SA meant to deploy to k8s.

Why? Hmmm... Not sure.

@sgibson91 @consideRatio my suspicion is that this is failing due to https://github.com/2i2c-org/infrastructure/issues/1034#issuecomment-1061259455, and the credentials we have are from the older workspace, not the newer generated ones.

@yuvipanda So then why does CI/CD work when I revert the PRs? Or at all? Surely if we have out of date credentials files in the repo, they'd just stop working all together? I don't quite understand.

@sgibson91 yeah, I just tested that theory when I manually deployed https://github.com/2i2c-org/infrastructure/pull/1058 and it worked. I was just confidently wrong, sorry :(

Haha, no worries!

I tried to do a deploy to staging from a branch that's based off https://github.com/2i2c-org/infrastructure/commit/31a1d8c2dedb3d58bf61b482112f2fb8856669d6 and I'm getting this error:
ERROR: (gcloud.auth.activate-service-account) There was a problem refreshing your current auth tokens: ('invalid_grant: Invalid JWT Signature.', '{"error":"invalid_grant","error_description":"Invalid JWT Signature."}')

gcloud auth list shows up that I'm using the CI's account's credentials:
<EMAIL_ADDRESS>
So maybe the issue is just that the credentials just expired?

@GeorgianaElena The credentials for the 2i2c cluster got accidentally regenerated and new credentials where added to the repo in https://github.com/2i2c-org/infrastructure/pull/1071, You will need to rebase your branch against master

Thanks @sgibson91 and sorry for the false alarm!

Fixed by #1209 and #1210, the crux was that the new auth action added an env that was overriding whatever service account we configured us to use when we run gcloud auth activate-server-account in the deployer script, so #1210 resolved that after bumping to use non-deprecated actions.


UCalgary Not Updating Recent Terms

Fall 2018 and Winter 2019 are not being auto updated on the server.

Seems like there were some updates to the backend HTML structure and/or site layout

Fixed in https://github.com/Step7750/ScheduleStorm_Server/pull/1
It'll take a bit of time to update on the server


ci: remove notify jobs from ci workflow

Description
Removes the notify jobs from the CI workflow, and allows other jobs to run on fork PRs.

:tada: This PR is included in version 1.1.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Add custom query database template

What does this PR do?
Integrations that use the database utilities share common custom query configuration options. This PR adds a template for them.
Motivation
As more database integrations are being converted or implemented with the database utility class, the options are being repeated.
Additional Notes

Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] PR title must be written as a CHANGELOG entry (see why)
[ ] Files changes must correspond to the primary purpose of the PR as described in the title (small unrelated changes should have their own PR)
[ ] PR must have changelog/ and integration/ labels attached

/azp run

/azp run


[Feature][Seatunnel-web] Add FakeSource and Console data sources into seatunnel-web

Search before asking

[X] I had searched in the feature and found no similar feature requirement.

Description
Add FakeSource and Console data sources to the seatunnel-web.
These connectors are helpful in quick testing and feature automation.
Usage Scenario
FakeSource and Console data sources will be helpful in quick testing and feature automation.
Related issues
No response
Are you willing to submit a PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Raised PR https://github.com/apache/seatunnel-web/pull/176