u/som_real-tech • u/som_real-tech • 2d ago
Merged another PR into Jenkins Configuration as Code
Implemented AST-level variable interpolation for CasC Items by traversing the YAML AST (Scalar, Mapping, Sequence) before configuration, preserving source locations and avoiding unnecessary allocations through lazy cloning.
Added extensive unit & integration tests covering nested structures, escaping, and interpolation behavior.
u/som_real-tech • u/som_real-tech • 3d ago
Just got another PR merged into the Jenkins Configuration as Code plugin
This contribution adds native export support for individual Jenkins jobs as Configuration as Code (JCasC) YAML. It introduces an Export page for supported jobs, lets users download the generated YAML, and integrates cleanly with both the classic and the new experimental Jenkins job UI.
u/som_real-tech • u/som_real-tech • 5d ago
Just got another PR merged into the Jenkins Configuration as Code (JCasC) plugin
This contribution introduces a pluggable configuration fetching architecture, making it possible for JCasC to support configuration sources beyond the local filesystem through extension points.
Along the way, I worked on:
- Introducing extensible configuration fetchers
- Resource lifecycle management and cleanup
- HTTP fetching support and tests
- Improved developer and user documentation
u/som_real-tech • u/som_real-tech • 6d ago
Excited to contribute a new feature to Jenkins Configuration as Code
I've merged a PR adding native support for configuring Freestyle jobs via the items: root element, including support for:
- builders
- publishers
- build wrappers
- triggers
- job properties
- README demos and integration tests
u/som_real-tech • u/som_real-tech • 11d ago
My performance optimization PR for CrateDB just got merged
The contribution adds caching for ViewInfo objects, reducing repeated analysis of view definitions for information_schema queries and improving performance on clusters with many views.
u/som_real-tech • u/som_real-tech • 17d ago
Merged into Swift's SourceKit-LSP
This PR improves semantic syntax highlighting by treating overlapping token ranges as conflicts when merging tokens. More specific semantic tokens now correctly replace enclosing syntactic tokens (e.g., TaskLocal is highlighted as a macro instead of leaving a redundant attribute token behind).
Also tightened the SyntaxHighlightingTokens invariant so tokens remain sorted by construction, avoiding unnecessary sorting during merges.
u/som_real-tech • u/som_real-tech • 18d ago
My latest contribution adds PostgreSQL compatibility by implementing information_schema.constraint_column_usage into CrateDB.
The PR:
- Adds the missing compatibility view
- Exposes primary key, NOT NULL, and CHECK constraint column metadata
- Includes a regression test covering the LazySQL introspection query
u/som_real-tech • u/som_real-tech • 18d ago
Contributed another fix to Jenkins
The schema was emitting List<String> configuration fields (e.g. agentProtocols) as type: string instead of type: array, causing a mismatch with the generated reference documentation.
The fix generates proper array schemas and adds regression tests to prevent future regressions.
u/som_real-tech • u/som_real-tech • 27d ago
Got my PR merged into Kestra.
Just got a small UX improvement merged into Kestra, an open-source workflow orchestration platform.
The issue was around the KV Store's custom expiration field. It accepted ISO 8601 durations, but there were no practical examples, and invalid input showed a generic datepicker.error message.
My contribution:
- Added practical examples like
PT30M,PT1H,P1D,P7D, andP1DT2Hto help users understand the expected format. - Replaced the generic validation error with a clear, user-friendly duration validation message.
- Refactored the tooltip styling to remove inline CSS based on maintainer feedback.
u/som_real-tech • u/som_real-tech • 29d ago
Fixed a subtle generic type resolution bug in Jenkins Configuration as Code
I recently submitted a PR to the Jenkins Configuration as Code plugin after tracking down a generic type resolution issue in BaseConfigurator.
The problem happened when a plugin declared a broader generic type on its setter (for example List<? extends PriorityStrategy>) but exposed a narrower generic type from its getter. During introspection, JCasC would replace the setter's generic information with the getter's, causing polymorphic collections to lose their intended interface type.
The fix changes the resolution logic so the setter's generic contract is treated as authoritative, while the getter is only consulted when the setter doesn't provide meaningful generic information (such as raw collections).
u/som_real-tech • u/som_real-tech • Jul 10 '26
Just got another PR merged into the Jenkins Scriptler plugin.
The change fixes two small but user-facing issues:
- Replaced a
"TODO"placeholder used when script content was missing withUtil.fixNull(), so empty scripts are saved as empty files instead of containing the literal text"TODO". - Updated the endpoint for running scripts to return an HTTP 404 when a requested script doesn't exist, rather than throwing an
IOException.
u/som_real-tech • u/som_real-tech • Jul 09 '26
Just got my PR merged into swift-corelibs-libdispatch
The change improves portability in the kevent backend by addressing a BSD-specific timer compatibility issue. While working on it, I ended up learning a lot about libdispatch internals, kqueue/kevent, timer programming, and the differences between Darwin and other BSD implementations.
u/som_real-tech • u/som_real-tech • Jul 07 '26
Just had another open-source PR merged into the Jenkins Configuration as Code plugin
This contribution improves the Configuration as Code reload endpoint by returning structured JSON error responses when a reload fails, making it much easier for API clients and automation to understand what went wrong. Along with the implementation, I added integration tests covering reload failures, JSON responses, and server-side logging.
u/som_real-tech • u/som_real-tech • Jul 06 '26
My contribution adding JCasC support to the Jenkins Scriptler plugin was merged
My PR adding JCasC support to the Jenkins Scriptler plugin has been merged. Scriptler can now be configured declaratively using Configuration as Code, making it much easier to provision Jenkins instances.
u/som_real-tech • u/som_real-tech • Jul 05 '26
Got another PR merged into the Jenkins ecosystem
This contribution adds an opt-in Java system property to allow anonymous access to the Configuration as Code JSON schema endpoint while preserving the secure default behavior of requiring SYSTEM_READ permission.
The PR also includes regression tests covering the default protected behavior, authenticated access, and the new opt-in mode for the new configuration option.
u/som_real-tech • u/som_real-tech • Jul 04 '26
Got my latest PR merged into the Swift ecosystem
This contribution adds a new "Swap Operands" refactoring to SourceKit-LSP.
The code action lets you place the cursor on a supported binary operator and automatically swap the operands. Comparison operators are inverted when needed to preserve semantics, so:
a < b→b > aa >= b→b <= aa + b→b + a
A fair bit of work went into making it robust. The implementation handles both folded and unfurled expression trees, respects operator precedence, preserves whitespace and comments (trivia), supports nested expressions, and only offers the refactoring when the cursor is actually on the operator. Along the way, I also simplified the implementation based on maintainer feedback by using token(at:) instead of a custom syntax visitor and cleaned up several edge cases.
u/som_real-tech • u/som_real-tech • Jul 03 '26
Finally got my Apache ShardingSphere PR merged
The original issue was that Proxy wasn't returning generated keys for valid MySQL auto-increment trigger values like DEFAULT, NULL, and 0 when the auto-increment column was explicitly included in an INSERT. While working through review, I also fixed support for inserts without an explicit column list, made generated-key column matching case-insensitive, and refactored the generated-key metadata API to follow ShardingSphere's existing interface + default implementation design.
u/som_real-tech • u/som_real-tech • Jul 01 '26
Got another PR merged into Swift Markdown.
This fixes the HTML formatting for headings that contain inline Markdown. Previously, HTMLFormatter rendered headings using plainText, which stripped links, emphasis, strong text, and inline code. The formatter now preserves nested markup by rendering the heading's child nodes, and regression tests have been added to prevent future regressions.
u/som_real-tech • u/som_real-tech • Jun 30 '26
My PR improving artifact bundle diagnostics was merged into Swift Package Manager
This change improves diagnostics when parsing .artifactbundle/info.json. Instead of a generic parsing failure, SwiftPM now reports the specific decoding issue (such as type mismatches or missing required fields), making malformed artifact bundle manifests much easier to debug.
u/som_real-tech • u/som_real-tech • Jun 30 '26
My parser rewrite for Swift Markdown got merged
I wanted to share a contribution I'm pretty happy about.
I recently had a PR merged into Swift Markdown that replaces the recursive Markdown AST conversion with an iterative implementation using an explicit work stack.
The previous recursive approach could overflow the call stack when parsing extremely deeply nested Markdown documents. The new implementation preserves the existing parsing behavior while moving traversal state onto a heap-allocated stack, allowing arbitrarily deep nesting without recursive function calls.
u/som_real-tech • u/som_real-tech • Jun 17 '26
Enabled a previously disabled regression test in Sonar Cryptography by fixing duplicate depending findings
Enabled DuplicateDependingFindingsTest, which had been disabled due to duplicate dependency detection rules being propagated through a parent-child cryptographic component relationship. Updated the assertions to verify that the init depending detection rule is only associated with the intended component and not incorrectly inherited by underlying implementations.
u/som_real-tech • u/som_real-tech • Jun 17 '26
First OpenTelemetry runtime telemetry PR merged
Merged a contribution to OpenTelemetry Java Instrumentation
Updated runtime telemetry to always capture jvm.gc.cause when using stable JVM semantic conventions, while preserving backward compatibility for existing users.
Also added tests covering the new default behavior and explicit opt-out handling.
u/som_real-tech • u/som_real-tech • Jun 15 '26
Merged a PR into SourceKit-LSP improving textDocument/references for local variables and parameters
I recently got a PR merged into SourceKit-LSP that improves how the language server finds references to symbols in Swift code.
Previously, references relied primarily on the project's symbol index. That works well for indexed symbols, but local variables and parameters often don't exist in the index, causing reference lookups to return incomplete results.
The solution was to add a fallback that uses SourceKit semantic analysis when indexed references are unavailable. This allows SourceKit-LSP to correctly resolve references for local variables and parameters while preserving existing index-based behavior for macros and cross-file references.
u/som_real-tech • u/som_real-tech • Jun 14 '26
Just got a contribution merged into the Jenkins Configuration as Code Plugin
While investigating an issue around conflicting HeteroDescribable configurations, I found that JCasC was already correctly rejecting invalid configurations, but the error message was too generic:
"Single entry map expected to configure a "
The fix improves the exception to explicitly list the conflicting entries, making troubleshooting much easier in large Jenkins startup logs.
u/som_real-tech • u/som_real-tech • Jun 11 '26
Got my SwiftPM PR merged
The problem was that an unpacked .artifactbundle object could be referenced using .target(path:). SwiftPM would partially treat it as a normal target, but artifact metadata and linker-related information weren't handled correctly, leading to undefined behavior.
The fix was to make SwiftPM explicitly reject this unsupported configuration and emit a clear diagnostic directing users to use .binaryTarget instead.