Skip to main content
Ctrl+K
⚠️The Turing Way is moving domain! We will soon move to book.the-turing-way.org. You can use new domain now! Later, the old domain will redirect you to the new location.
Logo image
  • Welcome
  • Guide for Reproducible Research
    • Overview
      • Definitions
      • Added Advantages
      • Barriers
      • Resources
    • Open Research
      • Open Data
      • Open Source Software
      • Open Source Hardware
      • Open Access
      • Open Notebooks
      • Open Scholarship
      • Checklist
      • Resources
    • Version Control
      • Version Control Workflow
      • Version Control and Branches
      • The Git Version Control Software
      • Git for Research Projects
      • Git Using the Command Line
        • Git Commit Command
        • Retrieving and Comparing Versions
        • Git Branches
        • Merging Branches in Git
        • Interactive, Visual Git
        • Git Commands to Work on GitHub
        • Summary Table of Git Commands
      • Version Control for Data
      • Personal Stories
      • Checklist
      • Resources
    • Licensing
      • License Compatibililty
      • Ethics-informed Licensing
      • Data Licenses
      • Hardware Licenses
      • Machine Learning Model Licenses
        • Case Studies: Choosing an ML License
      • Checklist
    • Research Data Management
      • Research Data
      • Finding Data
      • Data Management Plan
      • The FAIR Principles and Practices
      • Personal data management
      • Data Storage and Organisation
      • Data Organisation in Spreadsheets
      • Documentation and Metadata
      • Methods and Protocols
      • Electronic Lab Notebooks (ELNs)
      • Data Curation
      • Data Visualisation
      • Data Repositories
      • Sharing and Archiving Data
      • Data Article
      • Checklist
      • Personal Impact Stories
      • Resources
    • Reproducible Environments
      • Capturing Computational Environments
      • Package Management Systems
      • YAML
      • Virtual Machines
      • Containers
      • Resources and Checklist
    • BinderHub
      • Introduction to BinderHub
      • Compute Resources
      • Build Your Own BinderHub
      • Resources for BinderHub
    • Code quality
      • Code Style and Formatting
      • Writing Robust Code
      • Checklist and Resources
    • Code Testing
      • General Guidance for Testing
      • Overview of Testing Types
      • Smoke Testing
      • Unit Testing
      • Integration Testing
      • System Testing
      • Acceptance and Regression Testing
      • Runtime Testing
      • Test Driven Development
      • Challenges and Exceptional Cases
      • Checklist for Code Testing
      • Further Recommendations
    • Code Reviewing Process
      • Motivation for code reviewing
      • Recommendations for code reviewing
      • Code review workflow
      • Checklist for code reviewing
      • Resources for code reviewing
    • Reusable Code
      • Overview of Code Reuse
      • Detailed Recommendations for Code Reuse
    • Continuous Integration (CI)
      • Intro to Continuous integration (CI)
      • Getting started with GitHub actions
      • Building a Block of a GitHub actions
      • Best practices and recommendations
      • Checklist and Resources
    • Reproducible Research with Make
      • Learn "Make" by examples
      • Debugging Makefiles
      • Case Study of a Reproducible Paper
      • Including numerical results and tables
      • Resources for "Make"
      • Appendix
    • Research Compendia
    • Risk Assessment
      • Complexity and Impact of Risk Assessment
      • Summary of Risk Assessment
    • Case Studies
      • A Statistical Methods Manuscript
  • Guide for Project Design
    • Overview of Project Design
      • Planning for Project Design
      • Collaborative project documentation
      • Reproducibility Methods
      • Version Control and Documentation
      • Sharing Your Research Work
    • Project Design Checklist
    • Creating Project Repositories
      • Landing Page - README File
      • Roadmapping
      • Contributors and Communication Pathways
      • Participation Guidelines
      • Advanced Structure for Data Analysis
      • Further Recommendations
    • Personas and Pathways
      • Persona Creation Tool
      • Contributor Pathways
    • File Naming Convention
    • Code Styling and Linting
      • Guidelines for Code Styling
      • Writing Human Readable Code
      • Code Styling Tools
    • Sensitive Data Projects
      • Types of Sensitive Data
      • Personal Data
      • Confidential Data
      • Biological Data
      • Metadata
      • Combined Datasets
    • Managing Sensitive Data Projects
      • Informed consent
      • Data Privacy Strategies
      • Sharing Sensitive Data
      • Resources
    • Working on Sensitive Data Projects
      • Working with Trusted Research Environments
      • Privacy Preserving Machine Learning
      • Keeping Sensitive Files Secure
      • Sharing Your Jupyter Notebook
      • Removing Sensitive Data From GitHub
      • Further Recommendations
    • Data Governance
      • Data Governance for the Machine Learning Pipeline
      • BigCode Data Governance Case Study
  • Guide for Communication
    • Overview of Guide for Communication
      • Principles of Communicating with Wider Audiences
      • Communicating Accessibly
      • Resources and Recommendations
    • Open Scholarship
      • Open Education
    • Blogs for Research Communication
      • Building a Webpage for Blogs
      • Personal stories - Blogs
    • Lay Summaries
      • Personal Stories - Lay summaries
    • Podcasts for Research Communication
      • Personal Stories - Podcasts
    • Presenting Posters and Conference Talks
      • Presenting at Remote Events
      • Personal stories - Presenting Outside of Your Discipline
    • Social Media for Research Communications
      • Tips for starting with X
      • Managing multiple X accounts
    • Research Objects in Action
      • Lifecycle
      • Implementation
    • Making Research Objects Citable
      • Steps for Making Research Objects Citable
      • Citing Research Objects
      • Software citation with CITATION.cff
      • Create a CITATION.cff using CFFinit
      • Linking Research Objects
      • ORCID to Collect your Research Objects
      • Checklists and Resources
    • Publishing Different Article Types
      • Data Papers
      • Methods Papers
      • Micropublishing
      • Registered Reports
      • Software Papers
    • Communications in Open Source Projects
      • Issue Tracking
      • Communication Channels
    • Authorship and Contributions on Academic Articles
      • Overview of Academic Authorship
      • Types of Authorship Misconduct
      • Discipline Specific Authorship Traditions
      • Large and Equitable Authorships
      • Tips on How to Get Authorship Right
      • Personal Stories - Authorship on Interdisciplinary Projects
      • Personal Stories - Large Collaborative Research Community
      • Resources
    • Peer Review
      • Peer Review
      • Open Peer Review
      • Guidance on Peer Review for a Journal
      • Guidance on Code Review
      • Resources
    • Binder
      • Zero-to-Binder
  • Guide for Collaboration
    • Getting Started With GitHub
      • Motivation for Using GitHub
      • First steps on GitHub
      • Using more GitHub features
      • Advanced GitHub features
    • Maintainers and Reviewers on GitHub
      • Project Maintenance
      • Ownership and Permissions
      • Reviewing Contributions
      • Merging Contributions
      • Resources
    • Organising Meetings
    • Organising Online Coworking Calls
    • Organising Conferences
      • Registration Forms
      • Template for Registration Form
    • Chairing Events
    • Participating in Events
    • Hosting Events with Public Contributors
      • Planning your PPIE Event
      • Location and Venue Planning
      • Scheduling and Agenda Considerations
      • Communication Strategy and Planning
      • Inclusive Social and Networking
      • Technology Considerations
      • Additional Resources
    • Informal Coffee Chats
    • Tools for Facilitating Collaboration
    • Facilitating Stakeholder Engagement
    • Managing a New Community and Team
      • Guide to Planning a Community
      • Addressing Technical Issues
      • Valuing Diversity and Differences
      • Teamwork
    • Academic-Industry Collaborations
      • Establishing an Academic-Industry Collaboration
      • Community Building in an Academic-Industry Collaboration
      • Turing-Roche Community Activities Personal Story
    • Team Manual
      • On and Offboarding Team Members
    • Open Leadership in Data Science
      • Important Features of Leadership
      • Building Healthy Leadership Skills
      • Creating Leadership Opportunities
      • Personal Story from Running a Hackathon
      • Personal Story of Leadership by a Data Librarian
    • Research Infrastructure Roles
      • Community Managers Overview
      • Data Stewards Overview
      • Data Steward Personal Story
      • Data Wrangler Overview
      • Research Software Engineers Overview
      • Research Software Engineering Personal Story
      • Research Application Manager Overview
      • Research Infrastructure Developer Overview
    • Remote Collaboration
      • Pros and Cons
      • Guidelines for Remote Collaboration
      • Managing Distributed Teams
      • Useful Resources
    • Hybrid Collaboration
      • Challenges faced during Hybrid Collaboration
      • Guidelines for Hybrid Collaboration
      • Resources
    • Shared Ownership in Open Source Projects
      • Project Ownership
      • Shared Ownership Models
      • Challenges with Applying Ownership Models Retroactively
      • Nudging for a Better Default
    • Sustainability of Open Source Projects
  • Guide for Ethical Research
    • Introduction to Research Ethics
    • Research Ethics Committees Workflows
    • Ethical Decisions in Preclinical Research
    • Law, Policy and Human Rights in Ethics
      • Ethics and law
      • Human rights
      • Further Recommendations
    • Research Ethics for Social Data
    • Data Feminism
    • Activism for Researchers
      • Unionisation
      • Whistleblowing
      • Cultural change
      • The Environmental Impact of Digital Research
      • Case study - Robodebt
      • Case study - Google Workers
    • Internal Policy Advocacy
    • Self-Reflection
      • Identity and Positionality
      • Power and Privilege
      • Self-Reflection Prompts
      • Resources
    • Data-Hazards
      • Introduction
      • How To Use
      • Case Study
    • Ethical Considerations for Open Source Governance Models
  • Community Handbook
    • Code of Conduct
      • Code of Conduct in Detail
      • Incident Reporting Guideline
      • Enforcement Manual
      • Acknowledgements
    • Style Guide
      • Citing and Referencing External Resources
      • Cross-Referencing Sections and Chapters
      • Using Figures
      • Glossary, Special Blocks and More Styling
      • Custom Styling
    • Maintaining Consistency
      • Formatting
      • Structure
      • Language
    • Build the Turing Way Book locally
    • Contributing and Developing Chapters - Templates and Workflow
      • Templates
      • Workflow
    • Acknowledging Contributors
      • Community Members and Shared Ownership
      • Record of Contributions
      • Different Contributions and Acknowledgements
    • Translation and Localisation
      • Translation of Open Source Projects
      • Welcome to the Translation and Localisation Team of The Turing Way!
      • Embark on Your Localisation Journey
      • Your Gateway to Crowdsourced Localisation
    • Infrastructure
      • Publishing Contributors
      • External Link Checking
      • DNS
    • Accessibility
      • Event Organising
      • Alt text
    • Communication Platforms
      • Quick Start Guide for Slack
      • Slack Welcome Guide
    • Monthly Newsletters
      • A Process of Creating a newsletter
      • Newsletter's Style Guide
      • The Turing Way Newsletter Template
    • Book Dash Events
      • Application and Review Process
      • Book Dash Logistics
      • Working With an Illustrator
      • Participant Selection Process
      • Book Dash Main Event Plans
      • After the Book Dash
    • Community Coworking Calls
      • Background, Motivations, and Techniques
      • Online Collaboration Cafe
      • Weekly Coworking Calls
      • Organising coworking calls
    • Fireside Chat Series
      • Fireside Chat Planning Checklist
      • Fireside Chat Roles and Responsibilities
    • Giving a Turing Way Talk
    • Template Collection
      • Book Dash Main Shared Document
      • Book Dash Pre-event Onboarding
      • Book Dash GitHub Session
      • Book Dash Template for Shared Notes
      • Book Dash Template for Feedback
      • Online Collaboration Cafe Templates
      • Weekly Coworking Call Template
      • Template for Drafting Newsletters
      • Template for Fireside Chat Shared Notes
  • Afterword
    • Legal Disclaimer
    • Contributors Record
    • Collaborators
    • Sub-projects, Working Groups, Informal Initiatives
    • Glossary
    • Bibliography
  • Repository
  • Suggest edit
  • Open issue
  • .md

External Link Checking

Contents

  • Workflow
  • Issue

External Link Checking#

The external link check tests if links between pages of The Turing Way and other websites work. This is a useful tool which helps us ensure that when users click a link they are brought to a working page.

There is a GitHub workflow which regularly tests external links in the book and posts a list of broken links to an issue. This section explains the process which updates the broken links issue.

Workflow#

The workflow is dispatched according to a schedule. The schedule uses the POSIX cron format to specify when the workflow should run. The workflow is currently configured to run once per week at midnight on Monday in the UTC+00:00 time zone.

Lychee is used to check the book’s external links after building the book. If the book fails to build then the workflow will also fail. The workflow uses cached results from previous runs to avoid the need to recheck all links every time the check is run. However, this does mean that the results may not be up to date.

The GitHub runner’s GitHub token is specified as an environment variable for the Lychee action. This prevents false negatives due to rate limiting when testing links to GitHub.

The Lychee configuration in the root of the repository controls the behaviour of Lychee. The configuration is a TOML file. An example configuration file with explanations can be found in the Lychee documentation.

The configuration file can be used to improve the usefulness of the broken links issue. In particular, it is possible to exclude domains which are known to produce false negatives using the --exclude argument on the command line or the equivalent exclude key in the configuration file.

Lychee produces a report of broken links and saves this to a Markdown file. The workflow then concatenates this report with an issue header and updates the broken links issue.

Issue#

The broken links issue is #3171. The information in the issue header aims to explain the output and provide some guidance for fixing broken links. That information is not duplicated here. Improvements to the explanation or guidance should be made to the issue header as any changes made to the issue will be overwritten when it is next updated.

previous

Publishing Contributors

next

DNS

Contents
  • Workflow
  • Issue

By The Turing Way Community

The Turing Way Community makes all of their materials publicly available under open source licenses