logo

The Turing Way

  • Welcome
  • Guide for Reproducible Research
    • Overview
      • Definitions
      • Added Advantages
      • Barriers
      • Resources
    • Open Research
      • Open Data
      • Open Source Software
      • Open 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
      • Software Licenses
      • Data Licenses
      • Hardware Licenses
      • Machine Learning Model Licenses
        • Case Studies: Choosing an ML License
      • License Compatibililty
      • Checklist
    • Research Data Management
      • Research Data
      • Data Management Plan
      • The FAIR Principles and Practices
      • Personal data management
      • Data Storage and Organisation
      • Data Organisation in Spreadsheets
      • Documentation and Metadata
      • Data Curation
      • Sharing and Archiving Data
      • Data Article
      • Research Data Management Toolkits
      • Personal Impact Stories
      • Checklist
      • 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
      • Communication and Collaboration
      • Reproducibility Methods
      • Version Control and Documentation
      • Sharing Your Research Work
    • 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
  • 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 twitter
      • Managing multiple twitter 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • Glossary
    • Bibliography
    • Contributors Record
Visit our GitHub Repository
This book is powered by Jupyter Book
  • repository
  • open issue
  • suggest edit
  • .md
Contents
  • Workflow
  • Issue

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 processes 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 the books’ external links after building the book. If the book fails to build then the workflow will fail. The workflow uses cached results from previous runs to avoid the need to recheck all links every time the check is run. This does however mean that the results may not be up to date.

The GitHub runners’ 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 save 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

The Turing Way Monthly Newsletters

By The Turing Way Community

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