text:
Trying to train a Custom FHog Like Descriptor to run in external library

Expected Behavior
I am trying to train a hog-like descriptor using the object detector / fhog_scan_pyramid.
( I followed these instructions here:https://github.com/davisking/dlib/blob/6b581d91f6b9b847a8163420630ef947e7cc88db/dlib/image_processing/scan_fhog_pyramid.h#L18
and here:http://dlib.net/fhog_object_detector_ex.cpp.html
The SVM model is then run on piece of hardware that has accelerated support for a hog like feature  (it cannot support FHOG, otherwise I would just use that)
Current Behavior
In dlib and with testing the descriptor works fine and shows an amazing detection rate and low false positives. When I then take the w vector from the resultant object detector, using this call: https://github.com/davisking/dlib/blob/6b581d91f6b9b847a8163420630ef947e7cc88db/dlib/image_processing/object_detector.h#L104 and move it over to my own software  I get vastly different results. At first I failed to account for the padding and was getting out a w that was longer then expected (I missed the part about the 1 cell padding around the search region window size), but now I get out a feature vector of the expected length.
My question is, from my understanding, when the training / object detection is run, a window is slid across the HOG image (basically an image containing cells of hog-like feature vectors) and the descriptor returned is a row-major vector of each descriptor in the window concatenated with each cell concatenated into a single vector (row wise). I should in theory then be able to in my own code multiply my descriptors with the svm model (w() param in the dlib object detector).
I am currently trying to understand if I am missing something in the dectect() function call in the object detector and the hog filter-banks that are called in that piece of code. Are there some crucial parts of code I am missing when trying to port this SVM model to my own library? I assumed that this code is an optimization step that speeds up detection, but please correct me if I am wrong.
Steps to Reproduce
Train a custom, hog-like descriptor and then try to use it somewhere else assuming the svm vector from get_w() is row major and the svm score is equal to your descriptor * svm_vector

Version:  Pulled the current master
Where did you get dlib: github
Platform: Ubuntu 18.04
Compiler: gcc

The HOG features are represented as a multi-channel planar image.  Detection just convolves (really it does a cross correlation, but for some reason image processing literature usually uses the word convolve) that image with a learned filter.  It's not doing any funny stuff.
How that hog vector is laid out as a multi-channel image is discussed in the documentation.  Did you see https://github.com/davisking/dlib/blob/6b581d91f6b9b847a8163420630ef947e7cc88db/dlib/image_processing/scan_fhog_pyramid_abstract.h?
For example, a 31 channel HOG image gets turned into a feature vector by treating each channel as a vector (by reading it in row major order) and then concatenating them.  It sounds like you are not setting it up that way.  Think of the cells as channels in a multi-channel image.  To say this another way, all the features from channel i are adjacent in the w vector.

Thanks for the quick reply.
Thanks for the clarification. I had misinterpreted the layout of the vector completely, so I wrote a script to remap it to what I am expecting and my results are now a fair bit closer to what I would expect. I might be having an over-fitting problem now as my descriptor has 500+ elements compared to the 31 of FHOG so I will work at fixing that (I am only training with about 200 images at the moment with 250 positive boxes).
And yes, I was using https://github.com/davisking/dlib/blob/6b581d91f6b9b847a8163420630ef947e7cc88db/dlib/image_processing/scan_fhog_pyramid_abstract.h. It was pretty clear about how to set it up, except for my brain-fart / misinterpretation of how the vector was laid out.

No worries :)

authors: StanJBrown davisking

repo: davisking/dlib


text:
Create REST Api endpoints

Create the following functional API endpoints
POST /api/v1/movies
POST /api/v1/movies

Payload entity:
{
    "name": "The Titanic",
    "casts":[
        "DiCaprio",
        "Kate Winslet"
    ],
    "release_date": "18-01-1998",
    "director": "James Cameron",
    "ratings": {
        "imdb": 7.8,
        "rotten_tomatto": 8.2
    }
}

GET /api/v1/movies/{id}
GET /api/v1/movies/{id}

Example response:
{
    "name": "The Titanic",
    "casts":[
        "DiCaprio",
        "Kate Winslet"
    ],
    "release_date": "18-01-1998",
    "director": "James Cameron",
    "ratings": {
        "imdb": 7.8,
        "rotten_tomatto": 8.2
    }
}

GET /api/v1/movies
GET /api/v1/movies

Expected result format:
[
    {
        "name": "The Titanic",
        "casts":[
            "DiCaprio",
            "Kate Winslet"
        ],
        "release_date": "18-01-1998",
        "director": "James Cameron",
        "ratings": {
            "imdb": 7.8,
            "rotten_tomatto": 8.2
        }
    }
]

Done https://github.com/davola/movies/pull/14

source: gharchive/issue

repo: davola/movies

license: MIT

license_type: permissive

license_source: github-api


text:
Feature Request: Customize Theme

allow user to modify theme or create a new theme.

Duplicate of #181. Closing.
Feature coming soon!

repo: dawnlabs/carbon

license: mit

license_source: bigquery


text:
upgrade to phpunit 6

ref: https://github.com/daylerees/scientist/pull/19

Either use import the classes, or \ the root namespace :+1:

actually this is slightly annoying to support all php versions. how about a new major for php 7.x and up @daylerees @rodnaph ?

That would help on https://github.com/daylerees/scientist/pull/20

I'll see if I can find some time later tonight to get these two PRs in, fix up the tests and tag a new version. Thanks chaps. 🤘

Changed target to develop to merge with Rod's changes and then can fix tests for the new version there. (Just in case any nutters are versioned against dev-master)

source: gharchive/pull-request

authors: bendavies danhanly daylerees rodnaph

repo: daylerees/scientist


text:
A trigger difined as "FOR EACH STATEMENT" is shown as "FOR EACH ROW"

#9835 ## System information:

Operating system (distribution) and version: Ubuntu 20.10
DBeaver version: 7.2.2

Connection specification:

Database name and version: PostgreSql 12.2
Driver name: PostgreSql 42.2.18
Do you use tunnels or proxies (SSH, SOCKS, etc)? No

Describe the problem you're observing:
A trigger defined as FOR EACH STATEMENT is displayed in the definition as FOR EACH ROW
Steps to reproduce, if exist:

If you execute the following script, it shows the correct SQL:
select pg_get_triggerdef(oid)
from pg_trigger
where tgname = '__XXX_trigger_on_insert_position';
CREATE TRIGGER __XXX_trigger_on_insert_position AFTER INSERT ON "XXXXXXX".posicion REFERENCING NEW TABLE AS new_positions FOR EACH STATEMENT EXECUTE FUNCTION __XXX_on_insert_position()

Should be fixed in 7.2.3.

authors: ShadelessFox marcgise

repo: dbeaver/dbeaver


text:
strange chars (little cross) in result columns, SyBase jConnect driver

Hello,
I use DBeaver for some different database drivers, but this only happens on a SQL Anywhere 12 server:
all fields which are part of the primary key and are of type nchar, are filled after their actual content with litte crosses "†" up to the maximum size.
It's mainly a cosmetic problem, but every now and then it happens that I update a row and the crosses get written for real back to the database, which causes all kind of problems.
If I open the database via ODBC (SQL Anywhere driver 17) the problem is not present.
I'd also try to open the Database via the jTDS driver but thats a problem on its own.
Has anyone a clue how I might get rid of them ?
System information (Client):

OS: Windows 10 20H2
DBeaver: 7.3.4
Extensions: none

Connection specification (Server):

Windows Server 2012 R2 x64
Database: SQL Anywhere 12
jConnect (TM) for JDBC(TM)/16.0 SP03 PL02 (Build 27403)/P/EBF27518/JDK 1.6.0/jdbcmain/OPT/Mon Aug 28 18:41:14 PDT 2017
Do you use tunnels or proxies (SSH, SOCKS, etc): no

Describe the problem you're observing:
see above
Steps to reproduce, if exist:
open a table via doubleclick
execute any select which contains a column with the right properties

Thank you for the report, but I cannot reproduce it.
Could you send DDL example to reproduce? And what locale do you use (Editors>Data Editor>Data Formats)?

Hello, the following DDL will create the described situation:
CREATE TABLE tl130."DBA".NewTable (
Column1 nchar(20) NOT NULL,
CONSTRAINT NewTable_PK PRIMARY KEY (Column1)
) GO;
INSERT INTO tl130."DBA".NewTable (Column1) VALUES('Fritz');
if I use "generate SQL -> Insert" also the resulting text will contain the crosses.

Seems that it is server-side issue.
Types like nchar(20) are filled by default with spaces, probably it is changed to "†" symbol in the server config

Actually the documentation for version 11 and 12 describe nchar more or less as an alias to nvarchar. Both types are not filled with spaces, according to this docs.
nchar data type in SAP documentation
If I extend the table from above with a second column as nvarchar(20) there a no fill chars in this second column. Also the first impression that it has something to do with the column being a (part of) primary key was wrong, that does not matter.
So maybe DBeaver treats the column as usually filled with blanks and somehow fills it up on its own.
If the field actually contains spaces after the initial content, they are correctly displayed, followed then by the little crosses.
The new DDL is as follows:
CREATE TABLE tl130."DBA".NewTable (
Column1 nchar(20) NOT NULL,
Column2 nchar(20) NOT NULL,
Column3 nvarchar(20) NOT NULL,
CONSTRAINT NewTable_PK PRIMARY KEY (Column1)
) GO;

INSERT INTO tl130."DBA".NewTable (Column1, Column2, Column3) VALUES('Fritz','Holler','hello');
INSERT INTO tl130."DBA".NewTable (Column1, Column2, Column3) VALUES('Frotz      ','Holler   ','hello');

with this result:

And what locale do you use (Editors>Data Editor>Data Formats)?

There is no "Data Editor" in the german version below "Editoren", only "SQL Editor" and "Text Editor". At least if you mean in the settings window. But even then, in neither is an option "local" (I guess it would be "Sprache" in German) to choose from.

Some more background:

contrary to the documentation, the database is sending UTF8 spaces for the empty chars in the select. This is a log of the network traffic from the DDL yesterday.

the UTF16 code 0x2020 indeed represents a small cross:

UTF16 Chart of the 0x2xxx range
So the nchar is filled up with UTF8 spaces instead of UTF16 spaces, but real spaces are sent correct.
Is there something do be done about it ?

Seems it is driver-specific issue.
Could you try to set Charset as UTF-16 or USC2 in driver properties?

All three variants (incl. "UTF16") are replied with: "JZ0I5: Unbekannte CHARSET-Eigenschaft angegeben: ."

Looks like a driver issue. Please try to upgrade on another one from SAP sourse.

there is no update on the issue for a long time.
If it is still actual for you - feel free to reopen an issue.

authors: Henry-Jones kseniiaguzeeva uslss


text:
SQL script with ;WITH

Hello,
running the code listed as batch (Alt + X), displaying the error 'Must declare the table variable "@TABLENAME"'. Under MS SQL Server Management Studio, the script is correct. I believe the semicolon in front of WITH is causing the problem. The code is of course only an example.
Can you help me with the error? Thank you. P.
DECLARE @TABLENAME TABLE (ID UNIQUEIDENTIFIER)

;WITH CTE AS (
  SELECT ROWNUMBER = ROW_NUMBER() OVER (PARTITION BY ID ORDER BY ID) FROM @TABLENAME
)
DELETE FROM CTE WHERE ROWNUMBER > 1

Microsoft SQL Server Standard (64-bit)
Windows Server 2016 Standard (10.0)
Version: 15.0.2080.9
DBeaver: Version 21.3.4.202202051448

Hello, @perverez. Thank you for bug report.
As a workaround you can select whole statement and press Ctrl+Enter to run it.

Yeah. This is still an issue... Spent half an hour looking for mistakes in my query


text:
DBeaver SSHJ install error

System information:

Operating system (distribution) and version - Linux dmamchyts-m16 5.13.0-40-generic #45-Ubuntu SMP Tue Mar 29 14:48:14 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
DBeaver version - Start DBeaver Standalone [org.jkiss.dbeaver.ui.app.standalone 22.0.3.202204170718]
Additional extensions - try to install sshj

Describe the problem you're observing:
Can not install sshj:
Steps to reproduce, if exist:
Follow this instruction https://github.com/dbeaver/dbeaver/issues/5845#issuecomment-541593022
Include any warning/errors/backtraces from the logs
Cannot complete the install because one or more required items could not be found.
  Software being installed: DBeaver SSHJ 1.0.93.202112211454 (org.jkiss.dbeaver.net.sshj.feature.feature.group 1.0.93.202112211454)
  Missing requirement: Bouncy Castle PKIX, CMS, EAC, TSP, PKCS, OCSP, CMP, and CRMF APIs 1.69.0.v20210713-1924 (org.bouncycastle.bcpkix 1.69.0.v20210713-1924) requires 'java.package; org.bouncycastle.asn1.bsi [1.69.0,1.70.0)' but it could not be found
  Cannot satisfy dependency:
    From: DBeaver SSHJ 1.0.93.202112211454 (org.jkiss.dbeaver.net.sshj.feature.feature.group 1.0.93.202112211454)
    To: org.eclipse.equinox.p2.iu; org.bouncycastle.bcpkix [1.69.0.v20210713-1924,1.69.0.v20210713-1924]

Hello @dmamchyts You don't need to install SSHJ anymore, it is included in a base installer. Simply select it in advanced settings ov SSH for the connection

Hi @Matvey16 ,
Thank you, for your answer.
But can you explain why I can't connect to server by privatekey and without passphrase.
I am select SSHJ:

2022-04-22 16:16:13.285 - Generating random seed from SecureRandom.
2022-04-22 16:16:13.286 - No such algorithm: IDEA/CBC/NoPadding
2022-04-22 16:16:13.286 - No such algorithm: IDEA/CTR/NoPadding
2022-04-22 16:16:13.288 - Disabling high-strength ciphers: cipher strengths apparently limited by JCE policy
2022-04-22 16:16:13.336 - Client identity string: SSH-2.0-SSHJ_0.27.0
2022-04-22 16:16:13.389 - Server identity string: SSH-2.0-OpenSSH_8.9p1 Ubuntu-3
2022-04-22 16:16:13.580 - Read key type: ssh-rsa
2022-04-22 16:16:13.718 - Exhausted available authentication methods
net.schmizz.sshj.userauth.UserAuthException: Exhausted available authentication methods
        at net.schmizz.sshj.SSHClient.auth(SSHClient.java:230)
        at net.schmizz.sshj.SSHClient.authPublickey(SSHClient.java:345)
        at net.schmizz.sshj.SSHClient.authPublickey(SSHClient.java:393)
        at org.jkiss.dbeaver.model.net.ssh.SSHImplementationSshj.setupTunnel(SSHImplementationSshj.java:95)
        at org.jkiss.dbeaver.model.net.ssh.SSHImplementationAbstract.initTunnel(SSHImplementationAbstract.java:134)
        at org.jkiss.dbeaver.model.net.ssh.SSHTunnelImpl.initializeHandler(SSHTunnelImpl.java:76)
        at org.jkiss.dbeaver.ui.net.ssh.SSHTunnelConfiguratorUI$7.execute(SSHTunnelConfiguratorUI.java:247)
        at org.jkiss.dbeaver.ui.net.ssh.SSHTunnelConfiguratorUI$TunnelConnectionTestJob.run(SSHTunnelConfiguratorUI.java:590)
        at org.jkiss.dbeaver.model.runtime.AbstractJob.run(AbstractJob.java:105)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)


text:
Sequence DDL is not refreshed with a corresponding button

Description
If the DDL of a sequence is opened in metadata editor, any changes to it won't be updated after any refresh. Only after object is closed and reopened
DBeaver Version
22.2.0
Operating System
Any
Database and driver
Vertica Database 12.00.0000
vertica.jar 12.00.0100
Steps to reproduce

Open a sequence from the navigator
Change something through UI (e. g. change a comment)
Save changes
Click refresh

Expected: DDL is updated
Actual: Nothing changes
Additional context

Also, please check Snowflake sequences in EE too.


text:
Bind Parameter(s) dialog

Description
https://user-images.githubusercontent.com/20805098/212645847-9f09de55-1c51-427c-adef-35d738b304a9.mp4
DBeaver Version
Community Edition 22.3.1
Operating System
macos Ventura 13.1
Database and driver
No response
Steps to reproduce
No response
Additional context
No response

Can't reproduce on Windows 10.

Can't reproduce on Windows 10.

This problem occurs on macOS 13.1.

There is another problem on macOS 13.1. The Bind Paramter(s) dialog of DBeaver22.3.2 version capitalizes all the binding parameters.

Capitalisation was an intended change. Parameters names always was case-insensitive and capitalization just highlights it.
We have added support of quotation of parameters names to add possibility to make them case-sensitive.

I agree, this is a terrible change.  It broke all of my scripts.  I now have to change all of the "@set" commands from something like "@set state='SC'" to '@set STATE='SC'" even though I can reference those variables in the sql scripts as ":state".
I don't understand from your comment if you are intending this to be case sensitive or not but right not, it's just wrong.  The only way I can get it to work is to capitalize the @set commands and then it seems to be insensitive when I reference the variables.

@jcachat you are saying about the bug #18706
The fix is available in the early access version (https://dbeaver.io/files/ea/) and will be available in the next release.

Yes, sorry - I didn't see that when I was searching since it's closed already.  Thanks!

Hi @qiqingli,
Thank you for your report.
I just reproduced this issue on macOS on DBeaver 22.3.5

authors: E1izabeth arhayka jcachat qiqingli


text:
Using ODBC to Salesforce server returns duplicate records.

Description
Using DBeaver to connect to our Salesforce Server and running SELECT statements seems to result in every record that is returned is a duplicate of the first record.
The number of records shown is correct, just that they are all the same record.
I used Telerik Fiddler to inspect the traffic between the ODBC driver and Salesforce and can confirm that the data coming back from Salesforce to the ODBC driver is correct.
If I set up Excel to use the ODBC driver, all the records are correct so it looks like the ODBC driver is functioning correctly.
In this video you can see me doing a Query in DBeaver and inspecting the results that came back from Salesforce in Fiddler.
DBeaver -> Salesforce Video Fiddler Results
The log file shows the following error:
!ENTRY org.eclipse.e4.ui.workbench 4 0 2023-06-04 11:11:47.497 !MESSAGE Command 'org.jkiss.dbeaver.ui.editors.sql.run.statement' failed !STACK 0 org.eclipse.core.commands.ExecutionException: Error executing 'org.jkiss.dbeaver.ui.editors.sql.run.statement': java.lang.StringIndexOutOfBoundsException: begin 0, end -1, length 0     at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:170)     at org.eclipse.core.commands.Command.executeWithChecks(Command.java:488)     at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:485)     at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213)     at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:438)     at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.handleWidgetSelection(AbstractContributionItem.java:449)     at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.lambda$2(AbstractContributionItem.java:475)     at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)     at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4256)     at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)     at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4054)     at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3642)     at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)     at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)     at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)     at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)     at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:643)     at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)     at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:550)     at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:171)     at org.jkiss.dbeaver.ui.app.standalone.DBeaverApplication.start(DBeaverApplication.java:303)     at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)     at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)     at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)     at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)     at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)     at java.base/java.lang.reflect.Method.invoke(Unknown Source)     at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)     at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)     at org.eclipse.equinox.launcher.Main.run(Main.java:1467) Caused by: org.eclipse.e4.core.di.InjectionException: java.lang.StringIndexOutOfBoundsException: begin 0, end -1, length 0     at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:68)     at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:317)     at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:251)     at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:173)     at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:156)     ... 32 more Caused by: java.lang.StringIndexOutOfBoundsException: begin 0, end -1, length 0     at java.base/java.lang.String.checkBoundsBeginEnd(Unknown Source)     at java.base/java.lang.String.substring(Unknown Source)     at org.jkiss.dbeaver.model.sql.SQLUtils.trimQueryStatement(SQLUtils.java:388)     at org.jkiss.dbeaver.model.sql.parser.SQLScriptParser.extractActiveQuery(SQLScriptParser.java:683)     at org.jkiss.dbeaver.model.sql.parser.SQLScriptParser.extractActiveQuery(SQLScriptParser.java:660)     at org.jkiss.dbeaver.ui.editors.sql.SQLEditorBase.extractActiveQuery(SQLEditorBase.java:774)     at org.jkiss.dbeaver.ui.editors.sql.SQLEditor.processSQL(SQLEditor.java:2437)     at org.jkiss.dbeaver.ui.editors.sql.SQLEditor.processSQL(SQLEditor.java:2394)     at org.jkiss.dbeaver.ui.editors.sql.SQLEditor.processSQL(SQLEditor.java:2390)     at org.jkiss.dbeaver.ui.editors.sql.handlers.SQLEditorHandlerExecute.execute(SQLEditorHandlerExecute.java:68)     at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:283)     at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:97)     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)     at java.base/java.lang.reflect.Method.invoke(Unknown Source)     at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)     ... 36 more
DBeaver Version
Community v23.0.5.202305211610
Operating System
Windows 10
Database and driver
Database: Salesforce.  Both test and production servers.
ODBC Driver: Devart ODBC Driver for Salesforce v3.02
Steps to reproduce
Connect to Salesforce Server via ODBC.
Open a new Script tab.
Enter 'SELECT * FROM Contact' or even something simpler 'SELECT FirstName FROM Contact'
Press the 'Execute SQL Query' button
Additional context
No response

I just updated DBeaver to the latest version which came out today.  Apparently, you have removed ODBC from the community edition which is a real shame.
I downloaded the trial version of DBeaver Lite v23.0.0.  I'm not sure if I can afford to purchase this at the moment, but I can confirm that even with the new ODBC drivers in DBeaver Lite v23.0.0, I'm still experiencing the same issues with the first record being duplicated.

Which exactly ODBC driver do you use? (native, cdata, progress, etc). And which version?
Note: you still can use legacy odbc in the Community edition (https://dbeaver.com/docs/wiki/Deprecated-legacy-ODBC-driver/)

I used the Devart ODBC Driver for Salesforce v3.02
In DBeaver Community I created connections with 'ODBC - Legacy'.
In DBeaver Lite, I created connections with both 'ODBC - Legacy' and the one that just says 'ODBC'.

I can reproduce it with Devart ODBC Driver. I will be looking into it.

As a workaround - another JDBC driver shows data as expected.

As the ticket is closed, will there be a bug fix for this issue?

Hello @quednu
The fix is already available for PRO versions in our Early Access versions: https://dbeaver.com/files/ea/

Ok, thanks @LonwoLonwo. Is it also planned to roll out this fix for EE and Lite Versions?

authors: JungleMonkey LonwoLonwo quednu serge-rider


text:
Failed to create the part's controls

Description
Below error when opening SQL window.
java.lang.NullPointerException: Cannot invoke "org.eclipse.e4.ui.css.swt.theme.IThemeEngine.getActiveTheme()" because the return value of "org.eclipse.ui.IWorkbench.getService(java.lang.Class)" is null
at org.jkiss.dbeaver.ui.UIStyles.isHighContrastTheme(UIStyles.java:55)
at org.jkiss.dbeaver.ui.UIStyles.isDarkHighContrastTheme(UIStyles.java:59)
at org.jkiss.dbeaver.ui.editors.sql.SQLEditorBase.configureSourceViewerDecorationSupport(SQLEditorBase.java:565)
at org.jkiss.dbeaver.ui.editors.sql.SQLEditorBase.getSourceViewerDecorationSupport(SQLEditorBase.java:538)
at org.jkiss.dbeaver.ui.editors.sql.SQLEditorBase.createSourceViewer(SQLEditorBase.java:524)
at org.eclipse.ui.texteditor.AbstractTextEditor.createPartControl(AbstractTextEditor.java:3368)
at org.eclipse.ui.texteditor.StatusTextEditor.createPartControl(StatusTextEditor.java:64)
at org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.createPartControl(AbstractDecoratedTextEditor.java:445)
at org.jkiss.dbeaver.ui.editors.text.BaseTextEditor.createPartControl(BaseTextEditor.java:140)
at org.jkiss.dbeaver.ui.editors.sql.SQLEditorBase.createPartControl(SQLEditorBase.java:316)
at org.jkiss.dbeaver.ui.editors.sql.SQLEditor.createPartControl(SQLEditor.java:968)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPartControl(CompatibilityPart.java:158)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor.createPartControl(CompatibilityEditor.java:96)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:365)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:987)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:952)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:141)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:395)
at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:322)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:202)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:91)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:60)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:42)
at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:132)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:995)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:659)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.lambda$0(PartServiceImpl.java:105)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler.lambda$0(UIEventHandler.java:38)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:183)
at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:133)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:4803)
at org.eclipse.e4.ui.workbench.swt.DisplayUISynchronize.syncExec(DisplayUISynchronize.java:34)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:38)
at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:205)
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:203)
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:133)
at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:75)
at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:44)
at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:55)
at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:63)
at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:424)
at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElementGen(ElementContainerImpl.java:170)
at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:188)
at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.showElementInWindow(ModelServiceImpl.java:660)
at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.bringToTop(ModelServiceImpl.java:624)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.delegateBringToTop(PartServiceImpl.java:790)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.bringToTop(PartServiceImpl.java:401)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(PartServiceImpl.java:1264)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:3233)
at org.eclipse.ui.internal.WorkbenchPage.lambda$11(WorkbenchPage.java:3123)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3121)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3091)
at org.jkiss.dbeaver.ui.editors.sql.scripts.ScriptsHandlerImpl.openResource(ScriptsHandlerImpl.java:117)
at org.jkiss.dbeaver.ui.editors.sql.handlers.SQLEditorHandlerOpenEditor.openResource(SQLEditorHandlerOpenEditor.java:80)
at org.jkiss.dbeaver.ui.editors.sql.handlers.SQLEditorHandlerOpenEditor.openNewEditor(SQLEditorHandlerOpenEditor.java:170)
at org.jkiss.dbeaver.ui.editors.sql.handlers.SQLEditorHandlerOpenEditor.openNewEditor(SQLEditorHandlerOpenEditor.java:192)
at org.jkiss.dbeaver.ui.editors.sql.handlers.SQLEditorHandlerOpenEditor.execute(SQLEditorHandlerOpenEditor.java:124)
at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:283)
at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:97)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:309)
at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:243)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:173)
at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:156)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:488)
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:485)
at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213)
at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:438)
at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.handleWidgetSelection(AbstractContributionItem.java:449)
at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.lambda$2(AbstractContributionItem.java:475)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4274)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4072)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:643)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:550)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:171)
at org.jkiss.dbeaver.ui.app.standalone.DBeaverApplication.start(DBeaverApplication.java:278)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
DBeaver Version
23.1.5
Operating System
Windows 11 64bit latest
Database and driver
MYSQL db
Steps to reproduce
No response
Additional context
No response

Switched back to 23.1.4 and it works fine

It appears the issue is theme related. I found a workaround.
I had 'Enable theming' turned off (i'm quite certain I've changed this before to 'Light') in the settings.
After turning it on and restarting the application, no error message appears.

It appears the issue is theme related. I found a workaround. I had 'Enable theming' turned off (I'm quite certain I had it turned on before and set to 'Light') in the settings. After turning it on and restarting the application, no error message appears.

Thanks @ilne, that did the trick. 👍
Hope this will be fixed as I really do not want theming.

Thank you for bug report

Hi @E1izabeth,
Thanks for getting back. The exception on the log file is same as pasted in my first post. Giving again for your reference below.
.log

Thanks.
An unusual message from the logs for the record:
!ENTRY org.jkiss.dbeaver.model 4 0 2023-08-21 09:01:02.976
!MESSAGE No CSSEngine

The fix will be available in the next release.

The fix will be available in the next release.

Thanks @E1izabeth, appreciate it. 👍

It appears the issue is theme related. I found a workaround. I had 'Enable theming' turned off (I'm quite certain I had it turned on before and set to 'Light') in the settings. After turning it on and restarting the application, no error message appears.

it's work, thanks bro


text:
Additional lines are shown in copy-pasted error message

Description
When copy-paste error message, some part of it has additional lines in a query.
This issue reminds me this one: #34707
Seems like the root cause is the same.

execute this code on dvdrental (it already has the table from example):

create or replace procedure proc1 ()
language plpgsql
as
$$
begin
    insert into film_actor
    select
        actor_id,
        film_id,
        last_update
    from film_actor;
end;
$$
;

call proc1 ();

copy-paste the error message to sql editor

Expected that copy-paste gives the same result as it is shown in error message, i.e. without empty lines.
https://github.com/user-attachments/assets/a07651a1-9073-40a4-95a3-1e397660004a
DBeaver Version
Community Edition 24.1.5-202408012322
Operating System
Windows 10
Database and driver
PostgreSQL 16
PostgreSQL JDBC Driver 42.7.2
Steps to reproduce
No response
Additional context
No response

Thank you for report.

We've reproduced this on Windows but can't reproduce on macOS.


text:
Teradata JDBC Connection with "Data Source DNS Entries" parameter

System information:
Operating System: Windows 10
DBeaver Version: 7.1.0.202005311732
Teradata JDBC Driver Version: 16.10.00.07
Teradata Database Version: 16.20.32.21
Connection specification:
jdbc:teradata://{host}/DATABASE={database},DBS_PORT={port},ENCRYPTDATA=ON,LOGMECH=LDAP,Data Source DNS Entries=18
Describe your question:
When attempting to connect with Teradata's JDBC connection with the "Data Source DNS Entries" our connection fails with:
[Teradata JDBC Driver] [TeraJDBC 16.10.00.07] [Error 1536] [SQLState HY000] Invalid connection parameter name Data Source DNS Entries
According to Teradata's documentation (here) the parameter is correct.  And when we try the same settings in Teradata Assistance it connects.  Also, older versions of the TD JDBC driver it worked as well.
Has anyone encountered this issue before?  And if so what did you do to fix it?

Why did you use such URL, could you please recheck it?

there are not any update on issue for a long time.
If issue is still actual for you - feel free to reopen the ticket with additional info that could help to investigate and reproduce an issue.

authors: kseniiaguzeeva robb-randall uslss


text:
[Exasol] Export to new table from Data Editor partially skips syntax

System information:

Operating system (distribution) and version Win10
DBeaver version 7.1.3 EA

Connection specification:

Database name and version Exasol

Describe the problem you're observing:
Export to new table from Data Editor partially skips syntax
Steps to reproduce, if exist:
Precondition: create a table with a not null column, a column of varchar type. E.g.
CREATE TABLE "Export" (
"Int" DECIMAL(18,0) NOT NULL ,
"VAR" VARCHAR(50) UTF8 ,
"Timestamp" TIMESTAMP
);
;
A)

Select export in the table context menu in DB Navigator tree
Select Database and press Next
Select export to a new table and press DDL
Actual result:
CREATE TABLE "schema_name"."Export"(
"Int" DECIMAL(18,0) NOT NULL,
VAR VARCHAR(50),
"Timestamp" TIMESTAMP)

B)

Open the table in Data Editor
Select Export in the Data Editor
Select Database and press Next
Select export to a new table and press DDL

Actual result:

CREATE TABLE "schema_name"."Export"(
"Int" BIGINT,
VAR VARCHAR,
"Timestamp" TIMESTAMP)
The new table cannot be created after finishing Export wizard

Expected: DDL has the same syntaxis like in Export via FB Navigator tree

Hi,
this will be rather hard for me to fix, as this is an error based on the precision of the meta data returned by the exasol jdbc driver.
Wenn you have a look at the meta data in the resultset you will see that no nullability information is returned and the JDBC Type is BIGINT:

I had to work around this on other occasions as well.
Perhaps there is a way to fix this but implementing something in the Exasol Plugin that is called for this particular case but I don't know how to. Perhaps @serge-rider can help here?

This issue will be resolved in #7745
Currently we use dummy and very simple DDL syntax in data transfer wizard.
But we need to use native DDL syntax (from XTableManager).
This requires quite a bit of refactoring.

authors: Sargul kseniiaguzeeva serge-rider


text:
#23377 Add right and left to the list of non-reserved keywords

Issue should be fixed

verified


text:
Update ocfl client usage to match recent changes

This should fix the travis failures

Just noticed you already addressed this on a different PR, so i'll close this


text:
Update workflows and integration test matricies

resolves #1104
Problem
Adding Python 3.12 should pass a series of tests
✅ pytest tests/unit local
✅ pytest tests/functional local

dbt seed && dbt run in a local jaffle shop using plain pip install dbt-redshift with 3.12 active
always sunny run using test-bundle on snowflake against the jaffle-shop-base scenario with 3.12.X active
GHA workflow involving integration tests
release workflow still works

Solution
Checklist

[x] I have read the contributing guide and understand what's expected of me
[x] I have run this code in development and it appears to resolve the stated issue
[x] This PR includes tests, or tests are not required/relevant for this PR
[x] This PR has no interface changes (e.g. macros, cli, logs, json artifacts, config files, adapter interface, etc) or this PR has already received feedback and approval from Product or DX

release workflow for 3.12: https://github.com/dbt-labs/dbt-bigquery/actions/runs/10328180014/job/28594380285

repo: dbt-labs/dbt-bigquery


text:
Allow specifying 'application' for Snowflake in profiles.yaml

resolves #148

Problem
I see there's already an ongoing discussion regarding updating the application name in the client driver. I'd like to contribute to this effort as I believe it's crucial for enhancing the visibility of our product (which uses dbt-core) within Snowflake environments.
I've noticed that the application name in the client driver is currently hard-coded to "dbt". Given the importance of accurately representing our product's usage within Snowflake environments, I propose making this application name configurable.
By allowing users to specify a custom application name through a configuration option in the dbt-snowflake adapter, we can provide greater flexibility and customization. This change would enable users to tailor the application name to better reflect their organization's identity and enhance visibility within Snowflake environments.
I'm eager to contribute to this effort and am willing to take on the implementation. Your feedback and guidance on this proposed enhancement would be greatly appreciated.
Looking forward to contributing to the enhancement of dbt-snowflake!
Solution
Simple change to accept the application if its specified in profiles.yaml or else it will be "dbt".
Checklist

[x] I have read the contributing guide and understand what's expected of me
[x] I have run this code in development and it appears to resolve the stated issue
[x] This PR includes tests, or tests are not required/relevant for this PR
[x] This PR has no interface changes (e.g. macros, cli, logs, json artifacts, config files, adapter interface, etc) or this PR has already received feedback and approval from Product or DX

Closing per https://github.com/dbt-labs/dbt-snowflake/issues/148#issuecomment-2092936654.

repo: dbt-labs/dbt-snowflake


text:
Docs Changes Needed from dbt-core PR #8346

At a minimum, update body to include a link to the page on docs.getdbt.com requiring updates and what part(s) of the page you would like to see updated.

Testing integration


text:
Rename the Getting Started Tutorial to the Quickstart Tutorial

This better reflects the purpose of the tutorial, and helps to differentiate it from the Fundamentals course. As discussed in Slack
Will also need to set up redirects for existing links, and change references around the rest of the Docs site.

I think we're going to end up creating warehouse-specific "quickstarts" so I'm going to close this for now. Thank you!

authors: joellabes runleonarun


text:
add missing image in Redshift PL setup guide

What are you changing in this pull request and why?
Noticed a missing image on the Redshift PL setup doc, so I'm adding it.

Checklist

[X] Review the Content style guide and About versioning so my content adheres to these guidelines.
[X] Add a checklist item for anything that needs to happen before this PR is merged, such as "needs technical review" or "change base branch."
[ ] Review by @matthewshaver

Thank you @dhaworth !

authors: dhaworth matthewshaver


text:
Update the link for new Discussion

What are you changing in this pull request and why?
Based on the discussion here: https://github.com/dbt-labs/docs.getdbt.com/discussions/2553
The discourse will be the new forum where one can discuss new ideas.
This PR replaces the previous link to start a new discussion to the discourse link

It says there is 1 unresolved Comment. How I can access my Versel account as it is pending approval for access?

@mirnawong1: Can you please review?

Thanks @mirnawong1 :)


text:
Package module list, consider grouping by cma

Currently the module list on a package page is simply the list of all toplevel interfaces exported by the package in alphabetical order. We could could however first group them by cma and then by alphabetical order.
This could match the idea of mapping cmas to odig subpackages.

As discussed here, the current odoc listing subcommand is not very useful (for odig and in general).
I plan to move to something similar to what ocamldoc does, i.e. accepting an arbitrary file in the ocamldoc syntax and generating the corresponding html file.
This is currently what odig uses for its ocamldoc backend by reusing the {!modules: ...} command (see here).
IIUC this would work well with the approach you propose here, just use {!modules: ...} as many times as there are cma files.
I do however think that while this seems like a good approach in general, there should be a way for packagers to override that behavior. Perhaps by installing a "library.odig" file (or something similar) which odig would use for the package page instead of the default one (probably wrapping it with the good navigations links in the header, footer, etc.).
This seems like a good way for packagers to have control over the interface they expose to user.
For example, janestreet packages could use that to show the content of their Std module, instead of the units listing which will list things like Core__Whatever which they'd rather not show.

This is now implemented for the odoc backend as part of cee4611c737697897fe8f7. @trefis Your wish is being tracked in #18.

Since 9e555ddab17c57f808555 and thanks to @trefis' odoc --index-of this is now unified and available in both backends.

authors: dbuenzli trefis

repo: dbuenzli/odig

license: isc


text:
Login information can't be saved and no token can be received

I removed the adapter and added a new instance of 0.3.2.
After entering my login information I was not able to save the info, the save-buttons are greyed out.
Only after clicking on "smart" and choosing something else and then back to smart, the buttons became blue.
But clicking on "save" just gives an error message:

OK, so I click on get token, then I see this:

These two error messages block each other out. I can't save the information because I need a token first, but to get a token I need to save the information.

you don't need to save to get a token, but your adapter seems not to be started. Make sure the adapter is started before you click on "TOCKEN HOLEN".

These checks should be removed. It should always be able to save, regardless if the adapter is started or not.
When I install the adapter, I want to configure it first and start it afterwards. It is not logical to start an adapter which will 100% fail to start because it doesn't even have any login information saved :-)
And the first dropdown (polling strategy) should not be checked if it is filled out. It should be possible to save after just entering the email and password.
Thanks a lot!
Chris

It has to be started:
To get a token, the request has to be sent by the server. To send a request, the adapter has to be started. So this "restriction" is by design.
The adapter is made to not fail to start even if there are no credentials. If it would, it would never have been worked so far.

Yes, I understand, but it is confusing. I should be able to save all fields, even if the adapter is not started and/or some fields are not yet filled out.

yes, I understand. But as it does not make much sense to save the fields when you did not yet get a token, I've decided to put a message "adapter has to be started" when trying to save. Usually adapter is started after you installed it too.

OK, could you add an adapter-start button right on the configuration page? Then you don't lose all the data you just entered. Or don't open the configuration page at all when the adapter is not started? Or start it automatically when you hit save?

Need to check if some of this is possible

authors: ChrisPrefect dbweb-ch


text:
[WIP] Implement a new solution on build process

This PR constains several refactors on Cache and a new solution on build process, half finished, because I want to discuss about it before I moving on.
It's not totally new, actually; it's a plan I made when I started my work on build process, but I was stucked by Cache at that time so I've not written it down in detail yet. I'd implemented this solution a little bit, such as the cache::Build and Cach::store_build(), then they got removed aferwards. I know it is because I haven't explained about them and they seemed dummy as just the little pieces of the blueprint. So I am adding them back now, based on our great work before, and I'll explain the reason.
The new solution is basded on the fact that the build proces of the dependencies and the root package is mostly different. They have different source location, different output location, different build location and dfferent available compile mode. I think you have felt it after writing down the long chain of local flag argument.
So I've trying to seperate the build process into two stages:

Dependency preparation:
In this stage, elba retrieves all sources in the resolve tree, and then build each of them into global cache directory. The workers in this phase can be executed in parallel. And when all dependencies are ready in cache, elba will copy the direct dependency into /target/deps. Dependency preparation stage does not necessarily go along with target generation since it could be used by editor plugins to provide interactive support(like rls).

Target generation.
In this stage, Elba builds lib target, binary, docs, benchmarks and tests, for only local package.

If so, in code we should also implement these two stsges seperately, sharing the CompileInvocation. In fact, the current JobQueue is just the executor of the first stage, so I moved it and its friends into the 'prepare' module.
BTW, I'm looking for better names for these two stages but not the confusing 'prepare' or 'generation'(maybe?). To be honest, I like the name 'resolve' because we could have a subcommand elba resolve that users get their dependencies built into target/deps folder and then start working right away.

A lot of your changes rely on having the stage handlers down, so I'll peek again once that's been implemented.

I thought about namespace more deeply since we encountered problems with namespace. And I've realized that we probably should not support namespace! The main reason is that packages can share namespace in idris idiom. For example, the contrib package exposed a lot of types under Data module. We should not force the user to import module in the 'rusty' way, like import idris.contrib.Data, and we just allow contrib as well as any package to expose types under Data. If so, we will not have the problem of name aliasing(because it's not supported) but we will encounter the problem of name collision. The only solution is not to support namespace so as to force packages to have creative names, but it don't prevent the name collision completely tho...

I think we can decouple package names and the modules they export; whatever/me can export Control.Monad.Whatever and whatever else it needs to.

You are right. Anyway, we don't have the issue of copying files now.

Still blocked on the borrow checker issue and I've no idea how to fix it... Exhausted... (｡í _ ì｡)

Current implementation does not stick with the two-phase build process because I realized that it's not so clear of the bounary between these two stages; they are just plain functions plus the JobQueue. However, it's not a big deal to change the code organization after we fill all holes of unimplemented.

In the interest of saving time and pushing towards 0.1.0, I'm gonna merge this asap and fix up anything I think needs fixing (unimplemented!(), etc.). If you have any concerns with the design beyond then, we'll deal with it in another PR/issue.

Are you working on it now? I would like to finish the binary target after I fix the silly borrow checker issue. And then I'll modify the interface of build::compile a bit to better intergrade with cli.

Well, the process of "fixing up the PR and merging it as-is" ended up being more of a synthesis between the state of the branch now and the changes made in the PR. The main things I changed from your PR were as follows:

Don't allow Sources and Binaries to be cloned.
Both of these structs should be strictly single-owner since they represents locks on directories (I know the implementation used Arcs which mean that we aren't actually duplicating any locks, but I'd rather not have the ability to clone Sources, etc. with reckless abandon).

Keep Binary as it is, storing both its Source and its Target.
The PR dropped the Source and only kept the Target, but this just made stuff more complicated; we don't want to have to keep checking with a Cache on where a package is located

Unified Caches and Layouts.
Now, target/ is basically just a glorified Cache (but it's special in that it only deals with the root package), and I think this helps to keep the design of our folder structures consistent, at the cost of an unused indices directory in the local target/ directory.

As a consequence of this unification, I dropped the local parameter from the Cache, but kept its other methods mostly untouched.
This change actually makes Caches less all-encompassing (separate Caches are responsible for separate directories)

Added "artifacts" to the Layout structure, for output for libraries with the --interface flag

Removed build::{solve, compile}.
Because these items unify the behavior of all of the modules, it seems like it should go in the cli module instead. The build::* stuff should only pertain to builds.

Separate dependency prep and target gen with Compile- and CodegenInvocation.
The way I see it, we should only use CompileInvocation for creating libraries and CodegenInvocation for creating output from codegen backends, since those two processes involve doing different things (copying to the build dir vs. copying to a shared bin directory, etc.). This is the step I'm most unsure about; maybe we should use CompileInvocations for building with codegen backends too?

For now, the behavior of compile_lib now lives in CompileInvocation::exec.

Keep the core job queueing logic of the job module unchanged.
The current thread-pool implementation doesn't have any problems as far as I'm aware (the biggest deficiency atm is being unable to drop Binaries), so we don't really need the extra thread-pool dep. The progress lost from this shouldn't be that bad (we just need to make the right Compile- and CodegenInvocations.

As a consequence, we still don't have a super clear divide between dependency preparation and target generation in the job queue (it spans both steps), but it shouldn't be too big of a problem.

I think that this design will be the best way forward for elba. If you're looking to continue working on the binary stuff, the places to look would be Job::exec and CodegenInvocation.
I'll keep the PR open in case there are any concerns about the changes I've outlined above.

Wow, this is a suprising result that the major parts of my PR were rejected... that means we have lots of disagreement on the caching and the building design, which have to be solved. I understand your concerns and I think this topic worth discussing since it is the core part of elba, with which we must be careful.
After reading your latest comment and checking out the the commit, I still think some rejected parts are better then the old one because of some issues that will arise when you move on. And because you haven't started on such areas(such as Job::exec()), you can't see the trade off behind them. And there are also some parts are just design choices that have pros and cons at the both side.

Thread pool
The thread pool is not just used to simplify the concurrent model. What we need is not only a thread pool but a scoped thread pool. The compile invocations needs a lots of references, including BuildContext, &[Binary], &Layout and so on. As you know, references can't be passed through thread boundary(Sender of channel). There are only two ways that we solve this problem: Wrap all references needed for the invocation into Arc, or use a scoped thread context. If you think the first choice is not acceptable, we reach an agreement for now. The next problem is how to provide a scoped thread context, and there are also two choices: spawn a scoped thread for a single task and join all threads in the end; or we use a scoped thread pool to reuse the spawned thread. It's important to realize that we can't implement a scope thread pool by ourselves without unsafe code.

Separate dependency prep and target gen with Compile- and CodegenInvocation.

For now, the behavior of compile_lib now lives in CompileInvocation::exec.

I think you've misunderstood the purpose of CompileInvocation. t should only care about the compiler invocations, but not the sovle graphs, cache or anythink like that. In addition, CompileInvocation is not only used to generate a lib target, but instead it is used to generate ibc from idr, which means the compilation of bin target also relies on it to generate the Main.ibc and then use the CodegenInvocation to generate ibc to executable.
The actuall strategy that controls the compiling process is placed in compile_lib() and compile_bin()(not exist yet) in the PR.

The PR dropped the Source and only kept the Target, but this just made stuff more complicated; we don't want to have to keep checking with a Cache on where a package is located

It's not true. We don't keep checking with a Cache on where a package is located.
The Binary in your implementation is mostly the Job in my PR: they carry a source or a built binary and the building process is to transform all source variants into built variants, and release the DirLock during the process. But there is a difference between my Job and your Binary: the Job has None variant. The None variant has two purposes: The first one is to avoid checking out built deps when the dep is not reachable from root(the parents of it were all built, so we don't need to check it out); this is very efficient when we rebuild a target when it hasn't changed is't deps requests, if so, we don't checkout any built binary other than its direct deps and don't take the unnecessary DirLock as well. The second purpose is mentioned by you, to drop Binaries during building process. I can simply transform the Job::Fresh into Job::None just like the way I transform Job::Dirty into Job::Fresh. The strategy is also simple: when a job completes, we check whether all parents of one of its child is built, and we make the child None if it's true.
There is another problem in your implementation: there is no way to store a built binary. This hasn't become a problem because you haven't started to build deps in temporary folder yet. We need a way to inform the Cache to move target files from temp folder into cache folder during the building process. You may think we could do it in the end stage, but that would makes all deps rebuild when any compile error occured during the previous build(or cancelled).

Don't allow Sources and Binaries to be cloned.

In my plan, both of them are readonly after creation. This is much different from your design so you may be afraid of the approach here if you don't know.
The lifecycle of Source and Binary in my design is:

Using Source: Summary --(retrieve_pacakages)--> Graph<Source> --(JobQueue::new)-> Job::Dirty(Source) so that the others are dropped --(compiling)--> Job::Dirty(Source) becomes Job::Fresh so the source is dropped.

Using a Binary: BuildHash --(checkout_build)--> Job::Fresh(Binary)  --(all parents are built)--> Job::None and then the Binary is dropped.

Storing a Binary: (acquire_tempdir) ----> (build lib in it) --> PathBuf --(Cache::store_binary(): copy files into cache)--> Binary

You can see the Source and Binary are not modified during the lifetime! The Arc is only used to share reference between the old Graph and new Graph while mapping process, when the old Graph will be dropped when the mapping process is complete, and it's also used to return the job result through the thread boundary.
However, I can avoid using Arc by taking value out of the graph when mapping instead of cloning it and move caching stuffs into main thread so that we don't have to return binary as job result. It should be a easy work I think.

Removed build::{solve, compile}.

Yeah, it's not a good place for them. And it was a mistake. But I think the the second half of compile() belongs to build module.

Unified Caches and Layouts.

Yeah... It indeed make the the  folder structures consistent... But what is the advantage? I can only see some shortcomings:

~/.elba/build/ foler contains subfolders of different packages while target/lib only contains the result of a lib target compilation.(They have different name but actually they are for the same purpose)
unused indices in taget/ and unused deps in ~/.elba/
more complicate implementation(I am not sure about this)

The main problem here is the that the Cache and the target/ folder are for different purposes. The cache is used to manage global resources and serves the elba itself while the target/ folder is used to show compile results for users.

Thank you very much for the detailed explanation! You make some excellent points, so for the next commit I'll try to implement more of your changes, especially the ones regarding the role of Job and the purpose of Codegen- and CompileInvocation.
To address your other concerns:

With regards to the thread pool, we're already using the first solution you described (a single scoped thread context where we launch a bunch of Worker threads and join them all at the end), so I think this solution should work.

The reason I unified the directories is because it felt like treating the target directory as its own special entity would result in a lot of duplication of code: dealing with temporary build directories, storing code output, etc. But you're right in that the target directory does serve a different purpose from the global Cache.

With regards to the thread pool, we're already using the first solution you described (a single scoped thread context where we launch a bunch of Worker threads and join them all at the end), so I think this solution should work.

No. It's not the first solution because you still can't pass the &BuildContext via Work::More. The problem here is that we can't use channel to pass in jobs if we don't want to wrap everything into Arc.

Also, I'd like to clear up a point of confusion: what exactly do you think should be stored in the target directory?

I think at least we should have bin,lib, build, deps and docs, and probably a metafile that stores the hash of source of the previous compilation.

Update: the commit I have sitting on my computer merges nearly all of the changes made in the PR (albeit with stuff moved around and renamed). I'm currently stuck trying to get the JobQueue to work without making Source and Binary have Arc<SourceInner> or whatever, but once that's done, I'll have this PR basically merged.

authors: andylokandy dcao

repo: dcao/elba


text:
Domain changed to number in HA

Regarding this commit https://github.com/dckiller51/bodymiscale/commit/e97da1668ea417a4a0f849822090c82bcedd701d ,
domain name changed from input_number to number, at least in recent home assistant versions.

Concernant ce commit e97da16 , le nom de domaine est passé de input_number à number, du moins dans les versions récentes de Home Assistant.

I just tested in version 2023.10.0b3. I don't see any change. I created a new number entry, it remains input_number.

I'm using the same version and I can't choose input_number entity without edit above.

On the other hand, the beta version of homeassistant creates a bodymiscale.bodymiscale_bodymiscale_test_bodymiscale_2. To be continued

@bonuzzz
Update 3.0.9
allow input type "number" in addition to "sensor" and "input_number"


text:
Warn when a app / pod ID is longer than 54 chars

Such service IDs might not play well with Mesos DNS due to SRV records length limitation.
https://mesosphere.github.io/marathon/docs/application-basics.html#service-name-length-limitations
https://jira.mesosphere.com/browse/DCOS_OSS-3722

LGTM. (I'm not one of the two reviewers, so I can't sign this off, but for such a small change I don't know that it's necessary)

authors: bamarni leehambley

repo: dcos/dcos-core-cli


text:
DCOS-14022: Adding validate-build script to ensure minification

This PR introduces the scripts/validate-build.js script and the validate-build command in package.json that checks if the files in dist/*.js are minified.
In order to efficiently and correctly process the javscript AST the script uses the esprima ecmascript parser and ensures that every comment found in the source is a legit one. Such comments are:

Source maps
Comments kept by default by the UglifyJSPlugin

Addressed all comments 👍

retest this please

Rebased and using @ariya 's suggestion

Awesome work @wavesoft!

authors: jfurrow wavesoft

repo: dcos/dcos-ui


text:
DCOS-39331: Add isPublic to node api

Testing

See the tests that we wrote and verify that they handle each edge case
Read through the docs and see if we are misusing the API

Trade-offs

We chose to not use the "public_agent" role, because of what we found here

The Mesos agents on public agent nodes also have the public_ip:true agent attribute to assist in their discovery.
It seemed to us like this is more precise

Dependencies

None

Could attributes.public_ip be null or undefined?

authors: DanielMSchmidt GeorgiSTodorov


text:
[WIP] Move make_cluster_fixture to test_util

The cluster fixture serves well outside the package.

@orsenthil is this still work in progress?

:x:  Strong nak against this. That file is in that specific place so it can be copied over/overridden in place in EE

@mellenburg  - I got your attention upfront!

What if I want to use the functionality of make_cluster_fixture in a test code that is not bundled as package ? For e.g. in an integration test. ( I have a strong use case for this, that is the reason I was testing this change upfront). [1]

I thought the reason moving make_cluster_fixture to test_util makes sense because.

It is a helper function that provides a cluster, and could right belong to test_util.
The pytest context creation is actually in conftest.py

By having this inside the dcos-integration-test package, I cannot really use this from anywhere else.
I have no idea about the ee dependency. But cannot it be solved after addressing these?
I am primarily interested in [1] above.

Here is the EE magic:
https://github.com/mesosphere/dcos-enterprise/blob/master/packages/dcos-integration-test/build#L15
The issue of plugging one fixture into both EE and Open tests has been very painful and this hack-ish direct inject method has been the best so far.
cluster_fixture.py is not intended to be used anywhere else on purpose (it is not intended as a utility). What's more, it should only be used to create a cluster fixture as the name states (which your code is not doing with it)
Looking at your intended usage of this, there are two things to note:

Please don't set environment variables within a test to pass parameters. This can cause other stuff to fail in odd manners
This would be the better pattern to use

from test_util.cluster_api import ClusterApi, get_args_from_env
from test_util.helpers
args = get_args_from_env()
# make custom changes to the env gathered args
args['web_auth_default_user'] = DcosUser(auth_json)
cluster_api = ClusterApi(**args)
cluster_api.wait_for_dcos()

It seems like what you really want isnt the cluster_fixture.py file, but rather the hard-coded CI user and the ability to launch a marathon app. For the CI user, I would support moving that to a simple test_util helper get_ci_user() and then launch cluster_api as shown above.

@mellenburg
I agree with not moving these files, creating a module as suggested.
Since I am interested in the auth_token, I'd like refactor auth_json_token to a common helper and  use it both places.
(Subtext)

I was open to change the name of cluster_fixture.py to appropriate one if required. The pattern of using ClusterApi directly with environment almost seemed like duplicating the code.

@amitaekbote  - closing this. No longer WIP.

The topics discussed in this thread are addressed here: https://github.com/dcos/dcos/pull/984 the discussion can continue over there.

authors: amitaekbote mellenburg orsenthil

repo: dcos/dcos


text:
Update DCOS-UI to 1.9.4

High-level description
We updated the UI with the latest fixes.
Corresponding DC/OS tickets (obligatory)
These DC/OS JIRA ticket(s) must be updated (ideally closed) in the moment this PR lands:

DCOS-20158 update marked package

Checklist for all PRs

[ ] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:
[X] Read the DC/OS contributing guidelines
[X] Followed relevant code rules Rules for Packages and Systemd

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[X] Change log from the last version integrated (this should be a link to commits for easy verification and review): DCOS-UI v1.9.4
[X] Test Results: https://jenkins.mesosphere.com/service/jenkins/job/Frontend/job/dcos-ui-pull-requests/2164/
[X] Code Coverage (if available): https://jenkins.mesosphere.com/service/jenkins/job/Frontend/job/dcos-ui-pull-requests/2164/cobertura/

PLEASE FILL IN THE TEMPLATE ABOVE / DO NOT REMOVE ANY SECTIONS ABOVE THIS LINE
Instructions and review process
What is the review process and when will my changes land?
All PRs require 2 approvals using GitHub's pull request reviews.
Reviewers should be:

Developers who understand the code being modified.
Developers responsible for code that interacts with or depends on the code being modified.

It is best to proactively ask for 2 reviews by @mentioning the candidate reviewers in the PR comments area. The responsibility is on the developer submitting the PR to follow-up with reviewers and make sure a PR is reviewed in a timely manner. Once a PR has 2 ship-it's, no red reviews, and all tests are green it will be included in the next train.

@mesosphere-mergebot ship_it_label_status_check

authors: DanielMSchmidt orlandohohmeier


text:
fuzz resource numbers in test assertation

per @kensipe, these were originally assuming clusters with nodes of very
specific sizes, which is no longer the case

This will fix the tests currently failing on #174.

@mesosphere-ci retest this please

repo: dcos/shakedown


text:
🛑 Danbs is down

In 69a765f, Danbs (https://danbs.net) was down:

HTTP code: 404
Response time: 169 ms

Resolved: Danbs is back up in dee8b3e after 6 minutes.

repo: ddanbs/upptime


text:
🛑 Danbs is down

In 816b836, Danbs (https://danbs.net) was down:

HTTP code: 404
Response time: 3409 ms

Resolved: Danbs is back up in 6bc42ac after 6 minutes.


text:
🛑 Danbs is down

In 4dca0d6, Danbs (https://danbs.net) was down:

HTTP code: 404
Response time: 3824 ms

Resolved: Danbs is back up in 69eebb0 after 12 minutes.


text:
🛑 Danbs is down

In f616a11, Danbs (https://danbs.net) was down:

HTTP code: 404
Response time: 126 ms

Resolved: Danbs is back up in 6d43329.


text:
メソッドチェーンの方が良さそうに思えてきた

WithXxxxの関数を以下な感じで呼び出したい

かっこいい
package名いちいち書かなくて済む

エディタで続けてメソッドの候補として出してくれる

今の実装と後方互換性がない

既存の関数はdeprecatedとマークして一定期間残す
新関数は命名変えて定義

	err := gtree.OutputProgrammably(os.Stdout, root).
		WithBranchFormatIntermedialNode("+--", ":   ").
		WithBranchFormatLastNode("+--", "    ").
		Do()
	if err != nil {
		fmt.Fprintln(os.Stderr, err)
		os.Exit(1)
	}

この際、後方互換性を考えずに全体的に改修したい

公開関数の命名がイケてない気がする。

No
既存
新規
機能

1
Output

与えられたMarkdownをパースしてツリーを出力

2
Mkdir

与えられたMarkdownをパースしてディレクトリを作成

3
OutputProgrammably

コード上で構築されたnodeを元にツリーを出力

4
MkdirProgrammably

コード上で構築されたnodeを元にディレクトリを作成

メソッドチェーンの参考
https://github.com/bitfield/script
これは、コンストラクタの後にWith呼び出せるようにしてる。良さそう

やりたい気持ちがなくなってきた

repo: ddddddO/gtree


text:
Integrate docs into ddev.com

The unbranded ddev.readthedocs.io is fine, but it would be much better for it to be incorporated into ddev.com.
We can definitely redirect the old into a new spot; that's the easy part.
The harder part is styling and branding the docs into ddev.com. But what a great step it would be for ddev.com/docs (probably equivalent to docs.ddev.com?) were in there.

There are two distinctly different ways of approaching this:

Continuing to use the Read the Docs / MkDocs platform at a ddev.com address (subdomain or subfolder) and styling it to be more in line with ddev.com.
Fully incorporating the documentation into the Astro project that powers ddev.com.

I’m not sure what the stylistic constraints are for the Material theme, but that’s just a matter of investigation.
The second would be more comprehensive and offer the most flexibility, at the expense of taking massively more development. Not just for layout and styling, but the need to handle all the things that Material theme accounts for: various components, linting, search, versioning, etc.

I'm thinking option 1, for sure. The fanciest case I can imagine uses mkdocs+mkdocs-material as a subfolder of ddev.com.

I was experimenting yesterday with https://ddev.com/get-started/ and linking each tab to a .md file.
For this, I likely need a new folder that reads docs on the Astro site and move the guide for Mac, Windows, Linux, Cloud under that.
This an example though not a good one.

We will keep the tabs at the top but those will load a markdown file with the steps.
That allows us to use the same settings we use with the blogs with the get started page taking advantage of astro plugins.
Thoughts?
It could be the first step into merging some of the items.

This sounds like an interesting initiative, but the point of this issue is to actually put the docs from ddev.readthedocs.io into ddev.com, or at least at docs.ddev.com. You probably want a new issue for the initiative you're talking about here?

Sounds good, I figure maybe this would be a parent to that one. But I will open a new one for it.

authors: bmartinez287 mattstein rfay


text:
build: bump yq to v4.44.1

The Issue
yq yaml parser has a new version with multiple improvements
How This PR Solves The Issue
bump version to the latests stable release (v4.44.1)
Manual Testing Instructions
install ddev with this PR and launch yq --version inside web container. Version should be v4.44.1.
Automated Testing Overview
None
Release/Deployment Notes
None

Just changing it here doesn't make it actually change. A new image has to be pushed and be referred to in the versionconstants.go.
Can you say why this is important to you?
I note that yq is available via apt, I don't think it used to be.
yq/stable 3.1.0-3 all
  Command-line YAML processor - jq wrapper for YAML documents

There are two yq:
https://github.com/kislyuk/yq
https://github.com/mikefarah/yq - we use this one, it's better, because it has more features. I know this because I also use it outside of DDEV and I used to use https://github.com/kislyuk/yq at first but then switched to this one.
I think we could even pull the latest version, similar to Mailpit:

#5524

Getting latest works for me.

@juanjol, please update this PR with my suggestion, I think you will be happy to have the latest yq with every new DDEV release.
After that, we will push the new Docker images and update versionconstants.go.

Hi @stasadev, @rfay, thank you for your quick feedback! The main reason to update yq is to have a version that is capable of output yaml contents in a shell compatible mode. I would like to add a custom yaml config inside .ddev folder to keep some configs relate to our custom environments but not to ddev. I like the idea of always have the latests versions, so I updated this PR. Is there something to do with versionconstants.go??

One request for the future @juanjol  - Please don't use your fork's master branch for a PR. It means that you are stuck with it, and if you push anything else into it, it makes a mess of the PR.  Instead, please use a meaningful branch name that is devoted to the PR (something like 20240611_juanjol_short_description, as is described in https://ddev.readthedocs.io/en/stable/developers/building-contributing/#pull-requests-and-pr-preparation

I pushed the images and updated the versionconstants.go

Thank you very much, understood! Sorry for the inconvenience, the truth is that I did it directly editing in github without downloading the repo and it was not the best idea.
Thanks again for the quick response and for the advice.

authors: juanjol rfay stasadev

repo: ddev/ddev


text:
shaderc.exe is not detected in the Termux application

I followed the Compile steps.
java -jar mtb. jar -s shaderc.exe -c RenderChunk
And the result is "shaderc not found"

The shaderc.exe included in the Release only supports Windows x64, not Android. To use it on Android, you can compile shaderc from source code by yourself.

Can you show an example or a tutorial?


text:
Make display of window buttons in top bar user configurable, fixes #35

Here is the promised pull request against master that fixes #35. This time things are straightforward and I hope you can agree that some configuration won't hurt. If you go forward with this, the readme should probably be adjusted as well to reflect the changes. I could send another pull request for that.
If you have any questions, please don't hesitate to contact me. Thanks.
Cheers

Ok this obviously mixes translations and adding button or not.
Second, the configuration schema is exposed to the piece of code using it. That's bad design. Please create a shouldDisplayButtons function or something alike in a preference module and use that in other places in the codebase.

When preferred I could split things, but as the GUI is naturally localized I did not bother.
Your other remark makes perfect sense. I will do that. Thanks!

OK, refactoring is done. It was a bit more complicated than I'd thought initially. I drew some inspiration from the impatience plugin, but tried to simplify the handling of the change callback a little bit in anticipation of more configuration options to be added in the future.

I've just pushed a new revision that provides the ability to choose among two different positions (left, right) or just hide the buttons. Please have a look and let me know what you think. Thanks.

Can you show me what each of these option do ?

https://www.hunsicker.de/pixel-saver/show-buttons-in-top-bar.webm

Looks good to me

The one thing I'm not satisfied with is the position naming. "left" is a bit vague and users might have different expectations (and needs) when it comes to the exact position (First element in top bar, before app menu, after app menu etc.). Maybe "after-appmenu" would be better (and would be more option to extend the options in the future).
Similar with "right". Currently the buttons appear not at the right edge of the top bar, but on the right side. It's certainly more involved here as other extension might affect the positioning.

@deadalnix: Have you found the time to review the code? If you need any further information, please let me known. Thanks.

Repeating what i said elsewhere: Ok I've been really swamped. Just writing so you know I did not forgot about you, but lacking time to do a proper review. I see you guys seemed to sync on the configuration thing, so that's great. The video really helps.
I'll make sure to review this week end, when things settle down a bit.

Thanks much for the heads up!
Looking through the issues, there are quite a few requests regarding button position. Maybe it would be worthwhile to add more choices? This way pretty much all requests in this regard would be covered (#13, #35, #46).
I've created 2 new screen casts to showcase this. Still on 3.14. The first one uses the standard layout. In the second the clock has been moved and the left box extended as much as possible and the activities button hidden to maximize available space for the application title. Notice how this influences the behavior of the "System Status Area" option.

https://www.hunsicker.de/pixel-saver/show-buttons-in-top-bar-multi-default.webm
https://www.hunsicker.de/pixel-saver/show-buttons-in-top-bar-multi-custom.webm

What about the available position choices? This PR has only left, right, hidden. I would favor more options and different naming as seen in https://www.hunsicker.de/pixel-saver/show-buttons-in-top-bar-multi-default.webm. What do you think?

I've created a new PR for this: #70

authors: deadalnix keredin marcohu

repo: deadalnix/pixel-saver


text:
HTML beautify feature doesnt work well in the new update

HTML beautify on save feature doesnt work well in the new update when I triy to save my html project.

This is fixed in version 1.6.0 (197)

authors: deadlyjack ghost

repo: deadlyjack/Acode


text:
Add scrolling speed and rename to bounceSpeed

The current scrollingSpeed is confusingly the bounce speed. And the actual scrolling speed is a fixed value of 150.
I renamed the scrollingSpeed to bounceSpeed, and moved the fixed 150 value to a new prop called scrollingSpeed.
I do realise that this is a BC break, but I think it's for the better. If both my PRs end up getting merged I'll update the types of the other PR to include the new prop in this PR as well.

This change makes sense but I'm keen to avoid breaking changes, especially since we're still using the same variable name for a different purpose. We could also perhaps change the scrollingSpeed name entirely so there's no confusion between old versions and new versions.
It doesn't quite feel like a big enough change to warrant a major version bump.
What are your thoughts on this transition?

New code that keeps both the bounceSpeed and scrollingSpeed props pointing to the bounce speed (so it doesn't break existing functionality). Users can use either oft hem but there will be a console.warn for anyone still using  the scrollingSpeed prop, telling them to move over to the bounceSpeed prop as scrollingSpeed will be deprecated.
After a period of time we push out another release, removing the scrollingSpeed prop entirely. People now have to use bounceSpeed if they want the same functionality as they had. Replace console.warn with a console.error
We introduce a new prop for scrollingSpeed but called something different to avoid confusion with previous versions.

My thought is this change haha.
Semver dictates a major version bump. It's not a huge deal to have a major version bump as long as you have a changelog. If you want it deprecated first that's of course fine, too, but I recommend not doing that because it's such a small change. It makes it easy to update for people using it.

Fair enough, you're the one that done the work on it. 🙂 Happy to merge this and major bump the version as long as scrollingSpeed name isn't reused.
Some quick ideas, marqueeSpeed, rotationSpeed, animationSpeed

I don't like those suggestions. Using marqueeSpeed is too non-specific, same goes for rotation and animation. Which animation? Which marquee? Which rotation?
But this argument goes both ways and made me realise that I chose the wrong name to begin with. I'll rename it to scrollSpeed That way it's consistent. Bounce has a bounceSpeed, and scroll has a scrollSpeed.
All done.

authors: RWOverdijk deanhet

repo: deanhet/react-native-text-ticker