TLS insecure setting is not working for otelcol.receiver.otlp

What's wrong?
Hey guys,
It seems that despite the documentation mentions it:

To disable tls for connections to the server, set the insecure argument to true.

the component does not support this, as Alloy throws when this setting is added:
Error: /etc/alloy/config.alloy:38:13: unrecognized attribute name "insecure"

37 |         tls {
38 |             insecure = true
   |             ^^^^^^^^^^^^^^^
39 |         }

ts=2024-04-26T10:04:40.241723879Z level=error msg="failed to start reporter" err="context canceled"
Error: could not perform the initial load successfully

I think it is only supported for client, but I am not that fluent with go 😅.
Anyway, if you can provide me a way to lunch the receiver with HTTP only, that would be awesome 🙏
Steps to reproduce
Execute the following command while providing the configuration (see below).
docker run \
  -v <CONFIG_FILE_PATH>:/etc/alloy/config.alloy \
  -p 12345:12345 \
  grafana/alloy:latest \
    run --server.http.listen-addr=<IP_ADDRESS>:12345 --storage.path=/var/lib/alloy/data \
    /etc/alloy/config.alloy

System information
macOS Sonoma 14.4.1 (arm64)
Software version
v1.0.0 (sha256:21248ad12831ad8f7279eb40ecd161b2574c2194ca76e7413996666d09beef6c)
Configuration
otelcol.receiver.otlp "default" {
    http {
        endpoint = "<IP_ADDRESS>:4318"
        traces_url_path = "/v1/traces"
        metrics_url_path = "/v1/metrics"
        logs_url_path = "/v1/logs"

        tls {
            insecure = true
        }
    }

    output {
        //logs = [otelcol.exporter.loki.default.input]
        //metrics = [otelcol.exporter.prometheus.default.input]
        //traces = [otelcol.exporter.otlp.jaeger.input]
    }
}

Logs
ts=2024-04-26T10:27:56.559022553Z level=info "boringcrypto enabled"=false
ts=2024-04-26T10:27:56.55903822Z level=info msg="running usage stats reporter"
ts=2024-04-26T10:27:56.559041011Z level=info msg="starting complete graph evaluation" controller_path=/ controller_id="" trace_id=df1ee8ccaa70ca70f168ab0c4228a918
ts=2024-04-26T10:27:56.559049303Z level=info msg="finished node evaluation" controller_path=/ controller_id="" trace_id=df1ee8ccaa70ca70f168ab0c4228a918 node_id=logging duration=28.292µs
ts=2024-04-26T10:27:56.559059053Z level=info msg="finished node evaluation" controller_path=/ controller_id="" trace_id=df1ee8ccaa70ca70f168ab0c4228a918 node_id=labelstore duration=4.625µs
ts=2024-04-26T10:27:56.559064053Z level=info msg="finished node evaluation" controller_path=/ controller_id="" trace_id=df1ee8ccaa70ca70f168ab0c4228a918 node_id=tracing duration=1.541µs
ts=2024-04-26T10:27:56.559068136Z level=info msg="finished node evaluation" controller_path=/ controller_id="" trace_id=df1ee8ccaa70ca70f168ab0c4228a918 node_id=otel duration=417ns
ts=2024-04-26T10:27:56.559075886Z level=info msg="applying non-TLS config to HTTP server" service=http
ts=2024-04-26T10:27:56.55907872Z level=info msg="finished node evaluation" controller_path=/ controller_id="" trace_id=df1ee8ccaa70ca70f168ab0c4228a918 node_id=http duration=7.042µs
ts=2024-04-26T10:27:56.559082511Z level=info msg="finished node evaluation" controller_path=/ controller_id="" trace_id=df1ee8ccaa70ca70f168ab0c4228a918 node_id=cluster duration=250ns
ts=2024-04-26T10:27:56.559086386Z level=info msg="finished node evaluation" controller_path=/ controller_id="" trace_id=df1ee8ccaa70ca70f168ab0c4228a918 node_id=ui duration=541ns
ts=2024-04-26T10:27:56.559132386Z level=error msg="failed to evaluate config" controller_path=/ controller_id="" trace_id=df1ee8ccaa70ca70f168ab0c4228a918 node=otelcol.receiver.otlp.default err="decoding configuration: /etc/alloy/config.alloy:9:13: unrecognized attribute name \"insecure\""
ts=2024-04-26T10:27:56.559144136Z level=info msg="finished node evaluation" controller_path=/ controller_id="" trace_id=df1ee8ccaa70ca70f168ab0c4228a918 node_id=otelcol.receiver.otlp.default duration=51.791µs

ts=2024-04-26T10:27:56.559168928Z level=info msg="finished node evaluation" controller_path=/ controller_id="" trace_id=df1ee8ccaa70ca70f168ab0c4228a918 node_id=remotecfg duration=20.917µs
ts=2024-04-26T10:27:56.559178636Z level=info msg="finished complete graph evaluation" controller_path=/ controller_id="" trace_id=df1ee8ccaa70ca70f168ab0c4228a918 duration=190.708µs
Error: /etc/alloy/config.alloy:9:13: unrecognized attribute name "insecure"

 8 |         tls {
 9 |             insecure = true
   |             ^^^^^^^^^^^^^^^
10 |         }
ts=2024-04-26T10:27:56.55927097Z level=error msg="failed to start reporter" err="context canceled"
Error: could not perform the initial load successfully

Hey there 👋
We've fixed the documentation on main with this commit, but forgot to backport it to the latest release.
If you look for /next, the correct docs are up: https://grafana.com/docs/alloy/next/reference/components/otelcol.receiver.otlp/#tls-block

Hey @tpaschalis 👋
Since it was not working with the insecure = true attribute, I commented it out. After opening this issue, I removed the whole tls block and it started working.. I couldn't figure out what was the solution, what made it work, but now I understand it.
Essentially, I've defined an empty tls block by commenting out the insecure part, which turned the HTTPS on 🤦
Thank you very much for your answer, the new documentation definitely made it clear.


comparison with react-native-router-flux

This router looks nice!
Could you please provide some information about the differences compared to react-native-router-flux? Because router-flux is about the most used router until now I would say.
Is it only the API / Interface or does it have some other advantages or disadvantages?
From what I can tell:

makes deep linking possible
???

EDIT: Also how do you see the status of this project? Is it production ready (because of 1.0 version)? Maybe you could specify a Roadmap with features that are about to come?
Thanks for working on this 👍

Thanks for the question.
Don't let npm confuse you. This project is currently under active development—aka use in production at your own risk. There used to be another project with the same name that the previous owner nuked. Unfortunately, removing or re-publishing old versions is no longer supported by npm. So the packages that are currently available on npm are the artifacts of a different project, and the first version of this library will probably be released as v2.0.0 and strictly follow React Versioning Scheme afterwards.
I'm not familiar with react-native-router-flux so I cannot tell you what the differences are. There's an example app in the repo if you want to compare the two and share your findings with the community. That'd be awesome. 👍
This project currently has two primary goals:

Introduce URL-driven-development (UDD) to native apps
Keep API as close to react-router as makes sense

I admit the native app ecosystem is not web-like, and you can argue that URLs aren't necessary and most people don't care—or so I thought until I started doing UDD in my native projects. Often people tend to take URLs for granted and advantages are not so pronounced, and as you've already discovered deep-linking is one of those perks.
🍺

@jmurzy, do you have an opinion on the reasons the react-router maintainers stated for not supporting react native? I'm specifically thinking about the argument that native navigation patterns don't map to the web / URL paradigm (for example iOS tabs that have one navigation stack each).
We don't want to "force" web navigation patterns onto our native apps behaviour, it's more important that they feel intuitive from a platform best practices point of view. This is basically the only concern we have in adopting this library.
Also, the amount of breaking changes for NavigationExperimental has been kind of crazy recently; kudos for keeping up with that. I currently postponed the routing question for a little while, hoping that the pace of change will settle down soon.

@jonathanewerner Take a look at this discussion for background. So basically, it's decided that a reducer-based paradigm was better suited to native navigation, and this is exactly what this library does, marries the react-router concepts to those of NavigationExperimental. Ultimately, it is also the direction react-router wants to take, and I think we can influence that discussion going forward.
You can use this library to do anything and everything NavigationExperimental can do. You can do nested tabs and stacks easily, and if you want <Link> to respond differently for a given route, the new reducer API gives you fine-grained control over the interaction. It's something I added over the weekend, so it's still new.
🍺

K awesome, I knew the first discussion, not the second though. I'll try digging through the code on Friday and maybe work on documentation. 👍🏻

@jonathanewerner You're awesome! 💯 👍
🍺

Closing this based upon the discussion above. Please, feel free to reopen this if you want to follow up.
🍺


Hash lookup for Inat::Obs attributes

Uses hash lookup to access Inat::Obs attributes.
Replaces needless, repetitive pattern of defined methods.
Ex: inat_obs[:id] instead of inat_obs.inat_id
Fixes Inat::Obs class length metric offense.
Responds to @mo-nathan suggestion.

There is no manual test.

coverage: 93.452% (-0.004%) from 93.456%
when pulling 8698d2ed2e5ddfddd0dbbec326c4ea179d841f7d on jdc-inat_obs-hash-lookup
into 8c9c7943ac8eee56f16fb8e3a10f97a4ace80dec on main.

Joe - I believe there is a better, more standard Railsy way to do all this, and there's an example on my PR:
Define your inat_obs as an activemodel object. This gives you the accessor methods without repetitive declarations, and other goodies besides. You won't have to access by hash key.
It's a "model not backed by a db table" and it's a very convenient thing.

Thanks! Which pr has an example?
Sent from Gmail Mobile
El El sáb, sept 28, 2024 a la(s) 13:58, andrew nimmo <
@.***> escribió:

Joe - I believe there is a better, more standard Railsy way to do all
this, and there's an example on my PR:
Define your inat_obs as an activemodel object. This gives you the accessor
methods without repetitive declarations, and other goodies besides. You
won't have to access by hash key.
It's a "model not backed by a db table" and it's a very convenient thing.
—
Reply to this email directly, view it on GitHub
https://github.com/MushroomObserver/mushroom-observer/pull/2418#issuecomment-2380893227,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAALDFC2IIMMHPSQ47CD7ITZY4KBHAVCNFSM6AAAAABO2TV4ICVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGOBQHA4TGMRSG4
.
You are receiving this because you were assigned.Message ID:
@.***>

#2337 — which as of yesterday does not require any migrations to check out, so it won't mess up your local db!

@nimmolo: TLDR: I like the idea of a model not backed by a db table, but will postpone it till after NEMF.

I want a good window, before NEMF, for live shakedown tests of iNat import.
What I have now works, so I'd prefer to postpone refactors until after NEMF.
The hash stuff is convenient because it differentiates the raw iNat data from methods which manipulates or map that data. But that might indicate that Inat::Obs has too many concerns, and therefore that I should create another class. That's something that I certainly don't want to attempt prior to NEMF.
The hash stuff also works with all levels of the iNat data. I don't know about a model not backed by a db table, and don't want to take time right now find an answer.

Joe - I believe there is a better, more standard Railsy way to do all this, and there's an example on my PR:
Define your inat_obs as an ActiveModel::Model object, rather than a bare PORO.
This gives you the accessor methods without repetitive declarations, and potentially other goodies besides, like validation (although i didn't use that). You won't have to access your attributes by hash key. It makes it work like a model instance (because it is).
It's a "model not backed by a db table" and it's a very convenient thing. This is what people do for form data where the are assembling attributes that may go into some other model (like an observation, in your case) but they want the attributes of the form accessible like a model, too.
I've known about this for years but never understand quite how to use it, but now that I did, I realize how easy it is and will be using it elsewhere.
Check ObservationFilter at app/models/observation_filter.rb and NameFilter, which are based on a model SearchFilter that inherits from ActiveModel. It's at app/models/search_filter.rb.
class SearchFilter
  include ActiveModel::Model
  include ActiveModel::Attributes

  attribute :pattern, :string


Is it possible to run  train.sh  outside the fluxgym?

After run the training , fluxgym will generate a train.sh script in output/LORA-NAME/ folder. If it possible to run the training without start the fluxgym and just run this script?

I did it with following  steps:

Goto fluxgym folder and run

python -m venv env
source env/bin/activate

Add exe permission to  output/LORA-NAME/train.sh
You can edit run code in train.sh the execute it.


Supply expected / actual in separate fields

Currently one get the following message for a (failed) test_step_finished
test_step_finished {
  test_step_result {
    status: FAILED
    message: "org.opentest4j.AssertionFailedError: expected: <8.0> but was: <3.0>\n\tat org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:55)\n\tat org.junit.jupiter.api.AssertionUtils.failNotEqual(AssertionUtils.java:62)\n\tat org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:182)\n\tat org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:177)\n\tat org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1124)\n\tat io.cucumber.examples.java.RpnCalculatorSteps.the_result_is(io/cucumber/examples/java/basic_arithmetic.feature:27)\n"
    duration {
      nanos: 2984000
    }
  }
  timestamp {
    seconds:<PHONE_NUMBER>
    nanos: 398493000
  }
  test_step_id: "c2692c18-91e6-4a38-8cd8-c40ef71ca67e"
  test_case_started_id: "22500d5c-fb17-464a-8f7e-8afa01342e58"
}

to prevent the consumer from parsing the message is would be good to have the 'expected: <8.0> but was: <3.0>' part split in different fields
Describe the solution you'd like
test_step_finished {
  test_step_result {
    status: FAILED
   expected: "<8.0>",
   actual: "<3.0>",
    message: "org.opentest4j.AssertionFailedError: expected: <8.0> but was: <3.0>\n\tat org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:55)\n\tat org.junit.jupiter.api.AssertionUtils.failNotEqual(AssertionUtils.java:62)\n\tat org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:182)\n\tat org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:177)\n\tat org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1124)\n\tat io.cucumber.examples.java.RpnCalculatorSteps.the_result_is(io/cucumber/examples/java/basic_arithmetic.feature:27)\n"
    duration {
      nanos: 2984000
    }
  }
  timestamp {
    seconds:<PHONE_NUMBER>
    nanos: 398493000
  }
  test_step_id: "c2692c18-91e6-4a38-8cd8-c40ef71ca67e"
  test_case_started_id: "22500d5c-fb17-464a-8f7e-8afa01342e58"
}

Thanks for clarification.

The proposal would add these well fields to the message protocol when available.

Correctly, that would be good, to the tools consuming the messages don't need to know if it was java or some other runner...

There is an implicit assumption here that an assertion is comparison between two values.
What is the type of value here? Looking at the opentest4j it looks like it can be objects of any type: https://github.com/ota4j-team/opentest4j/blob/master/src/main/java/org/opentest4j/ValueWrapper.java
So if we do this, the actual and expected fields could be 5, "5", {"age": 5}, "2021-04-30T08:18:37.302Z"  etc.
I suppose the consumers (reporting tools) could render primitives (strings, numbers, dates) fine. Arrays of primitives could be rendered in a bullet list. But for deeply nested objects we'd have to display them as a tree.
Something to think about...

Some of the libraries might work with this, however if we did this, we would need a way of obtaining both the previously unstitched values, and we would have to have reasonable confidence most / all libraries do this (I think they do, but it's just a consideration).


Apply fix for trajectory execution race condition to ScaledJointTrajectoryController

The JointTrajectoryController in ros2_controllers had a race condition in which trajectory execution could erroneously succeed while the robot was still in motion, which caused undesirable behavior when performing multiple motion plans and trajectories in series.
Since this repo's ScaledJointTrajectoryController is based on JointTrajectoryController, it probably also has the same problem.
To resolve this, the changes from https://github.com/ros-controls/ros2_controllers/pull/565 need to be applied to ScaledJointTrajectoryController.

@schornakj  @fmauch
I create a pr for this for humble branch https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/pull/710

Should be resolved by #810, #811, #813


Make button text accessible

This commit adds a color variable that contrasts with the action
color to always ensure legibility for buttons.
Closes https://github.com/thoughtbot/bitters/issues/339

Closed in e1a95ebd3f1ec402ea0bb61616073f1798dc372c


Coordinate System Axis: expose everything in edit GUI, add Minimum Value and Maximum Value, add Range Meaning

See also #48

Completion depends on https://github.com/isogr/data-extraction-tools/issues/14.


Group by namespace when displaying list of commands

Q
A

Is bugfix?
❌

New feature?
✔

Breaks BC?
❌

Fixed issues
comma-separated list of tickets # fixed by the PR, if any

Before:

After:

👍


Updated the navigation title to a more meaningful version

Fixes PER-2385

documentation change, this is not production critical code.


Implement "No results" view

Schedule
Exams
Grades
Canteen

Current status:

NoResultsView subclass has been created and is working
"Empty detection" in DataSource is working fine
! When adding a NoResultsView as a subView of the view property of any of the CollectionViewController classes, large navigation bar titles will stop working.

Fixed

Open for discussion: Use an item in the data source instead.


This is Not Working heroku

Program version
3.0.7
Operating System
Linux
Type
Cli
Service
Both
Command used
/r node index --service crunchy --auth
Show ID
0000
Episode
0
Console Output
·
=== Multi Downloader NX 3.0.7 ===
[Q] LOGIN/EMAIL:
xxxxxxxxxxxxxx
[Q] PASSWORD   :
xxxxxxxxxxxxx
[ERROR] HTTPError 503: Service Temporarily Unavailable
[ERROR] Just a moment...
[ERROR] Body:

Just a moment...

  <meta http-equiv="refresh" content="35">

Please turn JavaScript on and reload the page.

Checking your browser before accessing beta-api.crunchyroll.com.

Please enable Cookies and reload the page.

This process is automatic. Your browser will redirect to your requested content shortly.

Please allow up to 5 seconds…

Redirecting…

Additional Information
No response

Can you try logging in on the website?

yeah it is logging in browser in ubuntu but when i try in the terminal it says this

Same erroor

Duplicate with #321.
(I know this was first, but I already answered some questions over there)


Error when connecting with Confluent Kafka

Hello,
I'm tryin to connect with my confluent kafka cluster, not sure why but always get this error
** (Mix) Could not start application producer_service: ProducerService.Application.start(:normal, []) returned an error: shutdown: failed to start child: ProducerService.KafkaClient     ** (EXIT) shutdown: failed to start child: {Klife.Connection.Supervisor, ProducerService.KafkaClient}         ** (EXIT) shutdown: failed to start child: Klife.Connection.Controller             ** (EXIT) an exception was raised:                 ** (MatchError) no match of right hand side value: {:error, :closed}                     (klife 0.5.0) lib/klife/connection/controller.ex:460: Klife.Connection.Controller.negotiate_api_versions/2                     (klife 0.5.0) lib/klife/connection/controller.ex:145: Klife.Connection.Controller.handle_info/2                     (klife 0.5.0) lib/klife/connection/controller.ex:129: Klife.Connection.Controller.do_init/1                     (klife 0.5.0) lib/klife/connection/controller.ex:124: Klife.Connection.Controller.init/1                     (stdlib 6.1.2) gen_server.erl:2229: :gen_server.init_it/2                     (stdlib 6.1.2) gen_server.erl:2184: :gen_server.init_it/6                     (stdlib 6.1.2) proc_lib.erl:329: :proc_lib.init_p_do_apply/3
I have this setup in my config file
config :producer_service, ProducerService.KafkaClient,   connection: [     bootstrap_servers: [       "my-confluent-host.confluent.cloud:9092"       ],     ssl: false,     sasl_opts: [       mechanism: "PLAIN",       mechanism_opts: [         username: "username",         password: "password"       ]     ]   ],   topics: [[name: "commission_engine_pxch"]]
I also tried to change the ssl config to true, and tried a lot of variations but always get the same error, I hided host, username and password, not sure if someone is able to create a free confluent cluster and stablish a connection, I just need to be able to produce events, dont need a consumer

Hey @mateoramos97!  Thanks for the report.
First thing is I would suggest always have ssl: true when using sasl plain. Otherwise your secrets could be exposed. I think we don't allow sasl_plain with ssl false.
Regarding your connection problem, it is weird. On my local tests I use the confluent latest image.
Just to be sure it is not a server configuration problem, are you able to connect using other libraries such as brod or kafka_ex?
If you have access to the server logs you should probally see some error regarding this closed connection.
Gonna try create a free confluent cluster later to see if I can reproduce your problem, which version of kafka are you running? Can you describe how do you created your cluster on confluent?


Updating onboarding Screens

Make global payments with zero fees. Earn rewards when you support 'regenerative' organisations and people.

Center all titles - so they are centered along with the text :)

TItle:
Regenerative Economy
Text:
Unite with a global movement of organisations and people to heal our planet. Access funding for social and environmental impact projects.

TItle:
Citizen Campaigns
Text:
Earn rewards for participating in campaigns for direct social, community and environmental regeneration. Get paid to heal our planet and grow community.

Merged into master.


How can i set up the config? im getting Cannot GET /

This is what i did
add this to my nuxt.config.js
modules: [
        '@nuxtjs/router',
        '~/modules/spa',
        ['@nuxtjs/apollo', {
            apollo: {
                networkInterfaces: {
                    default: '~/apollo/network-interfaces/default.js'
                }
            }
        }],
]

then create folder apollo/network-interfaces
then create a default.js
import { ApolloLink } from 'apollo-link'
import { HttpLink } from 'apollo-link-http'
import { InMemoryCache } from 'apollo-cache-inmemory'

export default (ctx) => {
    const httpLink = new HttpLink({ uri: 'http://localhost:8000/graphql' })

    // auth token
    let token = process.server ? ctx.req.session : window.__NUXT__.state.session

    // middleware
    const middlewareLink = new ApolloLink((operation, forward) => {
        operation.setContext({
            headers: { authorization: `Bearer ${token}` }
        })
        return forward(operation)
    })
    const link = middlewareLink.concat(httpLink)
    return {
        link,
        cache: new InMemoryCache()
    }
}

then i did npm install
apollo-link
apollo-link-http
apollo-cache-inmemory
then configure my api endpoint i made with laravel graphql
http://laravel.test/graphql

This question is available on Nuxt.js community (#c54)

Error: [Apollo module] No clientConfigs found in apollo configuration
Hi!
Please tell me How do you fix this error.
I updated nuxtjs/apollo.
So such a error occurs now.

Please @codeitlikemiley how did u fix it.

Did you test it on the latest beta.5? The config changed please read the annoucements how to adjust your configuration


Doesn't test if callback is reached.

We committed out line 26 of 'sync.js' and the tests still executed the same.

I have no tests failing when I initially run, but commenting out that line causes two tests to fail.


Upgrades sbt-org-policies

Please @juanpedromoreno could you review? Thanks

Codecov Report

Merging #81 into master will increase coverage by 0.28%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #81      +/-   ##
==========================================
+ Coverage   79.47%   79.75%   +0.28%
==========================================
  Files          35       35
  Lines         492      499       +7
  Branches        3        2       -1
==========================================
+ Hits          391      398       +7
  Misses        101      101

Impacted Files
Coverage Δ

...thub4s/shared/src/main/scala/github4s/Github.scala
83.33% <0%> (+23.33%)
:arrow_up:

Continue to review full report at Codecov.

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


add a pink heart (such as :blue_heart: and :red_heart:)

i think that this is true discrimination to the color pink when there's :blue_heart: and :red_heart:
FIX THIS NOW.

http://unicode.org/emoji/proposals.html
https://github.com/Crissov/unicode-proposals/issues/329
https://github.com/Crissov/unicode-proposals/issues/222


copy images does not work with HEIC filetype

issue: the copy functionality of feh does not work with HEIC images
try:

feh --output-dir=~
press 's' to copy a HEIC image to ~

expected result: find a copy of HEIC file in ~
actual result: no file is copied and this error appears: "Path component does not exist"
error seems to be linked to this file in feh:
https://github.com/derf/feh/blob/master/src/imlib.c
Any idea how to solve this?

Is it really a problem with imlib2 loader?
Note that imlib2 has changed its loader API and current imlib2-heic and imlib2-bpg won't work with modern (e.g. 1.10) imlib2.

| Is it really a problem with imlib2 loader?
I don't really know if the problem lies in imlib2 loader or somewhere else.
|Note that imlib2 has changed its loader API and current imlib2-heic and imlib2-bpg won't work with modern (e.g. 1.10) imlib2.
I'm still on imlib2 1.7.4. And I should mentioned that I can see HEIC images just fine, it's the save function that doesn't work.


BUG: Sometimes does not close if last window.

Did you check docs and existing issues?

[X] I have read all the docs.
[X] I have searched the existing issues.
[X] I have searched the existing discussions.

Neovim Version (nvim -v)
0.9.5
Operating System / Version
MacOS 14.2.1
Describe the Bug
I have neotree configured with the close_if_last_window set to true. I also have an autocmd configured to start neotree if nvim is given only one argument.
If I open neovim without a file argument, open a file then start neotree, the option works correctly : neotree is closed when I close the buffer for the file.
If I open neovim with a file argument, it starts neotree as expected, but the neotree window is not closed when closing the file window and remains the only one.
Screenshots, Traceback
No response
Steps to Reproduce

Use my autocmd to start neovim with a file (and start neotree automatically) nvim some_file
:q on the file window to exit

Expected Behavior
Neovim shoud exit completely, but it doesn’t and the only window remaining is the neotree window.
Your Configuration
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")

-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  "folke/tokyonight.nvim",
  -- add any other plugins here
}

local neotree_config = {
  "nvim-neo-tree/neo-tree.nvim",
  dependencies = { "MunifTanjim/nui.nvim", "nvim-tree/nvim-web-devicons", "nvim-lua/plenary.nvim" },
  cmd = { "Neotree" },
  keys = {
    { "<Leader>e", "<Cmd>Neotree<CR>" }, -- change or remove this line if relevant.
  },
  opts = {
    close_if_last_window = true,
  },
}

table.insert(plugins, neotree_config)
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")
-- add anything else here

vim.api.nvim_create_autocmd("VimEnter", {
    pattern = "*",
    group = vim.api.nvim_create_augroup("NeotreeOnOpen", { clear = true }),
    once = true,
    callback = function(_)
        if vim.fn.argc() == 1 and vim.fn.isdirectory(vim.fn.argv(0)) ~= 1 then
            if vim.fn.winwidth("%") >= 120 then
                vim.cmd("Neotree")
                vim.cmd("wincmd p")
            end
        end
    end,
})

One clue: I just encountered this close_if_last_window issue as well, but it was right after I added the wincmd p - that is also in the report above, to place cursor focus in editor upon opening:
my init.lua block:
vim.cmd[[   autocmd VimEnter * silent! execute 'Neotree reveal'    autocmd VimEnter * wincmd p ]]
Without the wincmd p though, close_if_last_window was working as expected.


Hugo server not coming up

Whenever i try to run the Hugo server after cloning the repository, I get this error
PS C:\Users\omo\Documents\hugo-demo> hugo server
Start building sites …
hugo v0.108.0-a0d64a46e36dd2f503bfd5ba1a5807b900df231d+extended windows/amd64 BuildDate=2022-12-06T13:37:56Z VendorInfo=gohugoio
Error: Error building site: POSTCSS: failed to transform "css/styles.css" (text/css): Error: Cannot find module 'postcss-import'
Require stack:

C:\Users\omo\Documents\hugo-demo\themes\blist\assets\css\postcss.config.js
at Module._resolveFilename (node:internal/modules/cjs/loader:995:15)
at Module._load (node:internal/modules/cjs/loader:841:27)
at Module.require (node:internal/modules/cjs/loader:1061:19)
at require (node:internal/modules/cjs/helpers:103:18)
at Object. (C:\Users\omo\Documents\hugo-demo\themes\blist\assets\css\postcss.config.js:5:5)
at Module._compile (node:internal/modules/cjs/loader:1159:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
at Module.load (node:internal/modules/cjs/loader:1037:32)
at Module._load (node:internal/modules/cjs/loader:878:12)
at ModuleWrap. (node:internal/modules/esm/translators:169:29) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'C:\Users\omo\Documents\hugo-demo\themes\blist\assets\css\postcss.config.js'
]
}
Built in 1605 ms

@Oziomaoguine007 This theme uses PostCSS to optimize the CSS output with Hugo (https://gohugo.io/hugo-pipes/postcss/)
You will need to run this to set it up. Make sure nodejs is installed in your machine
npm install postcss postcss-cli autoprefixer

also having issue getting server to start .
getting following error:

npm installed packages :

npm install postcss postcss-cli autoprefixer up to date, audited 175 packages in 415ms 27 packages are looking for funding run npm fund` for details
found 0 vulnerabilities`

the running hugo :

Start building sites …  hugo v0.111.3+extended linux/amd64 BuildDate=unknown Error: Error building site: POSTCSS: failed to transform "css/styles.css" (text/css): Input Error: Did not receive any STDIN Built in 937 ms
Tried many scenario even starting over from scratch without success!

I am having the same error
error:
PS C:\Users\HP\Desktop\blist> hugo server                                                                                Watching for changes in C:\Users\HP\Desktop\blist\{archetypes,assets,content,data,layouts,static,themes}                                             Watching for config changes in C:\Users\HP\Desktop\blist\config.toml                                                                                Start building sites …                                                                                hugo v0.115.4-dc9524521270f81d1c038ebbb200f0cfa3427cc5+extended windows/amd64 BuildDate=2023-07-20T06:49:57Z VendorInfo=gohugoio                                                                                Built in 4822 ms                                                                                Error: error building site: POSTCSS: failed to transform "css/styles.css" (text/css). Check your PostCSS installation; install with "npm install postcss-cli". See https://gohugo.io/hugo-pipes/postcss/: binary with name "npx" not found

my machine:


Sysprep /mode:vm boot time enhancement

Devices between VM instances should not differ on the same hypervisor, therefore persisting devices between instances should improve boot times. This can be achieved a couple different ways either via the PersistAllDeviceInstalls autounattend setting or via a sysprep /mode:VM flag

To speed up the deployment of a group of computers that have identical hardware configurations, you can instruct Windows Setup to maintain the driver settings from the reference computer when you capture a Windows image. When you apply the image to identical destination computers, the drivers are correctly configured.

https://docs.microsoft.com/en-us/windows-hardware/customize/desktop/unattend/microsoft-windows-pnpsysprep-persistalldeviceinstalls
I haven't validated this myself yet, however reportedly this can improve boot times by several minutes. This could have significant benefits for a large Bosh deployment of Windows Diego cells.

For the image that was given PersistAllDeviceInstalls, it took 1 minute 20 seconds from the start of the virtual machine to the logon prompt. For the normal image without PersistAllDeviceInstalls, it took about 3 minutes from the start of the virtual machine to the logon prompt.

https://keithga.wordpress.com/2014/10/09/persistalldeviceinstalls-in-hyper-v-environments/

For GCP we already ship with PersistAllDeviceInstalls set to true. https://github.com/cloudfoundry-incubator/stembuild/blob/9da36741b7c800d24313914689dbe1127fdfa555/modules/BOSH.Sysprep/BOSH.Sysprep.psm1#L229

For GCP we already ship with PersistAllDeviceInstalls set to true. https://github.com/cloudfoundry-incubator/stembuild/blob/9da36741b7c800d24313914689dbe1127fdfa555/modules/BOSH.Sysprep/BOSH.Sysprep.psm1#L229


Hammy starves while in cage

Even when not controlled by a player, hamlet starves quickly and takes a lot of damage. When in a cage, they cannot wander around and eat food themselves.
I propose making it so that when hammy is in the cage their hunger wont drop, so it gives players a chance to wander around instead of being forced to eat food the moment they are taken out.
Not sure if this is applicable with other pets, but if it is this should be fixed asap.

anything that isnt a player race is incapable of taking starvation damage

are we sure mice don't take starvation damage?

i never added it to them

oh ok, i just saw one of my friends take damage out of nowhere as hammy, with red hunger, so i assumed otherwise


[Event Request] Codeunit 5407 "Prod. Order Status Management" - OnBeforeFlushProdOrder

In order to override the default flushing function, without having to override the entire ChangeProdOrderStatus function, it'd be nice to have an IsHandled-event publisher at the start of FlushProdOrder.
    procedure FlushProdOrder(ProdOrder: Record "Production Order"; NewStatus: Enum "Production Order Status"; PostingDate: Date)
    var
        Item: Record Item;
        ItemJnlLine: Record "Item Journal Line";
        ProdOrderLine: Record "Prod. Order Line";
        ProdOrderRtngLine: Record "Prod. Order Routing Line";
        ProdOrderComp: Record "Prod. Order Component";
        ItemTrackingMgt: Codeunit "Item Tracking Management";
        Window: Dialog;
        QtyToPost: Decimal;
        NoOfRecords: Integer;
        LineCount: Integer;
+       IsHandled: Boolean;
    begin
+       IsHandled := false;
+       OnBeforeFlushProdOrder(ProdOrder, NewStatus, PostingDate, IsHandled);
+       if IsHandled then
+           exit;

        if IsStatusSimulatedOrPlanned(NewStatus) then
            exit;

        GetSourceCodeSetup;

        ProdOrderLine.LockTable();
        ProdOrderLine.Reset();
        ProdOrderLine.SetRange(Status, ProdOrder.Status);
        ProdOrderLine.SetRange("Prod. Order No.", ProdOrder."No.");

Event publisher:
    [IntegrationEvent(false, false)]
    local procedure OnBeforeFlushProdOrder(var ProductionOrder: Record "Production Order"; NewStatus: Enum "Production Order Status"; PostingDate: Date; var IsHandled: Boolean)
    begin
    end;

Thanks for your consideration.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


How I can get the dataset witch you used?

Hi~
There is a tag file dataset. But how to get the time-series samples?
Looking forward your reply. Thank you very much.

Hi, I generate the data samples myself. For instance, in leveldb/db/dbtest.cc (https://github.com/naivewong/timeunion/blob/8070492d2c6a2d68175e7d026c27b858c2aec8e6/leveldb/db/dbtest.cc#L113)

OK ,thank you.


Support genomic regions

Wanted to give #14 a go as it would be a neat feature to have in every day data wrangling.
Despite WIP I wanted to open a PR to check in with you regarding implementation and suggestions.
Still to-do:

[ ] Add support for CNV and haplotype functions
[x] Tests for region_slice()

Hi @nkran, this is great stuff and very much appreciated!
At a first glance this looks like a great direction. I'll give it a more thorough review asap but expect comments will be relatively minor.

Hi @alimanfoo, thanks for the first review :) I added your corrections and support for regions in the other functions.
I saw that there were TODO tags for multiple contigs/regions support in cnv_discordant_read_calls(), cnv_hmm() and cnv_coverage_calls() so I followed suit from other methods to do the same there. Hope I didn't mess up.
A few combinations of tests for CNV methods with some regions are failing with KeyError from allel.locate_region(). I assume that is due to the empty dataset that gets returned if there are no CNVs in a given region. Any suggestions or preference about how to resolve that?
Have a nice weekend,
N

A few combinations of tests for CNV methods with some regions are failing with KeyError from allel.locate_region(). I assume that is due to the empty dataset that gets returned if there are no CNVs in a given region. Any suggestions or preference about how to resolve that?

Yes that would be my guess, especially the discordant read calls, there are only a couple of regions with data there. Could just adapt the regions tested so they return some data and avoid KeyError, e.g., for the discordant read calls could use genes from the cyp6p/aa cluster on 2R?

Hi @nkran, on second thoughts, it might be better to back out the changes to the CNV methods and revisit those in a later PR. The reason is that CNVs span intervals, and so we'd need to do an overlap query for regions. I.e., the current approach of using the POS field (which holds the start coordinates) and SortedIndex.locate_range() will only find CNVs where the start occurs within the requested region.

Hi @alimanfoo! Ah yes, that makes sense! I'll omit those two commits and update the branch.

Hi @nkran, thanks so much, this all looks good to me now, except for one .pyc file has crept in (tests/__pycache__/__init__.cpython-37.pyc). If you could remove that then it looks good to merge.

Hi @alimanfoo, just to double check - my commit (a2362bd) removes that .pyc file that is currently in master. Do you want me to revert the commit that deletes it and keep the .pyc file or to remove the .pyc file? Thanks for your patience :) Just want to get it right.

Hi @alimanfoo, just to double check - my commit (a2362bd) removes that .pyc file that is currently in master. Do you want me to revert the commit that deletes it and keep the .pyc file or to remove the .pyc file? Thanks for your patience :) Just want to get it right.

My bad, I wasn't looking carefully enough to realise the file was already in master and you were cleaning up :)
OK to merge?

OK! :) 🚀

Done, thanks again :smile: :pray:


Modified README.md

Please Merge
#Hacktoberfest

Hi @aditya-gite-04 where did you get these emojis?

Hey,
You can get all the usable emojis
https://github.com/ikatyang/emoji-cheat-sheet
On Mon, Oct 19, 2020 at 8:05 PM Yvonne Allen<EMAIL_ADDRESS>wrote:

Hi @aditya-gite-04 https://github.com/aditya-gite-04 where did you get
these emojis?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Vonage/vonage-java-code-snippets/pull/71#issuecomment-712207284,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANKYM3JB2ZU6JSDDIXK2R7TSLRFDLANCNFSM4SCDHLSA
.


conflicting implementation for

Hey!
I am trying to use the import macro attribute. I have a Rust canister and a Motoko canister. The motoko canister is named motoko. I am trying to use the macro like this:
#[import(canister = "motoko")]
struct MotokoCanister;

async fn customGet(id: ID) -> Result<Option<Message>, sudograph::async_graphql::Error> {
    return Ok(MotokoCanister::customGet(id.to_string()).await.0);
}

Here's the Motoko source code for the canister:
import Text "mo:base/Text";
import Map "mo:base/HashMap";
import Option "mo:base/Option";

actor Motoko {
    let message_store = Map.HashMap<Text, ?Message>(10, Text.equal, Text.hash);

    type Message = {
        id: Text;
        text: Text;
    };

    public query func customGet(id: Text): async ?Message {
        let message: Message = {
            id = "0";
            text = "motoko";
        };

        return Option.make(message);
    }
}

The problem seems to be that I have a Message type defined already in my Rust canister. I need to define the type because it is my own custom type used throughout the Rust canister. The import attribute seems to also be defining the type to provide the interoperability between the canisters. Something doesn't seem right about the import implementation in this case.
I am getting multiple errors like the following:
error[E0428]: the name `Message` is defined multiple times
 --> canisters/graphql/src/graphql.rs:6:1
  |
4 | graphql_database!("canisters/graphql/src/schema.graphql");
  | ---------------------------------------------------------- previous definition of the type `Message` here
5 |
6 | #[import(canister = "motoko")]
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Message` redefined here
  |
  = note: `Message` must be defined only once in the type namespace of this module
  = note: this error originates in an attribute macro (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0119]: conflicting implementations of trait `std::clone::Clone` for type `Message`
 --> canisters/graphql/src/graphql.rs:6:1
  |
4 | graphql_database!("canisters/graphql/src/schema.graphql");
  | ---------------------------------------------------------- first implementation here
5 |
6 | #[import(canister = "motoko")]
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `Message`
  |
  = note: this error originates in a derive macro (in Nightly builds, run with -Z macro-backtrace for more info)

@lastmjs, I'm closing this issue, for now. Please reopen it if my advice above didn't help you.

Another option is to use didc to generate Rust bindings from did file: didc bind a.did -t rs


Show import warnings

When opening a diagram with wrong data, users should be able to learn about the import warnings.

Also for saving if the diagram is corrupt


[README] The instruction $ find * -type f | scout | cat doesn't print a file's contents

Under Usage, it says we can print a file's contents with find * -type f | scout | cat, but this prints a file's path instead.

Yeah, that's wrong, it should be:
find * -type f | scout | xargs -n1 cat

Thanks for finding this! I'll try to fix it soon.

And fixed. Thanks again!


PSR-331 UK Company Buyer Name

https://jira.tools.tax.service.gov.uk/browse/PSR-331 Page to insert the UK Company name who bought off the property (Disposal Journey)

Local tests are happy


Bad join with raw() expression.

I have a class UserGroup with a collection of User:
@ManyToMany(cascade=CascadeType.PERSIST)
	@JoinTable(name = "usergroupsusers",
				joinColumns = { @JoinColumn(name = "usergroupid", referencedColumnName = "usergroupid") },
				inverseJoinColumns = { @JoinColumn(name = "userid", referencedColumnName = "userid") }
	)
private Set<User> users;

I have a query with this in it:
query.where().raw("users.id in ( some-raw-sql )");

Which produces this output:
select
distinct t0.usergroupid c0, t0.name c1, t0.descr c2, t0.version c3, t0.name
from public.usergroups t0
join usergroupssystemcontexts u1z_ on u1z_.usergroupid = t0.usergroupid
join public.systemcontexts u1 on u1.systemcontextid = u1z_.systemcontextid
left outer join usergroupsusers t1z_ on t1z_.usergroupid = t0.usergroupid
left outer join public.users t1 on t1.userid = t1z_.userid
left outer join public.users t1 on t1.userid = t0.userid
where u1.systemcontextid = ?
and t1.userid in ( some-raw-sql )
order by t0.name;

Note the duplicate alias t1.
If I change the criteria to:
query.where().gt(UserGroup.pUsers + "." + User.pId, 0);

The resulting query is:
select distinct t0.usergroupid c0, t0.name c1, t0.descr c2, t0.version c3, t0.name
from public.usergroups t0
join usergroupssystemcontexts u1z_ on u1z_.usergroupid = t0.usergroupid
join public.systemcontexts u1 on u1.systemcontextid = u1z_.systemcontextid
join usergroupsusers u2z_ on u2z_.usergroupid = t0.usergroupid
join public.users u2 on u2.userid = u2z_.userid
where u1.systemcontextid = ?
and u2.userid > ?
order by t0.name

I suppose the left joins in the first query are necessary since you don't know the nature of the raw expression, but clearly the users should not be joined twice. The second join as t1 is joining to t0.userid which is not a column in usergroups, so I'd say that join should not be there at all.
Thanks.

but clearly the users should not be joined twice

Which 2 joins are you referring to?

In the first example, public.users is joined twice (with the same alias). The second join is to a non-existent column:
left outer join public.users t1 on t1.userid = t1z_.userid
left outer join public.users t1 on t1.userid = t0.userid

I believe the second join should not be present.

The incorrect behavior of adding the additional join is a regression introduced by the changes in https://github.com/ebean-orm/avaje-ebeanorm/issues/527

The reproducing test case was:
    Query<MUser> query = Ebean.find(MUser.class)
        .select("userid")
        .where().raw("roles.roleid in (?)", 24)
        .query();

    query.findList();

Where "roles.roleid" is a @ManyToMany path.

Looks good, thanks!


Add Server Actions

Add the features described in "https://docs.hetzner.cloud/#server-actions" to the documentation

Starting to code...


cmd: check if required flags are set

Using c.String("…") == "" instead of !c.IsSet("…") since c.IsSet only checks if the flag is passed on the command line, it doesn't check if it's set in env vars.

Codecov Report

Merging #21 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #21   +/-   ##
=======================================
  Coverage   48.37%   48.37%
=======================================
  Files           2        2
  Lines         215      215
=======================================
  Hits          104      104
  Misses        103      103
  Partials        8        8

Continue to review full report at Codecov.

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

Were you able to find the breakage in urfave/cli?

Were you able to find the breakage in urfave/cli?

Yeah, I reported it here: https://github.com/urfave/cli/issues/294#issuecomment-279689444


AppsFeature now ensures that the Stratis apps folder exists where ena…

…bled through UseApps. @dangershony

My suggestion is to get the DataFolder in the Feature's constructor, and then do this in the initialize method:
Directory.CreateDirectory(this.dataFolder.ApplicationsPath);
That's all you need.

I think this will work:
private readonly DataFolder dataFolder;

public AppsFeature(ILoggerFactory loggerFactory, IAppsStore appsStore, IAppsHost appsHost, DataFolder dataFolder)
{
	this.appsStore = appsStore;
	this.appsHost = appsHost;
	this.dataFolder = dataFolder;
	this.logger = loggerFactory.CreateLogger(this.GetType().FullName);
}

public override void Initialize()
{
	this.logger.LogInformation("Initializing {0}", nameof(AppsFeature));

	// Create the apps folder if it does not exist.
	Directory.CreateDirectory(this.dataFolder.ApplicationsPath);

	this.appsHost.Host(this.appsStore.Applications);
}

ok


Cannot properly escape PRAGMA command parameters

SQLite has SQL extension called PRAGMA. It mostly takes enum and boolean parameters and these cases do not need prepared statements and arbitrary parameter escaping.
But some pragmas take string parameters. One example https://www.sqlite.org/pragma.html#pragma_temp_store_directory
This one is deprecated and maybe not relevant to be handled properly anymore.
But when using encrypted databases the encryption key is set with
PRAGMA key='your-secret-key';
Now, if this key contains ' characters the command fails. See test testSetPragmaNotEscaped. Escaping the key input with the method from org.sqlite.core.CoreDatabaseMetaData#escape makes it work. The method is just not available. I guess to not encourage people to use that but use prepared statements properly. See testSetPragmaEscaped.
As testSetPragmaParameter shows, using prepared statements to escape the contents is not supported. We get
org.sqlite.SQLiteException: [SQLITE_ERROR] SQL error or missing database (near "?": syntax error)
	at org.sqlite.core.DB.newSQLException(DB.java:1011)
	at org.sqlite.core.DB.newSQLException(DB.java:1024)
	at org.sqlite.core.DB.throwex(DB.java:989)
	at org.sqlite.core.NativeDB.prepare_utf8(Native Method)
	at org.sqlite.core.NativeDB.prepare(NativeDB.java:134)
	at org.sqlite.core.DB.prepare(DB.java:257)
	at org.sqlite.core.CorePreparedStatement.<init>(CorePreparedStatement.java:45)

So my question is:

Should using prepared statements for Pragma parameters be supported?
If so, should the fix be in SQLite itself, not here?
If not, should there be a way to have some helper method to use for escaping in these kind of situations, or would it encourage bypassing prepared statements when they should be used?

package org.sqlite;

import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.util.Properties;

import junit.framework.Assert;
import org.junit.BeforeClass;
import org.junit.Test;

public class PragmaTest
{

    @Test
    public void testSetPragmaParameter() throws Exception {

        // create a memory database
        File tmpFile = File.createTempFile("test", ".sqlite");
        tmpFile.deleteOnExit();

    	Connection conn = null;
    	try {
    		conn = DriverManager.getConnection("jdbc:sqlite:" + tmpFile.getAbsolutePath());
    		String sql = "pragma defer_foreign_keys = ?";
    		try (PreparedStatement ps = conn.prepareStatement(sql);) {
    			ps.setBoolean(1, true);
    			ps.execute();
    		}

	    }
	    finally {
	        if (conn != null)
	            conn.close();
	    }
    }

    @Test
    public void testSetPragmaDirect() throws Exception {

        // create a memory database
        File tmpFile = File.createTempFile("test", ".sqlite");
        tmpFile.deleteOnExit();

    	Connection conn = null;
    	try {
    		conn = DriverManager.getConnection("jdbc:sqlite:" + tmpFile.getAbsolutePath());
    		String sql = "pragma defer_foreign_keys = true";
    		try (PreparedStatement ps = conn.prepareStatement(sql);) {
    			ps.execute();
    		}

	    }
	    finally {
	        if (conn != null)
	            conn.close();
	    }
    }

    @Test
    public void testSetPragmaEscaped() throws Exception {

        // create a memory database
        File tmpFile = File.createTempFile("test", ".sqlite");
        tmpFile.deleteOnExit();

    	Connection conn = null;
    	try {
    		conn = DriverManager.getConnection("jdbc:sqlite:" + tmpFile.getAbsolutePath());
    		String param = escape("my'pass''word");
    		String sql = "pragma key = '" + param + "';";
    		try (PreparedStatement ps = conn.prepareStatement(sql);) {
    			ps.execute();
    		}

	    }
	    finally {
	        if (conn != null)
	            conn.close();
	    }
    }

    @Test
    public void testSetPragmaNotEscaped() throws Exception {

        // create a memory database
        File tmpFile = File.createTempFile("test", ".sqlite");
        tmpFile.deleteOnExit();

    	Connection conn = null;
    	try {
    		conn = DriverManager.getConnection("jdbc:sqlite:" + tmpFile.getAbsolutePath());
    		String param = "my'pass''word";
    		String sql = "pragma key = '" + param + "';";
    		try (PreparedStatement ps = conn.prepareStatement(sql);) {
    			ps.execute();
    		}

	    }
	    finally {
	        if (conn != null)
	            conn.close();
	    }
    }

    /**
     * This method is from {@link org.sqlite.core.CoreDatabaseMetaData#escape}.
     *
     * The method is not public and cannot be thus used elsewhere.
     **/
    private String escape(final String val) {
        // TODO: this function is ugly, pass this work off to SQLite, then we
        //       don't have to worry about Unicode 4, other characters needing
        //       escaping, etc.
        int len = val.length();
        StringBuilder buf = new StringBuilder(len);
        for (int i = 0; i < len; i++) {
            if (val.charAt(i) == '\'') {
                buf.append('\'');
            }
            buf.append(val.charAt(i));
        }
        return buf.toString();
    }

}

There is already support for a synthetic pragma called PASSWORD, see https://github.com/xerial/sqlite-jdbc/blob/3d04d7df0c89240add2c92189adb30b6cb7e6ae0/src/main/java/org/sqlite/SQLiteConfig.java#L199 and https://github.com/xerial/sqlite-jdbc/blob/3d04d7df0c89240add2c92189adb30b6cb7e6ae0/src/main/java/org/sqlite/SQLiteConfig.java#L453

The summary here is that SQLite supports pragmas, pragmas can have parameters for them. If the parameter is boolean, you can give it is a parameter and bind it properly, but if it is string, you cannot give it as a parameter, instead you need to give the full SQL directly, meaning there is the possibility to forget to escape the parameter properly.
Maybe doubling quotes is enough to escape, I am not 100 % sure about that, but do not have any counter examples ready. Also I am not sure if the problem is even solvable here, maybe it would need to be solved in SQLite directly.

And why not just use the pragma when connecting? For my special case it happened when trying to "rekey" a database, so it was not possible to do it via the config options.

Also I am not sure if the problem is even solvable here, maybe it would need to be solved in SQLite directly.

That might be the first thing to check on your side, ie confirm if it's a SQLite problem, or this driver's problem.

And why not just use the pragma when connecting? For my special case it happened when trying to "rekey" a database, so it was not possible to do it via the config options.

Not sure to understand this.

Maybe doubling quotes is enough to escape, I am not 100 % sure about that, but do not have any counter examples ready.

If you can also give it a try, that would be good.

I will leave this as 'waiting for feedback' until you can provide some more details on the points above.


Problem with future dates

Some time zones only have data for a few years in the future (e.g. 2023). When asking for a conversion of a date (local to utc) after that last date (e.g. 2060) the function returns null unlike NodaTime that returns a value (which might be inaccurate but is far better than null in some cases).
I think the LocalToUtc should have an additional parameter to guess the offset for dates outside the data range

The range of intervals is expanded only so far.  In general, the problem is that one cannot actually tell you what the local time is in the future because time zone rules are set by governments, and they can easily pass new legislation at any time.  Indeed, this is why we have to keep time zone databases maintained.
In other words, the farther out you go, the less likely your prediction is accurate.

I totally agree that the result might not be accurate but if I ask to convert 1/1/2050 00:00 at UTC+12 to UTC some result is better than none in some cases. that is why I think the code should have a "Guess" parameter should no data exist for the time period (in which case the code would take the last known offset and use that)


Upgrade UI - Screen Home / Histories

UI:

Component:

[x] History item

Layout:

[x] List screen
Detail screen:

[x] transfer
[x] staking
[x] NFT
[x] crowdloan
[x] claim reward

[ ] Link history detail with  subscan
[ ] Link transaction done with history

Version test: https://file.cdmteck.com/s/4oimk9zDJ8R5Aai/download?path=%2F&files=./upgrade-ui-build-0.8.1-1678525608021.zip
Please check issues:

[ ] Update the history's icon follow by design: https://www.figma.com/file/2nYhrm0rlJtfJoMwrT51Ep/SubWallet-Apps?node-id=1309%3A289363&t=ZcBZrBz9xyFfzWms-4
[ ] Add the filter action
[ ] Update style of the history's status
[ ] Other issue

Version test: https://file.cdmteck.com/s/4oimk9zDJ8R5Aai/download?path=%2F&files=./1090-merge-build-0.8.1-1679119100958.zip
Please check:

[ ] Still enable button "View on explorer" in case the chain is not support explorer (Rococo)
[ ] Do not recipient address on the stake history

Expect: Show address of the validator

Version test:
Please check the issues:

[ ] Still showing the history of removed accounts when viewing history in All Accounts mode

[ ] Re-check the sorting of the history list

[ ] Show incorrect History status

Actual: The transaction success but the history show failed

[ ] Do not show Send NFT history when standing the specific account, but it's shown on All accounts mode

[ ] Add the Amount on the History Detail screen
[ ] Update Amount for NFT's history

[ ] Update UI for the XCM transfer history

[ ] Still history of the type = EVm Execute in case forget account


feat(security): Add redis config file related envs

New env added for redis' conf files related
Closes: #402
Signed-off-by: Jim Wang<EMAIL_ADDRESS>PR Checklist
Please check if your PR fulfills the following requirements:

[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

If your build fails due to your commit message not passing the build checks, please review the guidelines here: https://github.com/edgexfoundry/developer-scripts/blob/master/.github/Contributing.md.
What is the current behavior?

No redis conf file used in the current behavior
Issue Number: #402
What is the new behavior?
Redis conf envs added
Does this PR introduce a breaking change?

[ ] Yes
[x ] No

Specific Instructions
Are there any specific instructions or things that should be known prior to reviewing?
This PR depends on https://github.com/edgexfoundry/edgex-go/pull/3115 and thus should be merged after that PR is merged.
Other information

recheck


[Bug]: Bad sad error occurs when I try to pull a non-existing tool from local repository

Description
bal tool pull gaals:1.2.0 --repository=local with this command below error occurs.(Here, gaals tool doesn't exist in local repository)
[2024-02-28 09:28:23,939] SEVERE {b7a.log.crash} - Cannot invoke "com.google.gson.JsonElement.getAsJsonObject()" because the return value of "com.google.gson.JsonObject.get(String)" is null
java.lang.NullPointerException: Cannot invoke "com.google.gson.JsonElement.getAsJsonObject()" because the return value of "com.google.gson.JsonObject.get(String)" is null
	at io.ballerina.cli.cmd.ToolCommand.isToolAvailableInLocalRepo(ToolCommand.java:498)
	at io.ballerina.cli.cmd.ToolCommand.pullToolAndUpdateBalToolsToml(ToolCommand.java:462)
	at io.ballerina.cli.cmd.ToolCommand.handlePullCommand(ToolCommand.java:253)
	at io.ballerina.cli.cmd.ToolCommand.execute(ToolCommand.java:174)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at io.ballerina.cli.launcher.Main.main(Main.java:58)

Steps to Reproduce
No response
Affected Version(s)
2201.8.5 and master
OS, DB, other environment details and versions
No response
Related area
-> Other Area
Related issue(s) (optional)
No response
Suggested label(s) (optional)
No response
Suggested assignee(s) (optional)
No response

Related release issue : https://github.com/ballerina-platform/ballerina-release/issues/2629

I faced a similar issue when trying to push a tool to local repository as well.
[2024-03-06 22:04:05,458] SEVERE {b7a.log.crash} - Cannot invoke "com.google.gson.JsonElement.getAsString()" because the return value of "com.google.gson.JsonObject.get(String)" is null
java.lang.NullPointerException: Cannot invoke "com.google.gson.JsonElement.getAsString()" because the return value of "com.google.gson.JsonObject.get(String)" is null
at io.ballerina.cli.cmd.PushCommand.createLocalToolsJsonIfLocalTool(PushCommand.java:433)
at io.ballerina.cli.cmd.PushCommand.pushBalaToCustomRepo(PushCommand.java:402)
at io.ballerina.cli.cmd.PushCommand.pushPackage(PushCommand.java:282)
at io.ballerina.cli.cmd.PushCommand.execute(PushCommand.java:186)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at io.ballerina.cli.launcher.Main.main(Main.java:58)

I faced a similar issue when trying to push a tool to local repository as well.
[2024-03-06 22:04:05,458] SEVERE {b7a.log.crash} - Cannot invoke "com.google.gson.JsonElement.getAsString()" because the return value of "com.google.gson.JsonObject.get(String)" is null java.lang.NullPointerException: Cannot invoke "com.google.gson.JsonElement.getAsString()" because the return value of "com.google.gson.JsonObject.get(String)" is null at io.ballerina.cli.cmd.PushCommand.createLocalToolsJsonIfLocalTool(PushCommand.java:433) at io.ballerina.cli.cmd.PushCommand.pushBalaToCustomRepo(PushCommand.java:402) at io.ballerina.cli.cmd.PushCommand.pushPackage(PushCommand.java:282) at io.ballerina.cli.cmd.PushCommand.execute(PushCommand.java:186) at java.base/java.util.Optional.ifPresent(Optional.java:178) at io.ballerina.cli.launcher.Main.main(Main.java:58)

This issue occurred when the tool_id, a mandatory field, is missing from bal-tools.json.  https://github.com/Xenowa/ballerina-tool-extension-methods/blob/0eca890c85470a8e11b8191b358d01a1de39df11/BridgeCommand/tool-bridge/BalTool.toml#L2 contains some  inappropriate chracters. That's why it's not parsed properly.


Distributed computing page not present in TOC

The distributed computing page isn't present in the TOC, seems like it was removed during a recent update. It should be readded to the TOC to it's available to share with users

We will get back to this after restructuring the handbook table of contents to see best placement of different components @mbsabath


Question about roughness value.

Hi! Thank you for your great work.
i have a question about roughness value.
You used roughness=0.64(\rho_0) when calculating diffuse pre-integrated lighting in Env MLP. Can you explain this further?
Of course, the roughness here is not the same as the roughness of BRDF (that is, \rho != \alpha ), but it is expected to be used in a similar sense. And if so, wouldn't it be correct to use 1.0 instead of 0.64 for diffuse pre-integrated lighting?
And going a little further, if the roughness input to Env MLP is the same as the roughness of BRDF, what do you think is the correct value to use for \rho_0? In this case, do you think it's 1.0 or do you still think it's 0.64?

Hi,
Very sorry for the late response! The selection of \rho there is a pretty tricky operation.
My initial thought is to tune the \rho value in vMF distribution to make it more like a cosine distribution (used in Lambertian BRDF) in shape. As shown in the following figure below.

Of course, you can use \rho=1.0 in such a scenario, but there would be slightly more integral contributions from the lower hemisphere (abs(\theta) > \pi/2) of normal dir.

However, both 0.64 and 1.0 are just some approximations of the diffuse BDRF, and neither are 100% physically correct. I don't think there would be significant differences.
I also think about how to make it more elegant after the paper submission. Actually, you can directly SH coefficients of spherical cosine function instead of approximating it with manually-tuned vMF.

Thanks for the detailed explanation!


[Temp Partition] Support add/drop/replace temp partitions

This CL implements 3 new operations:
ALTER TABLE tbl ADD TEMP PARTITION (p1, p2, ...);
ALTER TABLE tbl DROP TEMP PARTITION (p1, p2, ...);
ALTER TABLE tbl REPLACE TEMP PARTITION (p1, p2, ...);

Details can be found in document:
docs/documentation/cn/administrator-guide/alter-table/alter-table-temp-partition.md
I did not update the grammar manual of alter-table.md.
This manual is too confusing and too big, I will reorganize this manual after.
This is the first part to implement the "overwrite load" feature mentioned in issue #2663.
I will implement the "load to temp partition" feature in next PR.
This CL also add GSON serialization method for the following classes:
Partition.java
MaterializedIndex.java
Tablet.java
Replica.java

@kangkaisen Would you help to review this PR?

@kangkaisen Would you help to review this PR?

OK. I will review this PR.

@imay @kangkaisen
I redesign the implementation, see here: #2663


fix(laravel): action response can not showing flash message

close #164

I think I used send for a reason, but I can't remember why right now. I'll try to dig in and write related tests before merging.

Definitely. Could you add tests for these? Otherwise I'll do it, but it'll take a moment until I have some free time.

Found time to add tests myself actually. Thank you!


Can't download requirement!

Can't download requirement!
Maybe can't be download in ubuntu 16.04 system(python3.6)?

You need python 3.6 in virtual env.

i tried to virtual env but can't download requirement

I actually have the same problem, even in an fresh new env with python 3.6.


Importing from data library should create a sync table always

No matter if the user has sync tables or not, this dataset should be synced every 15 days. This should be transparent on the connecting workflow, but the user should be able to stop syncing from the dataset view.
cc/ @andrewxhill @Kartones

my new favorite ticket of the day :)
cc @chriswhong because he has asked for it at least 3 times :)

I am going to -1 this and say there needs to be a user interaction to choose at the time of import, just like any other import.  Defaulting to sync may be annoying to people who are not expecting it.  What about free accounts who can't use sync tables?

It says in the description. It should be activated even for accounts with no sync tables.
The user could always go to the dataset page and stop syncing.
S.

@saleiva

On 29 Jul 2015, at 17:27, Chris Whong<EMAIL_ADDRESS>wrote:
I am going to -1 this and say there needs to be a user interaction to choose at the time of import, just like any other import. Defaulting to sync may be annoying to people who are not expecting it. What about free accounts who can't use sync tables?
—
Reply to this email directly or view it on GitHub https://github.com/CartoDB/cartodb/issues/4775#issuecomment-125988752.

yeahhhh maybe chris is right we might have run a bit too fast. we should consider adding a modal on import from dat lib that just says (*) Sync ( ) Do not sync.

+1 a simple toggle is all that we need.
On Wednesday, July 29, 2015, Andrew W. Hill<EMAIL_ADDRESS>wrote:

yeahhhh maybe chris is right we might have run a bit too fast. we should
consider adding a modal on import from dat lib that just says (*) Sync ( )
Do not sync.
—
Reply to this email directly or view it on GitHub
https://github.com/CartoDB/cartodb/issues/4775#issuecomment-125992628.

That's the modal we have, but then we need to explain free users that they just can only sync data library datasets which is tricky... not sure guys...

I think there's no reason to enable it for free accounts, treat it the same
way as any other data.
It's also worth noting that sync frequency should be inherited from the
source data, not set to 15 days.  It should be inherited, and the user
would have an option to modify it or turn it off completely.
On Wednesday, July 29, 2015, Sergio Álvarez Leiva<EMAIL_ADDRESS>wrote:

That's the modal we have, but then we need to explain free users that they
just can only sync data library datasets which is tricky... not sure guys...
—
Reply to this email directly or view it on GitHub
https://github.com/CartoDB/cartodb/issues/4775#issuecomment-125995077.

Nah, I think that when talking about the data library sync should be
enabled for everybody. That would empower the dynamism on CartoDB and is
much better for the users, why shouldnt we benefit them with this?
Also changing the frequency when you don't control the source or when you
don't have a clear idea of how its being updated is weird, right?
I don't see any issue on syncying by default and letting users disconnect
those if they want.
On Jul 29, 2015 5:54 PM, "Chris Whong"<EMAIL_ADDRESS>wrote:

I think there's no reason to enable it for free accounts, treat it the same
way as any other data.
It's also worth noting that sync frequency should be inherited from the
source data, not set to 15 days. It should be inherited, and the user
would have an option to modify it or turn it off completely.
On Wednesday, July 29, 2015, Sergio Álvarez Leiva <
<EMAIL_ADDRESS>wrote:

That's the modal we have, but then we need to explain free users that
they
just can only sync data library datasets which is tricky... not sure
guys...
—
Reply to this email directly or view it on GitHub
https://github.com/CartoDB/cartodb/issues/4775#issuecomment-125995077.

—
Reply to this email directly or view it on GitHub
https://github.com/CartoDB/cartodb/issues/4775#issuecomment-125997376.

right, so i don't think we need to explain to them. it is just a feature
that we include with data library as a bonus :)
On Wed, Jul 29, 2015 at 12:01 PM, Sergio Álvarez Leiva <
<EMAIL_ADDRESS>wrote:

Nah, I think that when talking about the data library sync should be
enabled for everybody. That would empower the dynamism on CartoDB and is
much better for the users, why shouldnt we benefit them with this?
Also changing the frequency when you don't control the source or when you
don't have a clear idea of how its being updated is weird, right?
I don't see any issue on syncying by default and letting users disconnect
those if they want.
On Jul 29, 2015 5:54 PM, "Chris Whong"<EMAIL_ADDRESS>wrote:

I think there's no reason to enable it for free accounts, treat it the
same
way as any other data.
It's also worth noting that sync frequency should be inherited from the
source data, not set to 15 days. It should be inherited, and the user
would have an option to modify it or turn it off completely.
On Wednesday, July 29, 2015, Sergio Álvarez Leiva <
<EMAIL_ADDRESS>wrote:

That's the modal we have, but then we need to explain free users that
they
just can only sync data library datasets which is tricky... not sure
guys...
—
Reply to this email directly or view it on GitHub
<https://github.com/CartoDB/cartodb/issues/4775#issuecomment-125995077
.

—
Reply to this email directly or view it on GitHub
https://github.com/CartoDB/cartodb/issues/4775#issuecomment-125997376.

—
Reply to this email directly or view it on GitHub
https://github.com/CartoDB/cartodb/issues/4775#issuecomment-125999442.

--
andrewxhill http://twitter.com/andrewxhill
http://cartodb.com

So why to show it then? ;D
On Jul 29, 2015 6:04 PM, "Andrew W. Hill"<EMAIL_ADDRESS>wrote:

right, so i don't think we need to explain to them. it is just a feature
that we include with data library as a bonus :)
On Wed, Jul 29, 2015 at 12:01 PM, Sergio Álvarez Leiva <
<EMAIL_ADDRESS>wrote:

Nah, I think that when talking about the data library sync should be
enabled for everybody. That would empower the dynamism on CartoDB and is
much better for the users, why shouldnt we benefit them with this?
Also changing the frequency when you don't control the source or when you
don't have a clear idea of how its being updated is weird, right?
I don't see any issue on syncying by default and letting users disconnect
those if they want.
On Jul 29, 2015 5:54 PM, "Chris Whong"<EMAIL_ADDRESS>wrote:

I think there's no reason to enable it for free accounts, treat it the
same
way as any other data.
It's also worth noting that sync frequency should be inherited from the
source data, not set to 15 days. It should be inherited, and the user
would have an option to modify it or turn it off completely.
On Wednesday, July 29, 2015, Sergio Álvarez Leiva <
<EMAIL_ADDRESS>wrote:

That's the modal we have, but then we need to explain free users that
they
just can only sync data library datasets which is tricky... not sure
guys...
—
Reply to this email directly or view it on GitHub
<
https://github.com/CartoDB/cartodb/issues/4775#issuecomment-125995077
.

—
Reply to this email directly or view it on GitHub
<https://github.com/CartoDB/cartodb/issues/4775#issuecomment-125997376
.

—
Reply to this email directly or view it on GitHub
https://github.com/CartoDB/cartodb/issues/4775#issuecomment-125999442.

--
andrewxhill http://twitter.com/andrewxhill
http://cartodb.com
—
Reply to this email directly or view it on GitHub
https://github.com/CartoDB/cartodb/issues/4775#issuecomment-126000423.

so like chris says, they can remove the sync option if they don't want it.
my concern with the proposed flow, is that not many users would know to (1)
exit the visualization; (2) navigate to the Datasets; (3) find the newly
created dataset by the right name; (4) change the sync option
On Wed, Jul 29, 2015 at 12:35 PM, Sergio Álvarez Leiva <
<EMAIL_ADDRESS>wrote:

So why to show it then? ;D
On Jul 29, 2015 6:04 PM, "Andrew W. Hill"<EMAIL_ADDRESS>wrote:

right, so i don't think we need to explain to them. it is just a feature
that we include with data library as a bonus :)
On Wed, Jul 29, 2015 at 12:01 PM, Sergio Álvarez Leiva <
<EMAIL_ADDRESS>wrote:

Nah, I think that when talking about the data library sync should be
enabled for everybody. That would empower the dynamism on CartoDB and
is
much better for the users, why shouldnt we benefit them with this?
Also changing the frequency when you don't control the source or when
you
don't have a clear idea of how its being updated is weird, right?
I don't see any issue on syncying by default and letting users
disconnect
those if they want.
On Jul 29, 2015 5:54 PM, "Chris Whong"<EMAIL_ADDRESS>wrote:

I think there's no reason to enable it for free accounts, treat it
the
same
way as any other data.
It's also worth noting that sync frequency should be inherited from
the
source data, not set to 15 days. It should be inherited, and the user
would have an option to modify it or turn it off completely.
On Wednesday, July 29, 2015, Sergio Álvarez Leiva <
<EMAIL_ADDRESS>wrote:

That's the modal we have, but then we need to explain free users
that
they
just can only sync data library datasets which is tricky... not
sure
guys...
—
Reply to this email directly or view it on GitHub
<
https://github.com/CartoDB/cartodb/issues/4775#issuecomment-125995077
.

—
Reply to this email directly or view it on GitHub
<
https://github.com/CartoDB/cartodb/issues/4775#issuecomment-125997376
.

—
Reply to this email directly or view it on GitHub
<https://github.com/CartoDB/cartodb/issues/4775#issuecomment-125999442
.

--
andrewxhill http://twitter.com/andrewxhill
http://cartodb.com
—
Reply to this email directly or view it on GitHub
https://github.com/CartoDB/cartodb/issues/4775#issuecomment-126000423.

—
Reply to this email directly or view it on GitHub
https://github.com/CartoDB/cartodb/issues/4775#issuecomment-126009934.

--
andrewxhill http://twitter.com/andrewxhill
http://cartodb.com

they can change it from the map view, plus, if we don’t want to expose tech stuff to non tech users, I think we shouldn’t add this step.
S.

@saleiva

On 29 Jul 2015, at 18:42, Andrew W. Hill<EMAIL_ADDRESS>wrote:
so like chris says, they can remove the sync option if they don't want it.
my concern with the proposed flow, is that not many users would know to (1)
exit the visualization; (2) navigate to the Datasets; (3) find the newly
created dataset by the right name; (4) change the sync option
On Wed, Jul 29, 2015 at 12:35 PM, Sergio Álvarez Leiva <
<EMAIL_ADDRESS>wrote:

So why to show it then? ;D
On Jul 29, 2015 6:04 PM, "Andrew W. Hill"<EMAIL_ADDRESS>wrote:

right, so i don't think we need to explain to them. it is just a feature
that we include with data library as a bonus :)
On Wed, Jul 29, 2015 at 12:01 PM, Sergio Álvarez Leiva <
<EMAIL_ADDRESS>wrote:

Nah, I think that when talking about the data library sync should be
enabled for everybody. That would empower the dynamism on CartoDB and
is
much better for the users, why shouldnt we benefit them with this?
Also changing the frequency when you don't control the source or when
you
don't have a clear idea of how its being updated is weird, right?
I don't see any issue on syncying by default and letting users
disconnect
those if they want.
On Jul 29, 2015 5:54 PM, "Chris Whong"<EMAIL_ADDRESS>wrote:

I think there's no reason to enable it for free accounts, treat it
the
same
way as any other data.
It's also worth noting that sync frequency should be inherited from
the
source data, not set to 15 days. It should be inherited, and the user
would have an option to modify it or turn it off completely.
On Wednesday, July 29, 2015, Sergio Álvarez Leiva <
<EMAIL_ADDRESS>wrote:

That's the modal we have, but then we need to explain free users
that
they
just can only sync data library datasets which is tricky... not
sure
guys...
—
Reply to this email directly or view it on GitHub
<
https://github.com/CartoDB/cartodb/issues/4775#issuecomment-125995077
.

—
Reply to this email directly or view it on GitHub
<
https://github.com/CartoDB/cartodb/issues/4775#issuecomment-125997376
.

—
Reply to this email directly or view it on GitHub
<https://github.com/CartoDB/cartodb/issues/4775#issuecomment-125999442
.

--
andrewxhill http://twitter.com/andrewxhill
http://cartodb.com
—
Reply to this email directly or view it on GitHub
https://github.com/CartoDB/cartodb/issues/4775#issuecomment-126000423.

—
Reply to this email directly or view it on GitHub
https://github.com/CartoDB/cartodb/issues/4775#issuecomment-126009934.

--
andrewxhill http://twitter.com/andrewxhill
http://cartodb.com
—
Reply to this email directly or view it on GitHub https://github.com/CartoDB/cartodb/issues/4775#issuecomment-126013400.

Dialing things back a bit, I think it's already fairly confusing that I can search my datasets and common data appears.  Keeping the common data library in its own separate search UI would emphasize the fact that it's a separate repository of data, and users could be a lot more deliberate with their searches.  (When I search for a US zipcode table I imported into my account, I always see Australian zip codes from common data)
I think a modal that says "This dataset has been set to sync every 24 hours from its external source.  Would you like your copy of this data to do the same?" Yes/No/Edit Frequency will do the trick, and also remind the user that they are cloning the table, not just "connecting" to it.

it actually has the added benefit of advertising the sync capabilities more, which are right now underutilized imo.
at the end of the day though, it is your choice saleiva!

Careful with this and enabling "selective syncs", that might have technical implications making this not a trivial change...
I won't dig into what needs to be changed and coded to allow the feature until next sprint, but please define clearly this kind of details because syncs are right now binary: either you have them, or you don't.
And IIRC for the Data Library there was already at least planned to be able to update them if the linked data library source changed (automatically/without sync tables), I'll ask @juanignaciosl for the details next week.

Yeah I'll handle with Kartones. I think we are getting out of scope here :)
On Jul 30, 2015 9:13 AM, "Kartones"<EMAIL_ADDRESS>wrote:

Careful with this and enabling "selective syncs", that might have
technical implications making this not a trivial change...
I won't dig into what needs to be changed and coded to allow the feature
until next sprint, but please define clearly this kind of details because
syncs are right now binary: either you have them, or you don't.
And IIRC for the Data Library there was already at least planned to be
able to update them if the linked data library source changed
(automatically/without sync tables), I'll ask @juanignaciosl
https://github.com/juanignaciosl for the details next week.
—
Reply to this email directly or view it on GitHub
https://github.com/CartoDB/cartodb/issues/4775#issuecomment-126206808.

I'll hold my tongue about the feature discussion itself (I'd just like to add this might be an upselling opportunity for free users discovering sync potential ;-) ), but, from a technical point of view, there's a "improve data library update" issue, #3832, but it's not actually related, since it's just "updating data library listing". Making "a sync instead of an import" might not be trivial, as @Kartones said, but shouldn't be that hard either. There might be a problem if a synched data library entry is updated, this scenario is something we should keep in mind when we do this.

So yeah @kartones,
After doing some analysis we go with the following (which I think adds a bit of complexity but is amazing).
When selecting a data library dataset we just import it to your account as a sync table (updated every week). No extra step required. On the dataset list we show the datalibrary icon + the sync table indicator, so the user can still identify the dataset as part of the data library. To stop sincying, the user will be able to stop it anytime from the detail page or clicking the sync icon (creating a new issue for that).
The extra ball is: We should hide from the 'Data library' those datasets which you have imported to your account and that remain in sync. As soon as you stop syncing them we should show the dataset in your dashboard, plus restore it on the Data library (We could duplicate the dataset and add the date to the end of the name at this moment). I'm trying to avoid duplicates when searching datasets so if you have a data library dataset already in your account it doesn't appear again as part of the data library, since the data is the same.

Ok, a few things from a quick glance yesterday afternoon at this:

1 week sync is not too agressive? those initial 15 days were more adequate, even if we don't download data because there are no news, in most cases datasets will be the same and we're still enqueueing sync jobs, etc. Is just to save resources
We have some HUGE datasets, one is 850MB, a few ones are 250MB. Are we going to also sync those?
We have a platform limit set on maximum upload size, which by default is 150MB. This means you cannot sync any of the previous points dataset. And regarding that point I am not going to place a hack (an if) that skips this platform limit (except @javisantana mandates me to), because that's there for a reason and if we want syncs we play by the rules. So either we up the limits or only import small enough datasets or another solution...

Branch: 4775-link-syncs-to-external-sources

curl to call a "data library sync" meanwhile UI fully supports it:
curl -i -H 'Content-Type: application/json' -H 'Accept: application/json' -X POST -d '{"type_guessing":"true","content_guessing":"true", create_vis":"false", "interval":"3600", "remote_visualization_id":"fc3acba4-400e-11e5-80a4-0800275dcf8f","value":"Continents"}' "http://kartones.localhost.lan:3000/api/v1/synchronizations?api_key=61ebf6cd0657862f2e3fd8d9b8654ed998a8f4e6"

Temporally blocked due to the need to implement https://github.com/CartoDB/cartodb/issues/4996 to continue

One thing, as agreed with @javisantana for now there will be the minimal backend checks regarding allowing or not this kind of syncs. Example in plain text: Code won't do specific checks about if you're trying to do a "sync now" of a remote-table-sync.
This is to not mess up normal code with too many special cases for remotes

Note to self: Now that I'm unblocked with #4996 the way to link and filter already synced remote tables is:
SELECT visualizations(type:remote) v
-> external_sources(visualization_id: v.id) es
-> external_data_imports(synchronization_id:nil & external_source_id: es.id)

Backend part initially done, waiting for possible fixes coming from implementing the frontend part (#5028)


[Feature Request] - Change remote folder

Description
Can you add the possibility to change the remote folder (by default home directory) and/or possibility to navigate in whole file system?
Changes
When connect the default remote folder is home directory, you can't go up with TermSCP unlike FileZilla, WinSCP or classic SSH cli.
Can you change this?

Regarding the possibility to configure the default directory that could be an option for the connection form.

When connect the default remote folder is home directory, you can't go up with TermSCP unlike FileZilla, WinSCP or classic SSH cli.

This part is not clear to me. You can go wherever you want entering a path with G or enter the parent directory with U

Sorry, my bad for file system navigation with keyboard shortcuts...
Having an option to choose remote folder at connection would be appreciated ;-)


[TEP-0091] Add VerificationPolicy types to configure public keys

Changes
This commit adds VerificationPolicy as a new type under pkg/apis/pipeline/v1alpha1, via VerificationPolicy users can  config public keys for resources verification via CRD.  The Pattern field in VerificationPolicy can be configured to filter out the resources to get corresponding keys.
This commits mainly consists of

New types at pkg/apis/pipeline/v1alpha1/verificationpolicy_types.go;
Verification via VerificationPolicy at pkg/trustedresources/verify.go

Signed-off-by: Yongxuanzhang<EMAIL_ADDRESS>/kind feature

Submitter Checklist
As the author of this PR, please check off the items in this checklist:

[x] Has Docs included if any changes are user facing
[x] Has Tests included if any functionality added or changed
[x] Follows the commit message standard
[x] Meets the Tekton contributor standards (including
functionality, content, code)
[x] Has a kind label. You can add one by adding a comment on this PR that contains /kind <type>. Valid types are bug, cleanup, design, documentation, feature, flake, misc, question, tep
[x] Release notes block below has been updated with any user facing changes (API changes, bug fixes, changes requiring upgrade notices or deprecation warnings)
[ ] Release notes contains the string "action required" if the change requires additional action from users switching to the new release

Release Notes
VerificationPolicy is added as a v1alpha1 type to enable users to config public keys for trusted resources.
Please refer to https://github.com/tektoncd/pipeline/blob/main/docs/trusted-resources.md for more details

/hold
better wait https://github.com/tektoncd/community/pull/830 is merged

/assign @wlynch @jagathprakash

/retest

/hold cancel

The following is the coverage report on the affected files. Say /test pull-tekton-pipeline-go-coverage to re-run this coverage report
File	Old Coverage	New Coverage	Delta
pkg/apis/pipeline/v1alpha1/verificationpolicy_defaults.go	Do not exist	N/A
pkg/apis/pipeline/v1alpha1/verificationpolicy_types.go	Do not exist	0.0%
pkg/apis/pipeline/v1alpha1/verificationpolicy_validation.go	Do not exist	100.0%
pkg/reconciler/pipelinerun/pipelinerun.go	85.6%	85.4%	-0.1
pkg/reconciler/pipelinerun/resources/pipelineref.go	92.6%	93.0%	0.4
pkg/reconciler/taskrun/controller.go	95.0%	95.2%	0.2
pkg/reconciler/taskrun/resources/taskref.go	88.7%	89.2%	0.5
pkg/reconciler/taskrun/taskrun.go	81.5%	81.6%	0.1
pkg/trustedresources/verify.go	86.3%	88.7%	2.4
test/trustedresources.go	15.4%	12.8%	-2.6

Can we do anything to not test test/trustedresources.go I dont believe (correct me if I am wrong) you are deliberately testing that file.

Thanks a lot for your reviews!! ❤
Yes I think we can refactor it into a internal pkg under trustedresources. How about marking it a TODO and save for next PR? I want to avoid introducing more code changes in this PR

/retest

/retest

LGTM! One final thing - we've been trying to reduce the external footprint of the Pipelines library so it's clearer what's in-scope for compatibility (#5679). For everything that's exported, let's move it into an internal directory so it's not part of the public library.

Oh thanks! This is good to know! Can we delegate it to another PR to move all pkgs except api and client into internal?

LGTM! One final thing - we've been trying to reduce the external footprint of the Pipelines library so it's clearer what's in-scope for compatibility (#5679). For everything that's exported, let's move it into an internal directory so it's not part of the public library.

Oh thanks! This is good to know! Can we delegate it to another PR to move all pkgs except api and client into internal? Since there's no internal in pipeline yet.

There was an attempt in https://github.com/tektoncd/pipeline/pull/5681, but was not submitted out of concern it would break existing clients.
For this PR I'm mostly interesting in anything that's newly added being moved (which I think is mostly just the GetVerified* funcs?) We can move existing types/funcs in other PRs.

LGTM! One final thing - we've been trying to reduce the external footprint of the Pipelines library so it's clearer what's in-scope for compatibility (#5679). For everything that's exported, let's move it into an internal directory so it's not part of the public library.

Oh thanks! This is good to know! Can we delegate it to another PR to move all pkgs except api and client into internal? Since there's no internal in pipeline yet.

There was an attempt in #5681, but was not submitted out of concern it would break existing clients.
For this PR I'm mostly interesting in anything that's newly added being moved (which I think is mostly just the GetVerified* funcs?) We can move existing types/funcs in other PRs.

Did you mean I should move pkg/trustedresources/ to pkg/internal/trustedresources/? If so that should be np!

coverage on a whole seems to be going down, only a little bit fortunately, but are there maybe a few unit test cases that aren't being included (e.g. maybe some testing of the error paths?)

Yes I have checked the coverage report, most of them are due to error return. Do we want to cover them to increase the report?

LGTM
/lgtm

Yes I have checked the coverage report, most of them are due to error return. Do we want to cover them to increase the report?

yes please! unless you feel like the tests wouldn't be valuable?

pkg/apis/config/store.go coverage drop is because we remove the configmap
pkg/reconciler/pipelinerun/pipelinerun.go drop cannot be tested. It's one line of listing policy error.
Files in test are helper functions and will be moved to an internal pkg as https://github.com/tektoncd/pipeline/issues/5820
cc @bobcatfish

@bobcatfish I have added configmap back in a separate commit, will squash them if it looks good

Some more feedback from me, I've started to look at the reconciler code a bit

Make sure the release notes mention that the ConfigMap is now deprecated
Overall request to add more detail to docstrings especially for functions (https://go.dev/doc/comment)

Thanks!

We're not deprecating configmap in this PR, should it be mentioned in release note that "it will be deprecated" in future release?
I have went through all the functions and return errors to add more docs and context

/retest

/retest

/retest

Discussed making the update to use the secret lister in a subsequent PR and sgtm 👍
@wlynch you have "changes requested" set on this PR but i'm under the impression that @Yongxuanzhang followed up with you today and you don't have any blocking concerns
Thanks for all your hard work and back and forth on this @Yongxuanzhang !

/approve
/lgtm


Topic registration

Instead of a hardcoded list of topics with an override topic to circumvent the check, subscribers should be able to register the topic they themselves publish to, either globally in messages or inside the MessageBus class.

Idea: MessageBus keeps lists of allowable topics and checks validity before calling Message initialiser. Subscribers use the bus to announce their topic and deregister in in __del__(). This can be done in the abstract base class by defining a new property (published_topics or similar) which are deregistered in the base class finaliser.


compose: Decouple compose buttons from button classes.

In the 2024 redesigned button configurations, the compose buttons become outliers. This retains their previous style inherited from .button, allowing that base component class to move forward in #31595, for which this PR serves as prep.
This PR also corrects a regression from the removal of .new-style that introduced an undesired min-width on the clear-topic button in the compose box.
CZO discussion
Screenshots and screen captures:
Expanded compose box:

Before
After

Collapsed compose box (no change):

Before
After

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

Merged, thanks @karlstolley!