Open Issues Need Help
View All on GitHubAI Summary: This issue proposes refactoring the `Follow.html` macro into a template to improve security and type safety. The current macro directly injects a `link_track` parameter into an HTML attribute, posing a risk of attribute injection and uncheckable arguments. Converting to a template will leverage native auto-escaping for attribute rendering and provide a more auditable and type-checkable mechanism.
One webpage for every book ever published!
AI Summary: This issue proposes to remove unused cache engines (`RequestCache` and the `memcache+memory` alias) from the `openlibrary/core/cache.py` module. The `MemoryCache` will be kept for testing purposes and its `expires` parameter will be fixed. The `_get_cache()` function will be simplified to only include production and testing engines.
One webpage for every book ever published!
AI Summary: This issue proposes the deletion of the `search_amazon` function from the `vendors.py` file, as it appears to be unused. The contributor is asked to confirm its non-usage and then submit a pull request to remove it.
One webpage for every book ever published!
One webpage for every book ever published!
AI Summary: This issue identifies a bug in the `worksearch/subjects.py` file where an assert statement's error message is not using an f-string. This prevents the `{facet}` placeholder from being replaced with the actual value, making debugging harder when the assertion fails. The fix involves adding the 'f' prefix to the string to enable f-string formatting.
One webpage for every book ever published!
AI Summary: Images are not rendering correctly on the German version of the openlibrary.org/tour page. The issue is reproducible by navigating to the German tour page and observing the broken images.
One webpage for every book ever published!
One webpage for every book ever published!
AI Summary: This issue requests the deletion of the `codegen_api_docs.yml` file, which is no longer needed as the project has moved away from automatic FastAPI migration. The file is a remnant of a past development approach and its removal is a simple clean-up task.
One webpage for every book ever published!
One webpage for every book ever published!
AI Summary: This issue requests the verification and removal of potentially unused public functions within the codebase. The author has identified several functions that appear to have no callers and provides a table listing them, along with their file locations and whether they make network calls. The task involves performing a thorough text search to confirm their un-usage and then removing them, noting any found usages.
One webpage for every book ever published!
One webpage for every book ever published!
AI Summary: This issue requests the removal of the `@public` decorator from several Python functions that are not directly called from HTML templates. The goal is to reduce confusion and facilitate the transition to asynchronous code, as functions used in HTML cannot be asynchronous. The request emphasizes verifying that these functions are indeed not used in HTML before removing the decorator.
One webpage for every book ever published!
AI Summary: This issue proposes refactoring the `search/subjects.html` and `search/authors.html` templates to remove network requests made directly within the template. Instead, the data fetching logic (`get_results`) should be moved to the Python backend, and the results passed to the template. This change aims to improve performance, facilitate asynchronous operations, and prepare for a migration to FastAPI.
One webpage for every book ever published!
AI Summary: This feature request proposes replacing all instances of `web.urlquote` with Python's built-in `urllib.parse.quote`. The `web.urlquote` function is an alias for `urllib.parse.quote`, making this a straightforward modernization effort that reduces dependencies and aligns with standard Python practices. The change affects four specific files within the `openlibrary` directory.
One webpage for every book ever published!
AI Summary: This issue proposes replacing all instances of `web.re_compile` with Python's built-in `re.compile`. The motivation is that `re.compile` already has effective caching, making `web.re_compile` redundant, offering no performance benefit, and adding an unnecessary dependency. The change aims to modernize the codebase and reduce dependencies.
One webpage for every book ever published!
AI Summary: This issue proposes replacing the deprecated `web.safeunicode` function with Python's built-in `str()` function. This change aims to improve Python 3 compatibility, modernize the codebase, reduce dependencies, and enhance clarity. The replacement is considered safe due to tested equivalence and affects 13 occurrences across several files.
One webpage for every book ever published!
AI Summary: The `scripts/generate-api-docs.py` script has been identified as unused for many years. The issue proposes its deletion to clean up the codebase. This is a straightforward refactoring task.
One webpage for every book ever published!
AI Summary: This issue requests the replacement of deprecated `web.lstrips` and `web.rstrips` functions with modern Python 3.9+ built-in string methods `removeprefix` and `removesuffix`. The goal is to modernize the codebase, improve clarity, reduce dependencies, and potentially enhance performance by updating approximately 17 occurrences across various files.
One webpage for every book ever published!
AI Summary: The `decorate_with_tags` function fails to associate genre tags with their corresponding subject pages because it incorrectly normalizes the subject name, leading to a mismatch with the actual tag slugs. The proposed fix involves parsing the subject name to correctly extract the tag type and slug before searching for the tag.
One webpage for every book ever published!
AI Summary: This issue proposes refactoring the code to replace direct usage of `web.cookies()` for checking 'pd' and 'sfw' flags. Instead, it suggests using values from `req_context` which is considered a more robust and preferred approach. The changes involve updating specific lines in `borrow.py`, `home.py`, and `api.py` to align with this new pattern.
One webpage for every book ever published!
AI Summary: This issue proposes to remove an unnecessary abstract base class `PartialDataHandler` and several synchronous stub methods that raise `NotImplementedError`. The goal is to simplify the code by relying on Python's duck typing and eliminate redundant methods, improving clarity and preventing potential mypy issues.
One webpage for every book ever published!
AI Summary: This issue requests the complete removal of any remaining WMD (What You See Is What You Get) code from the codebase. A previous pull request addressed most of it, but some remnants, including those in the vendor folder, still exist and need to be identified and deleted.
One webpage for every book ever published!
AI Summary: The "Preview Only" button on the Open Library homepage is not translated into Arabic when the site's language is set to Arabic, creating an inconsistent user experience. This issue likely stems from the string being either missing from the Arabic translation file or hardcoded in English.
One webpage for every book ever published!
AI Summary: This issue proposes reordering the `.pre-commit-config.yaml` file to improve developer feedback speed. The suggestion is to move slower, less frequently triggered hooks like `sqlfluff-lint` and `mypy` to the end, while placing faster, more general checks earlier. This aims to provide quicker validation for common code changes and a smoother development experience.
One webpage for every book ever published!
AI Summary: This issue requests an update to the project's pre-commit configuration to apply stricter formatting rules to more Python files. The goal is to gradually enforce formatting by modifying `.pre-commit-config.yaml` to exclude only specific files from ruff and black, thereby avoiding merge conflicts.
One webpage for every book ever published!
AI Summary: This issue requests the removal of Vue files from the temporary exemptions list in `eslint.config.js`. The goal is to ensure all Vue files are automatically formatted by the linter. The change should be made in a single commit, and the CI will verify the automatic formatting.
One webpage for every book ever published!
One webpage for every book ever published!
AI Summary: A 404 Not Found error occurs when submitting a book check-in due to a mismatch between the frontend's request URL and the backend FastAPI route definition. The frontend is attempting to POST to a `.json` endpoint, but the FastAPI route is not configured to handle this suffix, leading to the request failing.
One webpage for every book ever published!
AI Summary: The Advanced Search form on Open Library incorrectly includes two identical `<fieldset>` elements, each with a `<legend>` titled 'Advanced Search'. This duplication causes accessibility issues for screen readers and is a redundant HTML structure. The fix involves consolidating the hidden input into the main search form's fieldset.
One webpage for every book ever published!
AI Summary: This feature request proposes automatically adding a "Needs: Submitter Input" label to pull requests when a reviewer requests changes. This label would signal to the submitter that updates are needed and would be removed when new commits are pushed. The goal is to improve the visibility of PRs requiring submitter action.
One webpage for every book ever published!
AI Summary: This issue requests that the `dev_db.pg_dump` file be excluded from linting. The file is auto-generated and serves as a snapshot, so linting it is unnecessary and potentially problematic. The goal is to prevent linting errors on this specific file.
One webpage for every book ever published!
AI Summary: This issue requests the removal of an unused "test" parameter from the `welcome.html` file and its corresponding usage in `/templates/home/index.html`. The goal is to clean up the codebase and ensure the homepage continues to function correctly after the removal. This is marked as a "Good First Issue" for new contributors.
One webpage for every book ever published!
AI Summary: The `make reindex-solr` command fails with an `IndexError` because it doesn't handle cases where there are no `/lists/` or `/series/` entries in the database. This results in an empty list of keys being passed to a script that expects at least one key, causing it to crash. The proposed solution is to add a check for an empty keys list and exit gracefully with a warning.
One webpage for every book ever published!
AI Summary: This issue proposes to improve Docker Compose setup by adding a health check for the PostgreSQL service and configuring the 'home' service to wait for the database's health. This aims to simplify the startup script and potentially speed up application startup by removing manual waiting loops.
One webpage for every book ever published!
AI Summary: This issue proposes enabling the `end-of-file-fixer` pre-commit hook for all file types, not just Python. The goal is to prevent unnecessary diff noise caused by changes to the final newline of files, while excluding binary files like SVGs. This change aims to enforce POSIX standards and improve code review efficiency.
One webpage for every book ever published!
AI Summary: This issue proposes to improve the Docker Compose setup for OpenLibrary by making the `home` service wait for the `solr` service to be ready. This will be achieved by updating the `compose.override.yaml` file and removing redundant waiting logic from `ol-home-start.sh`. Additionally, the delay in the PostgreSQL waiting loop will be reduced.
One webpage for every book ever published!
AI Summary: This issue proposes disabling homepage caching in the local development environment. Currently, developers must restart the web container to see changes on the homepage due to a 5-minute cache. The fix involves modifying the `home.GET()` method to directly call `get_homepage()` when in development mode, ensuring immediate visibility of homepage changes.
One webpage for every book ever published!
AI Summary: This issue proposes adding a "dev carousel" to the homepage for local development environments. The carousel will display books and will only be visible when the 'dev' feature flag is enabled, ensuring it doesn't appear in production. The implementation involves merging existing code into `home/index.html` and disabling caching for the carousel.
One webpage for every book ever published!
AI Summary: This issue proposes creating a script to automate the 'Fully Resetting Your Environment' commands currently found in the Docker README. This will prevent copy-paste errors and improve the developer experience. The documentation will be updated to link to the new script and provide instructions on how to run it.
One webpage for every book ever published!
AI Summary: The advanced search page on mobile devices currently has search bars that are too wide and cause the page to overflow. The goal is to fix this overflow by applying a similar responsive pattern used on other search pages, ensuring a minimal change that only addresses the overflow issue.
One webpage for every book ever published!
AI Summary: The `SubjectProcessor` class in `openlibrary/core/lists/engine.py` has become obsolete after the resolution of issue #12112. The issue proposes to safely remove this unused class as part of a code cleanup effort.
One webpage for every book ever published!
AI Summary: This feature request aims to prevent inline imports specifically within the FastAPI directory of the project. The goal is to enforce this rule using a pre-commit hook, configured in pyproject.toml, to improve code quality and consistency in that specific module. This is a targeted approach to avoid broader merge conflicts.
One webpage for every book ever published!
One webpage for every book ever published!
One webpage for every book ever published!
One webpage for every book ever published!
One webpage for every book ever published!
One webpage for every book ever published!
AI Summary: This feature request proposes to improve the loading performance of book pages by lazy-loading history tables. Instead of loading them immediately, they will only be fetched and displayed when they scroll into the user's viewport, reducing initial page load times and blocking.
One webpage for every book ever published!
One webpage for every book ever published!
AI Summary: The focus ring around the search input field on the Search Books page is misaligned, appearing slightly offset from the input's borders. The issue requires CSS adjustments to ensure the focus outline perfectly aligns with the search field for improved visual appearance and design consistency.
One webpage for every book ever published!
One webpage for every book ever published!
AI Summary: This issue proposes migrating the `/cdn/archive.org/donate.js` and `/cdn/archive.org/athena.js` endpoints from the legacy web.py framework to FastAPI. The goal is to replicate the existing functionality, including fetching JavaScript files from archive.org and setting specific cache headers, within the new FastAPI structure as part of an ongoing migration effort.
One webpage for every book ever published!
One webpage for every book ever published!
AI Summary: This feature request proposes adding a SQL linter, such as `sqlfluff`, to the pre-commit hooks. The goal is to prevent syntax errors (like missing semicolons) in `.sql` files, which have previously caused initialization failures for new developers, though existing developers were unaffected due to container caching.
One webpage for every book ever published!
One webpage for every book ever published!
One webpage for every book ever published!
One webpage for every book ever published!
One webpage for every book ever published!
One webpage for every book ever published!
One webpage for every book ever published!
One webpage for every book ever published!
AI Summary: The 'Privacy & Content Moderation Settings' page incorrectly sets the `checked` attribute for radio buttons, resulting in an invalid HTML value like `checked=""checked""` instead of a simple boolean `checked`. This issue can be resolved by modifying the `selected` function in the `privacy.html` template to correctly apply the `checked` attribute.
One webpage for every book ever published!
AI Summary: On the "Privacy & Content Moderation Settings" page, clicking the label associated with a radio button does not select that radio button. This is likely due to a mismatch between the `for` attribute of the `<label>` element and the `id` attribute of its corresponding `<input type="radio">` element.
One webpage for every book ever published!
One webpage for every book ever published!
AI Summary: Users can repeatedly click download buttons for patron exports, leading to multiple downloads because the UI doesn't indicate an ongoing download or disable the button. The proposed solution involves disabling the button and changing its text to "Downloading..." on click, then reverting it once the download is complete.
One webpage for every book ever published!
One webpage for every book ever published!
One webpage for every book ever published!
One webpage for every book ever published!
One webpage for every book ever published!
One webpage for every book ever published!
One webpage for every book ever published!
AI Summary: The task involves improving the visual consistency of card components in the Open Library website. Specifically, it requires updating the styling of the "Community List" label to match the styling of other labels, potentially by replacing the user avatar with the Open Library logo while maintaining existing classes and font styles.
One webpage for every book ever published!
AI Summary: Debug and fix a CSS padding issue affecting the 'Join Waitlist' button on the Open Library homepage. This involves inspecting the provided HTML and CSS, identifying the cause of the missing padding, and implementing a fix that ensures proper visual presentation of the button.
One webpage for every book ever published!
AI Summary: The task involves removing several unused functions (`fetchPartials`, `updateReadingLog`, `removeFromList`, `addToList`, `createNewList`, and potentially `post`) from the `ListService.js` file within the Open Library project. This is a code cleanup task aimed at improving maintainability.
One webpage for every book ever published!