text:
🛑 goormIDE is down

In ada37a8, goormIDE (https://ide.goorm.io) was down:

HTTP code: 403
Response time: 447 ms

Resolved: goormIDE is back up in 58fb687 after 40 minutes.


text:
fairport: DE 3A to GeoZones

Describe a single harmonisation project that is used to transform one data set
Implementation state
The transformation of the German 3A data model to the fairport data model is in progress
Use Case Scope
The main aim of the fairport use case is to provide a complete, high-quality spatial data model for geo-zones for UAS flight regulation.
In a first step a national dataset will be created. In a second step a cross-border Europen dataset shall be created and published.
Further information on UAS flight regulations can be found here:
https://www.easa.europa.eu/domains/civil-drones-rpas
https://www.easa.europa.eu/domains/civil-drones/naa
Spatial Scope / Priority Scope
Spatial scope of the test dataset:

Spatial Coverage: Testarea, regional, Hessen

Priority Scope

Nationwide dataset
Crossboarder dataset, most likely Germany, The Netherlands and Belgium

Use spatial scope keywords and priority dataset keywords, as well as the (national) coverage to describe the spatial scope of the source data.
Source Schema and Format
Describe what format and schema the source data uses. If possible, add a link to the schema or upload it to the issue you are creating. If there are multiple source schemas, list all of them. Include the number of tables/properties/relationships in the source schema (that are populated with data).
source schema: NAS 6.0.1
--> http://repository.gdi-de.org/schemas/adv/nas/6.0/aaa.xsd
--> https://haleconnect.com/#/schema/org/1033/4130f17f-8180-494a-b788-551eb439daaf/overview

Types: ~ 425
Properties: ~ 7750
Property types: ~ 5000

http://www.adv-online.de/GeoInfoDok/GeoInfoDok-NEU/
https://www.lgl-bw.de/unsere-themen/Geoinformation/AFIS-ALKIS-ATKIS/ALKIS/Testdaten/#alkis_06
https://test.geoportal.hessen.de/spatial-objects/
source format: GML 3.2.1 --> http://schemas.opengis.net/gml/3.2.1/gml.xsd
Source Dataset(s)
The test data set is an AAA dataset of the region "Kreis Langen" in the German state "Hessen"
See: https://haleconnect.com/#/dataset/org/1033/d9c65ccb-d876-4efe-a16c-5d6b973d209e/overview
EPSG: 25832
Source Data Size

Number of objects: 367780
Total data volume: 628,82 MB

Target Schemas
The fairport target model draft (Version 1.0) can be found here: https://haleconnect.com/#/theme/fairport-1626448484441/overview
Transformed Data size
TODO Provide information on the size of the tranformed data set.
Target Data set resources
TODO Provide links to the target data set, preferably published as a download service (Predefined / Direct access) with metadata. If the target dataset is also visible through the EDP, provide the EDP URL.
Effort / Time Spent
TODO Provide information on the amount of time you needed to create the transformation project. (in hh:mm)
Transformation Project
TODO_Provide a link to a transformation project uploaded to Github or haleconnect.com.

Dataset part 4: Langen-ALKIS-Hist-46052320-1_20200505T212122Z_00004von00004_476491_5538080.xml

Dataset part 3: Langen-ALKIS-Hist-46052320-1_20200505T212122Z_00003von00004_476491_5538080.xml

source: gharchive/issue

repo: gopeg/feedback

license_type: permissive

license_source: github-api


text:
Missing testing in documentations

Theres no example for how to do feature testing like laravel in documentation such as asserting database content, etc..
Thanks, nice project!

Thanks for your issue, I'll make an example.

@hwbrzzl thank you.. i saw a glimpse of e2e testing example on https://www.goravel.dev/the-basics/routing.html#testing-routing , but i think that example is a bit misleading becauses you need to boot the app first right?

Yes, actually, the mock is to do this work and can do it better. facades.* are interface, the mock will implement the interface and we will set facades.*=mock, it's similar to container/dependency injection. The mock has many useful functions that can help us build the unit tests.

For Mock Detail

i think maybe thats y its slow at the build time because of facades.* global variables, maybe just resolve the instance as function when we need/use it?

Yes, If you didn't use some facades, you can remove them in config/app.go::providers, then you'll build faster, and the volume will be smaller.

I added an example here.

@hwbrzzl hi tq for the updates, but i cant find endpoint testing with db assertion
quick example in laravel:
$r = $this->post('/users', ['name' => 'test']);
$r->assertOk();

$this->assertDatabaseHas('users', ['name' => 'test']);

Yes, it's better, we have a plan to implement this, but we haven't. Welcome to PR!

We will solve this issue on https://github.com/goravel/goravel/issues/73.

authors: hwbrzzl vortechron

repo: goravel/goravel

license: MIT


text:
go deps not udpate for long time

zen repo updated few days ago

@lucklyt it has been resolved, we had 2 updates

authors: ivanmiletic lucklyt

repo: gorules/zen-go


text:
RAND_MAX missing

One of the c projects I am trying to convert uses RAND_MAX found in stdlib.h. I added it to the header in libs/stdlib.go and a go constant in runtime/libc/rand.go. I wondered if there is a way to make the header define equal to the go constant? This way future changes don't require two places to be updated.

First, feel free to PR the change ;)
Second, there's no way to do that automatically for now, but I agree there should be. I did some preparations to auto-generate the header for function definitions, for example, so something similar should work for constants as well.

I think a new issue should be created for generating constants in headers so I’m going to close this issue

authors: TotallyGamerJet dennwc

repo: gotranspile/cxgo


text:
update parser

This probably shouldn't be merged until #16 has a solution but this can be used for testing. This is an update by a minor version so it shouldn't break anything.

Was this test passing before? It appears to be broken in CC at (*InitializerList).checkStruct in check.go

It was passing in https://github.com/gotranspile/cxgo/pull/15 at least :thinking:

@dennwc It now passes! Now how do you want to go about closing #16? If you tell me what you want the code to look like and generally what files to change I can add that commit too.

Merged, #16 can be solved separately.

source: gharchive/pull-request


text:
Polish the orange button field on the landing page

Less padding and centered the text and the buttons

Looks good!

repo: govdirectory/website


text:
RHEL4. Random crashes in run time on symbol resolution.

Originally reported on Google Code with ID 246
What steps will reproduce the problem?

The problem is not stable, I have no concrete guide to reproduce it. It
does seem, however, happen when an application attempts to start a thread
via pthread_create. I've seen other crashes with no threading involved (at
least, on the application level).

What is the expected output? What do you see instead?

The application should not crash

What version of the product are you using? On what operating system?

PerfTools 1.4, patched according to ticket #201. RHEL4.

uname -a
Linux ~~~~~~ 2.6.9-78.ELsmp #1 SMP Wed Jul 9 15:39:47 EDT 2008 i686 i686
i386 GNU/Linux

rpm -qa | grep glibc
glibc-common-2.3.4-2.41
glibc-devel-2.3.4-2.41
glibc-2.3.4-2.41
glibc-headers-2.3.4-2.41
glibc-kernheaders-2.4-9.1.103.EL

/lib/libc.so.6
GNU C Library stable release version 2.3.4, by Roland McGrath et al.
Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 3.4.6 20060404 (Red Hat 3.4.6-9).
Compiled on a Linux 2.4.20 system on 2008-04-15.
Available extensions:
        GNU libio by Per Bothner
        crypt add-on version 2.1 by Michael Glad and others
        linuxthreads-0.10 by Xavier Leroy
        The C stubs add-on version 2.1.2.
        BIND-8.2.3-T5B
        NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
        Glibc-2.0 compatibility add-on by Cristian Gafton
        GNU Libidn by Simon Josefsson
        libthread_db work sponsored by Alpha Processor Inc
Thread-local storage support included.
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.

Please provide any additional information below.

Our tests on RHEL4 are randomly crashing. The tests involve different code,
some are multithreaded, some are not. All modules are linked with
libtcmalloc_minimal.so.

I managed to recover a stack of one crash (which is not very easy, since
it's on a remote server):

27/05/10 05:28:45 Using host libthread_db library
"/lib/tls/libthread_db.so.1".
27/05/10 05:28:45 Core was generated by `/home/nb/KERN-
4.1/4.1/ASAPkernel/dev/unix/dll/i686-pc-linux-gnu-gcc/Release/CBO'.
27/05/10 05:28:45 Program terminated with signal 11, Segmentation fault.
27/05/10 05:28:47 #0  0x002c199e in do_lookup_x () from /lib/ld-linux.so.2
27/05/10 05:28:47
27/05/10 05:28:47 Thread 1 (process 23039):
27/05/10 05:28:47 #0  0x002c199e in do_lookup_x () from /lib/ld-linux.so.2
27/05/10 05:28:47 #1  0x002c1e22 in _dl_lookup_symbol_x () from /lib/ld-
linux.so.2
27/05/10 05:28:47 #2  0x002c51d6 in fixup () from /lib/ld-linux.so.2
27/05/10 05:28:47 #3  0x002c5110 in _dl_runtime_resolve () from /lib/ld-
linux.so.2
27/05/10 05:28:47 #4  0x08066419 in CrashHandler (sig=11) at
./src/SignalHandlerPosix.cpp:230
27/05/10 05:28:47 #5  <signal handler called>
27/05/10 05:28:47 #6  0x002c199e in do_lookup_x () from /lib/ld-linux.so.2
27/05/10 05:28:47 #7  0x002c1e22 in _dl_lookup_symbol_x () from /lib/ld-
linux.so.2
27/05/10 05:28:47 #8  0x002c51d6 in fixup () from /lib/ld-linux.so.2
27/05/10 05:28:47 #9  0x002c5110 in _dl_runtime_resolve () from /lib/ld-
linux.so.2
27/05/10 05:28:47 #10 0x003d4fb9 in tcmalloc::CentralFreeList::InsertRange
()
27/05/10 05:28:47    from /home/nb/KERN-
4.1/4.1/ASAPkernel/SubstituteBin/i686-pc-linux-gnu-
gcc/Release/libtcmalloc_minimal.so.0
27/05/10 05:28:47 #11 0x003d8683 in
tcmalloc::ThreadCache::ReleaseToCentralCache ()
27/05/10 05:28:47    from /home/nb/KERN-
4.1/4.1/ASAPkernel/SubstituteBin/i686-pc-linux-gnu-
gcc/Release/libtcmalloc_minimal.so.0
27/05/10 05:28:47 #12 0x003d879a in tcmalloc::ThreadCache::Scavenge ()
27/05/10 05:28:47    from /home/nb/KERN-
4.1/4.1/ASAPkernel/SubstituteBin/i686-pc-linux-gnu-
gcc/Release/libtcmalloc_minimal.so.0
27/05/10 05:28:47 #13 0x003cfb67 in (anonymous
namespace)::do_free_with_callback ()
27/05/10 05:28:47    from /home/nb/KERN-
4.1/4.1/ASAPkernel/SubstituteBin/i686-pc-linux-gnu-
gcc/Release/libtcmalloc_minimal.so.0
27/05/10 05:28:47 #14 0x003d1f6f in MallocBlock::ProcessFreeQueue ()
27/05/10 05:28:47    from /home/nb/KERN-
4.1/4.1/ASAPkernel/SubstituteBin/i686-pc-linux-gnu-
gcc/Release/libtcmalloc_minimal.so.0
27/05/10 05:28:47 #15 0x003ce407 in DebugDeallocate ()
27/05/10 05:28:47    from /home/nb/KERN-
4.1/4.1/ASAPkernel/SubstituteBin/i686-pc-linux-gnu-
gcc/Release/libtcmalloc_minimal.so.0
27/05/10 05:28:47 #16 0x003de860 in realloc ()
27/05/10 05:28:47    from /home/nb/KERN-
4.1/4.1/ASAPkernel/SubstituteBin/i686-pc-linux-gnu-
gcc/Release/libtcmalloc_minimal.so.0
27/05/10 05:28:47 #17 0x00525c44 in pthread_create@@GLIBC_2.1 () from
/lib/tls/libpthread.so.0
27/05/10 05:28:47 #18 0x0806895f in Impl (this=0x942f990) at
./src/SignalHandlerPosix.cpp:328
27/05/10 05:28:47 #19 0x0806751e in SignalHandler (this=0x942f9b0)
27/05/10 05:28:47     at ./src/SignalHandlerPosix.cpp:344
27/05/10 05:28:47 #20 0x080598ca in StartUp (lg=@0xbffaff30,
bUseConsoleHandler=true,
27/05/10 05:28:47     fileName=0x946b3e0 "localsettings.xml") at
./src/StartUp.cpp:30
27/05/10 05:28:47 #21 0x080559a6 in (anonymous namespace)::COMMain
(params=@0xbffaff7c)
27/05/10 05:28:47     at ./src/CBOSSinMain.cpp:81
27/05/10 05:28:47 #22 0x08055c83 in main (argc=1, argv=0xbffb0074) at
./src/CBOSSinMain.cpp:130

Note that libtcmalloc_minimal.so.0 is actually a renamed
libtcmalloc_minimal_debug.so.0. I did so in attempt to debug our
applications and this particular problem.

Here the application is at its very startup, it attempts to create a thread
to wait for signals. Apparently, the crash appears when the dynamic linker
attempts to resolve a symbol in run time. The crash handler installed by
the application fails to do anything useful since it also triggers symbol
resolution. In other crashes the application was also in its very early
stage, but I don't have stacks from these.

The problem is very hard to reproduce, out of ~1800 tests we run each
night, about 5-10 of them fail with these sympthoms, almost every time
different ones.

I'm suspecting that this is a bug in glibc, but I'm not sure. I'm not very
knowledgeable in the interworkings of the dynamic linker to go digging into
it.

I have a suggestion of a possible workaround in perftools, though. I tried
to compile it with an additional linker flag "-Wl,-z -Wl,now", which would
force the linker to resolve all symbols in the tcmalloc library immediately
at its load time, instead of lazily, which is the default. I did one tests
turnaround and it did not show any tests with the described crash. I'll
keep monitoring, though. However, I suggest adding the mentioned flag to
the library makefiles.

Reported by andrey.semashev on 2010-05-28 05:22:47

I had the same issue.
It had been solved by incrementing the stack size.
Perhaps,  It might be a solve your problems too.

authors: alk banbulbanbul

repo: gperftools/gperftools


text:
UI - Create assistant stuck in "creating" state forever.

Version - 0.10.0-rc2 (0.10.0-rc2)
Steps to reproduce the problem:

I have 11 assistants.
When I try to create another assistant, I get stuck in "creating" state forever.

From the network tab, i see the Assistant being created with "My Assistant 25" which is already used for for the 11th assistant I had created.
Note
When I delete an existing assistant then I am able to add a new assistant and in this case "My Assistant 26" getting used and it succeeds.

This issue is not seen any more when testing with 0.10.0-rc3

repo: gptscript-ai/desktop


text:
Should not be allowed to enter messages when waiting for user to respond to a confirmation prompt.

Electron built from commit id 59351d72
Steps to reproduce the problem:
1.Start chat with "Tildy" , add slack tool using "Add Tool"
2. Ask a question relating to your slack channel
3. When confirmation prompt is presented, do not respond.

Ask another question relating to your slack channel  and click the send button(Which shows in progress state) twice.
This results in message being sent to LLM and another confirmation prompt shows up.
Accept the confirmation and we get the response.
Now go back to the confirmation prompt in step 3 and accept it.

Notice that the tool call gets stuck forever in calling state:

Expected Behavior:
User should not be allowed to send chat messages in step 4 when waiting for user to respond to a confirmation prompt.

@sangee2004 I am seeing this issue as fixed. Can you test it again?

Re opening this issue for feedback on following input:
I expected that the user should not be allowed to send chat messages in step 4 when waiting for user to respond to a confirmation prompt . But i understand now that when i click the send button twice , the first one cancels the  previous message and the second click actually sends a new message.
Can we prevent users from being able to go back to confirmation prompt that was unanswered and cancelled and take action on it (this is step 7 in the issue) ? This results in response stuck in "calling tool" state .
In general, Would it be ideal for not allowing users to enter messages when we show the chat state to be in progress ?

Based on other issues that have been logged, the behavior here is changing. When we are waiting for the user to respond to any prompt (confirmation, prompt for credentials, etc), then the chat bar will be disabled. See the screenshot for an example.

PR: https://github.com/gptscript-ai/desktop/pull/398

Tested with electron build -81ca1d72a2f
User is not allowed to enter messages when waiting for confirmation prompts or oauth workflows


text:
Does it support Ollama?

Does it support Ollama?

iirc, not directly because of a missing (different) endpoint on Ollama regarding models (related to Ollama openai api compat), but you can use litellm proxy and that should make it possible to use ollama, among other supported models.
so, iirc

gptscript -> local ollama = :x:
gptscript -> litellm -> local ollama = :ok:

What's the missing endpoint in the Ollama OpenAI compact?

@rinor  ok thanks for the solution. closing now.

What's the missing endpoint in the Ollama OpenAI compact?

@prologic iirc it was the /models endpoint

authors: hemangjoshi37a prologic rinor

repo: gptscript-ai/gptscript


text:
[Feature Request]  highway profile

Like slope and surface profiles, could be useful have type of highway.
When I plan a route I considerating km on track and on path. Km on path could be more difficult than on track for MTB

I just added this. Feedback on the colors is welcome.

At the end of the hike, I complete the Openstreetmap map with hike and mtb scale. I think it's great to have this information, but the information all together could be confusing

authors: drazde vcoppe


text:
Make dependencies caching enabled by default

#7 introduced the caching of downloaded dependencies, disabled by default
This issue is about enabling it by default.

For reference I asked about caching on Gradle community Slack here, and got a reply with this example (although bunch of boilerplate with the yaml syntax limitations).

Sorry for my ignorance: would this means that somehow the GitHub Action (GHA) worker machine would be able to reuse the Gradle Wrapper I re-download every time my GHA is triggered?
Or is that only for using the cache within the same run?

Hi @payne911,
Yes,  downloaded and unpacked Gradle wrapper installations are cached in GitHub infrastructure, close to the CI agents, this is shared by GitHub repository so workflow executions can reuse it.

Pretty crazy stuff! How do they ensure a freshly started CI Cloud Worker has all that cached?

@payne911 the action itself compute a cache key, query the GitHub cache service and restore cached installations as required.

Fixed in v2.0-beta.1

authors: LouisCAD bigdaz eskatos payne911

repo: gradle/gradle-build-action


text:
Compiled class files are incorrectly deleted by compileJava, leading to unpredictable build failures

Expected Behavior
When compileJava finds a change in the Java source files, it should recompile and delete the old output. When it doesn't find a change, it should not recompile and keep the old output.

Current Behavior
compileJava deletes "stale output" (see below), i.e. class files, then doesn't recompile because no input changed. Therefore, there are no class files for the project and any run action fails.

Context
I'm trying to compile a very standard Java 17 project with standard project structure using JavaFX.
plugins {
	id 'java'
	id 'application'
	id 'org.openjfx.javafxplugin' version '0.0.10'
}

repositories {
	mavenCentral()
}

version = '0.1'

javafx {
	version = '16'
	modules = [ 'javafx.controls', 'javafx.graphics' ]
}
mainClassName = 'module/package.name.MainClassName'

java {
	modularity.inferModulePath = true
	toolchain.languageVersion = JavaLanguageVersion.of(17)
}

tasks.withType(JavaCompile) {
	options.encoding = 'UTF-8'
}
tasks.named('javadoc') {
	options.encoding = 'UTF-8'
}
compileJava {
	options.fork = true
	options.encoding = 'UTF-8'
}

run {
	jvmArgs = [
		'-Dfile.encoding=UTF-8',
	]
}

tasks.named('run') {
	standardInput = System.in
}

This compilation fails due to the above issue, which can be found with gradle run --info:
// snip

Tasks to be executed: [task ':compileJava', task ':processResources', task ':classes', task ':configJavafxRun', task ':mergeClasses', task ':run']
Tasks that were excluded: []
:compileJava (Thread[Execution worker for ':',5,main]) started.

> Task :compileJava UP-TO-DATE
Deleting stale output file: path\to\project\build\generated\sources\headers\java\main
Deleting stale output file: path\to\project\build\classes\java\main
Deleting stale output file: path\to\project\build\generated\sources\annotationProcessor\java\main
Caching disabled for task ':compileJava' because:
  Build cache is disabled
Skipping task ':compileJava' as it is up-to-date.
:compileJava (Thread[Execution worker for ':',5,main]) completed. Took 0.025 secs.
:processResources (Thread[Execution worker for ':',5,main]) started.

// snip

As far as I can tell from this, the Java compile deletes stale output files only to then not regenerate them. I've confirmed that the class files are indeed missing. Leading to standard run issues like "Main class not found", "module blah not found" etc.
A workaround is to change the configuration of compileJava (e.g. changing options.fork which doesn't really affect the outcome). This will force compileJava to recompile everything, which means that if I run gradle in this reconfig step, the application runs successfully. On the very next try, however (just rerun the command!), the issue reoccurs.

Steps to Reproduce
The repo https://github.com/kleinesfilmroellchen/ToyCpuEmulator should exhibit this behavior. Basically, a very standard Gradle build file with JavaFX and the Java application plugin. Because I can't reproduce this in my other, similar Gradle projects, it may be related to JavaFX but nothing indicates that.

Your Environment

Gradle 7.3.1
OpenJDK 17
Windows 10 21H2
Build scan URL: https://scans.gradle.com/s/pq5yunmivplya

@kleinesfilmroellchen, I've tried to reproduce your issue on the linked project but didn't manage to. Could you pls. provide an exact list of steps to do which should trigger the issue?

Okay, this looks like a problem with other files in my repo. I can't reproduce either with a clean clone and executing gradle run twice or more without changes. I'll therefore close this.

authors: jbartok kleinesfilmroellchen

repo: gradle/gradle


text:
plugins redirect to jcenter, which is not available

This might be the wrong place to report this - please redirect me in that case.
Expected Behavior
Gradle resolves plugins to mavenCentral (?) - builds that worked so far should still work after the jcenter sunset.
Current Behavior
Build fails in CI

problem occurred configuring root project 'xxx'.
Could not resolve all files for configuration ':classpath'.
Could not resolve org.apache.logging.log4j:log4j-core:2.17.1.
Required by:
project :
Could not resolve org.apache.logging.log4j:log4j-core:2.17.1.
Could not get resource 'https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-core/2.17.1/log4j-core-2.17.1.pom'.
Could not GET 'https://jcenter.bintray.com/org/apache/logging/log4j/log4j-core/2.17.1/log4j-core-2.17.1.pom'.
Received fatal alert: handshake_failure
Could not resolve org.jdom:jdom2:2.0.6.
Required by:
project : > com.github.johnrengelman.shadow:com.github.johnrengelman.shadow.gradle.plugin:7.1.2 > gradle.plugin.com.github.johnrengelman:shadow:7.1.2
Could not resolve org.jdom:jdom2:2.0.6.
Could not get resource 'https://plugins.gradle.org/m2/org/jdom/jdom2/2.0.6/jdom2-2.0.6.pom'.
Could not GET 'https://jcenter.bintray.com/org/jdom/jdom2/2.0.6/jdom2-2.0.6.pom'.
Received fatal alert: handshake_failure

...
Context
Was working fine - last build about 3 months ago.
Steps to Reproduce
build.gradle
plugins {
    id 'com.github.johnrengelman.shadow' version '7.1.2'
    id 'application'
    id 'jacoco'
}
...

repositories {
    mavenCentral()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8
...

.gitlab-ci.yml
image: eclipse-temurin:8-jdk-alpine@sha256:6b9d78db2289428157455dc5f5f56255aaaf1ea8e1b0fcb1298a75007103bd0e
...
build:
  stage: build
  script:
    - sh ./gradlew --build-cache assemble
...

Your Environment
Gradle 7.6 via gradlew
GitLab CI SaaS
Java 8
Will try to assemble a sharable MRE in case there isn't an obvious thing glaring at you.

I don't see why it resolves to jcenter in CI. It works fine locally or within a container with above image ...
I cleared the runner caches but to no avail.

References

https://blog.gradle.org/jcenter-shutdown#check
https://status.gradle.com/

@jbartok thanks for the reply.
Was or is? My build is still failing.

Adding explicit pluginManagement to settings.gradle seems to resolve the issue for most projects.
Some projects, that use private maven repos (GitLab SaaS), I receive a new error, though.

Could not determine the dependencies of task ':shadowJar'.
Could not resolve all dependencies for configuration ':runtimeClasspath'.
Could not resolve a.b.c:d:3.4.0.
Required by:
project :
Could not resolve a.b.c:d:3.4.0.
Could not get resource 'https://gitlab.com/api/v4/groups/xxx/-/packages/maven/a/b/c/d/3.4.0/d-3.4.0.pom'.
Could not GET 'https://gitlab.com/api/v4/groups/xxx/-/packages/maven/a/b/c/d/3.4.0/d-3.4.0.pom'.
The server may not support the client's requested TLS protocol versions: (TLSv1.2, TLSv1.3). You may need to configure the client to allow other protocols to be used. See: https://docs.gradle.org/8.0.2/userguide/build_environment.html#gradle_system_properties
Received fatal alert: handshake_failure

It used to work in the past. All that changed since is time and I upgraded to Gradle 8.


text:
Adding module-info.java breaks build

Adding a module-info.java to a Gradle build under Java 1.9 (Jigsaw) completely breaks the build.
Expected Behavior

Gradle compiles the module normally
Current Behavior

Gradle refuses to compile anything, instead outputting an error message for each file similar
PROJECT_DIR/src/main/java/module-info.java:1: error: file should be on source path, or on patch path for module
module gradlebugdemo {
^

Context

This is preventing me from building a project that I am trying to upgrade to Java 9 in preparation and as an exercise for me in both Java 9 modules and Gradle.
Steps to Reproduce

I have created a sample project here: https://github.com/meowingtwurtle/GradleBugDemo
Or, create a basic Gradle project with standard layout and an empty class in a package.
src/
    main/
        java/
            examplepackage/
                Example.java
                module-info.java(.bak)
build.gradle
settings.gradle
<GRADLE WRAPPER>

Adding and removing the .bak extension will fix and break the build, respectively.
Your Environment

Ubuntu Linux 16.04
Oracle Java 9 from webupd8team (oracle-java9-installer)
Gradle Version 4.1-20170612195456+0000

Fiixed in or before nightly 4.2-20170622235830+0000


text:
Play compiled Twirl templates fail to process annotations

Expected Behavior

Twirl templates is a type safe template engine mainly used in Play front ends. It is natively integrated with SBT (the default build tool of Play Framework). In Gradle, we also have the task "compilePlayBinaryPlayTwirlTemplates" to process the Twirl templates and we expect the compiled templates are the same as SBT.
Current Behavior

In migrating production projects from SBT to Gradle, we found that Gradle compiled Twirl templates (used mainly in Play front ends) differ from those from SBT (e.g. cannot process certain annotations such as @JavaScript). And this difference causes rendering issues when the Play app is deployed.
Context

It may cause more and more issues when more Play front-end apps are migrated from SBT to Gradle since Twirl templates are widely used.
Steps to Reproduce (for bugs)

We set up a small repo to reproduce this issue: https://github.com/ymwang1984/play-on-gradle-twirl
The repo has a small file under app/views/js/ with a @JavaScript annotation in it.
Running ./sbt compile and the compiled template "target/scala-2.11/twirl/main/views/js/generic.template.scala" has the correct class "play.twirl.api.JavaScriptFormat" in it.
Running ./gradlew compilePlayBinaryPlayTwirlTemplates and the compiled template "build/src/play/binary/twirlTemplatesScalaSources/views/js/generic.template.scala" has the incorrect class "play.twirl.api.HtmlFormat" in it. This difference causes rendering issues.
The reporter inside my organization suggests that it may be caused by the following:
SBT includes more format here
However, Gradle only accepts one format which is html here
Your Environment

Build scan URL:

The issue can be reproduced in both Mac (OS Sierra) and Linux (Red Hat).

@big-guy Please let me know if you need more information. Thank you in advance!

Thanks @ymwang1984 -- great investigation.
Would you be interested in submitting a PR to add the other formats?
It would look something like:

Add a templateFormats property to TwirlCompile with the defaults as in sbt.  It can be read-only for now.
Wire templateFormats into DefaultTwirlCompileSpec.
From TwirlCompiler and VersionedTwirlCompilerAdapter, use templateFormats from TwirlCompileSpec to select the correct format vs the hardcoded HtmlFormat.
Adapt your example into a integration test and/or update our samples to use something other than HTML. (see TwirlCompileIntegrationTest)

@big-guy
Thank you for the reply! I will look a bit into it but there may be a bigger problem for Twirl for my company's use case.
In my company, there is a custom Twirl template called "stream". Many front-end applications use it so I am afraid we need to support custom template formats (read-only may not be good enough).
The code for the "stream" Twirl template is something like this (in SBT's Build.scala):
import play.twirl.sbt.Import.TwirlKeys
......
.settings(TwirlKeys.templateFormats += ("stream" -> "com.linkedin.some.custom.format.class"))
.settings(TwirlKeys.templateImports ++= Seq("com.linkedin.some.custom.import.class._", "com.linkedin.some.other.custom.import.class._"))
Let me see if I can form a minimal repo to demonstrate this use case. But it looks like Gradle's Play plugin has to support custom Twirl templates as SBT does. So just a heads-up.

Yep, it's not a problem to add custom templates as a second step.  I would just like to get it working with the built-in types first.  We may want to model the custom template formats better, so it's best to keep it separate initially.

@ymwang1984 Could you open a new issue that describes what you need to support your custom template format? If you can make a simple example for a custom template that works with SBT, I can adapt that into an integration test.
Based on your comment in https://github.com/gradle/gradle/issues/2566#issuecomment-318917827, I think we need to be able to specify an extension, an implementation type and possibly a set of additional imports.  We can work out the details for that in the new issue.

@big-guy
Thank you for reply. I will open a new issue tomorrow about supporting custom format.
I updated the repo  https://github.com/ymwang1984/play-on-gradle-twirl
In it, the project registers "sh" extension with HTML format like this:
import play.twirl.sbt.Import.TwirlKeys
lazy val root = (project in file("."))   .enablePlugins(PlayJava)   .settings(TwirlKeys.templateFormats += ("sh" -> "play.twirl.api.HtmlFormat"))   .settings(TwirlKeys.templateImports ++= Seq("java.util.Random", "java.util.Map"))
I put a dummy sh file "demo.scala.sh" under "app/views".
Also I specified templateImports to always include "java.util.Random" and "java.util.Map" in the generated code. When we check all generate Scala files under "target/scala-2.11/twirl", those two import statements are always included.
In the end, the repo is still using a built-in format. But it should be a good start. I will see if I could find open source twirl templates to truly differ from built-in twirl formats. Or I can ask our internal teams to abstract a simple version of the custom stream format.

Thanks, I think we'll want a simple example that uses a custom format so that we know we're passing the right classpath to the Twirl compiler.
Here's an example I found: https://vlarsen.wordpress.com/2014/04/08/custom-format-in-the-play-framework-templating-engine-example/

Agreed. The example you gave is for Play 2.2 which I cannot use directly (Play 2.4).
I am not a Twirl user myself so I just added a "dummy" custom template called "CSV".
https://github.com/ymwang1984/play-on-gradle-twirl/blob/master/app/views/Csv.scala
And build.sbt:
https://github.com/ymwang1984/play-on-gradle-twirl/blob/master/build.sbt#L9

@big-guy  I opened another issue: https://github.com/gradle/gradle/issues/2670


text:
WARNING: An illegal reflective access operation has occurred (Gradle, Java 9, Windows 10)

input command gradle -version (Windows 10)
Expected Behavior

Gradle 4.2.1
Build time:   2017-10-02 15:36:21 UTC
Revision:     a88ebd6be7840c2e59ae4782eb0f27fbe3405ddf
Groovy:       2.4.12
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          9 (Oracle Corporation 9+181)
OS:           Windows 10 10.0 amd64
C:\Windows\system32>java -version
java version "9"
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)
Current Behavior

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/C:/gradle/lib/groovy-all-2.4.12.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

Gradle 4.2.1
Build time:   2017-10-02 15:36:21 UTC
Revision:     a88ebd6be7840c2e59ae4782eb0f27fbe3405ddf
Groovy:       2.4.12
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          9 (Oracle Corporation 9+181)
OS:           Windows 10 10.0 amd64
C:\Windows\system32>java -version
java version "9"
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)
Context

trying to build projects with gradle using java 9 wondering is this will be a problem
Steps to Reproduce (for bugs)

no current project
Your Environment

Build scan URL:

Please see #2995 for more details and solution.

The linked ticket contains a workaround, but not really a solution. The real issue is a problem in the JDK. There is actually no illegal access, but the JDK method trySetAccessible is misbehaving. This will hopefully be fixed in a future JDK version.

https://issues.apache.org/jira/browse/GROOVY-8339 is the Groovy Ticket which is tracking the issue

So, as much as we could pass this off to the JDK for being silly, I think it's totally within our power to simply output a version number without seeing an error. We don't need Reflection in order to spit out a version...right?

Not sure what you mean. Why would we invest in a fix that only works for gradle -version when every other task or command will still print the warning?

Odd, I don't get it on other commands:
[2018-03-09T15:20:22-0700]: mitchell.ludwig@Mitchells-MacBook-Pro:~/dev/playgradle
$ gradle -version
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/usr/local/Cellar/gradle/4.6/libexec/lib/groovy-all-2.4.12.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

------------------------------------------------------------
Gradle 4.6
------------------------------------------------------------

Build time:   2018-02-28 13:36:36 UTC
Revision:     8fa6ce7945b640e6168488e4417f9bb96e4ab46c

Groovy:       2.4.12
Ant:          Apache Ant(TM) version 1.9.9 compiled on February 2 2017
JVM:          9.0.4 (Oracle Corporation 9.0.4+11)
OS:           Mac OS X 10.13.3 x86_64

[2018-03-09T15:20:30-0700]: mitchell.ludwig@Mitchells-MacBook-Pro:~/dev/playgradle
$ gradle wrapper
Starting a Gradle Daemon (subsequent builds will be faster)

BUILD SUCCESSFUL in 5s
1 actionable task: 1 up-to-date
[2018-03-09T15:20:41-0700]: mitchell.ludwig@Mitchells-MacBook-Pro:~/dev/playgradle
$ cat build.gradle
plugins {
    id "base"
}

version '1.0-SNAPSHOT'

apply plugin: 'java'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

task copy(type: Copy, group: "Custom", description: "Copies sources to the dest directory") {
    from "src"
    into "dest"
}

task zip(type: Zip, group: "Archive", description: "Archives sources in a zip file") {
    from "src"
}
[2018-03-09T15:20:49-0700]: mitchell.ludwig@Mitchells-MacBook-Pro:~/dev/playgradle
$ gradle copy

BUILD SUCCESSFUL in 0s
1 actionable task: 1 up-to-date
[2018-03-09T15:20:59-0700]: mitchell.ludwig@Mitchells-MacBook-Pro:~/dev/playgradle
$

That is surprising indeed. Last time I checked this always happened when the Groovy Runtime was loaded (i.e. on every build). Thanks for checking!

I got the same issue under MacOS
bash-3.2$ gradle -v
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/usr/local/Cellar/gradle/4.6/libexec/lib/groovy-all-2.4.12.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

------------------------------------------------------------
Gradle 4.6
------------------------------------------------------------

Build time:   2018-02-28 13:36:36 UTC
Revision:     8fa6ce7945b640e6168488e4417f9bb96e4ab46c

Groovy:       2.4.12
Ant:          Apache Ant(TM) version 1.9.9 compiled on February 2 2017
JVM:          9 (Oracle Corporation 9+181)
OS:           Mac OS X 10.12.6 x86_64

bash-3.2$ java -version
java version "9"
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)

92:~ macbookairmd760$ cd
192:~ macbookairmd760$ gradle -v
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/usr/local/Cellar/gradle/4.6/libexec/lib/groovy-all-2.4.12.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

Gradle 4.6
Build time:   2018-02-28 13:36:36 UTC
Revision:     8fa6ce7945b640e6168488e4417f9bb96e4ab46c
Groovy:       2.4.12
Ant:          Apache Ant(TM) version 1.9.9 compiled on February 2 2017
JVM:          9.0.4 (Oracle Corporation 9.0.4+11)
OS:           Mac OS X 10.13.3 x86_64
192:~ macbookairmd760$

Maybe something is specific to OSX? I'm on High Sierra. Maybe it's high? :P

Uninstalling java-9 and installing java-8 solved my issue

Same issue on Windows 10 with IntelliJ
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/C:/Users/Lane/.gradle/wrapper/dists/gradle-4.6-bin/4jp4stjndanmxuerzfseyb6wo/gradle-4.6/lib/groovy-all-2.4.12.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

Gradle 4.6
Build time:   2018-02-28 13:36:36 UTC
Revision:     8fa6ce7945b640e6168488e4417f9bb96e4ab46c
Groovy:       2.4.12
Ant:          Apache Ant(TM) version 1.9.9 compiled on February 2 2017
JVM:          9.0.4 (Oracle Corporation 9.0.4+11)
OS:           Windows 10 10.0 amd64

Gradle 4.7
/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home/bin/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:51218,suspend=y,server=n --illegal-access=permit -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=51217 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=127.0.0.1 -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -javaagent:/Users/donhuvy/Library/Caches/IntelliJIdea2018.1/groovyHotSwap/gragent.jar -javaagent:/Users/donhuvy/Library/Caches/IntelliJIdea2018.1/captureAgent/debugger-agent.jar=file:/private/var/folders/lj/tgdhz0mx5t54vglcc8982vbc0000gn/T/capture.props -Dfile.encoding=UTF-8 -classpath "/Users/donhuvy/Documents/source_code/github.com/donhuvy/accounting/out/production/classes:/Users/donhuvy/Documents/source_code/github.com/donhuvy/accounting/out/production/resources:/Users/donhuvy/.m2/repository/org/springframework/boot/spring-boot-starter-actuator/2.0.1.RELEASE/spring-boot-starter-actuator-2.0.1.RELEASE.jar:/Users/donhuvy/.m2/repository/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar:/Users/donhuvy/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/8.5.29/tomcat-embed-core-8.5.29.jar:/Users/donhuvy/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/8.5.29/tomcat-embed-el-8.5.29.jar:/Users/donhuvy/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/8.5.29/tomcat-embed-websocket-8.5.29.jar:/Users/donhuvy/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/2.0.1.RELEASE/spring-boot-starter-tomcat-2.0.1.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/boot/spring-boot-starter-data-jpa/2.0.1.RELEASE/spring-boot-starter-data-jpa-2.0.1.RELEASE.jar:/Users/donhuvy/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-security/2.0.1.RELEASE/d573123d27bc3c7333fbc352eced092737c7303f/spring-boot-starter-security-2.0.1.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/boot/spring-boot-starter-web/2.0.1.RELEASE/spring-boot-starter-web-2.0.1.RELEASE.jar:/Users/donhuvy/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-thymeleaf/2.0.0.RELEASE/3f77dc6b3bfa8e9cc9e0eaa9abc32c5b00b5046a/spring-boot-starter-thymeleaf-2.0.0.RELEASE.jar:/Users/donhuvy/.m2/repository/com/oracle/ojdbc7/12.1.0.1/ojdbc7-12.1.0.1.jar:/Users/donhuvy/.m2/repository/javax/xml/bind/jaxb-api/2.3.0/jaxb-api-2.3.0.jar:/Users/donhuvy/.gradle/caches/modules-2/files-2.1/com.sun.xml.bind/jaxb-core/2.3.0/d044c784e41d026778693fb44a8026c1fd9a7506/jaxb-core-2.3.0.jar:/Users/donhuvy/.gradle/caches/modules-2/files-2.1/com.sun.xml.bind/jaxb-impl/2.3.0/3a3c6a62719d967175b76b63925f1fb495f11437/jaxb-impl-2.3.0.jar:/Users/donhuvy/.m2/repository/org/thymeleaf/extras/thymeleaf-extras-java8time/3.0.1.RELEASE/thymeleaf-extras-java8time-3.0.1.RELEASE.jar:/Users/donhuvy/.gradle/caches/modules-2/files-2.1/org.thymeleaf.extras/thymeleaf-extras-conditionalcomments/2.1.2.RELEASE/d188a0c94614956d79644b71bdd05098fa4d6a3/thymeleaf-extras-conditionalcomments-2.1.2.RELEASE.jar:/Users/donhuvy/.m2/repository/org/thymeleaf/extras/thymeleaf-extras-springsecurity4/3.0.2.RELEASE/thymeleaf-extras-springsecurity4-3.0.2.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/boot/spring-boot-starter-aop/2.0.1.RELEASE/spring-boot-starter-aop-2.0.1.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/boot/spring-boot-starter-jdbc/2.0.1.RELEASE/spring-boot-starter-jdbc-2.0.1.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/boot/spring-boot-starter-json/2.0.1.RELEASE/spring-boot-starter-json-2.0.1.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/boot/spring-boot-devtools/2.0.1.RELEASE/spring-boot-devtools-2.0.1.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/boot/spring-boot-starter/2.0.1.RELEASE/spring-boot-starter-2.0.1.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/boot/spring-boot-actuator-autoconfigure/2.0.1.RELEASE/spring-boot-actuator-autoconfigure-2.0.1.RELEASE.jar:/Users/donhuvy/.m2/repository/io/micrometer/micrometer-core/1.0.3/micrometer-core-1.0.3.jar:/Users/donhuvy/.m2/repository/org/hibernate/hibernate-core/5.2.16.Final/hibernate-core-5.2.16.Final.jar:/Users/donhuvy/.m2/repository/javax/transaction/javax.transaction-api/1.2/javax.transaction-api-1.2.jar:/Users/donhuvy/.m2/repository/org/springframework/data/spring-data-jpa/2.0.6.RELEASE/spring-data-jpa-2.0.6.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/spring-aspects/5.0.5.RELEASE/spring-aspects-5.0.5.RELEASE.jar:/Users/donhuvy/.gradle/caches/modules-2/files-2.1/org.springframework.security/spring-security-config/5.0.4.RELEASE/355fc8c3d1c61fe85915082587946ad346250d85/spring-security-config-5.0.4.RELEASE.jar:/Users/donhuvy/.gradle/caches/modules-2/files-2.1/org.springframework.security/spring-security-web/5.0.4.RELEASE/bd2592c928d043f70742fd8ae409f751a63132dd/spring-security-web-5.0.4.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/spring-webmvc/5.0.5.RELEASE/spring-webmvc-5.0.5.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.0.1.RELEASE/spring-boot-autoconfigure-2.0.1.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/boot/spring-boot-actuator/2.0.1.RELEASE/spring-boot-actuator-2.0.1.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/boot/spring-boot/2.0.1.RELEASE/spring-boot-2.0.1.RELEASE.jar:/Users/donhuvy/.gradle/caches/modules-2/files-2.1/org.springframework.security/spring-security-core/5.0.4.RELEASE/f2924cd62fa8b14546b2b3c31dcd9e55abf9a5e/spring-security-core-5.0.4.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/spring-context/5.0.5.RELEASE/spring-context-5.0.5.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/spring-aop/5.0.5.RELEASE/spring-aop-5.0.5.RELEASE.jar:/Users/donhuvy/.m2/repository/org/hibernate/validator/hibernate-validator/6.0.9.Final/hibernate-validator-6.0.9.Final.jar:/Users/donhuvy/.m2/repository/org/springframework/spring-web/5.0.5.RELEASE/spring-web-5.0.5.RELEASE.jar:/Users/donhuvy/.m2/repository/org/thymeleaf/thymeleaf-spring5/3.0.9.RELEASE/thymeleaf-spring5-3.0.9.RELEASE.jar:/Users/donhuvy/.m2/repository/org/thymeleaf/thymeleaf/3.0.9.RELEASE/thymeleaf-3.0.9.RELEASE.jar:/Users/donhuvy/.m2/repository/com/zaxxer/HikariCP/2.7.8/HikariCP-2.7.8.jar:/Users/donhuvy/.m2/repository/org/springframework/data/spring-data-commons/2.0.6.RELEASE/spring-data-commons-2.0.6.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/boot/spring-boot-starter-logging/2.0.1.RELEASE/spring-boot-starter-logging-2.0.1.RELEASE.jar:/Users/donhuvy/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar:/Users/donhuvy/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.10.0/log4j-to-slf4j-2.10.0.jar:/Users/donhuvy/.m2/repository/org/slf4j/jul-to-slf4j/1.7.25/jul-to-slf4j-1.7.25.jar:/Users/donhuvy/.m2/repository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar:/Users/donhuvy/.m2/repository/org/attoparser/attoparser/2.0.4.RELEASE/attoparser-2.0.4.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/spring-orm/5.0.5.RELEASE/spring-orm-5.0.5.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/spring-jdbc/5.0.5.RELEASE/spring-jdbc-5.0.5.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/spring-tx/5.0.5.RELEASE/spring-tx-5.0.5.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/spring-beans/5.0.5.RELEASE/spring-beans-5.0.5.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/spring-expression/5.0.5.RELEASE/spring-expression-5.0.5.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/spring-core/5.0.5.RELEASE/spring-core-5.0.5.RELEASE.jar:/Users/donhuvy/.m2/repository/org/yaml/snakeyaml/1.19/snakeyaml-1.19.jar:/Users/donhuvy/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.5/jackson-datatype-jsr310-2.9.5.jar:/Users/donhuvy/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9.5/jackson-datatype-jdk8-2.9.5.jar:/Users/donhuvy/.m2/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.9.5/jackson-module-parameter-names-2.9.5.jar:/Users/donhuvy/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.9.5/jackson-databind-2.9.5.jar:/Users/donhuvy/.m2/repository/org/hdrhistogram/HdrHistogram/2.1.10/HdrHistogram-2.1.10.jar:/Users/donhuvy/.m2/repository/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar:/Users/donhuvy/.m2/repository/org/aspectj/aspectjweaver/1.8.13/aspectjweaver-1.8.13.jar:/Users/donhuvy/.m2/repository/org/hibernate/common/hibernate-commons-annotations/5.0.1.Final/hibernate-commons-annotations-5.0.1.Final.jar:/Users/donhuvy/.m2/repository/org/jboss/logging/jboss-logging/3.3.2.Final/jboss-logging-3.3.2.Final.jar:/Users/donhuvy/.m2/repository/org/hibernate/javax/persistence/hibernate-jpa-2.1-api/1.0.0.Final/hibernate-jpa-2.1-api-1.0.0.Final.jar:/Users/donhuvy/.m2/repository/ognl/ognl/3.1.12/ognl-3.1.12.jar:/Users/donhuvy/.m2/repository/org/javassist/javassist/3.22.0-GA/javassist-3.22.0-GA.jar:/Users/donhuvy/.m2/repository/antlr/antlr/2.7.7/antlr-2.7.7.jar:/Users/donhuvy/.m2/repository/org/jboss/jandex/2.0.3.Final/jandex-2.0.3.Final.jar:/Users/donhuvy/.m2/repository/com/fasterxml/classmate/1.3.4/classmate-1.3.4.jar:/Users/donhuvy/.m2/repository/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar:/Users/donhuvy/.m2/repository/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar:/Users/donhuvy/.m2/repository/org/unbescape/unbescape/1.1.5.RELEASE/unbescape-1.1.5.RELEASE.jar:/Users/donhuvy/.m2/repository/org/springframework/spring-jcl/5.0.5.RELEASE/spring-jcl-5.0.5.RELEASE.jar:/Users/donhuvy/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar:/Users/donhuvy/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.9.5/jackson-core-2.9.5.jar:/Users/donhuvy/.m2/repository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar:/Users/donhuvy/.m2/repository/org/apache/logging/log4j/log4j-api/2.10.0/log4j-api-2.10.0.jar:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar" com.donhuvy.AccountingApplication
Connected to the target VM, address: '127.0.0.1:51218', transport: 'socket'
The Class-Path manifest attribute in /Users/donhuvy/.gradle/caches/modules-2/files-2.1/com.sun.xml.bind/jaxb-core/2.3.0/d044c784e41d026778693fb44a8026c1fd9a7506/jaxb-core-2.3.0.jar referenced one or more files that do not exist: file:/Users/donhuvy/.gradle/caches/modules-2/files-2.1/com.sun.xml.bind/jaxb-core/2.3.0/d044c784e41d026778693fb44a8026c1fd9a7506/jaxb-api.jar
The Class-Path manifest attribute in /Users/donhuvy/.gradle/caches/modules-2/files-2.1/com.sun.xml.bind/jaxb-impl/2.3.0/3a3c6a62719d967175b76b63925f1fb495f11437/jaxb-impl-2.3.0.jar referenced one or more files that do not exist: file:/Users/donhuvy/.gradle/caches/modules-2/files-2.1/com.sun.xml.bind/jaxb-impl/2.3.0/3a3c6a62719d967175b76b63925f1fb495f11437/jaxb-core.jar
22:50:24.905 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Included patterns for restart : []
22:50:24.908 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Excluded patterns for restart : [/spring-boot-starter-[\w-]+/, /spring-boot/target/classes/, /spring-boot-starter/target/classes/, /spring-boot-devtools/target/classes/, /spring-boot-actuator/target/classes/, /spring-boot-autoconfigure/target/classes/]
22:50:24.908 [main] DEBUG org.springframework.boot.devtools.restart.ChangeableUrls - Matching URLs for reloading : [file:/Users/donhuvy/Documents/source_code/github.com/donhuvy/accounting/out/production/classes/, file:/Users/donhuvy/Documents/source_code/github.com/donhuvy/accounting/out/production/resources/]

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.0.1.RELEASE)

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.springframework.cglib.core.ReflectUtils$1 (file:/Users/donhuvy/.m2/repository/org/springframework/spring-core/5.0.5.RELEASE/spring-core-5.0.5.RELEASE.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of org.springframework.cglib.core.ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

Happens with me running Java 10 on Ubuntu 18:04 Lts

It happens with Maven too, not a Gradle issue per se...

Happens with me running Gradle 4.9 on Java 10 SDK with Windows 10 Pro

In case of org.codehaus.groovy.reflection.CachedClass it's a Groovy issue and we'll have to update our Gradle version as soon as there's one that does not produce this warning anymore.
@volare2016 org.apache.poi.util.SAXHelper does not sound like it's called from Gradle core. Where does read.xlsx() come from, a plugin?

As explained several times, this is a Groovy issue and can't be fixed by Gradle.

@oehme / @marcphilipp  it probably makes sense to lock the issue (believe you can do that in GitHub)

when I use the netty, the situation also happend ,I am trying to change the jdk

Get same issue on Ubuntu 16.04LTS
Use gradle -v get warning msg:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/usr/local/gradle/gradle-4.10/lib/groovy-all-2.4.15.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

------------------------------------------------------------
Gradle 4.10
------------------------------------------------------------

Build time:   2018-08-27 18:35:06 UTC
Revision:     ee3751ed9f2034effc1f0072c2b2ee74b5dce67d

Kotlin DSL:   1.0-rc-3
Kotlin:       1.2.60
Groovy:       2.4.15
Ant:          Apache Ant(TM) version 1.9.11 compiled on March 23 2018
JVM:          10.0.1 ("Oracle Corporation" 10.0.1+10)
OS:           Linux 4.15.0-33-generic amd64

and JDK version is:
java 10.0.1 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)

Happens with me when I use Mybatis Plus. I solved this problem by update  Mybatis Plus Version to 3.2.0.

Just recceived a similar error with gradle 7.0.2, Apache Spark and Java 11

authors: Spidermain50 VladyslavKurmaz actionsl blindpirate bw-smarkwell chongiscool donhuvy freesOcean ghost jmaciasluque lanegoolsby maludwig marcphilipp oehme stevematdavies yysofiyan yzrds


text:
Feature request: Provide hooks in Gradle to support customizing a fork.

I had a scenario where I had a Test task with "forkEvery 1" and I wanted to provided a different system property per JVM.
In Gradle 4.2 and 4.3.1 I was able to do this by extending Test and then overriding the copyTo method.
You can see a toy example here:
https://github.com/4n00p/mastering-gradle/blob/master/CustomCopyTo/
In this example I extend Test with MyTestTask.
If you run "gradle my_test" with Gradle 4.2, you can see copyTo is called twice and that each JUnit class (" LoginTest")/JVM gets its own uuid value "my_uuid".
> Task :CustomCopyToSubProject:my_test
MyTestTask copyTo: my_uuid=c38243eb-536c-4f4f-b89e-3f27da54f6f7

ch3.LoginTest2 > testUserName2 STANDARD_OUT
    LoginTest2.java: Testing Login !  >>---> my_uuid=c38243eb-536c-4f4f-b89e-3f27da54f6f7 common_uuid=1e95954b-f5a0-4926-853b-a1f232c2b862

MyTestTask copyTo: my_uuid=2a2e9c6f-d599-4a84-ad8d-12ffd4de1d35

ch3.LoginTest1 > testUserName1 STANDARD_OUT
    LoginTest1.java: Testing Login !  >>---> my_uuid=2a2e9c6f-d599-4a84-ad8d-12ffd4de1d35 common_uuid=1e95954b-f5a0-4926-853b-a1f232c2b862

In Gradle 4.7 "copyTo" is called just once, even with "forkEvery 1".
> Task :CustomCopyToSubProject:my_test
MyTestTask copyTo: my_uuid=bbba2c0b-c233-438f-bac0-317a87b48f0a

ch3.LoginTest2 > testUserName2 STANDARD_OUT
    LoginTest2.java: Testing Login !  >>---> my_uuid=bbba2c0b-c233-438f-bac0-317a87b48f0a common_uuid=5cf6bf14-0a75-49b2-a6cf-207667fc1c24

ch3.LoginTest1 > testUserName1 STANDARD_OUT
    LoginTest1.java: Testing Login !  >>---> my_uuid=bbba2c0b-c233-438f-bac0-317a87b48f0a common_uuid=5cf6bf14-0a75-49b2-a6cf-207667fc1c24

I brought this issue up here:
https://discuss.gradle.org/t/how-to-assign-environment-variable-such-that-no-test-running-at-the-same-time-has-the-same-value/25732/1
and it was suggested that Gradle officially support this notion by adding the following methods to the Test task.
beforeFork(Action<JavaForkOptions> action)
afterFork(Action<JavaForkOptions> action)

Expected Behavior
It would be nice if Gradle supported different system properties per test JVM and, in general, something like:
beforeFork(Action<JavaForkOptions> action)
afterFork(Action<JavaForkOptions> action)

Current Behavior
In Gradle 4.2, the JavaForkOptions object is copied for each fork. I was able to work around this by overriding the Test.copyTo method. In Gradle 4.7, the Test.copyTo method is called only once, even with multiple forks.
Context
I've had situations where I needed a different DISPLAY variable and/or java.io.tmpdir per JVM.
Steps to Reproduce (for bugs)
Please look at my project here:
https://github.com/4n00p/mastering-gradle/blob/master/CustomCopyTo/

It's not exactly what you requested, but it solves the use case you were referring to. I.e. you can start one X server per test VM, assigning a port based on the worker system property.

That works for some use cases, but if I have multiple Gradle executions running on the same continuous integration server, there might be collisions resulting from the value of System.getProperty('org.gradle.test.worker') .  That value is just an increasing sequence of longs.
Even if that system property were unique, and there were no concern over collisions, the DISPLAY variable or test directory creation (another example) must be done in the JUnit code, as there are no "hooks" into the Gradle framework.  Having beforeFork/afterFork would give more flexibility with respect to modifying a system property and  "setup" code in general.  This additional flexibility would be welcomed by those who use Gradle to manage legacy code.

Uniqueness can be achieved by setting another system property based on the Gradle invocation. We used to do the same for our own infrastructure back when we had mutliple agents running on the same machine.
Test frameworks like JUnit already provide extension mechanisms that allow you to transparently hook in before/after the whole test suite and start/stop services for instance. I don't think we should duplicate these capabilities in Gradle.

Hi @oehme, it's Gradle which is managing the setup/teardown of the fork. I'm not sure there's a hook/event in junit to perform a setup/teardown action per fork. Can you please tell me which junit event a developer could hook into (eg to start/stop a server per fork)
Please note that I don't want to use a junit suite

The "event" is the start and stop of the VM, so you can simply use a singleton and a shutdown hook. Some test frameworks like JUnit 5 also allow you to hook into "before all tests" and "after all tests", which is cleaner.

Eew! Singletons!
I'm currently working on a codebase with mutable static state which bleeds from one test to another, often causing hard to reproduce failures.
Actively encouraging singletons feels like a bad idea to me. I'd much prefer gradle to provide the hooks.

As I said, JUnit 5 already has a hook for you (and it runs JUnit 4 tests as well). We won't get into the business of duplicating things that test frameworks already do.

Those are for client-side logging/reporting, not to control the test environment.

I'll give up now

The point is not to make you "give up", but to find out if there is actually anything missing. Right now I don't understand why you insist on a hook in Gradle when the test framework already provides a hook for you. We don't want to spend engineering time on solved problems and creating multiple ways of achieving the same thing.

@oehme lets say I want to have a pool of 4 "ids" which I will be assigning as a System property to the jvm fork, so the gradle part should be managing this pool by marking them as "in use" and freeing them when needed.
I fail to see how to implement this without the OPs suggestions.
I am aware I could easily achieve this from the junit5 side, but this code is preparation of environment, and should not be in production code or test source. For instance, running the test locally doesn't have to have such a complicated logic, and it can just be hard coded to "1".
Any ideas? thanks!

@oehme I am trying to generate a TypeScript client using OpenAPI where I also need to use a reserved port for the server (see).
Could my issue be related to this?

@oehme I am trying to generate a TypeScript client using OpenAPI where I also need to use a reserved port for the server (see).
Could my issue be related to this?

authors: 4n00p falk-stefan oehme rupebac uklance


text:
Don't keep compiler daemons alive on Windows

Unfortunately, our memory tracking is lacking on Windows and this can cause major issues.

@bot-gradle test this

I've triggered the following builds for you. Click here to see all build failures.

PullRequestFeedback build

@bot-gradle test this

I've triggered the following builds for you. Click here to see all build failures.

PullRequestFeedback build

@bot-gradle test and merge

Your PR is queued. See the queue page for details.

I've triggered a build for you. Click here to see all failures if there's any.

Your PR is queued. See the queue page for details.

Pre-tested commit build failed. Click here to see all build failures.

I've triggered a build for you. Click here to see all failures if there's any.

authors: bot-gradle octylFractal


text:
Introduce execution time value for FixedFileCollection

Part of https://github.com/gradle/gradle/issues/28820

@bot-gradle test acc

I've triggered the following builds for you. Click here to see all build failures.

AllConfigCacheTestsPullRequestFeedback build


text:
Don't run coordinator on ec2

Context
Our H2 performance database has an ancient configuration and is incompatible with JDK11.0.2. We're using a patched JDK11.0.2 version (https://github.com/gradle/gradle-private/issues/1861) on Hetzner agents. But EC2 agents are not patched, performance coordinator builds will fail on EC2 agents. Before fixing H2 db issue, let's not run performance coordinators on EC2 agents.

Thanks @wolfs !


text:
Fix more TAPI cancellation flakiness

Context
This is a leftover of https://github.com/gradle/gradle-private/issues/1760
Depending on the point when cancellation happens, the error message can be:

Build cancelled
Daemon was stopped to handle build cancel request

In previous fix we neglected one place. This PR fixes it.

Thanks @eskatos !


text:
Creating app for static app on asp

Resolves #22

Not happy at-all about the classic asp page that provides msal configuration from asp-service settings, but merging in as a working MVP.

repo: graemefoster/QuickStart


text:
cortextool prepare produces invalid query

When running cortextool prepare on a query such as:
(sum by (node, resource) (kube_node_status_capacity{}))
          * on(node) group_left(cluster, nodepool) nodepool:node:{} < %(threshold)0.2f
      )

I'll produce
(sum by (node, resource, cluster) (kube_node_status_capacity{}))
          * on(node,cluster) group_left(cluster, nodepool) nodepool:node:{} < %(threshold)0.2f
      )

But this is invalid given: could not parse expression: 1:301: parse error: label \"cluster\" must not occur in ON and GROUP clause at once

I had another instance of this. The follow query intends to derive the cluster label
form the kube_node_annotations query. The grouping should not occur on the first part
of the query.
Intended query:
100 *
sum by (instance_id, nat_gateway_name, project_id) (
  stackdriver_gce_instance_compute_googleapis_com_nat_port_usage
) /
sum by (instance_id, nat_gateway_name, project_id) (
  stackdriver_gce_instance_compute_googleapis_com_nat_allocated_ports
)
* on(instance_id) group_left(node, cluster)
count by (instance_id, node, cluster) (
  label_replace(
   kube_node_annotations{annotation_container_googleapis_com_instance_id!=""},
   'instance_id', '$1',
   'annotation_container_googleapis_com_instance_id', '(.*)'
  )
)  > 90

This forced me to remove the cluster label from group_left(), eventually rendering
a wrong query:

100 *
sum by(instance_id, nat_gateway_name, project_id, cluster) (
  stackdriver_gce_instance_compute_googleapis_com_nat_port_usage
) /
sum by(instance_id, nat_gateway_name, project_id, cluster) (
  stackdriver_gce_instance_compute_googleapis_com_nat_allocated_ports
)
* on(instance_id, cluster) group_left(node)
count by(instance_id, node, cluster) (
  label_replace(
   kube_node_annotations{annotation_container_googleapis_com_instance_id!=""},
   "instance_id", "$1",
   "annotation_container_googleapis_com_instance_id", "(.*)"
  )
)  > 90

Perhaps we can have a HeadComment (for ex: # cortextool: skip rule aggregation to indicate the aggregation should not be applied.
wdyt?

Elaborating on @Duologic 's comments. The query is still wrong for us as the on(instance_id, **cluster**) part is causing issues - the metrics were generated in different clusters, therefore we don't want to join on the label.

authors: Duologic dohnto gotjosh

repo: grafana/cortex-tools


text:
Extend connection deadline before each multi-get operation

Fixes https://github.com/grafana/loki/issues/11345
tl;dr: When a connection is retrieved from the pool, its deadline is extended by the Timeout - this works in almost all cases, except GetMulti which issues several requests over the connection but the deadline is not extended between each because it reuses the same connection. This leads to requests timing out which should not.
I had to move the connection buffer behind an interface so I could mock out a "slow" network in the TestGetMultiDeadlineExtension test.
I don't love the idea of passing *conn down, but this was the cleanest approach I could devise that would not necessitate extensive refactoring.

@56quarters that's fair; at least the test validates that the change works so I'll remove it and the refactoring.
A refactor would be a good idea to make this code more testable, but that can be done separately

@56quarters done

repo: grafana/gomemcache


text:
DO NOT MERGE: Use latest schema API

This is just prep for an eventual bump of peer dependencies when they are released.

I have just cut a pull request which updates the peer deps to 10.2.3, however it doesn't have the defaultFieldConfig import change - would that be necessary, too?

@leventebalogh - no, this change won't be necessary. I'll close this PR in favor of yours.

authors: dprokop leventebalogh

repo: grafana/scenes


text:
Move TypeScript toggle button to MDX

We want the TypeScript toggle button to appear between the post description and the code example. Looks like moving it into MDX is the best way to do that.

@bozheville do you still have time to handle this one?

@bozheville Cool, no worries, just wanted to make sure :)

@gragland small update. It's in progress. Hope to complete it within the next week

@gragland small update. It's in progress. Hope to complete it within the next week

@bozheville Awesome, thanks for the update!

@bozheville Awesome, thanks for the update!

authors: bozheville gragland

repo: gragland/usehooks

license: Unlicense


text:
Fix typos lol

sorry I had to do this

Thanks for the pull request. If you have any other issues just let me know :+1:


text:
Horizontal scrolling in result screen broken

Has this been fixed? I can't seem to scroll the result window on Firefox.

authors: Yliaho timsuchanek

repo: graphcool/graphql-playground


text:
block_area does not work if start and/or end are on the same edge

See this route vs. this route where the block_area parameter is identical and so it is expected that the point in the middle of the road section should be avoided in both cases. Or properly document the limitation of block_area.

Thanks for reporting this, will investigate what's happening and if we can fix it.

Ok, so I debugged this issue a bit. Currently, we find edges in the graph using the LocationIndex. When we place a waypoint on an edge, we don't traverse on that edge, but we use a VirtualEdge, which is not included in the LocationIndex.
A possible solution would be to get all QueryResuls from the QueryGraph and check if we found a blockingEdge here, if yes, we have to find the corresponding VirtualEdges, which should be possible. Then we could check if the blocked point/circle/BBox intersects with this edge, if yes we block the edge.
I outlined this approach here. I don't like the added overhead, but right now I don't know a better solution? Also I think that the 10 meters are a bit heuristic and can match more than one VirtualEdge, which sometimes might be not ideal.

See this route vs. this route where the block_area parameter is identical and so it is expected that the point in the middle of the road section should be avoided in both cases.

Can't reproduce the described bug. The blocked section is avoided by both routes.

Can't reproduce the described bug. The blocked section is avoided by both routes.

Yes, maybe there was a new junction introduced in OSM but the bug wasn't fixed in GH core.

I think this is a duplicate of #1324.

authors: boldtrn karussell pa5cal

repo: graphhopper/graphhopper

license_source: bigquery


text:
Support for multiple graph extensions

Graphs should be able to have multiple extensions. Use case: storing OSM Way IDs on edges whilst using turn costs.

Please have a look at #278 and my forum post

authors: alxhill karussell


text:
insert only a proportion of unassigned jobs

Currently, the insertion heuristic tries to assign the entire set of unassigned jobs. This significantly impacts performance if there are many unassigned jobs. Therefore, the algorithm is way faster if only a proportion will be inserted, and it might have no impact on overall solution quality.

Trying to insert all of the unassigned jobs also makes it not evaluate solutions that would be better without some jobs. I myself run into this problem, and my solution was to create a Hard Constraint that randomly (with a 10% chance) blocks some insertions, thus the algorithm would also try to consider solutions that do not include some of the jobs. So I believe that this insertion of only a proportion of unassigned jobs might help in such cases also.

When using box.Jsprit one can configure the algorithm like this:
builder.setProperty(Jsprit.Parameter.MIN_UNASSIGNED, "10");
builder.setProperty(Jsprit.Parameter.PROPORTION_UNASSIGNED, "0.05");

This means that in each iteration at least 10 previously unassigned jobs are reinserted (at least the algo tries to reinsert it) and, at max,
previousSolution.getUnassignedJobs().size() * 0.05
For example, if there 400 jobs and 50 jobs are still unassigned in iteration i, then 20 out of these 50 jobs are randomly chosen to be inserted in iteration i.

authors: LCenteleghe oblonski

repo: graphhopper/jsprit


text:
Corrected entry name for blockHandlers

blockHandlers do not have function entry, but only handler

This correction needs to be propagated to translation in other languages. Since I don't understand any of those, I didn't mess with them; somebody has to do it.

@tnkrxyz yep all good, that'll get triggered when merged. Thanks!

repo: graphprotocol/docs


text:
Support more than one address per source

The subgraph.yaml schema is very poorly documented. The only place I see is here: https://thegraph.academy/developers/defining-a-subgraph/ which is a tutorial. There needs to be a dedicated reference-style document describing the schema of this file.
In particular we are trying to figure out how to define several dataSources.source values for the same ABI/mapping. We have several contracts that have the same event ABI that we want to listen to. These are not "dynamically created" from a factory, but manually deployed by us as needed
# ...
dataSources:
  - kind: ethereum/contract
    name: Gravity
    network: mainnet
    source: # support several sources here
      address: '0x2E645469f354BB4F5c8a05B3b30A929361cf77eC'
      abi: Gravity
      startBlock: 6175244
    mapping:
# ...

Otherwise we have to duplicate a lot of code in subgraph.yaml just to listen to one more address.

I think this could be solved exclusively on graph-cli by manifest templating. Perhaps networks.json could support providing an array of addresses, and would then generate one data source definition for each address.

@leoyvens I like that a lot, perhaps I prematurely transferred this issue 🤔
@evaporei I think this could indeed be happen - only at deploy time, or also in build?

@azf20 @leoyvens SHould this issue be moved back into graph-tooling? I like this idea:

I think this could be solved exclusively on graph-cli by manifest templating. Perhaps networks.json could support providing an array of addresses, and would then generate one data source definition for each address.

That would simplify our config a lot.

authors: KholdStare azf20 leoyvens

repo: graphprotocol/graph-node


text:
Discussion: implement the platform-specific clients as a wrapper around surf?

It would need to be a wrapper - request and response configuration do not vary, and we want to link variables, queries and response shapes.
We would get:

an independently maintained http client stack
cross-platform support (web and native for now) out of the box

Cons:

As far as I am aware of, surf is async-first. We might still want to provide a sync client for convenience

@tomhoule Is the platform-specific client you are referring to now referring to the graphql_client_web?

So I think we could replace the web client we have now with something more robust and maintained by other people, and at the same time this would give us a native HTTP client. That way we only need to interface with a single library (surf).

and at the same time this would give us a native HTTP client.

At present, users can send requests using their favorite client library, but does that mean that we will provide a feature build that includes clients?

Yes it should definitely be a feature (on by default or opt-in, I'm not sure). Users should definitely have access to the current API too in my opinion.

I think that it is a good configuration that there is room for the current user to select the client library by himself.
If you do not add a new function with the client, I think that the built-in client can be opt-in.

authors: h-michael tomhoule

repo: graphql-rust/graphql-client


text:
fix IncompleteArray issue

Fix https://github.com/grasph/wrapit/issues/22

thanks for the fix.

authors: grasph t-bltg

repo: grasph/wrapit


text:
support dogecoin

Reticketing from #2048 to avoid spamming people.

---
There is a **[$15 open bounty](https://www.bountysource.com/issues/4040573-support-dogecoin?utm_campaign=plugin&utm_content=tracker%2F85909&utm_medium=issues&utm_source=github)** on this issue. Add to the bounty at [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F85909&utm_medium=issues&utm_source=github).

Closing since any cryptocurrency now needs to run through another service.

license: mit


text:
Include team members in MassPay

⬑ #3994
← #4113 (diff)
TODO

[x] rebase once #4113 lands
[ ] pay out even after leaving a team—https://github.com/gratipay/gratipay.com/pull/4111#discussion_r77167304
[ ] only pay out w/ verified identity—https://github.com/gratipay/gratipay.com/pull/4111#discussion_r77167875

Hmm ... this test is failing at Travis (even after a restart) but not locally.

A clue! Picard's balance is 0; locally it's 100.

Hunch: it's something to do with a network call during payday.

Yeah, looks like we're hung up on a VCR call. Hmm ..

Why does that fail at Travis but not locally?

Suuuuuure looks like there's a <Request (POST) https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions> ...

Here's one with the right amount. Maybe the participant_id is off?

Well, it's 2 on Travis, and it's 4 in that cassette, but it's also 2 locally. Hmm ...

Time to bring out the HTTP debug helper! 🙀

Dorp. Constraining to just the one test fixed it! Hmm ...

Alright, here's output from e9db11cc625fb07b0b54c2b47967edfecd821ef6 ... let's compare ...

Looks like it's a bleedthrough from another test. Trying to narrow it down ...

Gosh, now we're getting weird different errors.

Alright, this is a mess. 😞
More later!

This morning it is looking like I just needed to regenerate the relevant test fixture. Let's see if Travis is happy with 59dd4eeeb22b0db135883ab06b71fffadc1da89e (i.e., only one failing test instead of two).

Yesssss. Travis looks good for 8f3a751776b201bd113ddea3dbe14adf2507d068.

Ready for review! (Includes #4102.)

I split out some noisy testing refactors into #4113.

Rebased on latest #4102 → #4113, previous head was 5eb409489b8969295b34cb23e61510980849ba8a.

Rebased on master post-#4113. Previous head was 4fc4ac64c2bbc47976eaa0207e95de02257a059d.

pay out even after leaving a team—https://github.com/gratipay/gratipay.com/pull/4111#discussion_r77167304
only pay out w/ verified identity—https://github.com/gratipay/gratipay.com/pull/4111#discussion_r77167875

I'm working on these.

I'm debugging a weird interaction amongst the new tests.

@kaguillera and I are making some progress on this. "I wouldn't exactly call it progress." —@kaguillera

Okay! Three commits coming ... one to clean up our test fixture, another to add failing tests for the two issues, and then the fixes.

Maybe ... 😩

... !

Dangit! We're back to square one with afc0ec409e0667140f7a5a2a4463f995ca921b2a: four failing tests instead of two. We may give this one more shot before punting MassPay to next week. 😞

Alright, we think the problem is simply that we weren't updating the necessary test fixture for the new failing tests.

@rohitpaulk You (or anyone else?) around to review this so we can merge and run with this today? If not @kaguillera and I may proceed anyway, since you already gave it one pass ...

Okay! Done working on this, ready for review if it's available. :-)

GREEEEEEEEEEEEEEEEEEEENNNNNNNNNN!!!!!!!!
🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀
🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀
🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀
🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀
🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀
🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀
🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀
🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀
🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀
🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀
🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀
🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀
🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀
🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀
🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀
🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀

@kaguillera and I are gonna give this another 30 minutes before merging and proceeding with MassPay  on https://github.com/gratipay/inside.gratipay.com/issues/800 ...


text:
Revise site copy to keep up with ToS changes

Part of https://github.com/gratipay/inside.gratipay.com/issues/432.

@mattbk at https://github.com/gratipay/gratipay.com/issues/4148#issuecomment-255749892:

If I get some time I'll dip into #4157 to move it along.

Cool, go for it. I started hacking locally but it's a mess.

Sometimes I forget make test.

Unfortunately I'm not sure what to do with the Aspen 302 errors.

tests/py/test_pages.py::TestPages::test_about_payments FAILED
tests/py/test_pages.py::TestPages::test_about_payroll FAILED
The command "LD_LIBRARY_PATH=/usr/local/lib make bgrun test doc" exited with 2.

:turtle: :tada:

Should we mention PayPal fees on pay out under the following?

WHAT ARE THE PAYMENT FEES?

Our credit card processor, Braintree, charges 2.9% + 30¢ per transaction. We upcharge ~users to cover this fee at cost, and Teams receive the face value of the payment. For example, we'll charge $20.91 to cover a $20 payment

"Payments" is confusing to someone new--is it money I give? Is it money I receive?  Especially at about/features/, it goes from "giving" to "payments."
Can we use a different word? "Payins"?

At the moment, "Features" reads like an FAQ and includes stuff that should be on "Pricing." Maybe "Features" could be "FAQ" (with pricing moved).
"Where do payments go?" is another confusing use of payments, because in this case it applies only to giving to the Gratipay Project.

The discussion around "Payments" nomenclature was at https://github.com/gratipay/inside.gratipay.com/issues/117. I'm okay with it, but maybe we need a ticket on breaking site copy up into

what is helpful for givers and
what is helpful for project owners

If we're going to keep this copy, then search should search projects as well:

HOW DO I GIVE MONEY?
Browse or search for a project you want to give to, and then look for the prompt.

I noticed under #4217 that we mention "open work" on CONTRIBUTING.md. We should probably revise that here as well.

Oops, crossed the streams there.

Have to go, needs to be fixed more.

crossed the streams there.

You said that was bad, Egon!

Also mentioned in readme.

I changed the base to put this in line behind #4130 for #4221.

Rebased to remove merges and reversions; was 7648e980205926244b739cb94d154c2f7d2821d8.

Well that's a first—did we run out of entropy? 😳

=================================== FAILURES ===================================
______________________________ TestHtml.test_200 _______________________________
self = <test_stats.TestHtml testMethod=test_200>
    def test_200(self):
>       fake_data.populate_db(self.db, 5, 5, 1)
tests/py/test_stats.py:84:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
gratipay/utils/fake_data.py:352: in populate_db
    payment_instructions.append(fake_payment_instruction(db, participant, team))
gratipay/utils/fake_data.py:173: in fake_payment_instruction
    ctime=faker.date_time_between(start_date)
env/lib/python2.7/site-packages/faker/providers/date_time.py:314: in date_time_between
    timestamp = random.randint(start_date, end_date)
/opt/python/2.7.12/lib/python2.7/random.py:242: in randint
    return self.randrange(a, b+1)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <random.Random object at 0xcbe670>, start = 1481307351.0
stop = 1481043792.0, step = 1, _int = <type 'int'>
_maxwidth = 9007199254740992L
    def randrange(self, start, stop=None, step=1, _int=int, _maxwidth=1L<<BPF):
        """Choose a random item from range(start, stop[, step]).

            This fixes the problem with randint() which includes the
            endpoint; in Python this is usually not what you want.

            """

        # This code is a bit messy to make it fast for the
        # common case while still doing adequate error checking.
        istart = _int(start)
        if istart != start:
            raise ValueError, "non-integer arg 1 for randrange()"
        if stop is None:
            if istart > 0:
                if istart >= _maxwidth:
                    return self._randbelow(istart)
                return _int(self.random() * istart)
            raise ValueError, "empty range for randrange()"

        # stop argument supplied.
        istop = _int(stop)
        if istop != stop:
            raise ValueError, "non-integer stop for randrange()"
        width = istop - istart
        if step == 1 and width > 0:
            # Note that
            #     int(istart + self.random()*width)
            # instead would be incorrect.  For example, consider istart
            # = -2 and istop = 0.  Then the guts would be in
            # -2.0 to 0.0 exclusive on both ends (ignoring that random()
            # might return 0.0), and because int() truncates toward 0, the
            # final result would be -1 or 0 (instead of -2 or -1).
            #     istart + int(self.random()*width)
            # would also be incorrect, for a subtler reason:  the RHS
            # can return a long, and then randrange() would also return
            # a long, but we're supposed to return an int (for backward
            # compatibility).

            if width >= _maxwidth:
                return _int(istart + self._randbelow(width))
            return _int(istart + _int(self.random()*width))
        if step == 1:
>           raise ValueError, "empty range for randrange() (%d,%d, %d)" % (istart, istop, width)
E           ValueError: empty range for randrange() (1481307351,1481043792, -263559)
/opt/python/2.7.12/lib/python2.7/random.py:218: ValueError

Not a loss of entropy, looks rather to be date-related in fake data ...

@kaguillera did warn me that we might hit something along these lines ...

The first number is bigger than the second; that should be reversed.

Related? https://github.com/joke2k/faker/issues/282

Shouldn't faker.date_time_between(start_date) have an end date as well at https://github.com/gratipay/gratipay.com/blob/fb1f57ba737271d05c63b09b1a51b8a9b3dba34e/gratipay/utils/fake_data.py#L173? I guess it defaults to now?
If that's the case, is it generating future timestamps?

Related? joke2k/faker#282

That could be the ticket: https://github.com/gratipay/gratipay.com/pull/4224#issuecomment-265289732.

Returning from #4224 ... aaaaaaaand we're green again here for some reason? ¯\_(ツ)_/¯

Rebased, was 2d177269d619c2b09cd5d770d59c14ef55c0b395.

Rebased, was 8d6fb9df6356c7fde9459980af223677624b6980.

I have moved my structural change ideas to different tickets in order to streamline this PR to just match up with ToS changes, including renaming teams to projects, and changing the direction of the marketing.

I'm satisfied. Ready for review.

Base changed ... on deck! Rebased on new base, was 830a2e8d3001b43e7d2da3fdee0711d1d64e735a.

Alright @mattbk et al., you good with the latest commits? I'm ready to go if you are ...

Looks good. I'm pushing the button.

AUP is messed up:

That happened to me at one point as well.

The "Apply for a project" button is broken for me now I think?

The "Apply for a project" button is broken for me now I think?

Due to bea29126964213a3b7f4b9f2d7d051cdb731874f, along with Travis failures. Backed that out.

Good thing I didn't push the button.

:-)
I'm going over the ToS HTML formatting ...

My Vim wasn't formatting the Markdown lists properly.
http://superuser.com/questions/236138/how-can-i-get-vim-to-indent-all-the-lines-in-a-list-item-not-just-the-second

Okay, @mattbk. How about now? :-)

@mattbk Oh! Can you try "Squash and merge" with this one? Make sure you edit the commit message to remove all of the extra messages besides the first.

/me tries to stop tinkering ... 😊

I tried in https://github.com/gratipay/gratipay.com/pull/4221/commits/d0f6b9403bf5218c11994f1e12f415a95105c9d7 via the command line because I didn't realize it could be done here...

...so I'm not sure how to make this PR reflect that.

Ah, sorry, I should've been more clear. Maybe we should rebase d0f6b9403bf5218c11994f1e12f415a95105c9d7 off of #4221, and then redo the squash-and-merge using the GitHub UI, so GitHub knows what we did?

Yeah, I'll see what I can do.

@mattbk Try git rebase -i head^^ locally, on the relax-open-work-requirement branch? That should pop up an editor with further instructions. head^^ specifies the commit two prior to head.

!m @mattbk


text:
Add automatic redirect logic

When we move or delete a docs page, we need to add a redirect to docs/config.json in a gravitational/docs submodule to prevent links to the page from 404ing. Let's find an alternative to static redirects to make it easier to implement large-scale information architecture changes. Ideally, if a redirect is missing, the docs site should do something more helpful than 404. For example:

See if there is a page on the docs site with the same leaf URL segment, indicating that we moved the page, and redirect the user there.
Redirect the user to the closest parent path segment to the desired one that has a docs page associated with it. For example, /docs/access-controls/sso/missing/ would redirect to /docs/access-controls/sso/. If there is no available parent path segment, the docs site continues walking the path tree until it hits the root docs path, /docs/.

The Docusaurus site does not support custom redirect logic like this. Closing as not planned.

repo: gravitational/docs


text:
X-Forwarded-Host without port uses protocol default and support of X-Forwarded-Port

X-Forwarded-Host without port uses protocol default and support of X-Forwarded-Port
Closes: gravitee-io/issues#3641

After a discussion with David B., I created another PR (997) to 1.30.x branch which does the same. it is up to you if you want to use this PR to get changes into master or you will do some different merge from 1.30.x to master later on (if so, you can discard this PR)


text:
[openid] OpenID Connect support

Under the scope of this issue, we must take care of the OpenID Connect core specification only.
See: http://openid.net/specs/openid-connect-core-1_0.html

Close with the 2.1.0 version and Gravitee.io AM OpenID Certification
https://www.oixnet.org/openid-certifications/graviteesource/

authors: brasseld tcompiegne


text:
Uncontrolled Checkbox Component

Please add an ability to use uncontrolled checkboxes, so that a checkbox can be used with libraries which require it to not have checked prop. For example, 'react-hook-form' with basic register solution.
Current behavior: checkbox checked prop is always set due to the fallback of defaultValue ?? false.

reproduced here https://codesandbox.io/p/sandbox/kind-thunder-q4ntyf?file=%2Fsrc%2FFakeForm.tsx%3A84%2C7

Current behavior: checkbox checked prop is always set due to the fallback of defaultValue ?? false

That's incorrect. defaultValue ?? false is set for the hook's value and checked input's attribute is only set when checked prop is set. See source code here here

I digged the problem. There is no change event on inputs when form is reset. So our styling (custom tick svg) renders stale state. The only way to fix this I see is to not relay on our state but rather on browser's internal state (:checked, :indeterminate CSS selectors) to do our styling.

authors: KalachevDev amje ivancheprasov

repo: gravity-ui/uikit


text:
[FEAT] Support for Modern Payment Providers in Checkout

:bulb: Feature request
Feature Name
Modern Payment Method Support (PCI A/A-EP)
The Desired Behavior
Currently, we don't have any supported payment methods in the @daffodil/checkout. We should support some modern payment providers.
Your Use Case
As a user, I would like to pay for my order. As a small sample, we should support at a bare minimum:

[ ] Stripe (via Stripe.js) (cc: @thorsten-stripe)
[ ] Paypal (via Braintree Payments) (cc: @crookedneighbor)
[x] Paypal (via Paypal Express)
[x] Authorize.net (via Accept.js) (cc: @brianmc)
[ ] Cybersource (via Flex Microform) (cc: @brianmc)

Others
I'll (@damienwebdev) be taking on the bulk of the implementation work. Some key considerations:

Library consumers shouldn't have to import the payment modules that they don't use.
Obviously not all ecommerce systems support all these providers, but we should at least cover the frontend side of the libraries.
In the case of Shopify, we'll have to ensure that we have good enough clarity that you shouldn't be using these libraries.

I've cc'd some devs from these companies that I can find on Github, as I think while we can probably implement this ourselves, having the original authors will probably we super helpful.
To the cc'd devs, you can ignore the cc if you'd like, but if you're curious, I'm using this to help get some uptake of your library!

@damienwebdev thanks for the tag. A couple thoughts and questions:

For Shopify you're probably best of using: https://shopify.github.io/js-buy-sdk/ . See an implementation of this here: https://github.com/gatsbyjs/store.gatsbyjs.org
For Magento 2, are you looking to use the Magento Checkout, or bypass it and only use the product/order endpoints?
In-Memory Backend: any more details on this? Server-side language; Hosting options; etc?

For Stripe, my recommendation is to use our new hosted Checkout product, which will give you many payment methods with one simple integration in the future: https://stripe.com/docs/payments/checkout
Hope this helps, and looking forward to hearing back from you.

@thorsten-stripe

Yeah, awesome never saw that, thanks for the pointer. I suspect that we may end-up doing just that. My original thought was to utilize the storefront API and work from there, but this may be a neat little way to short-circuit a lot of that development effort. My only concern here is determining how much of the library that we don't use we can tree-shake out with the compiler. If the bundle is too large, I may just write a thin layer between the frontend and the Storefront API via Apollo.

The plan here is to use the Magento REST Checkout APIs and directly work with the Order/Quote endpoints. Long term here the goal would be to utilize the GraphQL endpoints described here: https://devdocs.magento.com/guides/v2.3/graphql/

Our in-memory backend is just a simple "In Browser" memory store for quickly mocking data for a store. It's for devs only, not something a customer would ever see, so nothing to consider hosting. It serves to mock our driver calls when we're just working locally.

So would a checkout driver implementation just have to implement the interface DaffCheckoutServiceInterface here with only one method: placeOrder. Is that correct?

Is it assumed that the products will be added through an external service? The product service interface doesn't have methods for adding products.
Checking out with stripe through their REST API necessitates creating order items in the stripe DB. This would make sense to do through a stripe product driver if the service declared product creation methods.
From there you run into issues of data integrity when mixing and matching drivers; if the client chose shopify to manage their products, the library would have to ensure that changes through the shopify driver would be reflected in the stripe DB.
How should I proceed? Should I implement the stripe checkout driver agnostically and assume that the available data has what I need to checkout with stripe or should I implement additional drivers and modify service interfaces as needed?

@griest024 The flow here basically follows like this:
Typically, a user will generate a cart with their particular platform of choice (e.g. Magento, Shopify, etc). Our process will be to use the particular processor's library (Stripe, Authorize.net, Cybersource, etc., Braintree, etc) to generate a card token representation during checkout,
We'll pass this information, along with a "cart" object to the particular platform, where the order will be generated and processed. This does mean that the "ecommerce" aspects of the system will all have to be orchestrated together, e.g. if you want to use Shopify, you'll only be able to use Payment processors supported by Shopify.
At the moment, the packages that all have to be bound to the same platform are:

Product
Category
Cart
Checkout

Unfortunately, at this moment, we haven't modeled exactly how we'd want this to work generically and Demo's implementation is hardly sufficient.
@lderrickable is currently working on an Authorize.net implementation of payments that would be able to "slot" into a generic checkout, so he may be the deepest in the weeds at the moment on the generic part of this.
At the very least to proceed on this we likely need a architecture blueprint on how this would work. This would involve:

Defining an API for a generic Payment processor to implement that would allow a developer to use the payment processor agnostic to the platform(currently undefined)
Defining an API for a generic Payment processor to hook into the @dafffodil/checkout module.

@damienwebdev @lderrickable let me know if you have any questions or need any help on the Authorize.Net or CyberSource implementation.  For CyberSource I would recommend the latest version of flex.js which has a transient token much more in line with Authorize.Net & Stripe.  Also recommend the CyberSource REST APIs over any of the older SOAP versions.  Apologies for missing this thread until now.

@damienwebdev It looks like @daffodil/cart is also missing driver implementations, should I start by implementing some cart drivers?

@griest024 The cart driver is currently being worked on by @damienwebdev so probably don't make any changes there. In terms of

How should I proceed? Should I implement the stripe checkout driver agnostically and assume that the available data has what I need to checkout with stripe or should I implement additional drivers and modify service interfaces as needed?

A lot of the checkout driver is incomplete right now (I'll start doing a lot of work on it in the following couple of weeks), so probably just implement the stripe driver and assume that the available data will be there. When you're developing, try to keep in mind that the strip driver will need to follow an interface that will be as similar as possible to the interface that will be used by all other payment processors, but don't worry about following the DaffCheckoutServiceInterface because that is incomplete. Honestly, neither of us have done much thinking yet on what a payment processor will need, because we haven't worked through developing a driver for one yet (like @damienwebdev said, I'll be working on the Authorize.net one soon. Hopefully this week). So you could use your best judgement if you want to start on it now, or you could wait till I do the authorize.net driver when I'll have a bit more insight.

@brianmc I've spent some time reviewing the Magento 2 cybersource/global-payment-management@3.1.4 version and it appears to not support the Flex.js library at all, nor does it appear to support the REST API. You have anyone who you can point me to for more information?

authors: brianmc damienwebdev griest024 lderrickable thorsten-stripe

repo: graycoreio/daffodil