samber/lo
ProjectThe samber/lo
project, a Lodash-style utility library for Go, has seen significant activity focused on documentation enhancements and minor feature refinements, reflecting a phase of consolidation rather than expansion.
Recent issues and pull requests (PRs) indicate a concerted effort to refine existing functionalities and improve documentation. Notable issues include proposals for new utility functions like UniqMap
(#526) and enhancements to error handling in mapping functions. These suggest a trajectory towards making the library more robust and user-friendly.
CHANGELOG.md
and improvements to README.md
.MapKeys
and MapValues
.lo.ForEachWhile
.UniqMap
and CoalesceOrEmptySlice
are being proposed, reflecting ongoing community engagement.Chunk
function highlight ongoing attention to performance optimization.Timespan | Opened | Closed | Comments | Labeled | Milestones |
---|---|---|---|---|---|
7 Days | 0 | 0 | 0 | 0 | 0 |
30 Days | 7 | 0 | 6 | 7 | 1 |
90 Days | 15 | 11 | 19 | 15 | 1 |
1 Year | 55 | 21 | 71 | 55 | 1 |
All Time | 207 | 91 | - | - | - |
Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
Samuel Berthe | 1 | 0/0/0 | 12 | 11 | 726 | |
Nathan Baulch | 1 | 1/1/0 | 1 | 14 | 116 | |
Sianao Luo | 1 | 0/1/0 | 1 | 2 | 18 | |
luxcgo | 1 | 0/1/0 | 1 | 1 | 10 | |
Fred Muya | 1 | 1/1/0 | 1 | 1 | 2 | |
Xin Hao | 1 | 2/1/0 | 1 | 1 | 2 | |
Lucas Graeff Buhl-Nielsen (LucasBN) | 0 | 1/0/1 | 0 | 0 | 0 | |
Alexfilus (Alexfilus) | 0 | 1/0/0 | 0 | 0 | 0 | |
Usman Ahmed (usman1100) | 0 | 1/0/1 | 0 | 0 | 0 | |
Tom Godkin (BooleanCat) | 0 | 1/0/0 | 0 | 0 | 0 | |
Everett (freeeverett) | 0 | 1/0/0 | 0 | 0 | 0 | |
None (pigwantacat) | 0 | 1/0/0 | 0 | 0 | 0 | |
None (nicklaus-dev) | 0 | 3/0/0 | 0 | 0 | 0 | |
Bram Van de Walle (bramvandewalle) | 0 | 1/0/0 | 0 | 0 | 0 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
The samber/lo
GitHub repository currently has 116 open issues, indicating a healthy level of community engagement and ongoing development. Recent activity shows a mix of feature proposals, bug reports, and discussions about enhancements, particularly around the utility functions provided by the library. Notably, there are several proposals for new functions that enhance usability and performance, such as UniqMap
, CoalesceOrEmptySlice
, and improvements to existing functionalities like Chunk
and PartitionBy
.
A recurring theme among the issues is the demand for better error handling in mapping functions, with multiple users requesting variants that can gracefully handle errors without panicking. Additionally, there is a significant interest in adding more convenience functions that align with common patterns seen in other programming languages, particularly JavaScript's Lodash.
Here are some of the most recently created and updated issues:
Issue #526: Proposal: Add UniqMap
Issue #525: Any plans to add support for Go 1.23's iterators?
Issue #520: Ellipsis: avoid Unicode character truncation
Issue #518: Ellipsis: Replace "..." by "…" (U+2026)?
Issue #513: Add CoalesceOrEmptySlice
for slices
Issue #512: Allow for a custom random seed when sampling
Issue #510: lop.PartitionBy does not guarantee the same order
Issue #505: Proposal: Add SliceToSet, WithoutBy
Issue #492: Chunk: memory safety
Issue #488: How to lazy evaluate for the first return value of FilterMap
UniqMap
(#526) reflects a common need among users to streamline operations on slices by combining mapping and uniqueness checks into one function.CoalesceOrEmptySlice
(#513) demonstrates a desire for more robust handling of empty collections, which is crucial in many applications.Chunk
function points to a critical area where user data integrity could be at risk if not addressed properly.Overall, the issues reflect a vibrant community actively seeking improvements and expressing needs that align with modern programming practices and standards.
The samber/lo
repository currently has 96 open pull requests (PRs), with the most recent contributions focusing on enhancing functionality, performance improvements, and adding new features. The activity around these PRs indicates a vibrant community engagement and ongoing development efforts.
PR #529: Add Round: returns the float32/float64 of specified precision
Created by Everett (freeeverett) 2 days ago. This PR introduces a rounding function that allows for specified precision in floating-point numbers, enhancing numerical operations in the library.
PR #528: Add IndexOf for iter.Seq
Created by Tom Godkin (BooleanCat) 7 days ago. This PR adds an IndexOf
method for sequences, improving the library's capabilities for searching within collections.
PR #527: feat: add UniqMap
Created by nicklaus-dev 8 days ago. This feature introduces a unique map structure, which could be beneficial for scenarios requiring uniqueness in key-value pairs.
PR #524: refactor: refactor RandomString function
Created by pigwantacat 15 days ago. This refactor aims to improve the performance of the existing RandomString
function, which is crucial for generating random data efficiently.
PR #516: feat: add SampleBy and SamplesBy
Created by Bram Van de Walle 21 days ago. This PR adds sampling functions that allow users to obtain random samples from collections based on a user-defined index generator.
PR #515: feat: add WithoutBy
Created by nicklaus-dev 22 days ago. This feature filters elements from a collection based on a predicate, returning only those that do not match.
PR #514: feat: add SliceToSet
Created by nicklaus-dev 22 days ago. This PR introduces a utility to convert slices into sets, providing a way to eliminate duplicates easily.
PR #507: feat: adding FromSlicePtrNotNil
Created by Samuel Berthe 42 days ago. This helper function aims to handle slices of pointers safely, avoiding nil values during conversion.
PR #495: Add EmptyOnError, EmptyOnError{1->6}
Created by 魚尾尾 51 days ago. This PR introduces several functions that safely retrieve values while ignoring errors, enhancing error handling in value retrieval scenarios.
PR #456: Add DifferenceBy for slices with any types
Created by Misha Dolbnin 110 days ago. This feature provides functionality to find differences between two slices based on a custom comparison function.
The current landscape of open pull requests in the samber/lo
repository reveals several noteworthy trends and themes:
Many recent PRs focus on adding new features that enhance the library's utility, such as UniqMap
, WithoutBy
, and various sampling functions like SampleBy
. These additions indicate an active effort to expand the library's capabilities and make it more versatile for developers working with collections in Go.
Several contributions aim at optimizing existing functions or introducing new ones that promise better performance. For instance, the refactoring of the RandomString
function and the introduction of preallocation strategies in functions like Assign
demonstrate a clear focus on efficiency and resource management within the library.
The discussions surrounding PRs often involve constructive feedback from other contributors and maintainers, showcasing a collaborative environment where code quality is prioritized. For example, comments on PR #516 highlight suggestions for improving type definitions and clarifying documentation, reflecting an engaged community committed to maintaining high standards.
While there is significant activity around new features and optimizations, some older PRs remain unmerged or have stalled discussions (e.g., PR #495). This could indicate potential bottlenecks in the review process or shifts in priorities among maintainers as they balance new contributions with ongoing maintenance tasks.
Despite the high number of open PRs, there appears to be a lack of recent merge activity compared to earlier periods when contributions were more rapidly integrated into the main branch. This slowdown could be due to various factors such as increased complexity in proposed changes or resource constraints among maintainers.
Overall, the pull request activity in the samber/lo
repository reflects a dynamic development environment with ongoing enhancements focused on usability and performance. However, attention may be needed to address older PRs and ensure timely reviews to maintain momentum within the community. The balance between introducing new features and maintaining existing ones will be crucial as the library continues to evolve.
Nathan Baulch (NathanBaulch)
Samuel Berthe (samber)
CHANGELOG.md
(16 days ago).README.md
for documentation improvements.FromSlicePtrNotNil
(42 days ago).Fred Muya (muya)
README.md
.Xin Hao (haoxins)
README.md
.luxcgo
MapKeys
and MapValues
, with 10 changes.Sianao Luo (Sianao)
lo.ForEachWhile
, with a commit 27 days ago.The development team is actively engaged in maintaining the samber/lo
library with a balanced focus on both functionality and documentation. Samuel Berthe leads the contributions significantly, while other team members contribute effectively to specific areas such as bug fixes and documentation improvements. The team's collaborative nature enhances the quality of the project through shared insights and peer reviews.